From c44149a88f8236e943752dbede102f1444bb2a1a Mon Sep 17 00:00:00 2001 From: Max Roby Date: Thu, 23 Nov 2023 09:36:43 +0100 Subject: [PATCH] add a post-install hook for creating buckets --- .../templates/post-install-bucket-hook.yaml | 71 +++++++++++++++++++ k8s/charts/seaweedfs/values.yaml | 10 +++ 2 files changed, 81 insertions(+) create mode 100644 k8s/charts/seaweedfs/templates/post-install-bucket-hook.yaml diff --git a/k8s/charts/seaweedfs/templates/post-install-bucket-hook.yaml b/k8s/charts/seaweedfs/templates/post-install-bucket-hook.yaml new file mode 100644 index 000000000..465bb6690 --- /dev/null +++ b/k8s/charts/seaweedfs/templates/post-install-bucket-hook.yaml @@ -0,0 +1,71 @@ +{{- if .Values.master.enabled }} +{{- if .Values.filer.s3.enabled }} +--- +apiVersion: batch/v1 +kind: Job +metadata: + name: "{{ $.Release.Name }}" + labels: + app.kubernetes.io/managed-by: {{ .Release.Service | quote }} + app.kubernetes.io/instance: {{ .Release.Name | quote }} + annotations: + "helm.sh/hook": post-install + "helm.sh/hook-weight": "-5" + "helm.sh/hook-delete-policy": hook-succeeded +spec: + template: + metadata: + name: "{{ .Release.Name }}" + labels: + app.kubernetes.io/managed-by: {{ .Release.Service | quote }} + app.kubernetes.io/instance: {{ .Release.Name | quote }} + spec: + restartPolicy: Never + containers: + - name: post-install-job + image: {{ template "master.image" . }} + env: + - name: WEED_CLUSTER_DEFAULT + value: "sw" + - name: WEED_CLUSTER_SW_MASTER + value: "seaweedfs-master.seaweedfs:9333" + - name: WEED_CLUSTER_SW_FILER + value: "seaweedfs-filer-client.seaweedfs:8888" + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: SEAWEEDFS_FULLNAME + value: "{{ template "seaweedfs.name" . }}" + command: + - "/bin/sh" + - "-ec" + {{- range $.Values.filer.s3.createBuckets }} + - | + exec /bin/echo \ + "s3.bucket.create --name {{ . }}" |\ + /usr/bin/weed shell + {{- end }} + ports: + - containerPort: {{ .Values.master.port }} + name: swfs-master + {{- if and .Values.global.monitoring.enabled .Values.master.metricsPort }} + - containerPort: {{ .Values.master.metricsPort }} + name: metrics + {{- end }} + - containerPort: {{ .Values.master.grpcPort }} + #name: swfs-master-grpc + {{- if .Values.master.readinessProbe.enabled }} + {{- $hostpath_exists := include "master.hostpath_exists" . -}} + {{- $existing_claims := include "master.existing_claims" . -}} +{{- end }} +{{- end }} +{{- end }} diff --git a/k8s/charts/seaweedfs/values.yaml b/k8s/charts/seaweedfs/values.yaml index 4d90d48eb..6584a9b3c 100644 --- a/k8s/charts/seaweedfs/values.yaml +++ b/k8s/charts/seaweedfs/values.yaml @@ -576,6 +576,16 @@ filer: # should have a secret key called seaweedfs_s3_config with an inline json configure existingConfigSecret: "" auditLogConfig: {} + # You may specify buckets and users to be created during the install process + # createBuckets: + # - bucketA + # - bucketB + # createUsers: + # - name: friend + # actions: "read,write,list" + # buckets: "bucketA" + # secretName: friend-s3-creds + s3: enabled: false