diff --git a/backup-jobs/backup-cronjobs.yaml b/backup-jobs/backup-cronjobs.yaml index 81d25fc..fe3b9b7 100644 --- a/backup-jobs/backup-cronjobs.yaml +++ b/backup-jobs/backup-cronjobs.yaml @@ -1,52 +1,52 @@ -# apiVersion: batch/v1 -# kind: CronJob -# metadata: -# name: etcd-snapshot -# namespace: default -# spec: -# schedule: "0 5 * * *" -# jobTemplate: -# spec: -# template: -# spec: -# containers: -# - name: backup -# # Same image as in /etc/kubernetes/manifests/etcd.yaml -# image: k8s.gcr.io/etcd:3.5.1-0 -# env: -# - name: ETCDCTL_API -# value: "3" -# command: ["/bin/sh"] -# args: ["-c", "etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/etcd/ca.pem --cert=/etc/etcd/etcd.pem --key=/etc/etcd/etcd-key.pem snapshot save /backup/etcd/snapshot-$(printf \"%(%Y-%m-%d-%H:%M:%S_%Z)T\n\").db"] -# volumeMounts: -# - mountPath: /etc/etcd -# name: etcd-certs -# readOnly: true -# - mountPath: /backup/etcd -# subPath: etcd -# name: backup -# hostNetwork: true -# restartPolicy: Never -# nodeSelector: -# etcd: "true" -# # affinity: -# # nodeAffinity: -# # requiredDuringSchedulingIgnoredDuringExecution: -# # nodeSelectorTerms: -# # - matchExpressions: -# # - key: node-role.kubernetes.io/master -# # operator: Exists -# tolerations: -# - effect: NoSchedule -# operator: Exists -# volumes: -# - name: etcd-certs -# hostPath: -# path: /etc/etcd -# type: Directory -# - name: backup -# persistentVolumeClaim: -# claimName: etcd-backups-nfs-pvc +apiVersion: batch/v1 +kind: CronJob +metadata: + name: etcd-snapshot + namespace: default +spec: + schedule: "0 8 * * 6" # 8:00 AM every Saturday + jobTemplate: + spec: + template: + spec: + containers: + - name: backup + # Same image as in /etc/kubernetes/manifests/etcd.yaml + image: k8s.gcr.io/etcd:3.5.1-0 + env: + - name: ETCDCTL_API + value: "3" + command: ["/bin/sh"] + args: ["-c", "etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/etcd/ca.pem --cert=/etc/etcd/etcd.pem --key=/etc/etcd/etcd-key.pem snapshot save /backup/etcd/snapshot-$(printf \"%(%Y-%m-%d-%H:%M:%S_%Z)T\n\").db"] + volumeMounts: + - mountPath: /etc/etcd + name: etcd-certs + readOnly: true + - mountPath: /backup/etcd + subPath: etcd + name: backup + hostNetwork: true + restartPolicy: Never + nodeSelector: + etcd: "true" + # affinity: + # nodeAffinity: + # requiredDuringSchedulingIgnoredDuringExecution: + # nodeSelectorTerms: + # - matchExpressions: + # - key: node-role.kubernetes.io/master + # operator: Exists + tolerations: + - effect: NoSchedule + operator: Exists + volumes: + - name: etcd-certs + hostPath: + path: /etc/etcd + type: Directory + - name: backup + persistentVolumeClaim: + claimName: etcd-backups-nfs-pvc --- apiVersion: batch/v1 diff --git a/on-demand/once-etcd-job.yaml b/on-demand/once-etcd-job.yaml index bf25189..81d7f86 100644 --- a/on-demand/once-etcd-job.yaml +++ b/on-demand/once-etcd-job.yaml @@ -38,4 +38,4 @@ spec: type: Directory - name: backup persistentVolumeClaim: - claimName: backups-nfs-pvc + claimName: etcd-backups-nfs-pvc