Skip to content

Commit f05652c

Browse files
Allow empty nodeSelector
Switch to a pointer for nodeSelector to allow different logic for empty vs unset
1 parent b95e933 commit f05652c

19 files changed

+158
-111
lines changed

api/v1beta1/common_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ type NovaServiceBase struct {
5757

5858
// +kubebuilder:validation:Optional
5959
// NodeSelector to target subset of worker nodes running this service
60-
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
60+
NodeSelector *map[string]string `json:"nodeSelector,omitempty"`
6161

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

api/v1beta1/nova_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ type NovaSpecCore struct {
8181
// NodeSelector to target subset of worker nodes running this service. Setting
8282
// NodeSelector here acts as a default value and can be overridden by service
8383
// specific NodeSelector Settings.
84-
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
84+
NodeSelector *map[string]string `json:"nodeSelector,omitempty"`
8585

8686
// +kubebuilder:validation:Optional
8787
// +kubebuilder:default=false

api/v1beta1/novaapi_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ type NovaAPITemplate struct {
4444
// +kubebuilder:validation:Optional
4545
// NodeSelector to target subset of worker nodes running this service. Setting here overrides
4646
// any global NodeSelector settings within the Nova CR.
47-
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
47+
NodeSelector *map[string]string `json:"nodeSelector,omitempty"`
4848

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

api/v1beta1/novacell_types.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ type NovaCellTemplate struct {
5757

5858
// +kubebuilder:validation:Optional
5959
// NodeSelector to target subset of worker nodes running cell.
60-
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
60+
NodeSelector *map[string]string `json:"nodeSelector,omitempty"`
6161

6262
// +kubebuilder:validation:Optional
6363
// ConductorServiceTemplate - defines the cell conductor deployment for the cell.
@@ -116,7 +116,7 @@ type NovaCellSpec struct {
116116

117117
// +kubebuilder:validation:Optional
118118
// NodeSelector to target subset of worker nodes running this services.
119-
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
119+
NodeSelector *map[string]string `json:"nodeSelector,omitempty"`
120120

121121
// +kubebuilder:validation:Optional
122122
// +kubebuilder:default=nova

api/v1beta1/novacompute_types.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ type NovaComputeTemplate struct {
4040
// +kubebuilder:validation:Optional
4141
// NodeSelector to target subset of worker nodes running this service. Setting here overrides
4242
// any global NodeSelector settings within the Nova CR.
43-
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
43+
NodeSelector *map[string]string `json:"nodeSelector,omitempty"`
4444

4545
// +kubebuilder:validation:Optional
4646
// CustomServiceConfig - customize the service config using this parameter to change service defaults,
@@ -219,5 +219,10 @@ func NewNovaComputeSpec(
219219
TLS: novaCell.TLS,
220220
DefaultConfigOverwrite: computeTemplate.DefaultConfigOverwrite,
221221
}
222+
223+
if novaComputeSpec.NodeSelector == nil {
224+
novaComputeSpec.NodeSelector = novaCell.NodeSelector
225+
}
226+
222227
return novaComputeSpec
223228
}

api/v1beta1/novaconductor_types.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ type NovaConductorTemplate struct {
3939
// +kubebuilder:validation:Optional
4040
// NodeSelector to target subset of worker nodes running this service. Setting here overrides
4141
// any global NodeSelector settings within the Nova CR.
42-
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
42+
NodeSelector *map[string]string `json:"nodeSelector,omitempty"`
4343

4444
// +kubebuilder:validation:Optional
4545
// CustomServiceConfig - customize the service config using this parameter to change service defaults,
@@ -217,6 +217,11 @@ func NewNovaConductorSpec(
217217
MemcachedInstance: novaCell.MemcachedInstance,
218218
DBPurge: novaCell.DBPurge,
219219
}
220+
221+
if conductorSpec.NodeSelector == nil {
222+
conductorSpec.NodeSelector = novaCell.NodeSelector
223+
}
224+
220225
return conductorSpec
221226
}
222227

api/v1beta1/novametadata_types.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ type NovaMetadataTemplate struct {
5555
// +kubebuilder:validation:Optional
5656
// NodeSelector to target subset of worker nodes running this service. Setting here overrides
5757
// any global NodeSelector settings within the Nova CR.
58-
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
58+
NodeSelector *map[string]string `json:"nodeSelector,omitempty"`
5959

6060
// +kubebuilder:validation:Optional
6161
// CustomServiceConfig - customize the service config using this parameter to change service defaults,
@@ -266,6 +266,11 @@ func NewNovaMetadataSpec(
266266
DefaultConfigOverwrite: novaCell.MetadataServiceTemplate.DefaultConfigOverwrite,
267267
MemcachedInstance: novaCell.MemcachedInstance,
268268
}
269+
270+
if metadataSpec.NodeSelector == nil {
271+
metadataSpec.NodeSelector = novaCell.NodeSelector
272+
}
273+
269274
return metadataSpec
270275
}
271276

api/v1beta1/novanovncproxy_types.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ type NovaNoVNCProxyTemplate struct {
5151

5252
// +kubebuilder:validation:Optional
5353
// NodeSelector to target subset of worker nodes running this service
54-
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
54+
NodeSelector *map[string]string `json:"nodeSelector,omitempty"`
5555

5656
// +kubebuilder:validation:Optional
5757
// CustomServiceConfig - customize the service config using this parameter to change service defaults,
@@ -244,6 +244,11 @@ func NewNovaNoVNCProxySpec(
244244
TLS: novaCell.NoVNCProxyServiceTemplate.TLS,
245245
MemcachedInstance: novaCell.MemcachedInstance,
246246
}
247+
248+
if noVNCProxSpec.NodeSelector == nil {
249+
noVNCProxSpec.NodeSelector = novaCell.NodeSelector
250+
}
251+
247252
return noVNCProxSpec
248253
}
249254

api/v1beta1/novascheduler_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ type NovaSchedulerTemplate struct {
3939
// +kubebuilder:validation:Optional
4040
// NodeSelector to target subset of worker nodes running this service. Setting here overrides
4141
// any global NodeSelector settings within the Nova CR.
42-
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
42+
NodeSelector *map[string]string `json:"nodeSelector,omitempty"`
4343

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

api/v1beta1/zz_generated.deepcopy.go

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

0 commit comments

Comments
 (0)