Skip to content

Commit c06a12f

Browse files
Merge pull request #250 from olliewalsh/node_selectors
Ensure nodeSelector logic is consistent for all operators
2 parents 5151e76 + 18abf81 commit c06a12f

File tree

12 files changed

+69
-49
lines changed

12 files changed

+69
-49
lines changed

api/v1beta1/common_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ type DesignateServiceTemplateCore struct {
8686
// +kubebuilder:validation:Optional
8787
// NodeSelector to target subset of worker nodes running this service. Setting here overrides
8888
// any global NodeSelector settings within the Designate CR.
89-
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
89+
NodeSelector *map[string]string `json:"nodeSelector,omitempty"`
9090

9191
// +kubebuilder:validation:Optional
9292
// CustomServiceConfig - customize the service config using this parameter to change service defaults,

api/v1beta1/designate_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ type DesignateSpecBase struct {
152152

153153
// +kubebuilder:validation:Optional
154154
// NodeSelector to target subset of worker nodes running this service
155-
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
155+
NodeSelector *map[string]string `json:"nodeSelector,omitempty"`
156156

157157
// +kubebuilder:validation:Optional
158158
// +kubebuilder:default=false

api/v1beta1/zz_generated.deepcopy.go

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

controllers/designate_controller.go

Lines changed: 35 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1471,6 +1471,10 @@ func (r *DesignateReconciler) apiDeploymentCreateOrUpdate(ctx context.Context, i
14711471
},
14721472
}
14731473

1474+
if instance.Spec.DesignateAPI.NodeSelector == nil {
1475+
instance.Spec.DesignateAPI.NodeSelector = instance.Spec.NodeSelector
1476+
}
1477+
14741478
op, err := controllerutil.CreateOrUpdate(ctx, r.Client, deployment, func() error {
14751479
deployment.Spec = instance.Spec.DesignateAPI
14761480
// Add in transfers from umbrella Designate (this instance) spec
@@ -1482,9 +1486,7 @@ func (r *DesignateReconciler) apiDeploymentCreateOrUpdate(ctx context.Context, i
14821486
deployment.Spec.ServiceAccount = instance.RbacResourceName()
14831487
deployment.Spec.TLS = instance.Spec.DesignateAPI.TLS
14841488
deployment.Spec.TransportURLSecret = instance.Status.TransportURLSecret
1485-
if len(deployment.Spec.NodeSelector) == 0 {
1486-
deployment.Spec.NodeSelector = instance.Spec.NodeSelector
1487-
}
1489+
deployment.Spec.NodeSelector = instance.Spec.DesignateAPI.NodeSelector
14881490

14891491
err := controllerutil.SetControllerReference(instance, deployment, r.Scheme)
14901492
if err != nil {
@@ -1505,6 +1507,10 @@ func (r *DesignateReconciler) centralDeploymentCreateOrUpdate(ctx context.Contex
15051507
},
15061508
}
15071509

1510+
if instance.Spec.DesignateCentral.NodeSelector == nil {
1511+
instance.Spec.DesignateCentral.NodeSelector = instance.Spec.NodeSelector
1512+
}
1513+
15081514
op, err := controllerutil.CreateOrUpdate(ctx, r.Client, deployment, func() error {
15091515
deployment.Spec = instance.Spec.DesignateCentral
15101516
// Add in transfers from umbrella Designate CR (this instance) spec
@@ -1516,9 +1522,7 @@ func (r *DesignateReconciler) centralDeploymentCreateOrUpdate(ctx context.Contex
15161522
deployment.Spec.TransportURLSecret = instance.Status.TransportURLSecret
15171523
deployment.Spec.ServiceAccount = instance.RbacResourceName()
15181524
deployment.Spec.TLS = instance.Spec.DesignateAPI.TLS.Ca
1519-
if len(deployment.Spec.NodeSelector) == 0 {
1520-
deployment.Spec.NodeSelector = instance.Spec.NodeSelector
1521-
}
1525+
deployment.Spec.NodeSelector = instance.Spec.DesignateCentral.NodeSelector
15221526

15231527
err := controllerutil.SetControllerReference(instance, deployment, r.Scheme)
15241528
if err != nil {
@@ -1539,6 +1543,10 @@ func (r *DesignateReconciler) workerDeploymentCreateOrUpdate(ctx context.Context
15391543
},
15401544
}
15411545

1546+
if instance.Spec.DesignateWorker.NodeSelector == nil {
1547+
instance.Spec.DesignateWorker.NodeSelector = instance.Spec.NodeSelector
1548+
}
1549+
15421550
op, err := controllerutil.CreateOrUpdate(ctx, r.Client, deployment, func() error {
15431551
deployment.Spec = instance.Spec.DesignateWorker
15441552
// Add in transfers from umbrella Designate CR (this instance) spec
@@ -1550,9 +1558,7 @@ func (r *DesignateReconciler) workerDeploymentCreateOrUpdate(ctx context.Context
15501558
deployment.Spec.TransportURLSecret = instance.Status.TransportURLSecret
15511559
deployment.Spec.ServiceAccount = instance.RbacResourceName()
15521560
deployment.Spec.TLS = instance.Spec.DesignateAPI.TLS.Ca
1553-
if len(deployment.Spec.NodeSelector) == 0 {
1554-
deployment.Spec.NodeSelector = instance.Spec.NodeSelector
1555-
}
1561+
deployment.Spec.NodeSelector = instance.Spec.DesignateWorker.NodeSelector
15561562

15571563
err := controllerutil.SetControllerReference(instance, deployment, r.Scheme)
15581564
if err != nil {
@@ -1573,6 +1579,10 @@ func (r *DesignateReconciler) mdnsDaemonSetCreateOrUpdate(ctx context.Context, i
15731579
},
15741580
}
15751581

1582+
if instance.Spec.DesignateMdns.NodeSelector == nil {
1583+
instance.Spec.DesignateMdns.NodeSelector = instance.Spec.NodeSelector
1584+
}
1585+
15761586
op, err := controllerutil.CreateOrUpdate(ctx, r.Client, daemonset, func() error {
15771587
daemonset.Spec = instance.Spec.DesignateMdns
15781588
// Add in transfers from umbrella Designate CR (this instance) spec
@@ -1584,9 +1594,7 @@ func (r *DesignateReconciler) mdnsDaemonSetCreateOrUpdate(ctx context.Context, i
15841594
daemonset.Spec.TransportURLSecret = instance.Status.TransportURLSecret
15851595
daemonset.Spec.ServiceAccount = instance.RbacResourceName()
15861596
daemonset.Spec.TLS = instance.Spec.DesignateAPI.TLS.Ca
1587-
if len(daemonset.Spec.NodeSelector) == 0 {
1588-
daemonset.Spec.NodeSelector = instance.Spec.NodeSelector
1589-
}
1597+
daemonset.Spec.NodeSelector = instance.Spec.DesignateMdns.NodeSelector
15901598

15911599
err := controllerutil.SetControllerReference(instance, daemonset, r.Scheme)
15921600
if err != nil {
@@ -1607,6 +1615,10 @@ func (r *DesignateReconciler) producerDeploymentCreateOrUpdate(ctx context.Conte
16071615
},
16081616
}
16091617

1618+
if instance.Spec.DesignateProducer.NodeSelector == nil {
1619+
instance.Spec.DesignateProducer.NodeSelector = instance.Spec.NodeSelector
1620+
}
1621+
16101622
op, err := controllerutil.CreateOrUpdate(ctx, r.Client, deployment, func() error {
16111623
deployment.Spec = instance.Spec.DesignateProducer
16121624
// Add in transfers from umbrella Designate CR (this instance) spec
@@ -1618,9 +1630,7 @@ func (r *DesignateReconciler) producerDeploymentCreateOrUpdate(ctx context.Conte
16181630
deployment.Spec.TransportURLSecret = instance.Status.TransportURLSecret
16191631
deployment.Spec.ServiceAccount = instance.RbacResourceName()
16201632
deployment.Spec.TLS = instance.Spec.DesignateAPI.TLS.Ca
1621-
if len(deployment.Spec.NodeSelector) == 0 {
1622-
deployment.Spec.NodeSelector = instance.Spec.NodeSelector
1623-
}
1633+
deployment.Spec.NodeSelector = instance.Spec.DesignateProducer.NodeSelector
16241634

16251635
err := controllerutil.SetControllerReference(instance, deployment, r.Scheme)
16261636
if err != nil {
@@ -1641,6 +1651,10 @@ func (r *DesignateReconciler) backendbind9StatefulSetCreateOrUpdate(ctx context.
16411651
},
16421652
}
16431653

1654+
if instance.Spec.DesignateBackendbind9.NodeSelector == nil {
1655+
instance.Spec.DesignateBackendbind9.NodeSelector = instance.Spec.NodeSelector
1656+
}
1657+
16441658
op, err := controllerutil.CreateOrUpdate(ctx, r.Client, statefulSet, func() error {
16451659
statefulSet.Spec = instance.Spec.DesignateBackendbind9
16461660
// Add in transfers from umbrella Designate CR (this instance) spec
@@ -1649,9 +1663,7 @@ func (r *DesignateReconciler) backendbind9StatefulSetCreateOrUpdate(ctx context.
16491663
statefulSet.Spec.Secret = instance.Spec.Secret
16501664
statefulSet.Spec.PasswordSelectors = instance.Spec.PasswordSelectors
16511665
statefulSet.Spec.ServiceAccount = instance.RbacResourceName()
1652-
if len(statefulSet.Spec.NodeSelector) == 0 {
1653-
statefulSet.Spec.NodeSelector = instance.Spec.NodeSelector
1654-
}
1666+
statefulSet.Spec.NodeSelector = instance.Spec.DesignateBackendbind9.NodeSelector
16551667

16561668
err := controllerutil.SetControllerReference(instance, statefulSet, r.Scheme)
16571669
if err != nil {
@@ -1675,14 +1687,16 @@ func (r *DesignateReconciler) unboundDeploymentCreateOrUpdate(
16751687
},
16761688
}
16771689

1690+
if instance.Spec.DesignateUnbound.NodeSelector == nil {
1691+
instance.Spec.DesignateUnbound.NodeSelector = instance.Spec.NodeSelector
1692+
}
1693+
16781694
op, err := controllerutil.CreateOrUpdate(ctx, r.Client, deployment, func() error {
16791695
deployment.Spec = instance.Spec.DesignateUnbound
16801696
// Add in transfers from umbrella Designate CR (this instance) spec
16811697
// TODO: Add logic to determine when to set/overwrite, etc
16821698
deployment.Spec.ServiceAccount = instance.RbacResourceName()
1683-
if len(deployment.Spec.NodeSelector) == 0 {
1684-
deployment.Spec.NodeSelector = instance.Spec.NodeSelector
1685-
}
1699+
deployment.Spec.NodeSelector = instance.Spec.DesignateUnbound.NodeSelector
16861700

16871701
err := controllerutil.SetControllerReference(instance, deployment, r.Scheme)
16881702
if err != nil {

pkg/designate/dbsync.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,5 +95,9 @@ func DbSyncJob(
9595
}
9696
job.Spec.Template.Spec.InitContainers = InitContainer(initContainerDetails)
9797

98+
if instance.Spec.NodeSelector != nil {
99+
job.Spec.Template.Spec.NodeSelector = *instance.Spec.NodeSelector
100+
}
101+
98102
return job
99103
}

pkg/designateapi/deployment.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,6 @@ func Deployment(
145145
LivenessProbe: livenessProbe,
146146
},
147147
},
148-
NodeSelector: instance.Spec.NodeSelector,
149148
},
150149
},
151150
},
@@ -161,8 +160,8 @@ func Deployment(
161160
},
162161
corev1.LabelHostname,
163162
)
164-
if instance.Spec.NodeSelector != nil && len(instance.Spec.NodeSelector) > 0 {
165-
deployment.Spec.Template.Spec.NodeSelector = instance.Spec.NodeSelector
163+
if instance.Spec.NodeSelector != nil {
164+
deployment.Spec.Template.Spec.NodeSelector = *instance.Spec.NodeSelector
166165
}
167166

168167
initContainerDetails := designate.APIDetails{

pkg/designatebackendbind9/deployment.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,6 @@ func StatefulSet(
111111
ReadinessProbe: readinessProbe,
112112
},
113113
},
114-
NodeSelector: instance.Spec.NodeSelector,
115114
},
116115
},
117116
},
@@ -157,8 +156,8 @@ func StatefulSet(
157156
},
158157
corev1.LabelHostname,
159158
)
160-
if instance.Spec.NodeSelector != nil && len(instance.Spec.NodeSelector) > 0 {
161-
statefulSet.Spec.Template.Spec.NodeSelector = instance.Spec.NodeSelector
159+
if instance.Spec.NodeSelector != nil {
160+
statefulSet.Spec.Template.Spec.NodeSelector = *instance.Spec.NodeSelector
162161
}
163162

164163
// TODO: bind's init container doesn't need most of this stuff. It doesn't use rabbitmq, redis or access the

pkg/designatecentral/deployment.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,6 @@ func Deployment(
122122
LivenessProbe: livenessProbe,
123123
},
124124
},
125-
NodeSelector: instance.Spec.NodeSelector,
126125
},
127126
},
128127
},
@@ -138,8 +137,8 @@ func Deployment(
138137
},
139138
corev1.LabelHostname,
140139
)
141-
if instance.Spec.NodeSelector != nil && len(instance.Spec.NodeSelector) > 0 {
142-
deployment.Spec.Template.Spec.NodeSelector = instance.Spec.NodeSelector
140+
if instance.Spec.NodeSelector != nil {
141+
deployment.Spec.Template.Spec.NodeSelector = *instance.Spec.NodeSelector
143142
}
144143

145144
initContainerDetails := designate.APIDetails{

pkg/designatemdns/daemonset.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,6 @@ func DaemonSet(
114114
LivenessProbe: livenessProbe,
115115
},
116116
},
117-
NodeSelector: instance.Spec.NodeSelector,
118117
},
119118
},
120119
},
@@ -130,8 +129,8 @@ func DaemonSet(
130129
},
131130
corev1.LabelHostname,
132131
)
133-
if instance.Spec.NodeSelector != nil && len(instance.Spec.NodeSelector) > 0 {
134-
daemonset.Spec.Template.Spec.NodeSelector = instance.Spec.NodeSelector
132+
if instance.Spec.NodeSelector != nil {
133+
daemonset.Spec.Template.Spec.NodeSelector = *instance.Spec.NodeSelector
135134
}
136135

137136
initContainerDetails := designate.APIDetails{

pkg/designateproducer/deployment.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,6 @@ func Deployment(
118118
LivenessProbe: livenessProbe,
119119
},
120120
},
121-
NodeSelector: instance.Spec.NodeSelector,
122121
},
123122
},
124123
},
@@ -134,8 +133,8 @@ func Deployment(
134133
},
135134
corev1.LabelHostname,
136135
)
137-
if instance.Spec.NodeSelector != nil && len(instance.Spec.NodeSelector) > 0 {
138-
deployment.Spec.Template.Spec.NodeSelector = instance.Spec.NodeSelector
136+
if instance.Spec.NodeSelector != nil {
137+
deployment.Spec.Template.Spec.NodeSelector = *instance.Spec.NodeSelector
139138
}
140139

141140
initContainerDetails := designate.APIDetails{

0 commit comments

Comments
 (0)