@@ -31,6 +31,35 @@ func job(ctx *common.RenderContext) ([]runtime.Object, error) {
31
31
Annotations : common .CustomizeAnnotation (ctx , Component , common .TypeMetaBatchJob ),
32
32
}
33
33
34
+ volumes := []corev1.Volume {{
35
+ Name : sqlInitScripts ,
36
+ VolumeSource : corev1.VolumeSource {ConfigMap : & corev1.ConfigMapVolumeSource {
37
+ LocalObjectReference : corev1.LocalObjectReference {Name : sqlInitScripts },
38
+ }},
39
+ }}
40
+ volumeMounts := []corev1.VolumeMount {{
41
+ Name : sqlInitScripts ,
42
+ MountPath : "/db-init-scripts" ,
43
+ ReadOnly : true ,
44
+ }}
45
+
46
+ // We already have CA loaded at common.DBCaCertEnvVarName, but mysql cli needs a file here, so we mount it like as one.
47
+ sslOptions := ""
48
+ if ctx .Config .Database .SSL != nil && ctx .Config .Database .SSL .CaCert != nil {
49
+ volumes = append (volumes , corev1.Volume {
50
+ Name : caCertMountName ,
51
+ VolumeSource : corev1.VolumeSource {Secret : & corev1.SecretVolumeSource {
52
+ SecretName : ctx .Config .Database .SSL .CaCert .Name ,
53
+ }},
54
+ })
55
+ volumeMounts = append (volumeMounts , corev1.VolumeMount {
56
+ Name : caCertMountName ,
57
+ MountPath : common .DBCaBasePath ,
58
+ ReadOnly : true ,
59
+ })
60
+ sslOptions = fmt .Sprintf (" --ssl-mode=VERIFY_IDENTITY --ssl-ca=%s " , common .DBCaPath )
61
+ }
62
+
34
63
return []runtime.Object {& batchv1.Job {
35
64
TypeMeta : common .TypeMetaBatchJob ,
36
65
ObjectMeta : objectMeta ,
@@ -43,12 +72,7 @@ func job(ctx *common.RenderContext) ([]runtime.Object, error) {
43
72
RestartPolicy : corev1 .RestartPolicyNever ,
44
73
ServiceAccountName : Component ,
45
74
EnableServiceLinks : pointer .Bool (false ),
46
- Volumes : []corev1.Volume {{
47
- Name : sqlInitScripts ,
48
- VolumeSource : corev1.VolumeSource {ConfigMap : & corev1.ConfigMapVolumeSource {
49
- LocalObjectReference : corev1.LocalObjectReference {Name : sqlInitScripts },
50
- }},
51
- }},
75
+ Volumes : volumes ,
52
76
// The init container is designed to emulate Helm hooks
53
77
InitContainers : []corev1.Container {* common .DatabaseWaiterContainer (ctx )},
54
78
Containers : []corev1.Container {{
@@ -61,13 +85,9 @@ func job(ctx *common.RenderContext) ([]runtime.Object, error) {
61
85
Command : []string {
62
86
"sh" ,
63
87
"-c" ,
64
- "mysql -h $DB_HOST --port $DB_PORT -u $DB_USERNAME -p$DB_PASSWORD < /db-init-scripts/init.sql" ,
88
+ fmt . Sprintf ( "mysql -h $DB_HOST --port $DB_PORT -u $DB_USERNAME -p$DB_PASSWORD %s < /db-init-scripts/init.sql" , sslOptions ) ,
65
89
},
66
- VolumeMounts : []corev1.VolumeMount {{
67
- Name : sqlInitScripts ,
68
- MountPath : "/db-init-scripts" ,
69
- ReadOnly : true ,
70
- }},
90
+ VolumeMounts : volumeMounts ,
71
91
}},
72
92
},
73
93
},
0 commit comments