---

# Copyright 2018-present Open Networking Foundation
#
# 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: {{ template "fullname" . }}-onos-config-loader
  labels:
    app: onos-config-loader
    chart: {{ .Chart.Name }}
    release: {{ .Release.Name }}
spec:
  backoffLimit: 12
  template:
    metadata:
      labels:
        app: onos-config-loader
        release: {{ .Release.Name }}
      annotations:
        checksum/config: {{ include (print $.Template.BasePath "/onos-config-loader-configmap.yaml") . | sha256sum }}
    spec:
      restartPolicy: OnFailure
      serviceAccountName: "{{ .Release.Name }}-onos-config-loader-service-account"
      containers:
        - name: onos-config-loader
          image: '{{ tpl .Values.images.onos_config_loader.registry . }}{{ tpl .Values.images.onos_config_loader.repository . }}:{{ tpl .Values.images.onos_config_loader.tag . }}'
          imagePullPolicy: {{ tpl .Values.images.onos_config_loader.pullPolicy . }}
          command:
            - "/bin/bash"
            - "/opt/loader/loader.sh"
          volumeMounts:
            - name: onos-configs
              mountPath: /opt/configs
            - name: onos-loader
              mountPath: /opt/loader
            - name: kube-config-volume
              mountPath: /etc/kube
      volumes:
        - name: onos-configs
          configMap:
            name: {{ .Release.Name }}-onos-configs-data
        - name: onos-loader
          configMap:
            name: {{ .Release.Name }}-onos-configs-loader
            defaultMode: 0777
        - name: kube-config-volume
          configMap:
            # Provide the name of the ConfigMap containing the files you want
            # to add to the container
            name: kube-config
