{{/*
# Copyright 2020-present Open Networking Foundation

# SPDX-License-Identifier: Apache-2.0
*/}}
{{- if .Values.config.amf.deploy }}
{{ tuple "amf" . | include "5g-control-plane.service_account" }}
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: amf
  labels:
{{ tuple "amf" . | include "5g-control-plane.metadata_labels" | indent 4 }}
spec:
  replicas: 1
  #serviceName: amf-headless
  selector:
    matchLabels:
{{ tuple "amf" . | include "5g-control-plane.metadata_labels" | indent 6 }}
  template:
    metadata:
      labels:
{{ tuple "amf" . | include "5g-control-plane.metadata_labels" | indent 8 }}
    {{- with .Values.config.amf.podAnnotations }}
      annotations:
        {{- toYaml . | nindent 8 }}
    {{- end }}
    spec:
      serviceAccountName: amf
    {{- if hasKey .Values.images "pullSecrets" }}
      imagePullSecrets:
{{ toYaml .Values.images.pullSecrets | indent 8 }}
    {{- end }}
      {{- if .Values.config.coreDump.enabled }}
      initContainers:
      {{ tuple "amf" . | include "5g-control-plane.coredump_init" | indent 6 }}
      {{- end }}
      containers:
      - name: amf
        image: {{ .Values.images.repository }}{{ .Values.images.tags.amf }}
        imagePullPolicy: {{ .Values.images.pullPolicy }}
      {{- if .Values.config.coreDump.enabled }}
        securityContext:
          runAsUser: 0
      {{- end }}
        stdin: true
        tty: true
        command: [ {{ .Values.config.imagePath }}/script/amf-run.sh ]
        command: [ "/bin/bash", "-c" ]
        args:
        - "cat {{ .Values.config.imagePath }}/config/amfcfg.conf && GOTRACEBACK=crash {{ .Values.config.imagePath }}/amf/amf -amfcfg {{ .Values.config.imagePath }}/config/amfcfg.conf"
        env:
        - name: GRPC_GO_LOG_VERBOSITY_LEVEL
          value: {{ .Values.config.grpc.golog_verbosity | quote }}
        - name: GRPC_GO_LOG_SEVERITY_LEVEL
          value: {{ .Values.config.grpc.severity | quote }}
        - name: GRPC_TRACE
          value: {{ .Values.config.grpc.trace | quote }}
        - name: GRPC_VERBOSITY
          value: {{ .Values.config.grpc.verbosity | quote }}
        - name: POD_IP
          valueFrom:
            fieldRef:
              fieldPath: status.podIP
      {{- if .Values.config.managedByConfigPod.enabled }}
        - name: MANAGED_BY_CONFIG_POD 
          value: "true"
      {{- end }}
      {{- if .Values.resources.enabled }}
        resources:
{{ toYaml .Values.resources.amf | indent 10 }}
      {{- end }}
        volumeMounts:
        - name: run-script
          mountPath: {{ .Values.config.imagePath }}/script/amf-run.sh
          subPath: amf-run.sh
        - name: amf-config
          mountPath: {{ .Values.config.imagePath }}/config
      {{- if .Values.config.coreDump.enabled }}
        - name: coredump
          mountPath: /tmp/coredump
      {{- end }}
      volumes:
      - name: run-script
        configMap:
          name: amf
          defaultMode: 493
      - name: amf-config
        configMap:
          name: amf
          defaultMode: 493
    {{- if .Values.config.coreDump.enabled }}
      - name: host-rootfs
        hostPath:
          path: /
      - name: coredump
        hostPath:
          path: {{ .Values.config.coreDump.path }}
    {{- end }}
{{- end }}
