apiVersion: batch/v1
kind: Job
metadata:
  name: {{ .Release.Name }}-git-repositories-init
  labels:
    app: gerrit-replica
    chart: {{ template "gerrit-replica.chart" . }}
    heritage: {{ .Release.Service }}
    release: {{ .Release.Name }}
spec:
  template:
    metadata:
      labels:
        app: gerrit-replica
        chart: {{ template "gerrit-replica.chart" . }}
        heritage: {{ .Release.Service }}
        release: {{ .Release.Name }}
      {{ if .Values.istio.enabled -}}
      annotations:
        sidecar.istio.io/inject: "false"
      {{- end }}
    spec:
      securityContext:
        fsGroup: 100
      {{ if .Values.images.registry.ImagePullSecret.name -}}
      imagePullSecrets:
      - name: {{ .Values.images.registry.ImagePullSecret.name }}
      {{- end }}
      {{- if .Values.nfsWorkaround.enabled }}
      initContainers:
      - name: nfs-init
        image: busybox
        command:
        - sh
        - -c
        args:
        - |
          chown -R 1000:100 /var/mnt
        volumeMounts:
        - name: git-repositories
          mountPath: "/var/mnt/git"
        - name: logs
          mountPath: "/var/mnt/logs"
        - name: nfs-config
          mountPath: "/etc/idmapd.conf"
          subPath: idmapd.conf
      {{- end }}
      containers:
      - name: create-repositories
        image: {{ template "registry" . }}{{ .Values.gerritReplica.images.gerritInit }}:{{ .Values.images.version }}
        imagePullPolicy: {{ .Values.images.imagePullPolicy }}
        command:
        - /bin/ash
        - -ce
        args:
        - |
          if test -d /var/mnt/git/All-Projects.git && \
              test -d /var/mnt/git/All-Users.git; then
            echo "Repositories already exist. Won't perform initial creation."
            exit 0
          fi

          mkdir -p /var/gerrit/etc
          ln -sf /var/config/gerrit.config /var/gerrit/etc/gerrit.config
          ln -sf /var/mnt/git /var/gerrit/

          python3 /var/tools/gerrit-initializer \
            -c /var/config/gerrit-init.yaml \
            -s /var/gerrit \
            init
        env:
        - name: POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        volumeMounts:
        - name: gerrit-site
          mountPath: "/var/gerrit"
        - name: git-repositories
          mountPath: "/var/mnt/git"
        - name: logs
          subPathExpr: "gerrit-replica/$(POD_NAME)"
          mountPath: "/var/gerrit/logs"
        - name: gerrit-init-config
          mountPath: "/var/config/gerrit-init.yaml"
          subPath: gerrit-init.yaml
        - name: gerrit-config
          mountPath: "/var/config/gerrit.config"
          subPath: gerrit.config
        {{ if .Values.caCert -}}
        - name: tls-ca
          subPath: ca.crt
          mountPath: "/var/config/ca.crt"
        {{- end }}
      volumes:
      - name: gerrit-site
        emptyDir: {}
      - name: git-repositories
        persistentVolumeClaim:
          {{- if .Values.gitRepositoryStorage.externalPVC.use }}
          claimName: {{ .Values.gitRepositoryStorage.externalPVC.name }}
          {{- else }}
          claimName: {{ .Release.Name }}-git-repositories-pvc
          {{- end }}
      - name: logs
        {{ if .Values.logStorage.enabled -}}
        persistentVolumeClaim:
          {{- if .Values.logStorage.externalPVC.use }}
          claimName: {{ .Values.logStorage.externalPVC.name }}
          {{- else }}
          claimName: {{ .Release.Name }}-log-pvc
          {{- end }}
        {{ else -}}
        emptyDir: {}
        {{- end }}
      - name: gerrit-init-config
        configMap:
          name: {{ .Release.Name }}-gerrit-init-configmap
      - name: gerrit-config
        configMap:
          name: {{ .Release.Name }}-gerrit-replica-configmap
      - name: tls-ca
        secret:
          secretName: {{ .Release.Name }}-tls-ca
      {{- if .Values.nfsWorkaround.enabled }}
      - name: nfs-config
        configMap:
          name: {{ .Release.Name }}-nfs-configmap
      {{- end }}
      restartPolicy: Never
