# Copyright © 2018 Amdocs, Bell Canada
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# 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.

apiVersion: batch/v1
kind: Job
metadata:
  name: vid-config-galera
  namespace: {{ include "common.namespace" . }}
  labels:
    app: vid-config-galera
    release: {{ .Release.Name }}
spec:
  template:
    metadata:
      labels:
        release: {{ .Release.Name }}
      name: vid-galera-init
    spec:
      initContainers:
#This container checks that all galera instances are up before initializing it.
      - name: vid-init-galera-readiness
        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
        command:
        - /root/ready.py
{{- $fullname := include "common.fullname" . -}}
{{- range $i,$t := until (int .Values.vid_mariadb_galera.replicaCount)}}
        - --container-name
        - {{ $fullname }}-mariadb-galera-{{$i}}
{{- end }}
        env:
        - name: NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
      containers:
      - name: vid-config-galeradb
        image: {{ .Values.mariadb_image }}
        imagePullPolicy: "{{ .Values.pullPolicy }}"
        volumeMounts:
        - mountPath: /dbcmd-config/db_cmd.sh
          name: {{ include "common.fullname" . }}-config
          subPath: db_cmd.sh
        - mountPath: /db-config/vid-pre-init.sql
          name: {{ include "common.fullname" . }}-config
          subPath: vid-pre-init.sql
        command:
        - /bin/sh
        args:
        - -x
        - /dbcmd-config/db_cmd.sh
        env:
        - name: MYSQL_PASSWORD
          value: "{{ .Values.config.vidmysqlpassword }}"
        - name: MYSQL_HOST
          value: "{{ .Values.config.vidmysqlhost }}"
        - name: MYSQL_USER
          value: "{{ .Values.config.vidmysqluser }}"
        - name: MYSQL_PORT
          value: "{{ .Values.config.vidmysqlport }}"
      restartPolicy: Never
      volumes:
        - name: {{ include "common.fullname" . }}-config
          configMap:
            name: {{ include "common.fullname" . }}
            items:
              - key: db_cmd.sh
                path: db_cmd.sh
              - key: vid-pre-init.sql
                path: vid-pre-init.sql

