Skip to content

Commit f248f6c

Browse files
Merge pull request #291 from openshift-cherrypick-robot/cherry-pick-287-to-18.0-fr1
[18.0-fr1] Ensure nodeSelector logic is consistent for all operators
2 parents c6fdbd1 + 0dfbbe3 commit f248f6c

File tree

11 files changed

+59
-13
lines changed

11 files changed

+59
-13
lines changed

api/v1beta1/galera_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ type GaleraSpecCore struct {
6464
Replicas *int32 `json:"replicas"`
6565
// +kubebuilder:validation:Optional
6666
// NodeSelector to target subset of worker nodes running this service
67-
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
67+
NodeSelector *map[string]string `json:"nodeSelector,omitempty"`
6868
// +kubebuilder:validation:Optional
6969
// Customize config using this parameter to change service defaults,
7070
// or overwrite rendered information using raw MariaDB config format.

api/v1beta1/zz_generated.deepcopy.go

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

controllers/mariadbaccount_controller.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ func (r *MariaDBAccountReconciler) reconcileCreate(
282282

283283
log.Info(fmt.Sprintf("Running account create '%s' MariaDBDatabase '%s'", instance.Name, mariadbDatabaseName))
284284

285-
jobDef, err := mariadb.CreateDbAccountJob(instance, mariadbDatabase.Spec.Name, dbHostname, dbAdminSecret, dbContainerImage, serviceAccountName)
285+
jobDef, err := mariadb.CreateDbAccountJob(instance, mariadbDatabase.Spec.Name, dbHostname, dbAdminSecret, dbContainerImage, serviceAccountName, dbGalera.Spec.NodeSelector)
286286
if err != nil {
287287
return ctrl.Result{}, err
288288
}
@@ -507,7 +507,7 @@ func (r *MariaDBAccountReconciler) reconcileDelete(
507507

508508
log.Info(fmt.Sprintf("Running account delete '%s' MariaDBDatabase '%s'", instance.Name, mariadbDatabaseName))
509509

510-
jobDef, err := mariadb.DeleteDbAccountJob(instance, mariadbDatabase.Spec.Name, dbHostname, dbAdminSecret, dbContainerImage, serviceAccountName)
510+
jobDef, err := mariadb.DeleteDbAccountJob(instance, mariadbDatabase.Spec.Name, dbHostname, dbAdminSecret, dbContainerImage, serviceAccountName, dbGalera.Spec.NodeSelector)
511511
if err != nil {
512512
return ctrl.Result{}, err
513513
}

controllers/mariadbdatabase_controller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ func (r *MariaDBDatabaseReconciler) Reconcile(ctx context.Context, req ctrl.Requ
195195
)
196196

197197
// Define a new Job object (hostname, password, containerImage)
198-
jobDef, err := mariadb.DbDatabaseJob(instance, dbHostname, dbSecret, dbContainerImage, serviceAccount, useTLS)
198+
jobDef, err := mariadb.DbDatabaseJob(instance, dbHostname, dbSecret, dbContainerImage, serviceAccount, useTLS, dbGalera.Spec.NodeSelector)
199199
if err != nil {
200200
return ctrl.Result{}, err
201201
}

pkg/mariadb/account.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ type accountCreateOrDeleteOptions struct {
1818
RequireTLS string
1919
}
2020

21-
func CreateDbAccountJob(account *databasev1beta1.MariaDBAccount, databaseName string, databaseHostName string, databaseSecret string, containerImage string, serviceAccountName string) (*batchv1.Job, error) {
21+
func CreateDbAccountJob(account *databasev1beta1.MariaDBAccount, databaseName string, databaseHostName string, databaseSecret string, containerImage string, serviceAccountName string, nodeSelector *map[string]string) (*batchv1.Job, error) {
2222
var tlsStatement string
2323
if account.Spec.RequireTLS {
2424
tlsStatement = " REQUIRE SSL"
@@ -90,10 +90,14 @@ func CreateDbAccountJob(account *databasev1beta1.MariaDBAccount, databaseName st
9090
},
9191
}
9292

93+
if nodeSelector != nil {
94+
job.Spec.Template.Spec.NodeSelector = *nodeSelector
95+
}
96+
9397
return job, nil
9498
}
9599

96-
func DeleteDbAccountJob(account *databasev1beta1.MariaDBAccount, databaseName string, databaseHostName string, databaseSecret string, containerImage string, serviceAccountName string) (*batchv1.Job, error) {
100+
func DeleteDbAccountJob(account *databasev1beta1.MariaDBAccount, databaseName string, databaseHostName string, databaseSecret string, containerImage string, serviceAccountName string, nodeSelector *map[string]string) (*batchv1.Job, error) {
97101

98102
opts := accountCreateOrDeleteOptions{account.Spec.UserName, databaseName, databaseHostName, "root", ""}
99103

@@ -140,5 +144,9 @@ func DeleteDbAccountJob(account *databasev1beta1.MariaDBAccount, databaseName st
140144
},
141145
}
142146

147+
if nodeSelector != nil {
148+
job.Spec.Template.Spec.NodeSelector = *nodeSelector
149+
}
150+
143151
return job, nil
144152
}

pkg/mariadb/database.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ type dbCreateOptions struct {
2020
}
2121

2222
// DbDatabaseJob -
23-
func DbDatabaseJob(database *databasev1beta1.MariaDBDatabase, databaseHostName string, databaseSecret string, containerImage string, serviceAccountName string, useTLS bool) (*batchv1.Job, error) {
23+
func DbDatabaseJob(database *databasev1beta1.MariaDBDatabase, databaseHostName string, databaseSecret string, containerImage string, serviceAccountName string, useTLS bool, nodeSelector *map[string]string) (*batchv1.Job, error) {
2424
var tlsStatement string
2525
if useTLS {
2626
tlsStatement = " REQUIRE SSL"
@@ -115,11 +115,15 @@ func DbDatabaseJob(database *databasev1beta1.MariaDBDatabase, databaseHostName s
115115
},
116116
}
117117

118+
if nodeSelector != nil && len(*nodeSelector) > 0 {
119+
job.Spec.Template.Spec.NodeSelector = *nodeSelector
120+
}
121+
118122
return job, nil
119123
}
120124

121125
// DeleteDbDatabaseJob -
122-
func DeleteDbDatabaseJob(database *databasev1beta1.MariaDBDatabase, databaseHostName string, databaseSecret string, containerImage string, serviceAccountName string) (*batchv1.Job, error) {
126+
func DeleteDbDatabaseJob(database *databasev1beta1.MariaDBDatabase, databaseHostName string, databaseSecret string, containerImage string, serviceAccountName string, nodeSelector *map[string]string) (*batchv1.Job, error) {
123127

124128
opts := dbCreateOptions{
125129
database.Spec.Name,
@@ -206,5 +210,9 @@ func DeleteDbDatabaseJob(database *databasev1beta1.MariaDBDatabase, databaseHost
206210
},
207211
}
208212

213+
if nodeSelector != nil {
214+
job.Spec.Template.Spec.NodeSelector = *nodeSelector
215+
}
216+
209217
return job, nil
210218
}

pkg/mariadb/statefulset.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ func StatefulSet(g *mariadbv1.Galera, configHash string) *appsv1.StatefulSet {
7878
},
7979
corev1.LabelHostname,
8080
)
81-
if len(g.Spec.NodeSelector) > 0 {
82-
sts.Spec.Template.Spec.NodeSelector = g.Spec.NodeSelector
81+
if g.Spec.NodeSelector != nil {
82+
sts.Spec.Template.Spec.NodeSelector = *g.Spec.NodeSelector
8383
}
8484

8585
return sts

tests/kuttl/tests/account_create/01-assert.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ spec:
1313
replicas: 1
1414
secret: osp-secret
1515
storageRequest: 500M
16+
nodeSelector:
17+
node-role.kubernetes.io/worker: ""
1618
status:
1719
bootstrapped: true
1820
conditions:
@@ -72,6 +74,8 @@ spec:
7274
cr: galera-openstack
7375
galera/name: openstack
7476
spec:
77+
nodeSelector:
78+
node-role.kubernetes.io/worker: ""
7579
containers:
7680
- command:
7781
- /usr/bin/dumb-init
@@ -96,6 +100,9 @@ apiVersion: v1
96100
kind: Pod
97101
metadata:
98102
name: openstack-galera-0
103+
spec:
104+
nodeSelector:
105+
node-role.kubernetes.io/worker: ""
99106
---
100107
apiVersion: v1
101108
kind: Service

tests/kuttl/tests/account_create/01-deploy_galera.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,5 @@ spec:
77
storageClass: local-storage
88
storageRequest: 500M
99
replicas: 1
10+
nodeSelector:
11+
node-role.kubernetes.io/worker: ""

tests/kuttl/tests/account_create/02-assert.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,10 @@ apiVersion: batch/v1
33
kind: Job
44
metadata:
55
name: kuttldb-accounttest-db-create
6+
spec:
7+
template:
8+
spec:
9+
nodeSelector:
10+
node-role.kubernetes.io/worker: ""
611
status:
712
succeeded: 1

0 commit comments

Comments
 (0)