forked from pingcap/tidb-operator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscheduled-backup-cronjob.yaml
117 lines (117 loc) · 4.8 KB
/
scheduled-backup-cronjob.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
{{- if .Values.scheduledBackup.create }}
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: {{ template "cluster.name" . }}-scheduled-backup
labels:
app.kubernetes.io/name: {{ template "chart.name" . }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/component: scheduled-backup
helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
spec:
schedule: {{ .Values.scheduledBackup.schedule | quote }}
concurrencyPolicy: Forbid
suspend: {{ .Values.scheduledBackup.suspend }}
successfulJobsHistoryLimit: {{ .Values.scheduledBackup.successfulJobsHistoryLimit }}
failedJobsHistoryLimit: {{ .Values.scheduledBackup.failedJobsHistoryLimit }}
startingDeadlineSeconds: {{ .Values.scheduledBackup.startingDeadlineSeconds }}
jobTemplate:
metadata:
labels:
app.kubernetes.io/name: {{ template "chart.name" . }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/component: scheduled-backup
helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
spec:
backoffLimit: {{ .Values.scheduledBackup.backoffLimit | default 6 }}
{{- if .Values.scheduledBackup.activeDeadlineSeconds }}
activeDeadlineSeconds: {{ .Values.scheduledBackup.activeDeadlineSeconds }}
{{- end }}
template:
metadata:
labels:
app.kubernetes.io/name: {{ template "chart.name" . }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/component: scheduled-backup
helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
spec:
containers:
- name: scheduled-backup
image: {{ .Values.scheduledBackup.mydumperImage }}
imagePullPolicy: {{ .Values.scheduledBackup.mydumperImagePullPolicy | default "IfNotPresent" }}
command:
- /bin/sh
- -c
- |-
{{ tuple "scripts/_start_scheduled_backup.sh.tpl" . | include "helm-toolkit.utils.template" | indent 14 }}
volumeMounts:
- name: data
mountPath: "/data"
{{- if .Values.scheduledBackup.gcp }}
- name: gcp-credentials
mountPath: "/gcp"
readOnly: true
{{- end }}
resources:
{{ toYaml .Values.scheduledBackup.resources | indent 14 }}
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
{{- if and (ne .Values.timezone "UTC") (ne .Values.timezone "") }}
- name: TZ
value: {{ .Values.timezone | default "UTC" }}
{{- end }}
{{- if .Values.scheduledBackup.gcp }}
- name: GOOGLE_APPLICATION_CREDENTIALS
value: /gcp/credentials.json
{{- end }}
{{- if or .Values.scheduledBackup.ceph.secretName .Values.scheduledBackup.s3.secretName }}
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: {{ or .Values.scheduledBackup.ceph.secretName .Values.scheduledBackup.s3.secretName }}
key: access_key
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: {{ or .Values.scheduledBackup.ceph.secretName .Values.scheduledBackup.s3.secretName }}
key: secret_key
{{- end }}
- name: TIDB_USER
valueFrom:
secretKeyRef:
name: {{ .Values.scheduledBackup.secretName }}
key: user
- name: TIDB_PASSWORD
valueFrom:
secretKeyRef:
name: {{ .Values.scheduledBackup.secretName }}
key: password
restartPolicy: {{ .Values.scheduledBackup.restartPolicy | default "OnFailure" }}
{{- if .Values.scheduledBackup.affinity }}
affinity:
{{ toYaml .Values.scheduledBackup.affinity | indent 12 }}
{{- end }}
{{- if .Values.scheduledBackup.tolerations }}
tolerations:
{{ toYaml .Values.scheduledBackup.tolerations | indent 12 }}
{{- end }}
volumes:
- name: data
persistentVolumeClaim:
claimName: {{ template "cluster.name" . }}-scheduled-backup
{{- if .Values.scheduledBackup.gcp }}
- name: gcp-credentials
secret:
secretName: {{ .Values.scheduledBackup.gcp.secretName }}
{{- end }}
{{- end }}