{*/
# Copyright © 2020 AT&T, Orange
#
# 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.
*/}

{{- define "aaf.permissionFixer" -}}
- name: fix-permission
  command:
  - /bin/sh
  args:
  - -c
  - |
    chown -R 1000:1000 /opt/app/aaf
    chown -R 1000:1000 /opt/app/osaaf
  image: "{{ .Values.global.busyboxRepository }}/{{ .Values.global.busyboxImage }}"
  imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
  volumeMounts:
  - mountPath: /opt/app/osaaf
    name: aaf-config-vol
  resources:
    limits:
      cpu: 100m
      memory: 100Mi
    requests:
      cpu: 3m
      memory: 20Mi
{{- end -}}

{{- define "aaf.podConfiguration" }}
- name: {{ include "common.name" . }}-config-container
  image: {{ .Values.global.repository }}/{{.Values.global.aaf.config.image}}
  imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
  command:
  - /bin/bash
  args:
  - -c
  - |
    cd /opt/app/aaf_config
    bin/agent.sh
  volumeMounts:
  - mountPath: "/opt/app/osaaf"
    name: aaf-config-vol
  env:
  - name: aaf_env
    value: "{{ .Values.global.aaf.aaf_env }}"
  - name: cadi_latitude
    value: "{{ .Values.global.aaf.cadi_latitude }}"
  - name: cadi_longitude
    value: "{{ .Values.global.aaf.cadi_longitude }}"
  - name: cadi_x509_issuers
    value: "{{ .Values.global.aaf.cadi_x509_issuers }}"
  - name: aaf_locate_url
    value: "https://aaf-locate.{{ .Release.Namespace}}:8095"
  - name: aaf_locator_container
    value: "oom"
  - name: aaf_release
    value: "{{ .Values.global.aaf.aaf_release }}"
  - name: aaf_locator_container_ns
    valueFrom:
      fieldRef:
        apiVersion: v1
        fieldPath: metadata.namespace
  - name: aaf_locator_public_fqdn
    value: "{{.Values.global.aaf.public_fqdn}}"
  - name: aaf_locator_name
    value: "{{.Values.global.aaf.aaf_locator_name}}"
  - name: aaf_locator_name_oom
    value: "{{.Values.global.aaf.aaf_locator_name_oom}}"
  - name: cm_always_ignore_ips
    value: "true"
  - name: CASSANDRA_CLUSTER
    value: "aaf-cass.{{ .Release.Namespace }}"
  resources:
    limits:
      cpu: 100m
      memory: 100Mi
    requests:
      cpu: 3m
      memory: 20Mi
{{- end -}}

{{- define "aaf.initContainers" -}}
initContainers:
{{   include "aaf.permissionFixer"  . }}
{{-   if .Values.sequence_order }}
- name: {{ include "common.name" . }}-aaf-readiness
  command:
  - /root/ready.py
  args:
  {{- range $container := .Values.sequence_order }}
  - --container-name
  - aaf-{{ $container}}
  {{- end }}
  env:
  - name: NAMESPACE
    valueFrom:
      fieldRef:
        apiVersion: v1
        fieldPath: metadata.namespace
  image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
  imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
  resources:
    limits:
      cpu: 100m
      memory: 100Mi
    requests:
      cpu: 3m
      memory: 20Mi
{{-   end }}
{{   include "aaf.podConfiguration" . }}
{{- end }}
