| 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 |
| [ ! -L /var/gerrit/git ] && rm -rf /var/gerrit/git |
| 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(){ |
| {{ if .Values.gerrit.keystore -}} |
| ln -s /var/config/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 [ ! -d /var/gerrit/git ]; then |
| ln -sf /var/mnt/git /var/gerrit/ |
| fi |
| |
| /var/tools/gerrit_init.py \ |
| -c /var/config/gerrit-init.yaml \ |
| -s /var/gerrit |
| |
| symlink_config_to_site |
| volumeMounts: |
| - name: gerrit-site |
| mountPath: "/var/gerrit" |
| - name: git-filesystem |
| 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 }} |
| - name: gerrit-config |
| mountPath: "/var/config/gerrit.config" |
| subPath: gerrit.config |
| - name: gerrit-secure-config |
| mountPath: "/var/config/secure.config" |
| subPath: secure.config |
| {{ if .Values.gerrit.keystore -}} |
| - name: gerrit--secure-config |
| mountPath: "/var/config/keystore" |
| subPath: keystore |
| {{- end }} |
| containers: |
| - name: gerrit |
| image: {{ template "registry" . }}{{ .Values.gerrit.images.gerrit }}:{{ .Values.images.version }} |
| imagePullPolicy: {{ .Values.images.imagePullPolicy }} |
| ports: |
| - name: gerrit-port |
| containerPort: 8080 |
| volumeMounts: |
| - name: gerrit-site |
| mountPath: "/var/gerrit" |
| - name: git-filesystem |
| mountPath: "/var/mnt/git" |
| - name: gerrit-config |
| mountPath: "/var/config/gerrit.config" |
| subPath: gerrit.config |
| - name: gerrit-config |
| mountPath: "/var/config/replication.config" |
| subPath: replication.config |
| - name: gerrit-secure-config |
| mountPath: "/var/config/secure.config" |
| subPath: secure.config |
| {{ if .Values.gerrit.keystore -}} |
| - name: gerrit-secure-config |
| mountPath: "/var/config/keystore" |
| subPath: keystore |
| {{- end }} |
| resources: |
| {{ toYaml .Values.gerrit.resources | indent 10 }} |
| livenessProbe: |
| httpGet: |
| path: /config/server/version |
| port: gerrit-port |
| {{ toYaml .Values.gerrit.livenessProbe | indent 10 }} |
| readinessProbe: |
| httpGet: |
| path: /config/server/version |
| 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-filesystem |
| persistentVolumeClaim: |
| {{- if .Values.gitRepositoryStorage.externalPVC.use }} |
| claimName: {{ .Values.gitRepositoryStorage.externalPVC.name }} |
| {{- else }} |
| claimName: {{ .Release.Name }}-git-filesystem-pvc |
| {{- end }} |
| - name: gerrit-init-config |
| configMap: |
| name: {{ .Release.Name }}-gerrit-init-configmap |
| - name: gerrit-config |
| configMap: |
| name: {{ .Release.Name }}-gerrit-configmap |
| - name: gerrit-secure-config |
| secret: |
| secretName: {{ .Release.Name }}-gerrit-secure-config |
| 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 }} |