apiVersion: apps/v1 kind: Deployment metadata: name: {{ .Release.Name }}-{{ .Chart.Name }}-frontend labels: app: {{ .Release.Name }}-{{ .Chart.Name }}-frontend spec: replicas: 1 selector: matchLabels: app: {{ .Release.Name }}-{{ .Chart.Name }}-frontend template: metadata: name: {{ .Release.Name }}-{{ .Chart.Name }}-frontend labels: app: {{ .Release.Name }}-{{ .Chart.Name }}-frontend spec: automountServiceAccountToken: false containers: - name: {{ .Release.Name }}-{{ .Chart.Name }}-frontend image: "ghcr.io/patchmon/patchmon-frontend:{{ .Chart.AppVersion }}" imagePullPolicy: IfNotPresent ports: - containerPort: 3000 protocol: TCP name: http env: - name: BACKEND_URL value: "{{ .Release.Name }}-{{ .Chart.Name }}-backend-service" - name: BACKEND_PORT value: "80" {{- with .Values.patchmon.frontend.resources }} resources: {{- toYaml . | nindent 12 }} {{- end }} livenessProbe: httpGet: path: / port: 3000 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 3 readinessProbe: httpGet: path: / port: 3000 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 3 # The startup probe gates liveness/readiness. Startup budget = 5s * 30 = 150s. startupProbe: httpGet: path: / port: 3000 periodSeconds: 5 timeoutSeconds: 5 failureThreshold: 30 volumeMounts: - name: patchmon-volume mountPath: /usr/share/nginx/html/assets subPath: patchmon-assets restartPolicy: Always volumes: - name: patchmon-volume persistentVolumeClaim: claimName: {{ .Release.Name }}-{{ .Chart.Name }}-pvc