Skip to content

Commit 302ff0b

Browse files
add vault-backup cronjob
1 parent 92f638f commit 302ff0b

File tree

3 files changed

+104
-0
lines changed

3 files changed

+104
-0
lines changed
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
---
2+
apiVersion: "batch/v1"
3+
kind: "CronJob"
4+
metadata:
5+
name: "vault-backup"
6+
spec:
7+
timeZone: "Europe/Berlin"
8+
schedule: "0 9 * * *"
9+
concurrencyPolicy: "Forbid"
10+
jobTemplate:
11+
spec:
12+
backoffLimit: 0
13+
template:
14+
spec:
15+
restartPolicy: Never
16+
securityContext:
17+
runAsUser: 23561
18+
runAsGroup: 23561
19+
fsGroup: 23561
20+
runAsNonRoot: true
21+
seccompProfile:
22+
type: "RuntimeDefault"
23+
initContainers:
24+
- name: "vault-login"
25+
image: "ghcr.io/soerenschneider/vault-login:1.0.0"
26+
imagePullPolicy: "IfNotPresent"
27+
envFrom:
28+
- configMapRef:
29+
name: vault-backup
30+
env:
31+
- name: "HOME"
32+
value: "/data"
33+
- name: "VAULT_LOGIN_AUTH_TYPE"
34+
value: "kubernetes"
35+
- name: "VAULT_LOGIN_OUTPUT_TYPE"
36+
value: "file"
37+
- name: "VAULT_LOGIN_OUTPUT_SECRET_NAME"
38+
value: "/data/vault-token"
39+
resources:
40+
requests:
41+
memory: "32Mi"
42+
cpu: "5m"
43+
limits:
44+
memory: "128Mi"
45+
volumeMounts:
46+
- name: "storage"
47+
mountPath: "/data"
48+
containers:
49+
- name: "vault-backup"
50+
image: "ghcr.io/soerenschneider/vault-backup:1.0.0"
51+
imagePullPolicy: "IfNotPresent"
52+
env:
53+
- name: "HOME"
54+
value: "/data"
55+
- name: "TMPDIR"
56+
value: "/data/tmp"
57+
- name: "RESTIC_HOST"
58+
value: "kubernetes"
59+
envFrom:
60+
- configMapRef:
61+
name: "vault-backup"
62+
- secretRef:
63+
name: "vault-backup"
64+
optional: true
65+
command:
66+
- "backup-vault"
67+
securityContext:
68+
runAsUser: 23561
69+
runAsGroup: 23561
70+
runAsNonRoot: true
71+
privileged: false
72+
readOnlyRootFilesystem: true
73+
allowPrivilegeEscalation: false
74+
seccompProfile:
75+
type: "RuntimeDefault"
76+
capabilities:
77+
drop:
78+
- "ALL"
79+
resources:
80+
requests:
81+
memory: "64Mi"
82+
cpu: "15m"
83+
limits:
84+
memory: "1Gi"
85+
volumeMounts:
86+
- name: "storage"
87+
mountPath: "/data"
88+
volumes:
89+
- name: "storage"
90+
emptyDir: {}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
apiVersion: kustomize.config.k8s.io/v1beta1
3+
kind: Kustomization
4+
namespace: vault-backup
5+
resources:
6+
- namespace.yaml
7+
- cron-backup.yaml

infra/vault-backup/namespace.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
kind: "Namespace"
3+
apiVersion: "v1"
4+
metadata:
5+
name: "vault-backup"
6+
labels:
7+
name: "vault-backup"

0 commit comments

Comments
 (0)