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

# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0

Default values for mcord-vepc-helm.
This is a YAML-formatted file.
Declare variables to be passed into your templates.
*/}}

{{- if .Values.config.hss.deploy }}
{{ tuple "hss" . | include "omec-control-plane.service_account" }}
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: hss
  labels:
{{ tuple "hss" . | include "omec-control-plane.metadata_labels" | indent 4 }}
spec:
  replicas: 1
  serviceName: hss-headless
  selector:
    matchLabels:
{{ tuple "hss" . | include "omec-control-plane.metadata_labels" | indent 6 }}
  template:
    metadata:
      labels:
{{ tuple "hss" . | include "omec-control-plane.metadata_labels" | indent 8 }}
    spec:
    {{- if .Values.nodeSelectors.enabled }}
      nodeSelector:
        {{ .Values.nodeSelectors.hss.label }}: {{ .Values.nodeSelectors.hss.value }}
    {{- end }}
      serviceAccountName: hss
      initContainers:
      - name: hss-dep-check
        image: {{ .Values.images.tags.depCheck | quote }}
        imagePullPolicy: {{ .Values.images.pullPolicy }}
        securityContext:
          allowPrivilegeEscalation: false
          readOnlyRootFilesystem: false
          runAsUser: 0
        env:
          - name: NAMESPACE
            valueFrom:
              fieldRef:
                apiVersion: v1
                fieldPath: metadata.namespace
          - name: PATH
            value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/
          - name: COMMAND
            value: "echo done"
          - name: DEPENDENCY_JOBS
          {{- if .Values.config.hss.bootstrap }}
            value: job-hss-db-sync,job-hss-bootstrap
          {{- else }}
            value: job-hss-db-sync
          {{- end }}
        command:
          - kubernetes-entrypoint
        volumeMounts:
          []
    {{- if .Values.config.coreDump.enabled }}
{{ tuple "hss" . | include "omec-control-plane.coredump_init" | indent 6 }}
    {{- end }}
      containers:
      - name: hss
        image: {{ .Values.images.tags.hss }}
        imagePullPolicy: {{ .Values.images.pullPolicy }}
      {{- if .Values.config.coreDump.enabled }}
        securityContext:
          privileged: true
          runAsUser: 0
      {{- end }}
        stdin: true
        tty: true
        command: ["bash", "-c", "/opt/c3po/hss/hss-run.sh; sleep 3600"]
      {{- if .Values.resources.enabled }}
        resources:
{{ toYaml .Values.resources.hss | indent 10 }}
      {{- end }}
        volumeMounts:
        - name: hss-script
          mountPath: /opt/c3po/hss/hss-run.sh
          subPath: hss-run.sh
        - name: hss-config
          mountPath: /etc/hss/conf
      {{- if .Values.config.coreDump.enabled }}
        - name: coredump
          mountPath: /tmp/coredump
      {{- end }}
      volumes:
      - name: hss-script
        configMap:
          name: hss
          defaultMode: 493
      - name: hss-config
        configMap:
          name: hss
          defaultMode: 420
    {{- if .Values.config.coreDump.enabled }}
      - name: host-rootfs
        hostPath:
          path: /
      - name: coredump
        hostPath:
          path: {{ .Values.config.coreDump.path }}
    {{- end }}
{{- end }}
