Skip to content

Commit bc64ab6

Browse files
Merge pull request #417 from olliewalsh/node_selectors
Ensure nodeSelector logic is consistent for all operators
2 parents 08d72c3 + 3e1f03d commit bc64ab6

File tree

12 files changed

+159
-37
lines changed

12 files changed

+159
-37
lines changed

api/v1beta1/amphoracontroller_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ type OctaviaAmphoraControllerSpecCore struct {
8989

9090
// +kubebuilder:validation:Optional
9191
// NodeSelector to target subset of worker nodes running this service
92-
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
92+
NodeSelector *map[string]string `json:"nodeSelector,omitempty"`
9393

9494
// +kubebuilder:validation:Optional
9595
// +kubebuilder:default="# add your customization here"

api/v1beta1/octavia_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ type OctaviaSpecBase struct {
145145

146146
// +kubebuilder:validation:Optional
147147
// NodeSelector to target subset of worker nodes running this service
148-
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
148+
NodeSelector *map[string]string `json:"nodeSelector,omitempty"`
149149

150150
// +kubebuilder:validation:Optional
151151
// +kubebuilder:default=false

api/v1beta1/octaviaapi_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ type OctaviaAPISpecCore struct {
100100

101101
// +kubebuilder:validation:Optional
102102
// NodeSelector to target subset of worker nodes running this service
103-
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
103+
NodeSelector *map[string]string `json:"nodeSelector,omitempty"`
104104

105105
// +kubebuilder:validation:Optional
106106
// +kubebuilder:default=false

api/v1beta1/octaviarsyslog_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ type OctaviaRsyslogSpecCore struct {
4545

4646
// +kubebuilder:validation:Optional
4747
// NodeSelector to target subset of worker nodes running this service
48-
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
48+
NodeSelector *map[string]string `json:"nodeSelector,omitempty"`
4949

5050
// +kubebuilder:validation:Optional
5151
// ConfigOverwrite - interface to overwrite default config files like e.g. logging.conf or policy.json.

api/v1beta1/zz_generated.deepcopy.go

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

controllers/octavia_controller.go

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1476,6 +1476,10 @@ func (r *OctaviaReconciler) apiDeploymentCreateOrUpdate(instance *octaviav1.Octa
14761476
},
14771477
}
14781478

1479+
if instance.Spec.OctaviaAPI.NodeSelector == nil {
1480+
instance.Spec.OctaviaAPI.NodeSelector = instance.Spec.NodeSelector
1481+
}
1482+
14791483
op, err := controllerutil.CreateOrUpdate(context.TODO(), r.Client, deployment, func() error {
14801484
deployment.Spec = instance.Spec.OctaviaAPI
14811485
deployment.Spec.DatabaseInstance = instance.Spec.DatabaseInstance
@@ -1489,9 +1493,6 @@ func (r *OctaviaReconciler) apiDeploymentCreateOrUpdate(instance *octaviav1.Octa
14891493
deployment.Spec.TLS = instance.Spec.OctaviaAPI.TLS
14901494
deployment.Spec.APITimeout = instance.Spec.APITimeout
14911495

1492-
if len(deployment.Spec.NodeSelector) == 0 {
1493-
deployment.Spec.NodeSelector = instance.Spec.NodeSelector
1494-
}
14951496
err := controllerutil.SetControllerReference(instance, deployment, r.Scheme)
14961497
if err != nil {
14971498
return err
@@ -1537,6 +1538,10 @@ func (r *OctaviaReconciler) amphoraControllerDaemonSetCreateOrUpdate(
15371538
},
15381539
}
15391540

1541+
if controllerSpec.NodeSelector == nil {
1542+
controllerSpec.NodeSelector = instance.Spec.NodeSelector
1543+
}
1544+
15401545
op, err := controllerutil.CreateOrUpdate(context.TODO(), r.Client, daemonset, func() error {
15411546
daemonset.Spec = controllerSpec
15421547
daemonset.Spec.Role = role
@@ -1556,9 +1561,6 @@ func (r *OctaviaReconciler) amphoraControllerDaemonSetCreateOrUpdate(
15561561
daemonset.Spec.OctaviaProviderSubnetGateway = networkInfo.ManagementSubnetGateway
15571562
daemonset.Spec.OctaviaProviderSubnetCIDR = networkInfo.ManagementSubnetCIDR
15581563
daemonset.Spec.OctaviaProviderSubnetExtraCIDRs = networkInfo.ManagementSubnetExtraCIDRs
1559-
if len(daemonset.Spec.NodeSelector) == 0 {
1560-
daemonset.Spec.NodeSelector = instance.Spec.NodeSelector
1561-
}
15621564
err := controllerutil.SetControllerReference(instance, daemonset, r.Scheme)
15631565
if err != nil {
15641566
return err
@@ -1618,13 +1620,14 @@ func (r *OctaviaReconciler) octaviaRsyslogDaemonSetCreateOrUpdate(
16181620
},
16191621
}
16201622

1623+
if controllerSpec.NodeSelector == nil {
1624+
controllerSpec.NodeSelector = instance.Spec.NodeSelector
1625+
}
1626+
16211627
op, err := controllerutil.CreateOrUpdate(context.TODO(), r.Client, daemonset, func() error {
16221628
daemonset.Spec = controllerSpec
16231629
daemonset.Spec.ServiceUser = instance.Spec.ServiceUser
16241630
daemonset.Spec.ServiceAccount = instance.RbacResourceName()
1625-
if len(daemonset.Spec.NodeSelector) == 0 {
1626-
daemonset.Spec.NodeSelector = instance.Spec.NodeSelector
1627-
}
16281631
err := controllerutil.SetControllerReference(instance, daemonset, r.Scheme)
16291632
if err != nil {
16301633
return err

pkg/amphoracontrollers/daemonset.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,8 +193,8 @@ func DaemonSet(
193193
},
194194
corev1.LabelHostname,
195195
)
196-
if len(instance.Spec.NodeSelector) > 0 {
197-
daemonset.Spec.Template.Spec.NodeSelector = instance.Spec.NodeSelector
196+
if instance.Spec.NodeSelector != nil {
197+
daemonset.Spec.Template.Spec.NodeSelector = *instance.Spec.NodeSelector
198198
}
199199

200200
return daemonset

pkg/octavia/dbsync.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,5 +97,9 @@ func DbSyncJob(
9797
},
9898
}
9999

100+
if instance.Spec.NodeSelector != nil {
101+
job.Spec.Template.Spec.NodeSelector = *instance.Spec.NodeSelector
102+
}
103+
100104
return job
101105
}

pkg/octavia/image_upload_deployment.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,10 @@ func ImageUploadDeployment(
133133
}
134134
depl.Spec.Template.Spec.InitContainers = initContainer(initContainerDetails)
135135

136+
if instance.Spec.NodeSelector != nil {
137+
depl.Spec.Template.Spec.NodeSelector = *instance.Spec.NodeSelector
138+
}
139+
136140
return depl
137141
}
138142

pkg/octaviaapi/deployment.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,8 +212,8 @@ func Deployment(
212212
},
213213
corev1.LabelHostname,
214214
)
215-
if len(instance.Spec.NodeSelector) > 0 {
216-
deployment.Spec.Template.Spec.NodeSelector = instance.Spec.NodeSelector
215+
if instance.Spec.NodeSelector != nil {
216+
deployment.Spec.Template.Spec.NodeSelector = *instance.Spec.NodeSelector
217217
}
218218

219219
return deployment, nil

0 commit comments

Comments
 (0)