* refactor: move helm templates into respective service folders * fix: update template path reference in filer-statefulset for s3-secret
123 lines
4.6 KiB
YAML
123 lines
4.6 KiB
YAML
{{- if .Values.master.enabled }}
|
|
{{- if .Values.filer.s3.enabled }}
|
|
{{- if .Values.filer.s3.createBuckets }}
|
|
---
|
|
apiVersion: batch/v1
|
|
kind: Job
|
|
metadata:
|
|
name: "{{ $.Release.Name }}-bucket-hook"
|
|
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
|
|
{{- if .Values.filer.podSecurityContext.enabled }}
|
|
securityContext: {{- omit .Values.filer.podSecurityContext "enabled" | toYaml | nindent 8 }}
|
|
{{- end }}
|
|
containers:
|
|
- name: post-install-job
|
|
image: {{ template "master.image" . }}
|
|
env:
|
|
- name: WEED_CLUSTER_DEFAULT
|
|
value: "sw"
|
|
- name: WEED_CLUSTER_SW_MASTER
|
|
value: "{{ template "seaweedfs.name" . }}-master.{{ .Release.Namespace }}:{{ .Values.master.port }}"
|
|
- name: WEED_CLUSTER_SW_FILER
|
|
value: "{{ template "seaweedfs.name" . }}-filer-client.{{ .Release.Namespace }}:{{ .Values.filer.port }}"
|
|
- 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"
|
|
- |
|
|
wait_for_service() {
|
|
local url=$1
|
|
local max_attempts=60 # 5 minutes total (5s * 60)
|
|
local attempt=1
|
|
|
|
echo "Waiting for service at $url..."
|
|
while [ $attempt -le $max_attempts ]; do
|
|
if wget -q --spider "$url" >/dev/null 2>&1; then
|
|
echo "Service at $url is up!"
|
|
return 0
|
|
fi
|
|
echo "Attempt $attempt: Service not ready yet, retrying in 5s..."
|
|
sleep 5
|
|
attempt=$((attempt + 1))
|
|
done
|
|
echo "Service at $url failed to become ready within 5 minutes"
|
|
exit 1
|
|
}
|
|
wait_for_service "http://$WEED_CLUSTER_SW_MASTER{{ .Values.master.readinessProbe.httpGet.path }}"
|
|
wait_for_service "http://$WEED_CLUSTER_SW_FILER{{ .Values.filer.readinessProbe.httpGet.path }}"
|
|
{{- range $reg, $props := $.Values.filer.s3.createBuckets }}
|
|
exec /bin/echo \
|
|
"s3.bucket.create --name {{ $props.name }}" |\
|
|
/usr/bin/weed shell
|
|
{{- end }}
|
|
{{- range $reg, $props := $.Values.filer.s3.createBuckets }}
|
|
{{- if $props.anonymousRead }}
|
|
exec /bin/echo \
|
|
"s3.configure --user anonymous \
|
|
--buckets {{ $props.name }} \
|
|
--actions Read \
|
|
--apply true" |\
|
|
/usr/bin/weed shell
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- if .Values.filer.s3.enableAuth }}
|
|
volumeMounts:
|
|
- name: config-users
|
|
mountPath: /etc/sw
|
|
readOnly: true
|
|
{{- 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.filer.containerSecurityContext.enabled }}
|
|
securityContext: {{- omit .Values.filer.containerSecurityContext "enabled" | toYaml | nindent 12 }}
|
|
{{- end }}
|
|
{{- if .Values.filer.s3.enableAuth }}
|
|
volumes:
|
|
- name: config-users
|
|
secret:
|
|
defaultMode: 420
|
|
{{- if not (empty .Values.filer.s3.existingConfigSecret) }}
|
|
secretName: {{ .Values.filer.s3.existingConfigSecret }}
|
|
{{- else }}
|
|
secretName: seaweedfs-s3-secret
|
|
{{- end }}
|
|
{{- end }}{{/** if .Values.filer.s3.enableAuth **/}}
|
|
{{- end }}{{/** if .Values.master.enabled **/}}
|
|
{{- end }}{{/** if .Values.filer.s3.enabled **/}}
|
|
{{- end }}{{/** if .Values.filer.s3.createBuckets **/}}
|