Merge "[COMMON][CASSANDRA] Uses new tpls for repos / images"
[oom.git] / kubernetes / common / mariadb-init / templates / job.yaml
index 679c10c..ad97cd4 100644 (file)
@@ -1,4 +1,6 @@
+{{/*
 # Copyright © 2019 Orange
+# Copyright © 2020 Samsung Electronics
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -11,6 +13,9 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+*/}}
+
+{{ include "mariadbInit._updateSecrets" . -}}
 
 apiVersion: batch/v1
 kind: Job
@@ -20,7 +25,7 @@ metadata:
   labels:
     app: {{ include "common.name" . }}
     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
+    release: {{ include "common.release" . }}
     heritage: {{ .Release.Service }}
 spec:
   backoffLimit: 20
@@ -28,53 +33,51 @@ spec:
     metadata:
       labels:
         app: {{ include "common.name" . }}
-        release: {{ .Release.Name }}
+        release: {{ include "common.release" . }}
       name: {{ include "common.name" . }}
     spec:
       initContainers:
       - name: {{ include "common.name" . }}-readiness
         command:
-        - /root/ready.py
+        - /app/ready.py
         args:
         - --container-name
-        - {{ .Values.global.mariadbGalera.nameOverride }}
+        - {{ default .Values.global.mariadbGalera.nameOverride .Values.mariadbGalera.containerName }}
         env:
         - name: NAMESPACE
           valueFrom:
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
       containers:
       - name: {{ include "common.name" . }}
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        image: {{ include "repositoryGenerator.image.mariadb" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command:
-        - bash
-        - /db_init/db_init.sh
+          - /bin/sh
+          - -c
+          - |
+            /db_init/db_init.sh {{ if or .Values.dbScriptConfigMap .Values.dbScript }} &&
+            /db_config/db_cmd.sh{{ end }}
         env:
         - name: DB_HOST
-          value: "{{ .Values.global.mariadbGalera.nameOverride }}"
+          value: "{{ default .Values.global.mariadbGalera.nameOverride .Values.mariadbGalera.serviceName }}"
         - name: DB_PORT
-          value: "{{ .Values.global.mariadbGalera.servicePort }}"
+          value: "{{ default .Values.global.mariadbGalera.servicePort .Values.mariadbGalera.servicePort }}"
         - name: MYSQL_ROOT_PASSWORD
-          valueFrom:
-            secretKeyRef:
-              name: {{ include "mariadbInit.mariadbClusterSecret" . }}
-              key: {{ .Values.global.mariadbGalera.userRootSecretKey }}
-        - name: MYSQL_PASSWORD
-          valueFrom:
-            secretKeyRef:
-              name: {{ template "common.fullname" . }}
-              key: db-user-password
+          {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "root-password" "key" (default "password" .Values.global.mariadbGalera.userRootSecretKey)) | indent 10 }}
+        - name: {{ printf "MYSQL_USER_%s" .Values.config.mysqlDatabase | upper }}
+          {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" .Values.config.mysqlDatabase "key" "login") | indent 10 }}
+        - name: {{ printf "MYSQL_PASSWORD_%s" .Values.config.mysqlDatabase | upper }}
+          {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" .Values.config.mysqlDatabase "key" "password") | indent 10 }}
 {{- $root := . }}
-{{ range $db, $_value := .Values.config.mysqlAdditionalDatabases }}
+{{ range $db, $_values := .Values.config.mysqlAdditionalDatabases }}
+        - name: {{ printf "MYSQL_USER_%s" $db | upper }}
+          {{- include "common.secret.envFromSecretFast" (dict "global" $root "uid" $db "key" "login") | indent 10 }}
         - name: {{ printf "MYSQL_PASSWORD_%s" $db | upper }}
-          valueFrom:
-            secretKeyRef:
-              name: {{ template "common.fullname" $root }}-secret
-              key: {{ printf "db-%s-user-password" $db }}
+          {{- include "common.secret.envFromSecretFast" (dict "global" $root "uid" $db "key" "password") | indent 10 }}
 {{ end }}
         volumeMounts:
         - mountPath: /etc/localtime
@@ -82,7 +85,10 @@ spec:
           readOnly: true
         - name: mariadb-conf
           mountPath: /db_init/
-          readOnly: true
+{{- if or .Values.dbScriptConfigMap .Values.dbScript }}
+        - name: mariadb-init
+          mountPath: /db_config/
+{{- end }}
         resources:
 {{ include "common.resources" . | indent 12 }}
       {{- if .Values.nodeSelector }}
@@ -94,12 +100,23 @@ spec:
 {{ toYaml .Values.affinity | indent 10 }}
       {{- end }}
       volumes:
-      - name: mariadb-conf
-        configMap:
-          name: {{ include "mariadbInit.configMap" . }}
       - name: localtime
         hostPath:
           path: /etc/localtime
+{{- if  or .Values.dbScriptConfigMap .Values.dbScript }}
+      - name: mariadb-init
+        configMap:
+{{-   if  .Values.dbScriptConfigMap }}
+          name: {{ tpl .Values.dbScriptConfigMap . }}
+{{-   else -}}
+          name: {{ include "common.fullname" . }}-dbscript
+{{-   end }}
+          defaultMode: 0755
+{{- end }}
+      - name: mariadb-conf
+        configMap:
+          name: {{ include "mariadbInit.configMap" . }}
+          defaultMode: 0755
       restartPolicy: Never
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"