Skip to content

Commit d3045b1

Browse files
committed
Inherit top-level nodeSelector in rabbitmq template
1 parent 5928a4c commit d3045b1

5 files changed

Lines changed: 35 additions & 5 deletions

File tree

apis/bases/core.openstack.org_openstackcontrolplanes.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10879,6 +10879,10 @@ spec:
1087910879
format: int32
1088010880
minimum: 0
1088110881
type: integer
10882+
nodeSelector:
10883+
additionalProperties:
10884+
type: string
10885+
type: object
1088210886
override:
1088310887
properties:
1088410888
service:

apis/core/v1beta1/openstackcontrolplane_types.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -507,6 +507,10 @@ type RabbitmqTemplate struct {
507507
// +operator-sdk:csv:customresourcedefinitions:type=spec
508508
// Overrides to use when creating the Rabbitmq clusters
509509
rabbitmqv2.RabbitmqClusterSpecCore `json:",inline"`
510+
// +kubebuilder:validation:Optional
511+
// +operator-sdk:csv:customresourcedefinitions:type=spec
512+
// NodeSelector to target subset of worker nodes running this service
513+
NodeSelector *map[string]string `json:"nodeSelector,omitempty"`
510514
}
511515

512516
// OvnSection defines the desired state of OVN services

apis/core/v1beta1/zz_generated.deepcopy.go

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/core.openstack.org_openstackcontrolplanes.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10879,6 +10879,10 @@ spec:
1087910879
format: int32
1088010880
minimum: 0
1088110881
type: integer
10882+
nodeSelector:
10883+
additionalProperties:
10884+
type: string
10885+
type: object
1088210886
override:
1088310887
properties:
1088410888
service:

pkg/openstack/rabbitmq.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,18 @@ func reconcileRabbitMQ(
310310
tlsCert = certSecret.Name
311311
}
312312

313+
if spec.Override.StatefulSet == nil {
314+
spec.Override.StatefulSet = &defaultStatefulSet
315+
}
316+
317+
if spec.Override.StatefulSet.Spec.Template.Spec.NodeSelector == nil {
318+
if spec.NodeSelector != nil {
319+
spec.Override.StatefulSet.Spec.Template.Spec.NodeSelector = *spec.NodeSelector
320+
} else {
321+
spec.Override.StatefulSet.Spec.Template.Spec.NodeSelector = instance.Spec.NodeSelector
322+
}
323+
}
324+
313325
op, err := controllerutil.CreateOrPatch(ctx, helper.GetClient(), rabbitmq, func() error {
314326

315327
rabbitmq.Spec.Image = *version.Status.ContainerImages.RabbitmqImage
@@ -362,11 +374,6 @@ func reconcileRabbitMQ(
362374
rabbitmq.Spec.Persistence.StorageClassName = &instance.Spec.StorageClass
363375
}
364376

365-
if rabbitmq.Spec.Override.StatefulSet == nil {
366-
Log.Info("Setting StatefulSet")
367-
rabbitmq.Spec.Override.StatefulSet = &defaultStatefulSet
368-
}
369-
370377
if rabbitmq.Spec.Override.Service != nil &&
371378
rabbitmq.Spec.Override.Service.Spec != nil &&
372379
rabbitmq.Spec.Override.Service.Spec.Type == corev1.ServiceTypeLoadBalancer {

0 commit comments

Comments
 (0)