apiVersion: apps/v1 kind: StatefulSet metadata: name: {{ include "oxicloud.fullname" . }} labels: {{- include "oxicloud.labels" . | nindent 4 }} spec: serviceName: {{ include "oxicloud.fullname" . }}-headless replicas: {{ .Values.replicaCount }} selector: matchLabels: {{- include "oxicloud.selectorLabels" . | nindent 6 }} template: metadata: labels: {{- include "oxicloud.selectorLabels" . | nindent 8 }} spec: {{- if and .Values.persistence.enabled .Values.persistence.fsGroup }} securityContext: fsGroup: {{ .Values.persistence.fsGroup }} {{- end }} containers: - name: oxicloud-app image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" imagePullPolicy: {{ .Values.image.pullPolicy }} ports: - name: http containerPort: 8086 protocol: TCP envFrom: - configMapRef: name: {{ include "oxicloud.fullname" . }}-config {{- if .Values.envs }} env: {{- toYaml .Values.envs | nindent 12 }} {{- end }} volumeMounts: - name: storage-data mountPath: {{ .Values.persistence.mountPath | default "/app/storage" }} {{- if not .Values.persistence.enabled }} volumes: - name: storage-data emptyDir: {} {{- end }} {{- if .Values.persistence.enabled }} volumeClaimTemplates: - metadata: name: storage-data spec: accessModes: - {{ .Values.persistence.accessMode }} {{- if .Values.persistence.storageClass }} storageClassName: {{ .Values.persistence.storageClass }} {{- end }} resources: requests: storage: {{ .Values.persistence.size }} {{- end }}