| 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 }} |
| {{- range .Values.images.additionalImagePullSecrets }} |
| - name: {{ . }} |
| {{- end }} |
| {{- end }} |
| {{- if .Values.nfsWorkaround.enabled }} |
| initContainers: |
| - name: nfs-init |
| image: {{ .Values.images.busybox.registry -}}/busybox:{{- .Values.images.busybox.tag }} |
| 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 |
| {{ if .Values.caCert -}} |
| - name: tls-ca |
| secret: |
| secretName: {{ .Release.Name }}-tls-ca |
| {{- end }} |
| {{- if .Values.nfsWorkaround.enabled }} |
| - name: nfs-config |
| configMap: |
| name: {{ .Release.Name }}-nfs-configmap |
| {{- end }} |
| restartPolicy: Never |