Skip to content

Commit 09ce76c

Browse files
committed
Set nodeSelector on jobs and allow empty nodeSelector
Switch to a pointer for nodeSelector to allow different logic for empty vs unset
1 parent 248c7ed commit 09ce76c

File tree

12 files changed

+158
-37
lines changed

12 files changed

+158
-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
@@ -1470,6 +1470,10 @@ func (r *OctaviaReconciler) apiDeploymentCreateOrUpdate(instance *octaviav1.Octa
14701470
},
14711471
}
14721472

1473+
if instance.Spec.OctaviaAPI.NodeSelector == nil {
1474+
instance.Spec.OctaviaAPI.NodeSelector = instance.Spec.NodeSelector
1475+
}
1476+
14731477
op, err := controllerutil.CreateOrUpdate(context.TODO(), r.Client, deployment, func() error {
14741478
deployment.Spec = instance.Spec.OctaviaAPI
14751479
deployment.Spec.DatabaseInstance = instance.Spec.DatabaseInstance
@@ -1483,9 +1487,6 @@ func (r *OctaviaReconciler) apiDeploymentCreateOrUpdate(instance *octaviav1.Octa
14831487
deployment.Spec.TLS = instance.Spec.OctaviaAPI.TLS
14841488
deployment.Spec.APITimeout = instance.Spec.APITimeout
14851489

1486-
if len(deployment.Spec.NodeSelector) == 0 {
1487-
deployment.Spec.NodeSelector = instance.Spec.NodeSelector
1488-
}
14891490
err := controllerutil.SetControllerReference(instance, deployment, r.Scheme)
14901491
if err != nil {
14911492
return err
@@ -1531,6 +1532,10 @@ func (r *OctaviaReconciler) amphoraControllerDaemonSetCreateOrUpdate(
15311532
},
15321533
}
15331534

1535+
if controllerSpec.NodeSelector == nil {
1536+
controllerSpec.NodeSelector = instance.Spec.NodeSelector
1537+
}
1538+
15341539
op, err := controllerutil.CreateOrUpdate(context.TODO(), r.Client, daemonset, func() error {
15351540
daemonset.Spec = controllerSpec
15361541
daemonset.Spec.Role = role
@@ -1550,9 +1555,6 @@ func (r *OctaviaReconciler) amphoraControllerDaemonSetCreateOrUpdate(
15501555
daemonset.Spec.OctaviaProviderSubnetGateway = networkInfo.ManagementSubnetGateway
15511556
daemonset.Spec.OctaviaProviderSubnetCIDR = networkInfo.ManagementSubnetCIDR
15521557
daemonset.Spec.OctaviaProviderSubnetExtraCIDRs = networkInfo.ManagementSubnetExtraCIDRs
1553-
if len(daemonset.Spec.NodeSelector) == 0 {
1554-
daemonset.Spec.NodeSelector = instance.Spec.NodeSelector
1555-
}
15561558
err := controllerutil.SetControllerReference(instance, daemonset, r.Scheme)
15571559
if err != nil {
15581560
return err
@@ -1612,13 +1614,14 @@ func (r *OctaviaReconciler) octaviaRsyslogDaemonSetCreateOrUpdate(
16121614
},
16131615
}
16141616

1617+
if controllerSpec.NodeSelector == nil {
1618+
controllerSpec.NodeSelector = instance.Spec.NodeSelector
1619+
}
1620+
16151621
op, err := controllerutil.CreateOrUpdate(context.TODO(), r.Client, daemonset, func() error {
16161622
daemonset.Spec = controllerSpec
16171623
daemonset.Spec.ServiceUser = instance.Spec.ServiceUser
16181624
daemonset.Spec.ServiceAccount = instance.RbacResourceName()
1619-
if len(daemonset.Spec.NodeSelector) == 0 {
1620-
daemonset.Spec.NodeSelector = instance.Spec.NodeSelector
1621-
}
16221625
err := controllerutil.SetControllerReference(instance, daemonset, r.Scheme)
16231626
if err != nil {
16241627
return err

pkg/amphoracontrollers/daemonset.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,8 +163,8 @@ func DaemonSet(
163163
},
164164
corev1.LabelHostname,
165165
)
166-
if instance.Spec.NodeSelector != nil && len(instance.Spec.NodeSelector) > 0 {
167-
daemonset.Spec.Template.Spec.NodeSelector = instance.Spec.NodeSelector
166+
if instance.Spec.NodeSelector != nil {
167+
daemonset.Spec.Template.Spec.NodeSelector = *instance.Spec.NodeSelector
168168
}
169169

170170
initContainerDetails := octavia.APIDetails{

pkg/octavia/dbsync.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,9 @@ func DbSyncJob(
9191
VolumeMounts: initVolumeMounts,
9292
}
9393
job.Spec.Template.Spec.InitContainers = InitContainer(initContainerDetails)
94+
if instance.Spec.NodeSelector != nil {
95+
job.Spec.Template.Spec.NodeSelector = *instance.Spec.NodeSelector
96+
}
9497

9598
return job
9699
}

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
@@ -192,8 +192,8 @@ func Deployment(
192192
},
193193
corev1.LabelHostname,
194194
)
195-
if instance.Spec.NodeSelector != nil && len(instance.Spec.NodeSelector) > 0 {
196-
deployment.Spec.Template.Spec.NodeSelector = instance.Spec.NodeSelector
195+
if instance.Spec.NodeSelector != nil {
196+
deployment.Spec.Template.Spec.NodeSelector = *instance.Spec.NodeSelector
197197
}
198198

199199
initContainerDetails := octavia.APIDetails{

0 commit comments

Comments
 (0)