apiVersion: apps/v1 kind: StatefulSet metadata: name: {{ include "pykms.name" . }} labels: app: {{ include "pykms.name" . }} spec: serviceName: {{ include "pykms.name" . }} replicas: {{ .Values.replicaCount }} selector: matchLabels: app: {{ include "pykms.name" . }} template: metadata: labels: app: {{ include "pykms.name" . }} spec: containers: - name: {{ include "pykms.name" . }} image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" imagePullPolicy: {{ .Values.image.pullPolicy }} envFrom: - configMapRef: name: {{ include "pykms.environment" . }} ports: - name: http containerPort: 8080 protocol: TCP - name: kms containerPort: 1688 protocol: TCP volumeMounts: - name: data mountPath: /home/py-kms/db {{- if .Values.resources }} resources: {{- if .Values.resources.requests }} requests: {{- if .Values.resources.requests.cpu }} cpu: "{{ .Values.resources.requests.cpu }}" {{- end }} {{- if .Values.resources.requests.memory }} memory: "{{ .Values.resources.requests.memory }}" {{- end }} {{- end }} {{- if .Values.resources.limits }} limits: {{- if .Values.resources.limits.cpu }} cpu: "{{ .Values.resources.limits.cpu }}" {{- end }} {{- if .Values.resources.limits.memory }} memory: "{{ .Values.resources.limits.memory }}" {{- end }} {{- end }} {{- end }} startupProbe: httpGet: port: http path: /readyz failureThreshold: 30 periodSeconds: 1 livenessProbe: httpGet: path: /livez port: http periodSeconds: 20 volumeClaimTemplates: - metadata: name: data spec: accessModes: {{ .Values.persistence.accessModes }} resources: requests: storage: {{ .Values.persistence.size }} {{- if and .Values.persistence.storageClass (ne .Values.persistence.storageClass "") }} storageClassName: {{ .Values.persistence.storageClass | quote }} {{- end }}