Skip to content
This repository was archived by the owner on Feb 28, 2024. It is now read-only.

Commit 590b3c0

Browse files
authored
Support for Galera defaults (#2)
1 parent a8bc04a commit 590b3c0

File tree

5 files changed

+63
-13
lines changed

5 files changed

+63
-13
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ go 1.20
55
require (
66
github.com/go-logr/logr v1.2.4
77
github.com/mariadb-operator/agent v0.0.2-0.20230705212819-67aac2bf05b9
8-
github.com/mariadb-operator/mariadb-operator v0.0.16-0.20230702105210-e7121043bc33
8+
github.com/mariadb-operator/mariadb-operator v0.0.16-0.20230708114737-3113ca8f7467
99
github.com/sethvargo/go-envconfig v0.9.0
1010
k8s.io/apimachinery v0.24.2
1111
k8s.io/client-go v0.24.2

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -320,8 +320,8 @@ github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA
320320
github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
321321
github.com/mariadb-operator/agent v0.0.2-0.20230705212819-67aac2bf05b9 h1:NOnvXXDUSPNhe9OJfqn8kkTORplQIHxiqgShVwQ/3jk=
322322
github.com/mariadb-operator/agent v0.0.2-0.20230705212819-67aac2bf05b9/go.mod h1:UrpYUTpGuh8s1M5dpWLwRu8BSIMjswCBsXCQJaYuNlk=
323-
github.com/mariadb-operator/mariadb-operator v0.0.16-0.20230702105210-e7121043bc33 h1:vsYIJc31saaSP/OiJln3NnhnEHtQWODdJej033f7x3c=
324-
github.com/mariadb-operator/mariadb-operator v0.0.16-0.20230702105210-e7121043bc33/go.mod h1:83Yz2Jj63rO/Kq34JIVFYhpEJCNSsySiOesjDuQBDWI=
323+
github.com/mariadb-operator/mariadb-operator v0.0.16-0.20230708114737-3113ca8f7467 h1:uadNpCjCKV8Qd6Dn9i9l68RYaFe4iN7i29QuPLeF0no=
324+
github.com/mariadb-operator/mariadb-operator v0.0.16-0.20230708114737-3113ca8f7467/go.mod h1:sGeSO4TzhA/sjYzcibLJeRvrAB6UJyPdHaHuzovyDwg=
325325
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
326326
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
327327
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=

make/deploy.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ CLUSTER ?= mdb
33
##@ Docker
44

55
PLATFORM ?= linux/amd64,linux/arm64
6-
IMG ?= ghcr.io/mariadb-operator/init:v0.0.2
6+
IMG ?= ghcr.io/mariadb-operator/init:v0.0.3
77
BUILDX ?= docker buildx build --platform $(PLATFORM) -t $(IMG)
88
BUILDER ?= init
99

pkg/config/config.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ func NewConfigFile(mariadb *mariadbv1alpha1.MariaDB) *ConfigFile {
3232
}
3333

3434
func (c *ConfigFile) Marshal(podName, mariadbRootPassword string) ([]byte, error) {
35+
galera := c.mariadb.Galera()
36+
if !galera.Enabled {
37+
return nil, errors.New("MariaDB Galera not enabled, unable to render config file")
38+
}
3539
tpl := createTpl("galera", `[mysqld]
3640
bind-address=0.0.0.0
3741
default_storage_engine=InnoDB
@@ -58,7 +62,7 @@ wsrep_sst_auth="root:{{ .RootPassword }}"
5862
if err != nil {
5963
return nil, fmt.Errorf("error getting cluster address: %v", err)
6064
}
61-
sst, err := c.mariadb.Spec.Galera.SST.MariaDBFormat()
65+
sst, err := galera.SST.MariaDBFormat()
6266
if err != nil {
6367
return nil, fmt.Errorf("error getting SST: %v", err)
6468
}
@@ -73,14 +77,14 @@ wsrep_sst_auth="root:{{ .RootPassword }}"
7377
RootPassword string
7478
}{
7579
ClusterAddress: clusterAddr,
76-
Threads: c.mariadb.Spec.Galera.ReplicaThreads,
80+
Threads: *galera.ReplicaThreads,
7781
Pod: podName,
7882
Service: statefulset.ServiceFQDNWithService(
7983
c.mariadb.ObjectMeta,
8084
ctrlresources.InternalServiceKey(c.mariadb).Name,
8185
),
8286
SST: sst,
83-
SSTAuth: c.mariadb.Spec.Galera.SST == mariadbv1alpha1.SSTMariaBackup || c.mariadb.Spec.Galera.SST == mariadbv1alpha1.SSTMysqldump,
87+
SSTAuth: *galera.SST == mariadbv1alpha1.SSTMariaBackup || *galera.SST == mariadbv1alpha1.SSTMysqldump,
8488
RootPassword: mariadbRootPassword,
8589
})
8690
if err != nil {

pkg/config/config_test.go

Lines changed: 52 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,36 @@ func TestConfigMarshal(t *testing.T) {
2525
},
2626
Spec: mariadbv1alpha1.MariaDBSpec{
2727
Galera: &mariadbv1alpha1.Galera{
28-
SST: mariadbv1alpha1.SSTRsync,
29-
ReplicaThreads: 1,
28+
Enabled: true,
29+
GaleraSpec: mariadbv1alpha1.GaleraSpec{
30+
SST: func() *mariadbv1alpha1.SST {
31+
s := mariadbv1alpha1.SSTRsync
32+
return &s
33+
}(),
34+
ReplicaThreads: func() *int {
35+
r := 1
36+
return &r
37+
}(),
38+
},
39+
},
40+
Replicas: 0,
41+
},
42+
},
43+
podName: "mariadb-galera-0",
44+
mariadbRootPassword: "mariadb",
45+
wantConfig: "",
46+
wantErr: true,
47+
},
48+
{
49+
name: "Galera not enabled",
50+
mariadb: &mariadbv1alpha1.MariaDB{
51+
ObjectMeta: v1.ObjectMeta{
52+
Name: "mariadb-galera",
53+
Namespace: "default",
54+
},
55+
Spec: mariadbv1alpha1.MariaDBSpec{
56+
Galera: &mariadbv1alpha1.Galera{
57+
Enabled: false,
3058
},
3159
Replicas: 0,
3260
},
@@ -45,8 +73,17 @@ func TestConfigMarshal(t *testing.T) {
4573
},
4674
Spec: mariadbv1alpha1.MariaDBSpec{
4775
Galera: &mariadbv1alpha1.Galera{
48-
SST: mariadbv1alpha1.SSTRsync,
49-
ReplicaThreads: 1,
76+
Enabled: true,
77+
GaleraSpec: mariadbv1alpha1.GaleraSpec{
78+
SST: func() *mariadbv1alpha1.SST {
79+
s := mariadbv1alpha1.SSTRsync
80+
return &s
81+
}(),
82+
ReplicaThreads: func() *int {
83+
r := 1
84+
return &r
85+
}(),
86+
},
5087
},
5188
Replicas: 3,
5289
},
@@ -83,8 +120,17 @@ wsrep_sst_method="rsync"
83120
},
84121
Spec: mariadbv1alpha1.MariaDBSpec{
85122
Galera: &mariadbv1alpha1.Galera{
86-
SST: mariadbv1alpha1.SSTMariaBackup,
87-
ReplicaThreads: 2,
123+
Enabled: true,
124+
GaleraSpec: mariadbv1alpha1.GaleraSpec{
125+
SST: func() *mariadbv1alpha1.SST {
126+
s := mariadbv1alpha1.SSTMariaBackup
127+
return &s
128+
}(),
129+
ReplicaThreads: func() *int {
130+
r := 2
131+
return &r
132+
}(),
133+
},
88134
},
89135
Replicas: 3,
90136
},

0 commit comments

Comments
 (0)