apiVersion: apps/v1 kind: Deployment metadata: name: {{ include "git-pages.fullname" . }} labels: {{- include "git-pages.componentLabels" . | nindent 4 }} spec: replicas: 1 selector: matchLabels: {{- include "git-pages.selectorLabels" . | nindent 6 }} template: metadata: labels: {{- include "git-pages.componentLabels" . | nindent 8 }} spec: securityContext: fsGroup: 1000 containers: - name: git-pages image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" imagePullPolicy: {{ .Values.image.pullPolicy }} command: - git-pages args: - -config - /etc/git-pages/config.toml {{- if .Values.pagesInsecure }} env: - name: PAGES_INSECURE value: "1" {{- end }} ports: - name: http containerPort: 3000 protocol: TCP - name: metrics containerPort: 3002 protocol: TCP volumeMounts: - name: config mountPath: /etc/git-pages readOnly: true {{- if .Values.persistence.enabled }} - name: data mountPath: /app/data {{- end }} readinessProbe: tcpSocket: port: http initialDelaySeconds: 3 periodSeconds: 10 livenessProbe: tcpSocket: port: http initialDelaySeconds: 10 periodSeconds: 20 resources: {{- toYaml .Values.resources | nindent 12 }} {{- if and .Values.persistence.enabled .Values.retention.enabled (eq .Values.retention.mode "sidecar") }} - name: retention image: "{{ .Values.retention.image.repository }}:{{ .Values.retention.image.tag }}" imagePullPolicy: {{ .Values.retention.image.pullPolicy }} securityContext: runAsUser: 0 command: - bash - -c - | set -euo pipefail echo "Retention sidecar: installing deps..." apt-get update -qq apt-get install -y --no-install-recommends curl jq python3 >/dev/null echo "Retention sidecar: ready" while true; do /scripts/retention-cleanup.sh echo "Retention sidecar: next run in 24h" sleep 86400 done env: - name: PAGES_URL value: http://localhost:3000 - name: PAGES_HOST value: {{ .Values.ingress.host | quote }} - name: RETENTION_CONFIG value: /etc/retention/retention.json - name: GITEA_API_URL value: {{ .Values.retention.giteaApiUrl | quote }} - name: GITEA_TOKEN valueFrom: secretKeyRef: name: git-pages-retention-gitea key: token volumeMounts: - name: retention-scripts mountPath: /scripts - name: retention-config mountPath: /etc/retention {{- end }} volumes: - name: config configMap: name: {{ include "git-pages.fullname" . }}-config {{- if .Values.persistence.enabled }} - name: data persistentVolumeClaim: claimName: {{ include "git-pages.fullname" . }}-data {{- end }} {{- if and .Values.persistence.enabled .Values.retention.enabled (eq .Values.retention.mode "sidecar") }} - name: retention-scripts configMap: name: git-pages-retention defaultMode: 0755 - name: retention-config configMap: name: git-pages-retention items: - key: retention.json path: retention.json {{- end }}