apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: "{{tag '  .Chart.Name '}}-deployment"
  labels:
    chart: '{{tag ' .Chart.Name '}}-{{tag ' .Chart.Version | replace "+" "_" '}}'
    app: "{{tag '  .Chart.Name '}}"
spec:
  replicas: {{tag ' .Values.replicaCount '}}
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 0
      maxSurge: 1
  revisionHistoryLimit: {{tag ' .Values.revisionHistoryLimit '}}
  template:
    metadata:
      labels:
        app: "{{tag '  .Chart.Name '}}"
        version: "current"
    spec:
      containers:
      - name: "{{tag '  .Chart.Name  '}}"
        image: "{{tag ' .Values.image.repository '}}:{{tag ' .Values.image.tag '}}"
        imagePullPolicy: {{tag ' .Values.image.pullPolicy '}}
        livenessProbe:
          httpGet:
            path: /health
            port: {{tag ' .Values.service.servicePort '}}
          initialDelaySeconds: {{tag ' .Values.livenessProbe.initialDelaySeconds'}}
          periodSeconds: {{tag ' .Values.livenessProbe.periodSeconds'}}
        ports:
        - containerPort: {{tag ' .Values.service.servicePort'}}
        resources:
          requests:
            cpu: "{{tag ' .Values.image.resources.requests.cpu '}}"
            memory: "{{tag ' .Values.image.resources.requests.memory '}}"
        env:
          - name: PORT
            value : "{{tag ' .Values.service.servicePort '}}"
          - name: APPLICATION_NAME
            value: "{{tag ' .Release.Name '}}"
          {{#has services 'mongodb'}}
          - name: MONGO_URL
            value: {{tag ' .Values.services.mongo.url '}}
          - name: MONGO_DB_NAME
            value: {{tag ' .Values.services.mongo.name '}}
          - name: MONGO_USER
            value: {{tag ' .Values.services.mongo.username '}}
          - name: MONGO_PASS
            value: {{tag ' .Values.services.mongo.password '}}
          - name: MONGO_CA
            value: {{tag ' .Values.services.mongo.ca '}}
          {{/has}}
