deploy-templates/templates/gerrit-deployment.yaml (100 lines of code) (raw):

kind: Deployment apiVersion: apps/v1 metadata: labels: app: {{ .Values.gerrit.name }} {{- include "gerrit-operator.metaLabels" . | nindent 4 }} {{- with .Values.gerrit.annotations }} annotations: {{- toYaml . | nindent 4 }} {{- end }} name: {{ .Values.gerrit.name }} spec: replicas: 1 selector: matchLabels: app: {{ .Values.gerrit.name }} template: metadata: annotations: backup.velero.io/backup-volumes: {{ .Values.gerrit.name }}-data sidecar.istio.io/inject: "false" labels: app: {{ .Values.gerrit.name }} collect.logs: "plain-text" spec: volumes: - name: {{ .Values.gerrit.name }}-data persistentVolumeClaim: claimName: {{ .Values.gerrit.name }}-data containers: - name: {{ .Values.gerrit.name }} image: {{ template "imageRegistry" . -}} {{ .Values.gerrit.image.name }}:{{ .Values.gerrit.image.version }} ports: - containerPort: {{ .Values.gerrit.port }} protocol: TCP env: - name: HTTPD_LISTENURL value: 'proxy-https://*:{{ .Values.gerrit.port }}/{{ .Values.gerrit.basePath }}' - name: WEBURL value: {{ template "admin-tools.gerritUrl" . }} - name: GERRIT_INIT_ARGS value: '--install-plugin=delete-project --install-plugin=plugin-manager --install-plugin=commit-message-length-validator --install-plugin=download-commands --install-plugin=hooks --install-plugin=reviewnotes --install-plugin=singleusergroup --install-plugin=replication' - name: LISTEN_ADDR value: '*:{{ .Values.gerrit.sshPort }}' {{- if .Values.keycloakIntegration.enabled }} - name: AUTH_TYPE value: OAUTH - name: OAUTH_KEYCLOAK_CLIENT_ID value: {{ .Values.keycloakIntegration.client.name }} - name: OAUTH_KEYCLOAK_REALM value: {{ template "keycloak.realm" . }} - name: OAUTH_KEYCLOAK_ROOT_URL value: 'https://{{ .Values.keycloak.host }}' {{- if not .Values.keycloakIntegration.client.public }} - name: OAUTH_KEYCLOAK_CLIENT_SECRET valueFrom: secretKeyRef: name: {{ .Values.keycloakIntegration.client.secretName }} key: clientSecret {{- end }} {{- end }} resources: {{ toYaml .Values.gerrit.resources | indent 12 }} volumeMounts: - name: {{ .Values.gerrit.name }}-data mountPath: /var/gerrit/review_site readinessProbe: httpGet: path: /{{ .Values.gerrit.basePath }}/projects/ port: 8080 scheme: HTTP timeoutSeconds: 1 periodSeconds: 10 successThreshold: 1 failureThreshold: 10 terminationMessagePath: /dev/termination-log terminationMessagePolicy: File imagePullPolicy: Always restartPolicy: Always terminationGracePeriodSeconds: 30 dnsPolicy: ClusterFirst serviceAccountName: {{ .Values.gerrit.serviceAccountName }} schedulerName: default-scheduler {{- with .Values.gerrit.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.gerrit.affinity }} affinity: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.gerrit.tolerations }} tolerations: {{- toYaml . | nindent 8 }} {{- end }} strategy: type: Recreate revisionHistoryLimit: 10 progressDeadlineSeconds: 600