apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ .Release.Name }}-gerrit-slave-deployment
  labels:
    app: gerrit-slave
    chart: {{ template "gerrit-slave.chart" . }}
    heritage: {{ .Release.Service }}
    release: {{ .Release.Name }}
spec:
  replicas: {{ .Values.gerritSlave.replicas | default 1 }}
  selector:
    matchLabels:
      app: gerrit-slave
  template:
    metadata:
      labels:
        app: gerrit-slave
    spec:
      securityContext:
        fsGroup: 100
      {{ if .Values.images.registry.ImagePullSecret.name -}}
      imagePullSecrets:
      - name: {{ .Values.images.registry.ImagePullSecret.name }}
      {{- end }}
      initContainers:
      - name: site-cleanup
        image: busybox
        securityContext:
          runAsUser: 1000
          runAsGroup: 100
        command:
        - sh
        - -c
        args:
        - |
          rm -f /var/gerrit/logs/gerrit.pid
        volumeMounts:
        - name: gerrit-logs
          mountPath: "/var/gerrit/logs"
      {{ if not .Values.gerritSlave.initializeTestSite.enabled -}}
      # Initialize the emptyDir containing the whole Gerrit-site with defaults
      # Not needed, when running in test mode, since then the configured site will
      # be initialized
      - name: populate-gerrit-site-volume
        image: {{ template "registry" . }}{{ .Values.gerritSlave.images.gerritInit }}:{{ .Values.images.version }}
        imagePullPolicy: {{ .Values.images.imagePullPolicy }}
        command:
        - /bin/bash
        - -ce
        args:
        - |
          if [ ! -f /var/gerrit/bin/gerrit.sh ]; then
            /var/tools/gerrit_init.py \
              -s /var/gerrit \
              -p singleusergroup
          fi
        volumeMounts:
        - name: gerrit-site
          mountPath: "/var/gerrit"
        - name: gerrit-db
          mountPath: "/var/gerrit/db"
      {{- end }}
      # Wait for database to be ready and, if configured, run initialization
      # taking the given Gerrit configuration and persisted volumes into account.
      - name: gerrit-init
        image: {{ template "registry" . }}{{ .Values.gerritSlave.images.gerritInit }}:{{ .Values.images.version }}
        imagePullPolicy: {{ .Values.images.imagePullPolicy }}
        command:
        - /bin/bash
        - -ce
        args:
        - |
          symlink_config_to_site(){
            {{ if .Values.gerritSlave.keystore -}}
            ln -s /var/keystore /var/gerrit/etc/keystore
            {{- end }}
            ln -sf /var/config/gerrit.config /var/gerrit/etc/gerrit.config
            ln -sf /var/config/secure.config /var/gerrit/etc/secure.config
          }

          mkdir -p /var/gerrit/etc
          symlink_config_to_site

          {{ if .Values.gerritSlave.initializeTestSite.enabled -}}
          if [ ! -f /var/gerrit/bin/gerrit.sh ]; then
            /var/tools/gerrit_init.py \
              -s /var/gerrit \
              -p singleusergroup

            symlink_config_to_site
          fi
          {{- end }}

          /var/tools/validate_db.py -s /var/gerrit
        volumeMounts:
        - name: gerrit-site
          mountPath: "/var/gerrit"
        - name: gerrit-db
          mountPath: "/var/gerrit/db"
        - name: gerrit-config
          mountPath: "/var/config/gerrit.config"
          subPath: gerrit.config
        - name: gerrit-slave-secure-config
          mountPath: "/var/config/secure.config"
          subPath: secure.config
        {{ if .Values.gerritSlave.keystore -}}
        - name: gerrit-slave-secure-config
          mountPath: "/var/keystore"
          subPath: keystore
        {{- end }}
      containers:
      - name: gerrit-slave
        image: {{ template "registry" . }}{{ .Values.gerritSlave.images.gerritSlave }}:{{ .Values.images.version }}
        imagePullPolicy: {{ .Values.images.imagePullPolicy }}
        ports:
        - containerPort: 8080
        volumeMounts:
        - name: gerrit-site
          mountPath: "/var/gerrit"
        - name: gerrit-db
          mountPath: "/var/gerrit/db"
        - name: git-filesystem
          mountPath: "/var/gerrit/git"
        - name: gerrit-logs
          mountPath: "/var/gerrit/logs"
        - name: gerrit-config
          mountPath: "/var/config/gerrit.config"
          subPath: gerrit.config
        - name: gerrit-slave-secure-config
          mountPath: "/var/config/secure.config"
          subPath: secure.config
        {{ if .Values.gerritSlave.keystore -}}
        - name: gerrit-slave-secure-config
          mountPath: "/var/keystore"
          subPath: keystore
        {{- end }}
        resources:
{{ toYaml .Values.gerritSlave.resources | indent 10 }}
      volumes:
      - name: gerrit-site
        emptyDir: {}
      - name: gerrit-db
        {{ if .Values.gerritSlave.h2Database.persistence.enabled -}}
        persistentVolumeClaim:
          claimName: {{ .Release.Name }}-gerrit-slave-db-pvc
        {{ else -}}
        emptyDir: {}
        {{- end }}
      - name: git-filesystem
        persistentVolumeClaim:
          claimName: {{ .Release.Name }}-git-filesystem-pvc
      - name: gerrit-logs
        {{ if .Values.gerritSlave.logging.persistence.enabled -}}
        persistentVolumeClaim:
          claimName: {{ .Release.Name }}-gerrit-slave-logs-pvc
        {{ else -}}
        emptyDir: {}
        {{- end }}
      - name: gerrit-config
        configMap:
          name: {{ .Release.Name }}-gerrit-slave-configmap
      - name: gerrit-slave-secure-config
        secret:
          secretName: {{ .Release.Name }}-gerrit-slave-secure-config
