commit 7b548f3f0ac813aa37d18d7f9278f6c4f969bda2 Author: Мостовой Владимир Андреевич Date: Wed Sep 9 17:09:02 2026 +0300 [flant] init repo diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6c74682 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*.swp +.werf_secret_key +.idea diff --git a/.helm/templates/03-serviceaccount.yaml b/.helm/templates/03-serviceaccount.yaml new file mode 100644 index 0000000..631e816 --- /dev/null +++ b/.helm/templates/03-serviceaccount.yaml @@ -0,0 +1,7 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ .Chart.Name }}-sa + annotations: + werf.io/weight: "-31" \ No newline at end of file diff --git a/.helm/templates/05-secretstoreimport.yaml b/.helm/templates/05-secretstoreimport.yaml new file mode 100644 index 0000000..9dd96e0 --- /dev/null +++ b/.helm/templates/05-secretstoreimport.yaml @@ -0,0 +1,13 @@ +--- +apiVersion: deckhouse.io/v1alpha1 +kind: SecretsStoreImport +metadata: + name: {{ .Chart.Name }}-ssi +spec: + type: CSI + role: "{{ .Values.werf.env }}-{{ .Chart.Name }}-role" + files: + - name: "s3.json" + source: + path: "{{ .Values.werf.env }}/data/{{ .Chart.Name }}" + key: "CONFIG" diff --git a/.helm/templates/10-seaweedfs.yaml b/.helm/templates/10-seaweedfs.yaml new file mode 100644 index 0000000..fdbd776 --- /dev/null +++ b/.helm/templates/10-seaweedfs.yaml @@ -0,0 +1,101 @@ +{{- $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 }} diff --git a/.helm/values.yaml b/.helm/values.yaml new file mode 100644 index 0000000..0762cea --- /dev/null +++ b/.helm/values.yaml @@ -0,0 +1,29 @@ +seaweedfs: + port: + _default: "8333" + metricsPort: "9327" + storage: + _default: 10Gi + preprod: 50Gi + prod: 100Gi + storageClassName: + _default: local-storage-class-worker + resources: + requests: + cpu: + _default: 200m + memory: + _default: 512Mi + preprod: 1Gi + prod: 2Gi + limits: + memory: + _default: 1Gi + preprod: 2Gi + prod: 4Gi + + nodeSelector: + _default: + node-role.deckhouse.io/worker: "" + tolerations: + _default: [] diff --git a/werf.yaml b/werf.yaml new file mode 100644 index 0000000..94a0b4b --- /dev/null +++ b/werf.yaml @@ -0,0 +1,9 @@ +--- +configVersion: 1 +project: seaweedfs +deploy: + namespace: '[[ env ]]' + helmRelease: '[[ project ]]-[[ env ]]' +--- +image: seaweedfs +from: registry.lukoil.ru:8123/external-pub/chrislusf/seaweedfs:3.99