aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Roby <max@lil-mac.lan>2023-11-23 09:36:43 +0100
committerChris Lu <chrislusf@users.noreply.github.com>2023-11-24 06:40:19 -0800
commitc44149a88f8236e943752dbede102f1444bb2a1a (patch)
tree1b42e4f382e6322ba69ce3e8be4f61369a27aa79
parent7a50762b9ed05f1410a24f52571b49a25cd561eb (diff)
downloadseaweedfs-c44149a88f8236e943752dbede102f1444bb2a1a.tar.xz
seaweedfs-c44149a88f8236e943752dbede102f1444bb2a1a.zip
add a post-install hook for creating buckets
-rw-r--r--k8s/charts/seaweedfs/templates/post-install-bucket-hook.yaml71
-rw-r--r--k8s/charts/seaweedfs/values.yaml10
2 files changed, 81 insertions, 0 deletions
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