apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: {{ .Release.Name }}-gerrit-stateful-set
  labels:
    app: gerrit
    chart: {{ template "gerrit.chart" . }}
    heritage: {{ .Release.Service }}
    release: {{ .Release.Name }}
spec:
  serviceName: {{ .Release.Name }}-gerrit-service
  replicas: {{ .Values.gerrit.replicas | default 1 }}
  updateStrategy:
    rollingUpdate:
      partition: {{ .Values.gerrit.updatePartition }}
  selector:
    matchLabels:
      app: gerrit
  template:
    metadata:
      labels:
        app: gerrit
        chart: {{ template "gerrit.chart" . }}
        heritage: {{ .Release.Service }}
        release: {{ .Release.Name }}
      annotations:
        chartRevision: "{{ .Release.Revision }}"
    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:
        - |
          # Remove directories that should be mounted rather than exist with the
          # rest of the site
          for dir in git {{ if eq .Values.gerrit.index.type "elasticsearch" }}index{{ end }}; do
            [ ! -L /var/gerrit/$dir ] && rm -rf /var/gerrit/$dir
          done
          rm -f /var/gerrit/logs/gerrit.pid
        volumeMounts:
        - name: gerrit-site
          mountPath: "/var/gerrit"
      - name: gerrit-init
        image: {{ template "registry" . }}{{ .Values.gerrit.images.gerritInit }}:{{ .Values.images.version }}
        imagePullPolicy: {{ .Values.images.imagePullPolicy }}
        command:
        - /bin/ash
        - -ce
        args:
        - |
          symlink_config_to_site(){
            for file in /var/mnt/etc/config/* /var/mnt/etc/secret/*; do
              ln -sf $file /var/gerrit/etc/$(basename $file)
            done
          }

          mkdir -p /var/gerrit/etc
          symlink_config_to_site

          for dir in git {{ if eq .Values.gerrit.index.type "elasticsearch" }}index{{ end }}; do
            if [ ! -d /var/gerrit/$dir ]; then
              ln -sf /var/mnt/$dir /var/gerrit/
            fi
          done

          /var/tools/gerrit_init.py \
            -c /var/config/gerrit-init.yaml \
            -s /var/gerrit

          {{ if .Values.gerrit.service.ssh.enabled -}}
          rm -f /var/gerrit/etc/ssh_host*key*
          {{- end }}

          symlink_config_to_site

          {{ if not .Values.gerrit.persistence.enabled -}}
            FLAGS="$FLAGS --force"
          {{- end }}

          # TODO (Thomas): Do not enforce offline-reindexing, when online-reindexing
          # is configured.
          /var/tools/gerrit_reindex.py $FLAGS \
            -c /var/config/gerrit-init.yaml \
            -s /var/gerrit
        volumeMounts:
        - name: gerrit-site
          mountPath: "/var/gerrit"
        - name: git-repositories
          mountPath: "/var/mnt/git"
        - name: gerrit-init-config
          mountPath: "/var/config/gerrit-init.yaml"
          subPath: gerrit-init.yaml
        {{- if and .Values.gerrit.plugins.cache.enabled .Values.gerrit.plugins.downloaded }}
        - name: gerrit-plugin-cache
          mountPath: "/var/mnt/plugins"
        {{- end }}
        {{ if eq .Values.gerrit.index.type "elasticsearch" -}}
        - name: gerrit-index-config
          mountPath: "/var/mnt/index"
        {{- end }}
        - name: gerrit-config
          mountPath: "/var/mnt/etc/config"
        - name: gerrit-secure-config
          mountPath: "/var/mnt/etc/secret"
        {{ if .Values.caCert -}}
        - name: tls-ca
          subPath: ca.crt
          mountPath: "/var/mnt/etc/ca.crt"
        {{- end }}
      containers:
      - name: gerrit
        image: {{ template "registry" . }}{{ .Values.gerrit.images.gerrit }}:{{ .Values.images.version }}
        imagePullPolicy: {{ .Values.images.imagePullPolicy }}
        ports:
        - name: gerrit-port
          containerPort: 8080
        {{- if .Values.gerrit.service.ssh.enabled }}
        - name: gerrit-ssh
          containerPort: 29418
        {{- end }}
        volumeMounts:
        - name: gerrit-site
          mountPath: "/var/gerrit"
        - name: git-repositories
          mountPath: "/var/mnt/git"
        {{ if eq .Values.gerrit.index.type "elasticsearch" -}}
        - name: gerrit-index-config
          mountPath: "/var/mnt/index"
        {{- end }}
        - name: gerrit-config
          mountPath: "/var/mnt/etc/config"
        - name: gerrit-secure-config
          mountPath: "/var/mnt/etc/secret"
        resources:
{{ toYaml .Values.gerrit.resources | indent 10 }}
        livenessProbe:
          httpGet:
            path: /config/server/healthcheck~status
            port: gerrit-port
{{ toYaml .Values.gerrit.livenessProbe | indent 10 }}
        readinessProbe:
          httpGet:
            path: /config/server/healthcheck~status
            port: gerrit-port
{{ toYaml .Values.gerrit.readinessProbe | indent 10 }}
      volumes:
      {{ if not .Values.gerrit.persistence.enabled -}}
      - name: gerrit-site
        emptyDir: {}
      {{- end }}
      {{- if and .Values.gerrit.plugins.cache.enabled .Values.gerrit.plugins.downloaded }}
      - name: gerrit-plugin-cache
        persistentVolumeClaim:
          claimName: {{ .Release.Name }}-plugin-cache-pvc
      {{- end }}
      - name: git-repositories
        persistentVolumeClaim:
          {{- if .Values.gitRepositoryStorage.externalPVC.use }}
          claimName: {{ .Values.gitRepositoryStorage.externalPVC.name }}
          {{- else }}
          claimName: {{ .Release.Name }}-git-repositories-pvc
          {{- end }}
      - name: gerrit-init-config
        configMap:
          name: {{ .Release.Name }}-gerrit-init-configmap
      {{ if eq .Values.gerrit.index.type "elasticsearch" -}}
      - name: gerrit-index-config
        persistentVolumeClaim:
          claimName: {{ .Release.Name }}-gerrit-index-config-pvc
      {{- end }}
      - name: gerrit-config
        configMap:
          name: {{ .Release.Name }}-gerrit-configmap
      - name: gerrit-secure-config
        secret:
          secretName: {{ .Release.Name }}-gerrit-secure-config
      {{ if .Values.caCert -}}
      - name: tls-ca
        secret:
          secretName: {{ .Release.Name }}-tls-ca
      {{- end }}
  volumeClaimTemplates:
  {{ if .Values.gerrit.persistence.enabled -}}
  - metadata:
      name: gerrit-site
      labels:
        app: gerrit
        chart: {{ template "gerrit.chart" . }}
        heritage: {{ .Release.Service }}
        release: {{ .Release.Name }}
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: {{ .Values.gerrit.persistence.size }}
      storageClassName: {{ .Values.storageClasses.default.name }}
  {{- end }}
