{{/*
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.cron_job_cell_setup }}
{{- $envAll := . }}

{{- $serviceAccountName := "nova-cell-setup-cron" }}
{{ tuple $envAll "cell_setup" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
---
apiVersion: batch/v1
kind: CronJob
metadata:
  name: nova-cell-setup
  annotations:
    {{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
spec:
  schedule: {{ .Values.jobs.cell_setup.cron | quote }}
  successfulJobsHistoryLimit: {{ .Values.jobs.cell_setup.history.success }}
  failedJobsHistoryLimit: {{ .Values.jobs.cell_setup.history.failed }}
  {{- if .Values.jobs.cell_setup.starting_deadline }}
  startingDeadlineSeconds: {{ .Values.jobs.cell_setup.starting_deadline }}
  {{- end }}
  concurrencyPolicy: Forbid
  jobTemplate:
    metadata:
      labels:
{{ tuple $envAll "nova" "cell-setup" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
    spec:
      template:
        metadata:
          labels:
{{ tuple $envAll "nova" "cell-setup" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 12 }}
        spec:
{{ with .Values.pod.priorityClassName.nova_cell_setup }}
          priorityClassName: {{ . }}
{{ end }}
{{ with .Values.pod.runtimeClassName.nova_cell_setup }}
          runtimeClassName: {{ . }}
{{ end }}
          serviceAccountName: {{ $serviceAccountName }}
{{ dict "envAll" $envAll "application" "cell_setup" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 10 }}
          restartPolicy: OnFailure
          nodeSelector:
            {{ .Values.labels.job.node_selector_key }}: {{ .Values.labels.job.node_selector_value }}
{{ if $envAll.Values.pod.tolerations.nova.enabled }}
{{ tuple $envAll "nova" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 10 }}
{{ end }}
          initContainers:
{{ tuple $envAll "cell_setup" list | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 12 }}
          containers:
            - name: nova-cell-setup
{{ tuple $envAll "nova_cell_setup" | include "helm-toolkit.snippets.image" | indent 14 }}
{{ tuple $envAll $envAll.Values.pod.resources.jobs.cell_setup | include "helm-toolkit.snippets.kubernetes_resources" | indent 14 }}
{{ dict "envAll" $envAll "application" "cell_setup" "container" "nova_cell_setup" | include "helm-toolkit.snippets.kubernetes_container_security_context" | indent 14 }}
              command:
                - /tmp/cell-setup.sh
{{- if or .Values.manifests.certificates .Values.tls.identity }}
              env:
                - name: REQUESTS_CA_BUNDLE
                  value: "/etc/nova/certs/ca.crt"
{{- end }}
              volumeMounts:
                - name: pod-tmp
                  mountPath: /tmp
                - name: nova-bin
                  mountPath: /tmp/cell-setup.sh
                  subPath: cell-setup.sh
                  readOnly: true
                - name: etcnova
                  mountPath: /etc/nova
                - name: nova-etc
                  mountPath: /etc/nova/nova.conf
                  subPath: nova.conf
                  readOnly: true
                {{- if .Values.conf.nova.DEFAULT.log_config_append }}
                - name: nova-etc
                  mountPath: {{ .Values.conf.nova.DEFAULT.log_config_append }}
                  subPath: {{ base .Values.conf.nova.DEFAULT.log_config_append }}
                  readOnly: true
                {{- end }}
                - name: nova-etc
                  mountPath: /etc/nova/policy.yaml
                  subPath: policy.yaml
                  readOnly: true
{{- dict "enabled" (or .Values.manifests.certificates .Values.tls.identity) "name" .Values.secrets.tls.compute.osapi.internal "path" "/etc/nova/certs" | include "helm-toolkit.snippets.tls_volume_mount" | indent 16 }}
{{- dict "enabled" .Values.manifests.certificates "name" .Values.endpoints.oslo_db.auth.admin.secret.tls.internal "path" "/etc/mysql/certs" | include "helm-toolkit.snippets.tls_volume_mount" | indent 16 }}

          volumes:
            - name: pod-tmp
              emptyDir: {}
            - name: etcnova
              emptyDir: {}
            - name: nova-etc
              secret:
                secretName: nova-etc
                defaultMode: 0444
            - name: nova-bin
              configMap:
                name: nova-bin
                defaultMode: 0555
{{- dict "enabled" (or .Values.manifests.certificates .Values.tls.identity) "name" .Values.secrets.tls.compute.osapi.internal | include "helm-toolkit.snippets.tls_volume" | indent 12 }}
{{- dict "enabled" .Values.manifests.certificates "name" .Values.endpoints.oslo_db.auth.admin.secret.tls.internal | include "helm-toolkit.snippets.tls_volume" | indent 12 }}

{{- end }}
