---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ include "full_name" .}}
spec:
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 0
      maxUnavailable: "50%"
  selector:
    matchLabels:
      app: {{ .Values.name }}
  template:
    metadata:
      annotations:
        checksum/config: {{ include (print $.Template.BasePath "/config.yaml") . | sha256sum }}
      name: {{ include "full_name" .}}
      labels:
        app: {{ .Values.name }}
        feature: {{ .Release.Name | quote }}
        type: {{ .Values.label_type | default "service" }} 
        # Uncomment to disable scalling
        # noscale: "true"
    spec:
      {{ include "pull_secrets" . }}
      nodeSelector:
          compute: "true"
      terminationGracePeriodSeconds: {{ .Values.termination_grace_period_seconds | default 1 }}
      priorityClassName: {{ .Values.priorityClassName | default "service-default"}}
      containers:
        - name: {{ include "full_name" .}}
          image: "{{ .Values.global.image_registry }}/{{ .Values.image }}"
          envFrom:
            - configMapRef:
                name: {{ include "full_name" .}}