Uploaded image for project: 'Red Hat OpenStack Services on OpenShift'
  1. Red Hat OpenStack Services on OpenShift
  2. OSPRH-10734

Top level nodeSelector needs to be propagated to each service.

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • rhos-18.0.4
    • None
    • openstack-operator
    • None
    • 8
    • False
    • Hide

      None

      Show
      None
    • False
    • Committed
    • Proposed
    • Committed
    • Committed
    • None
    • Important

      Currently, OpenStackControlPlane CR can assign nodeSelector at the top level.

      https://github.com/openstack-k8s-operators/openstack-operator/blob/main/apis/bases/core.openstack.org_openstackcontrolplanes.yaml#L9753-L9756

      But it isn't inherited to several services.
      That means a user needs to assign the nodeSelector for services which don't inherit the configuration.
      This is not convenient and cause wrong configurations.

      Some services already inherited global nodeSelector property to service's ones.

      pkg/openstack/barbican.go:		if barbican.Spec.NodeSelector == nil && instance.Spec.NodeSelector != nil {
      pkg/openstack/barbican.go:			barbican.Spec.NodeSelector = instance.Spec.NodeSelector
      pkg/openstack/cinder.go:		if cinder.Spec.NodeSelector == nil && instance.Spec.NodeSelector != nil {
      pkg/openstack/cinder.go:			cinder.Spec.NodeSelector = instance.Spec.NodeSelector
      pkg/openstack/designate.go:		if designate.Spec.NodeSelector == nil && instance.Spec.NodeSelector != nil {
      pkg/openstack/designate.go:			designate.Spec.NodeSelector = instance.Spec.NodeSelector
      pkg/openstack/dnsmasq.go:		if dnsmasq.Spec.NodeSelector == nil && instance.Spec.NodeSelector != nil {
      pkg/openstack/dnsmasq.go:			dnsmasq.Spec.NodeSelector = instance.Spec.NodeSelector
      pkg/openstack/keystone.go:		if keystoneAPI.Spec.NodeSelector == nil && instance.Spec.NodeSelector != nil {
      pkg/openstack/keystone.go:			keystoneAPI.Spec.NodeSelector = instance.Spec.NodeSelector
      pkg/openstack/manila.go:		if manila.Spec.NodeSelector == nil && instance.Spec.NodeSelector != nil {
      pkg/openstack/manila.go:			manila.Spec.NodeSelector = instance.Spec.NodeSelector
      pkg/openstack/neutron.go:		if neutronAPI.Spec.NodeSelector == nil && instance.Spec.NodeSelector != nil {
      pkg/openstack/neutron.go:			neutronAPI.Spec.NodeSelector = instance.Spec.NodeSelector
      pkg/openstack/ovn.go:			if OVNDBCluster.Spec.NodeSelector == nil && instance.Spec.NodeSelector != nil {
      pkg/openstack/ovn.go:				OVNDBCluster.Spec.NodeSelector = instance.Spec.NodeSelector
      pkg/openstack/ovn.go:		if OVNNorthd.Spec.NodeSelector == nil && instance.Spec.NodeSelector != nil {
      pkg/openstack/ovn.go:			OVNNorthd.Spec.NodeSelector = instance.Spec.NodeSelector
      pkg/openstack/ovn.go:		if OVNController.Spec.NodeSelector == nil && instance.Spec.NodeSelector != nil {
      pkg/openstack/ovn.go:			OVNController.Spec.NodeSelector = instance.Spec.NodeSelector
      pkg/openstack/placement.go:		if placementAPI.Spec.NodeSelector == nil && instance.Spec.NodeSelector != nil {
      pkg/openstack/placement.go:			placementAPI.Spec.NodeSelector = instance.Spec.NodeSelector
      pkg/openstackclient/funcs.go:	if instance.Spec.NodeSelector != nil && len(instance.Spec.NodeSelector) > 0 {
      pkg/openstackclient/funcs.go:		podSpec.NodeSelector = instance.Spec.NodeSelector
      

      nodeSelector is important for OCP that has OSP NIC implemented worder nodes and OCP pure worker nodes.

              rhn-engineering-owalsh Oliver Walsh
              rhn-support-knoha Keigo Noha
              rhos-dfg-ospk8s
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated: