From c2fb1d24901b6a014a0e251b3f6e28c93fae59f8 Mon Sep 17 00:00:00 2001 From: Konstantin Lebedev Date: Sun, 25 Oct 2020 20:10:23 +0500 Subject: [PATCH 1/5] add k8s cronjob --- k8s/seaweedfs/templates/_helpers.tpl | 14 ++++++++ k8s/seaweedfs/templates/cronjob.yaml | 51 ++++++++++++++++++++++++++++ k8s/seaweedfs/values.yaml | 10 ++++++ 3 files changed, 75 insertions(+) create mode 100644 k8s/seaweedfs/templates/cronjob.yaml diff --git a/k8s/seaweedfs/templates/_helpers.tpl b/k8s/seaweedfs/templates/_helpers.tpl index 04a782f8b..44d480e66 100644 --- a/k8s/seaweedfs/templates/_helpers.tpl +++ b/k8s/seaweedfs/templates/_helpers.tpl @@ -111,4 +111,18 @@ Inject extra environment vars in the format key:value, if populated {{- $tag := .Values.global.imageTag | toString -}} {{- printf "%s%s%s:%s" $registryName $repositoryName $name $tag -}} {{- end -}} +{{- end -}} + +{{/* Return the proper cronjob image */}} +{{- define "cronjob.image" -}} +{{- if .Values.cronjob.imageOverride -}} +{{- $imageOverride := .Values.cronjob.imageOverride -}} +{{- printf "%s" $imageOverride -}} +{{- else -}} +{{- $registryName := default .Values.image.registry .Values.global.localRegistry | toString -}} +{{- $repositoryName := .Values.image.repository | toString -}} +{{- $name := .Values.global.imageName | toString -}} +{{- $tag := .Values.global.imageTag | toString -}} +{{- printf "%s%s%s:%s" $registryName $repositoryName $name $tag -}} +{{- end -}} {{- end -}} \ No newline at end of file diff --git a/k8s/seaweedfs/templates/cronjob.yaml b/k8s/seaweedfs/templates/cronjob.yaml new file mode 100644 index 000000000..6abc6003a --- /dev/null +++ b/k8s/seaweedfs/templates/cronjob.yaml @@ -0,0 +1,51 @@ +{{- if .Values.cronjob }} +{{- if .Values.cronjob.enabled }} +apiVersion: batch/v1beta1 +kind: CronJob +metadata: + name: {{ include "seaweedfs.fullname" . }}-cronjob +spec: + schedule: "{{ .Values.cronjob.schedule }}" + concurrencyPolicy: Forbid + failedJobsHistoryLimit: 2 + successfulJobsHistoryLimit: 2 + startingDeadlineSeconds: 300 + jobTemplate: + spec: + backoffLimit: 2 + template: + spec: + {{- with .Values.cronjob.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.cronjob.tolerations }} + tolerations: + {{- toYaml . | nindent 12 }} + {{- end }} + restartPolicy: OnFailure + containers: + - name: shell + image: {{ template "cronjob.image" . }} + imagePullPolicy: {{ default "IfNotPresent" .Values.global.imagePullPolicy }} + resources: + {{- toYaml .Values.cronjob.resources| nindent 16 }} + command: + - sh + - -c + - | + set -ex + echo -e "lock\nvolume.balance -force -dataCenter {{ .Values.dataCenter }}\nvolume.fix.replication\nunlock\n" | \ + /usr/bin/weed shell \ + {{- if .Values.cronjob.master }} + -master {{ .Values.cronjob.master }} \ + {{- else }} + -master {{ template "seaweedfs.name" . }}-master.{{ .Release.Namespace }}.svc:{{ .Values.master.port }} \ + {{- end }} + {{- if .Values.cronjob.filer }} + -filer {{ .Values.cronjob.filer }} + {{- else }} + -filer {{ template "seaweedfs.name" . }}-filer.{{ .Release.Namespace }}.svc:{{ .Values.filer.port }} + {{- end }} +{{- end }} +{{- end }} \ No newline at end of file diff --git a/k8s/seaweedfs/values.yaml b/k8s/seaweedfs/values.yaml index 35ce49f2e..aefa75501 100644 --- a/k8s/seaweedfs/values.yaml +++ b/k8s/seaweedfs/values.yaml @@ -347,6 +347,16 @@ s3: # ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/ priorityClassName: "" +cronjob: + enabled: false + schedule: "*/7 * * * *" + resources: nul + master: "" + filer: "" + tolerations: "" + nodeSelector: | + sw-backend: "true" + certificates: commonName: "SeaweedFS CA" ipAddresses: [] From 68c8d496d8b5ee7e71eea71ac38f6044d19cbe09 Mon Sep 17 00:00:00 2001 From: Konstantin Lebedev Date: Sun, 25 Oct 2020 20:11:58 +0500 Subject: [PATCH 2/5] fix null --- k8s/seaweedfs/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/k8s/seaweedfs/values.yaml b/k8s/seaweedfs/values.yaml index aefa75501..28887605f 100644 --- a/k8s/seaweedfs/values.yaml +++ b/k8s/seaweedfs/values.yaml @@ -350,7 +350,7 @@ s3: cronjob: enabled: false schedule: "*/7 * * * *" - resources: nul + resources: null master: "" filer: "" tolerations: "" From 37e282e9a7d55ffe702c9ff8928a9962f5ed79b8 Mon Sep 17 00:00:00 2001 From: Konstantin Lebedev Date: Sun, 25 Oct 2020 20:16:09 +0500 Subject: [PATCH 3/5] use dataCenter --- k8s/seaweedfs/templates/cronjob.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/k8s/seaweedfs/templates/cronjob.yaml b/k8s/seaweedfs/templates/cronjob.yaml index 6abc6003a..5442c44a9 100644 --- a/k8s/seaweedfs/templates/cronjob.yaml +++ b/k8s/seaweedfs/templates/cronjob.yaml @@ -35,7 +35,7 @@ spec: - -c - | set -ex - echo -e "lock\nvolume.balance -force -dataCenter {{ .Values.dataCenter }}\nvolume.fix.replication\nunlock\n" | \ + echo -e "lock\nvolume.balance -force{{ if .Values.volume.dataCenter }} -dataCenter {{ .Values.volume.dataCenter }}{{ end }}\nvolume.fix.replication\nunlock\n" | \ /usr/bin/weed shell \ {{- if .Values.cronjob.master }} -master {{ .Values.cronjob.master }} \ From 3239425c19dbcac798908dd6bd7a938a83aa4b3b Mon Sep 17 00:00:00 2001 From: Konstantin Lebedev Date: Sun, 25 Oct 2020 20:20:49 +0500 Subject: [PATCH 4/5] use collection optionaly --- k8s/seaweedfs/templates/cronjob.yaml | 2 +- k8s/seaweedfs/values.yaml | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/k8s/seaweedfs/templates/cronjob.yaml b/k8s/seaweedfs/templates/cronjob.yaml index 5442c44a9..cc8992a6a 100644 --- a/k8s/seaweedfs/templates/cronjob.yaml +++ b/k8s/seaweedfs/templates/cronjob.yaml @@ -35,7 +35,7 @@ spec: - -c - | set -ex - echo -e "lock\nvolume.balance -force{{ if .Values.volume.dataCenter }} -dataCenter {{ .Values.volume.dataCenter }}{{ end }}\nvolume.fix.replication\nunlock\n" | \ + echo -e "lock\nvolume.balance -force{{ if .Values.volume.dataCenter }} -dataCenter {{ .Values.volume.dataCenter }}{{ end }}{{ if .Values.cronjob.collection }} -collection {{ .Values.cronjob.collection }}{{ end }}\nvolume.fix.replication\nunlock\n" | \ /usr/bin/weed shell \ {{- if .Values.cronjob.master }} -master {{ .Values.cronjob.master }} \ diff --git a/k8s/seaweedfs/values.yaml b/k8s/seaweedfs/values.yaml index 28887605f..bf814ad14 100644 --- a/k8s/seaweedfs/values.yaml +++ b/k8s/seaweedfs/values.yaml @@ -351,6 +351,9 @@ cronjob: enabled: false schedule: "*/7 * * * *" resources: null + # balance all volumes among volume servers + # ALL|EACH_COLLECTION| + collection: "" master: "" filer: "" tolerations: "" From 186e42345e210bc36f07ca51cdadcdaff2fc672c Mon Sep 17 00:00:00 2001 From: Konstantin Lebedev Date: Sun, 25 Oct 2020 20:34:55 +0500 Subject: [PATCH 5/5] use collection optionaly --- k8s/seaweedfs/templates/cronjob.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/k8s/seaweedfs/templates/cronjob.yaml b/k8s/seaweedfs/templates/cronjob.yaml index cc8992a6a..ad4406d4f 100644 --- a/k8s/seaweedfs/templates/cronjob.yaml +++ b/k8s/seaweedfs/templates/cronjob.yaml @@ -9,7 +9,6 @@ spec: concurrencyPolicy: Forbid failedJobsHistoryLimit: 2 successfulJobsHistoryLimit: 2 - startingDeadlineSeconds: 300 jobTemplate: spec: backoffLimit: 2 @@ -35,7 +34,11 @@ spec: - -c - | set -ex - echo -e "lock\nvolume.balance -force{{ if .Values.volume.dataCenter }} -dataCenter {{ .Values.volume.dataCenter }}{{ end }}{{ if .Values.cronjob.collection }} -collection {{ .Values.cronjob.collection }}{{ end }}\nvolume.fix.replication\nunlock\n" | \ + echo -e "lock\n\ + volume.balance -force\ + {{ if .Values.volume.dataCenter }} -dataCenter {{ .Values.volume.dataCenter }}{{ end }}\ + {{ if .Values.cronjob.collection }} -collection {{ .Values.cronjob.collection }}{{ end }}\n\ + volume.fix.replication\nunlock\n" | \ /usr/bin/weed shell \ {{- if .Values.cronjob.master }} -master {{ .Values.cronjob.master }} \