@@ -85,14 +85,14 @@ func createLogForwarderSidecar(r *SFController, annotations map[string]string) (
85
85
}
86
86
87
87
func (r * SFController ) CreateDBInitContainer (username string , password string , dbname string ) apiv1.Container {
88
- c := "CREATE DATABASE IF NOT EXISTS " + dbname + " CHARACTER SET utf8 COLLATE utf8_general_ci; "
89
- g := "GRANT ALL PRIVILEGES ON " + dbname + " .* TO '" + username + " '@'%' IDENTIFIED BY '${USER_PASSWORD}' WITH GRANT OPTION; FLUSH PRIVILEGES;"
88
+ c := fmt . Sprintf ( "CREATE DATABASE IF NOT EXISTS %s CHARACTER SET utf8 COLLATE utf8_general_ci;" , dbname )
89
+ g := fmt . Sprintf ( "GRANT ALL PRIVILEGES ON %s .* TO '%s '@'%% ' IDENTIFIED BY '${USER_PASSWORD}' WITH GRANT OPTION; FLUSH PRIVILEGES;" , dbname , username )
90
90
container := base .MkContainer ("mariadb-client" , base .MariaDBImage ())
91
91
base .SetContainerLimitsLowProfile (& container )
92
92
container .Command = []string {"sh" , "-c" , `
93
- echo 'Running: mysql --host=" ` + MariaDBIdent + `" --user=root --password="$MYSQL_ROOT_PASSWORD " -e "` + c + g + `"'
93
+ echo 'Running: mysql --host="` + MariaDBIdent + `" --user=root --password="$MARIADB_ROOT_PASSWORD " -e "` + c + g + `"'
94
94
ATTEMPT=0
95
- while ! mysql --host=mariadb --user=root --password="$MYSQL_ROOT_PASSWORD " -e "` + c + g + `"; do
95
+ while ! mysql --host=mariadb --user=root --password="$MARIADB_ROOT_PASSWORD " -e "` + c + g + `"; do
96
96
ATTEMPT=$[ $ATTEMPT + 1 ]
97
97
if test $ATTEMPT -eq 10; then
98
98
echo "Failed after $ATTEMPT attempt";
@@ -102,7 +102,7 @@ func (r *SFController) CreateDBInitContainer(username string, password string, d
102
102
done
103
103
` }
104
104
container .Env = []apiv1.EnvVar {
105
- base .MkSecretEnvVar ("MYSQL_ROOT_PASSWORD " , "mariadb-root-password" , "mariadb-root-password" ),
105
+ base .MkSecretEnvVar ("MARIADB_ROOT_PASSWORD " , "mariadb-root-password" , "mariadb-root-password" ),
106
106
{
107
107
Name : "USER_PASSWORD" ,
108
108
Value : password ,
@@ -180,6 +180,18 @@ func (r *SFController) DeployMariadb() bool {
180
180
MYSQLRootPassword string
181
181
}{MYSQLRootPassword : string (adminPassSecret .Data ["mariadb-root-password" ])})
182
182
183
+ initfileSQL := fmt .Sprintf (
184
+ `CREATE USER IF NOT EXISTS root@localhost IDENTIFIED BY '%s';
185
+ SET PASSWORD FOR root@localhost = PASSWORD('%s');
186
+ GRANT ALL ON *.* TO root@localhost WITH GRANT OPTION;
187
+ CREATE USER IF NOT EXISTS root@'%%' IDENTIFIED BY '%s';
188
+ SET PASSWORD FOR root@'%%' = PASSWORD('%s');
189
+ GRANT ALL ON *.* TO root@'%%' WITH GRANT OPTION;` ,
190
+ adminPassSecret .Data ["mariadb-root-password" ],
191
+ adminPassSecret .Data ["mariadb-root-password" ],
192
+ adminPassSecret .Data ["mariadb-root-password" ],
193
+ adminPassSecret .Data ["mariadb-root-password" ])
194
+
183
195
configSecret := apiv1.Secret {
184
196
ObjectMeta : metav1.ObjectMeta {
185
197
Name : "mariadb-config-secrets" ,
@@ -189,7 +201,17 @@ func (r *SFController) DeployMariadb() bool {
189
201
"my.cnf" : []byte (myCNF ),
190
202
},
191
203
}
204
+ initDBSecret := apiv1.Secret {
205
+ ObjectMeta : metav1.ObjectMeta {
206
+ Name : "mariadb-initdb-secrets" ,
207
+ Namespace : r .ns ,
208
+ },
209
+ Data : map [string ][]byte {
210
+ "initfile.sql" : []byte (initfileSQL ),
211
+ },
212
+ }
192
213
r .EnsureSecret (& configSecret )
214
+ r .EnsureSecret (& initDBSecret )
193
215
194
216
sts := r .mkStatefulSet (MariaDBIdent , base .MariaDBImage (), r .getStorageConfOrDefault (r .cr .Spec .MariaDB .DBStorage ), apiv1 .ReadWriteOnce )
195
217
@@ -223,10 +245,18 @@ func (r *SFController) DeployMariadb() bool {
223
245
MountPath : "/var/lib/mysql/.my.cnf" ,
224
246
ReadOnly : true ,
225
247
},
248
+ {
249
+ Name : "mariadb-initdb-secrets" ,
250
+ SubPath : "initfile.sql" ,
251
+ MountPath : "/docker-entrypoint-initdb.d/initfile.sql" ,
252
+ ReadOnly : true ,
253
+ },
226
254
}, volumeMountsStatsExporter ... )
227
255
sts .Spec .Template .Spec .Containers [0 ].Env = []apiv1.EnvVar {
228
256
base .MkEnvVar ("HOME" , "/var/lib/mysql" ),
229
- base .MkSecretEnvVar ("MYSQL_ROOT_PASSWORD" , "mariadb-root-password" , "mariadb-root-password" ),
257
+ base .MkSecretEnvVar ("MARIADB_ROOT_PASSWORD" , "mariadb-root-password" , "mariadb-root-password" ),
258
+ base .MkEnvVar ("MARIADB_DISABLE_UPGRADE_BACKUP" , "1" ),
259
+ base .MkEnvVar ("MARIADB_AUTO_UPGRADE" , "1" ),
230
260
}
231
261
sts .Spec .Template .Spec .Containers [0 ].Ports = []apiv1.ContainerPort {
232
262
base .MkContainerPort (mariadbPort , mariaDBPortName ),
@@ -237,6 +267,7 @@ func (r *SFController) DeployMariadb() bool {
237
267
sts .Spec .Template .Spec .Volumes = []apiv1.Volume {
238
268
base .MkEmptyDirVolume ("mariadb-run" ),
239
269
base .MkVolumeSecret ("mariadb-config-secrets" , "mariadb-config-secrets" ),
270
+ base .MkVolumeSecret ("mariadb-initdb-secrets" , "mariadb-initdb-secrets" ),
240
271
}
241
272
242
273
annotations := map [string ]string {
0 commit comments