Skip to content
Snippets Groups Projects
deployment.yaml 6.95 KiB
Newer Older
  • Learn to ignore specific revisions
  • Dominik Hebeler's avatar
    Dominik Hebeler committed
    {{- if not .Values.application.initializeCommand -}}
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
    apiVersion: {{ default "extensions/v1beta1" .Values.deploymentApiVersion }}
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
    kind: Deployment
    metadata:
      name: {{ template "trackableappname" . }}
      annotations:
        {{ if .Values.gitlab.app }}app.gitlab.com/app: {{ .Values.gitlab.app | quote }}{{ end }}
        {{ if .Values.gitlab.env }}app.gitlab.com/env: {{ .Values.gitlab.env | quote }}{{ end }}
      labels:
        app: {{ template "appname" . }}
        track: "{{ .Values.application.track }}"
        tier: "{{ .Values.application.tier }}"
        chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
        release: {{ .Release.Name }}
        heritage: {{ .Release.Service }}
    spec:
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
    {{- if or .Values.enableSelector (eq (default "extensions/v1beta1" .Values.deploymentApiVersion) "apps/v1") }}
      selector:
        matchLabels:
          app: {{ template "appname" . }}
          track: "{{ .Values.application.track }}"
          tier: "{{ .Values.application.tier }}"
          release: {{ .Release.Name }}
    {{- end }}
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
      replicas: {{ .Values.replicaCount }}
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
    {{- if .Values.strategyType }}
      strategy:
        type: {{ .Values.strategyType | quote }}
    {{- end }}
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
      template:
        metadata:
          annotations:
            checksum/application-secrets: "{{ .Values.application.secretChecksum }}"
            {{ if .Values.gitlab.app }}app.gitlab.com/app: {{ .Values.gitlab.app | quote }}{{ end }}
            {{ if .Values.gitlab.env }}app.gitlab.com/env: {{ .Values.gitlab.env | quote }}{{ end }}
    {{- if .Values.podAnnotations }}
    {{ toYaml .Values.podAnnotations | indent 8 }}
    {{- end }}
          labels:
            app: {{ template "appname" . }}
            track: "{{ .Values.application.track }}"
            tier: "{{ .Values.application.tier }}"
            release: {{ .Release.Name }}
        spec:
          imagePullSecrets:
    {{ toYaml .Values.image.secrets | indent 10 }}
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
          volumes:
          - name: env-files
            secret:
              secretName: {{ .Values.application.secretName }}
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
          containers:
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
          - name: {{ .Chart.Name }}-phpfpm
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
            image: {{ template "imagename" . }}
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
            imagePullPolicy: {{ .Values.image.pullPolicy }}
            {{- if .Values.application.secretName }}
            envFrom:
            - secretRef:
                name: {{ .Values.application.secretName }}
            {{- end }}
            env:
            - name: DATABASE_URL
              value: {{ .Values.application.database_url | quote }}
            - name: GITLAB_ENVIRONMENT_NAME
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
              value: {{ .Values.gitlab.envName | quote }}
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
            - name: GITLAB_ENVIRONMENT_URL
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
              value: {{ .Values.gitlab.envURL | quote }}
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
            volumeMounts:
            - name: env-files
              mountPath: /html/.env
              subPath: ENV_FILE
              readOnly: true
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
            ports:
            - name: "{{ .Values.service.name }}-phpfpm"
              containerPort: 9000
            livenessProbe:
              tcpSocket:
                port: "{{ .Values.service.name }}-phpfpm"
              initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
              timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }}
            readinessProbe:
              tcpSocket:
                port: "{{ .Values.service.name }}-phpfpm"
              initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
              timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }}
            resources:
    {{ toYaml .Values.resources | indent 12 }}
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
          # NGINX
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
          - name: {{ .Chart.Name }}-nginx
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
            image: {{ template "imagename" . }}
    
            command: ["nginx"]
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
            imagePullPolicy: {{ .Values.image.pullPolicy }}
            {{- if .Values.application.secretName }}
            envFrom:
            - secretRef:
                name: {{ .Values.application.secretName }}
            {{- end }}
            env:
            - name: DATABASE_URL
              value: {{ .Values.application.database_url | quote }}
            - name: GITLAB_ENVIRONMENT_NAME
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
              value: {{ .Values.gitlab.envName | quote }}
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
            - name: GITLAB_ENVIRONMENT_URL
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
              value: {{ .Values.gitlab.envURL | quote }}
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
            ports:
            - name: "{{ .Values.service.name }}"
              containerPort: {{ .Values.service.internalPort }}
            livenessProbe:
              httpGet:
                path: {{ .Values.livenessProbe.path }}
                scheme: {{ .Values.livenessProbe.scheme }}
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
                port: {{ .Values.service.internalPort }}
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
              initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
              timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }}
            readinessProbe:
              httpGet:
                path: {{ .Values.readinessProbe.path }}
                scheme: {{ .Values.readinessProbe.scheme }}
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
                port: {{ .Values.service.internalPort }}
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
              initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
              timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }}
            resources:
    
              requests:
                cpu: 100m
    
                memory: 100M  
    
          - name: {{ .Chart.Name }}-worker
            image: {{ template "imagename" . }}
            command: ["su"]
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
            args: ["-s", "/bin/sh", "-c", "php artisan requests:fetcher", "nginx"]
    
            imagePullPolicy: {{ .Values.image.pullPolicy }}
            {{- if .Values.application.secretName }}
            envFrom:
            - secretRef:
                name: {{ .Values.application.secretName }}
            {{- end }}
            env:
            - name: DATABASE_URL
              value: {{ .Values.application.database_url | quote }}
            - name: GITLAB_ENVIRONMENT_NAME
              value: {{ .Values.gitlab.envName | quote }}
            - name: GITLAB_ENVIRONMENT_URL
              value: {{ .Values.gitlab.envURL | quote }}
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
            volumeMounts:
            - name: env-files
              mountPath: /html/.env
              subPath: ENV_FILE
              readOnly: true
    
            livenessProbe:
              exec:
                command:
                - cat
                - /tmp/fetcher
              initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
              timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }}
            readinessProbe:
              exec:
                command:
                - cat
                - /tmp/fetcher
              initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
              timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }}
            resources:
              requests:
                cpu: 1
    
                memory: 1Gi 
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
          # REDIS
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
          - name: {{ .Chart.Name }}-redis
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
            image: "redis:5.0.3-alpine"
            imagePullPolicy: {{ .Values.image.pullPolicy }}
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
            ports:
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
            - name: "{{ .Values.service.name }}-redis"
              containerPort: 6379
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
            livenessProbe:
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
              tcpSocket:
                port: "{{ .Values.service.name }}-redis"
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
              initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
              timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }}
            readinessProbe:
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
              tcpSocket:
                port: "{{ .Values.service.name }}-redis"
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
              initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
              timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }}
    
            resources:
              requests:
                cpu: 100m
    
                memory: 500M  
    
    Dominik Hebeler's avatar
    Dominik Hebeler committed
    {{- end -}}