| apiVersion: batch/v1 |
| kind: CronJob |
| metadata: |
| name: {{ .Release.Name }}-git-gc |
| labels: |
| app.kubernetes.io/component: git-gc |
| app.kubernetes.io/instance: {{ .Release.Name }} |
| chart: {{ template "gerrit.chart" . }} |
| heritage: {{ .Release.Service }} |
| release: {{ .Release.Name }} |
| {{- if .Values.additionalLabels }} |
| {{ toYaml .Values.additionalLabels | indent 4 }} |
| {{- end }} |
| spec: |
| schedule: {{ .Values.gitGC.schedule | quote }} |
| concurrencyPolicy: "Forbid" |
| jobTemplate: |
| spec: |
| template: |
| metadata: |
| labels: |
| app.kubernetes.io/component: git-gc |
| app.kubernetes.io/instance: {{ .Release.Name }} |
| chart: {{ template "gerrit.chart" . }} |
| heritage: {{ .Release.Service }} |
| release: {{ .Release.Name }} |
| {{- if .Values.additionalLabels }} |
| {{ toYaml .Values.additionalLabels | indent 12 }} |
| {{- end }} |
| {{- if .Values.gitGC.additionalPodLabels }} |
| {{ toYaml .Values.gitGC.additionalPodLabels | indent 12 }} |
| {{- end }} |
| annotations: |
| cluster-autoscaler.kubernetes.io/safe-to-evict: "false" |
| spec: |
| {{- with .Values.gitGC.tolerations }} |
| tolerations: |
| {{- toYaml . | nindent 10 }} |
| {{- end }} |
| {{- with .Values.gitGC.nodeSelector }} |
| nodeSelector: |
| {{- toYaml . | nindent 12 }} |
| {{- end }} |
| {{- with .Values.gitGC.affinity }} |
| affinity: |
| {{- toYaml . | nindent 12 }} |
| {{- end }} |
| restartPolicy: OnFailure |
| securityContext: |
| runAsUser: 1000 |
| fsGroup: 100 |
| {{ if .Values.images.registry.ImagePullSecret.name -}} |
| imagePullSecrets: |
| - name: {{ .Values.images.registry.ImagePullSecret.name }} |
| {{- range .Values.images.additionalImagePullSecrets }} |
| - name: {{ . }} |
| {{- end }} |
| {{- end }} |
| initContainers: |
| {{- if and .Values.nfsWorkaround.enabled .Values.nfsWorkaround.chownOnStartup }} |
| - name: nfs-init |
| image: {{ .Values.images.busybox.registry -}}/busybox:{{- .Values.images.busybox.tag }} |
| command: |
| - sh |
| - -c |
| args: |
| - | |
| chown 1000:100 /var/mnt/logs |
| chown 1000:100 /var/mnt/git |
| env: |
| - name: POD_NAME |
| valueFrom: |
| fieldRef: |
| fieldPath: metadata.name |
| volumeMounts: |
| - name: logs |
| subPathExpr: "git-gc/$(POD_NAME)" |
| mountPath: "/var/mnt/logs" |
| - name: git-repositories |
| mountPath: "/var/mnt/git" |
| {{- if .Values.nfsWorkaround.idDomain }} |
| - name: nfs-config |
| mountPath: "/etc/idmapd.conf" |
| subPath: idmapd.conf |
| {{- end }} |
| {{- end }} |
| containers: |
| - name: git-gc |
| imagePullPolicy: {{ .Values.images.imagePullPolicy }} |
| image: {{ template "registry" . }}{{ .Values.gitGC.image }}:{{ .Values.images.version }} |
| env: |
| - name: POD_NAME |
| valueFrom: |
| fieldRef: |
| fieldPath: metadata.name |
| resources: |
| {{ toYaml .Values.gitGC.resources | indent 14 }} |
| volumeMounts: |
| - name: git-repositories |
| mountPath: "/var/gerrit/git" |
| - name: logs |
| subPathExpr: "git-gc/$(POD_NAME)" |
| mountPath: "/var/log/git" |
| {{- if and .Values.nfsWorkaround.enabled .Values.nfsWorkaround.idDomain }} |
| - name: nfs-config |
| mountPath: "/etc/idmapd.conf" |
| subPath: idmapd.conf |
| {{- end }} |
| volumes: |
| - 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 }} |
| {{- if and .Values.nfsWorkaround.enabled .Values.nfsWorkaround.idDomain }} |
| - name: nfs-config |
| configMap: |
| name: {{ .Release.Name }}-nfs-configmap |
| {{- end }} |