{{- $nodeSelector := dig .Values.werf.env .Values.seaweedfs.nodeSelector._default .Values.seaweedfs.nodeSelector }} {{- $tolerations := dig .Values.werf.env .Values.seaweedfs.tolerations._default .Values.seaweedfs.tolerations }} --- apiVersion: apps/v1 kind: StatefulSet metadata: name: {{ .Chart.Name }} labels: app: {{ .Chart.Name }} spec: replicas: 1 selector: matchLabels: app: {{ .Chart.Name }} template: metadata: labels: app: {{ .Chart.Name }} annotations: secrets-store.deckhouse.io/role: "{{ .Values.werf.env }}-{{ .Chart.Name }}-role" secrets-store.deckhouse.io/env-from-path: "{{ .Values.werf.env }}/data/{{ .Chart.Name }}" spec: serviceAccountName: {{ .Chart.Name }}-sa imagePullSecrets: - name: registrysecret {{- if $nodeSelector }} nodeSelector: {{ toYaml $nodeSelector | nindent 8 }} {{- end }} {{- if $tolerations }} tolerations: {{ toYaml $tolerations | nindent 6 }} {{- end }} containers: - name: seaweedfs image: {{ .Values.werf.image.seaweedfs }} command: - weed - server - -dir=/data - -s3 - -s3.config=/mnt/secrets/s3.json - -metricsPort - {{ .Values.seaweedfs.metricsPort | quote }} imagePullPolicy: IfNotPresent resources: requests: cpu: {{ dig .Values.werf.env .Values.seaweedfs.resources.requests.cpu._default .Values.seaweedfs.resources.requests.cpu }} memory: {{ dig .Values.werf.env .Values.seaweedfs.resources.requests.memory._default .Values.seaweedfs.resources.requests.memory }} limits: memory: {{ dig .Values.werf.env .Values.seaweedfs.resources.limits.memory._default .Values.seaweedfs.resources.limits.memory }} volumeMounts: - name: data mountPath: /data subPath: seaweedfs - name: secrets mountPath: "/mnt/secrets" readinessProbe: tcpSocket: port: {{ dig .Values.werf.env .Values.seaweedfs.port._default .Values.seaweedfs.port }} initialDelaySeconds: 5 timeoutSeconds: 1 livenessProbe: tcpSocket: port: {{ dig .Values.werf.env .Values.seaweedfs.port._default .Values.seaweedfs.port }} initialDelaySeconds: 30 periodSeconds: 5 ports: - name: app containerPort: {{ dig .Values.werf.env .Values.seaweedfs.port._default .Values.seaweedfs.port }} - name: http-metrics containerPort: {{ .Values.seaweedfs.metricsPort }} volumes: - name: secrets csi: driver: secrets-store.csi.deckhouse.io volumeAttributes: secretsStoreImport: {{ .Chart.Name }}-ssi volumeClaimTemplates: - metadata: name: data spec: accessModes: - ReadWriteOnce resources: requests: storage: {{ dig .Values.werf.env .Values.seaweedfs.storage._default .Values.seaweedfs.storage }} storageClassName: {{ dig .Values.werf.env .Values.seaweedfs.storageClassName._default .Values.seaweedfs.storageClassName }} --- apiVersion: v1 kind: Service metadata: name: {{ .Chart.Name }} labels: prometheus.deckhouse.io/custom-target: {{ .Chart.Name }} spec: selector: app: {{ .Chart.Name }} ports: - name: app port: {{ dig .Values.werf.env .Values.seaweedfs.port._default .Values.seaweedfs.port }} - name: http-metrics port: {{ .Values.seaweedfs.metricsPort }}