{{/*
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.
*/}}

{{- if .Values.manifests.job_ks_user_domain }}
{{- $envAll := . }}

{{- $serviceAccountName := "magnum-ks-user-domain" }}
{{ tuple $envAll "ks_user" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
---
apiVersion: batch/v1
kind: Job
metadata:
  name: magnum-domain-ks-user
  annotations:
    "helm.sh/hook": post-install,post-upgrade
    "helm.sh/hook-delete-policy": before-hook-creation
    {{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
spec:
  template:
    metadata:
      labels:
{{ tuple $envAll "magnum" "ks-user" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
    spec:
      serviceAccountName: {{ $serviceAccountName }}
      restartPolicy: OnFailure
      nodeSelector:
        {{ .Values.labels.job.node_selector_key }}: {{ .Values.labels.job.node_selector_value }}
      initContainers:
{{ tuple $envAll "ks_user" list | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
      containers:
        - name: magnum-ks-domain-user
{{ tuple $envAll "ks_user" | include "helm-toolkit.snippets.image" | indent 10 }}
          command:
            - /tmp/ks-domain-user.sh
          volumeMounts:
            - name: pod-tmp
              mountPath: /tmp
            - name: ks-user-sh
              mountPath: /tmp/ks-domain-user.sh
              subPath: ks-domain-user.sh
              readOnly: true
          env:
{{- with $env := dict "ksUserSecret" $envAll.Values.secrets.identity.admin }}
{{- include "helm-toolkit.snippets.keystone_openrc_env_vars" $env | indent 12 }}
{{- end }}
            - name: SERVICE_OS_SERVICE_NAME
              value: "magnum"
            - name: SERVICE_OS_REGION_NAME
              valueFrom:
                secretKeyRef:
                  name: {{ .Values.secrets.identity.magnum_stack_user }}
                  key: OS_REGION_NAME
            - name: SERVICE_OS_DOMAIN_NAME
              valueFrom:
                secretKeyRef:
                  name: {{ .Values.secrets.identity.magnum_stack_user }}
                  key: OS_DOMAIN_NAME
            - name: SERVICE_OS_USERNAME
              valueFrom:
                secretKeyRef:
                  name: {{ .Values.secrets.identity.magnum_stack_user }}
                  key: OS_USERNAME
            - name: SERVICE_OS_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: {{ .Values.secrets.identity.magnum_stack_user }}
                  key: OS_PASSWORD
            - name: SERVICE_OS_ROLE
              value: {{ .Values.endpoints.identity.auth.magnum_stack_user.role | quote }}
      volumes:
        - name: pod-tmp
          emptyDir: {}
        - name: ks-user-sh
          configMap:
            name: magnum-bin
            defaultMode: 0555
{{- end }}
