diff options
| author | Chris Lu <chrislusf@users.noreply.github.com> | 2020-10-25 09:52:42 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-25 09:52:42 -0700 |
| commit | bc11d91892dd9fb375d55895547aea1c13adb506 (patch) | |
| tree | bc47dce70476a8110684623c647e10db790012e1 | |
| parent | 10a4a628e9305c49eb14c45fcc6b414b47b6a8e5 (diff) | |
| parent | 186e42345e210bc36f07ca51cdadcdaff2fc672c (diff) | |
| download | seaweedfs-bc11d91892dd9fb375d55895547aea1c13adb506.tar.xz seaweedfs-bc11d91892dd9fb375d55895547aea1c13adb506.zip | |
Merge pull request #1561 from kmlebedev/k8s_cronjob
K8s cronjob
| -rw-r--r-- | k8s/seaweedfs/templates/_helpers.tpl | 14 | ||||
| -rw-r--r-- | k8s/seaweedfs/templates/cronjob.yaml | 54 | ||||
| -rw-r--r-- | k8s/seaweedfs/values.yaml | 13 |
3 files changed, 81 insertions, 0 deletions
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..ad4406d4f --- /dev/null +++ b/k8s/seaweedfs/templates/cronjob.yaml @@ -0,0 +1,54 @@ +{{- 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 + 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\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 }} \ + {{- 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..bf814ad14 100644 --- a/k8s/seaweedfs/values.yaml +++ b/k8s/seaweedfs/values.yaml @@ -347,6 +347,19 @@ s3: # ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/ priorityClassName: "" +cronjob: + enabled: false + schedule: "*/7 * * * *" + resources: null + # balance all volumes among volume servers + # ALL|EACH_COLLECTION|<collection_name> + collection: "" + master: "" + filer: "" + tolerations: "" + nodeSelector: | + sw-backend: "true" + certificates: commonName: "SeaweedFS CA" ipAddresses: [] |
