apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ .Release.Name }}-deployment
  labels:
    app: {{ .Release.Name }}-deployment
spec:
  replicas: {{ .Values.replicas }}
  selector:
    matchLabels:
      app: {{ .Release.Name }}-application
  template:
    metadata:
      labels:
        app: {{ .Release.Name }}-application
    spec:
      containers:
        - name: {{ .Release.Name }}-application
          image: {{ .Values.container.image }}
          imagePullPolicy: Always
          ports:
            - containerPort: {{ .Values.container.port }}
          envFrom:
            - secretRef:
                name: {{ .Release.Name }}-secret
            - configMapRef:
                name: {{ .Release.Name }}-config
          livenessProbe:
            tcpSocket:
              port: {{ .Values.container.port }}
            periodSeconds: 1
            initialDelaySeconds: 2
            failureThreshold: 3
            successThreshold: 1
          readinessProbe:
            httpGet:
              path: /api/v1/healthz
              port: {{ .Values.container.port }}
            periodSeconds: 1
            initialDelaySeconds: 4
            failureThreshold: 3
            successThreshold: 1
          volumeMounts:
            - name: {{ .Release.Name }}-storage
              mountPath: /mnt
      volumes:
        - name: {{ .Release.Name }}-storage
          persistentVolumeClaim:
            claimName: {{ .Release.Name }}-pvc