apiVersion: apps/v1 kind: StatefulSet metadata: name: {{ include "unifi.name" . }} labels: {{- include "unifi.labels" . | nindent 4 }} spec: serviceName: {{ include "unifi.name" . }} replicas: {{ .Values.replicaCount }} selector: matchLabels: app.kubernetes.io/name: {{ include "unifi.name" . }} template: metadata: labels: app.kubernetes.io/name: {{ include "unifi.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} spec: {{- if .Values.config.hostNetwork }} hostNetwork: true dnsPolicy: ClusterFirstWithHostNet {{- end }} containers: - name: unifi image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" imagePullPolicy: {{ .Values.image.pullPolicy }} envFrom: - configMapRef: name: {{ include "unifi.name.config" . }} - secretRef: name: {{ include "unifi.name.secret" . }} ports: {{- range .Values.service.ports }} - name: {{ .name }} containerPort: {{ .targetPort }} protocol: {{ default "TCP" .protocol }} {{- end }} volumeMounts: - name: data mountPath: /config resources: {{- toYaml .Values.resources | nindent 12 }} volumeClaimTemplates: - metadata: name: data spec: accessModes: {{ toYaml .Values.persistence.accessModes | nindent 10 }} resources: requests: storage: {{ .Values.persistence.size }} {{- if .Values.persistence.storageClass }} storageClassName: {{ .Values.persistence.storageClass }} {{- end }}