commit 297469742f29d8db90999f92e326b2e4d7e5cb97
parent bf47a20b755e592a45c9af34772b2314421ff391
Author: MTRNord <mtrnord1@gmail.com>
Date: Thu, 17 Oct 2024 12:36:25 +0200
Add k8up with schedule
Diffstat:
7 files changed, 125 insertions(+), 0 deletions(-)
diff --git a/apps/2024_cluster/namespaces/k8up.yaml b/apps/2024_cluster/namespaces/k8up.yaml
@@ -0,0 +1,4 @@
+apiVersion: v1
+kind: Namespace
+metadata:
+ name: k8up
diff --git a/apps/2024_cluster/namespaces/kustomization.yaml b/apps/2024_cluster/namespaces/kustomization.yaml
@@ -17,3 +17,4 @@ resources:
#- apisix.yaml
- cachet.yaml
- docuseal.yaml
+ - k8up.yaml
diff --git a/apps/2024_cluster/secrets/backup-repo.yaml b/apps/2024_cluster/secrets/backup-repo.yaml
@@ -0,0 +1,28 @@
+apiVersion: v1
+kind: Secret
+metadata:
+ name: backup-repo
+ namespace: k8up
+type: Opaque
+stringData:
+ password: ENC[AES256_GCM,data:heaxWvpd3cwKclIDkI3qii8DWf8IPKefw3iXVR6WO44+KtcFguYRNiKlVTSfacuUIZH79wJ6Hgq4oMXdaaVkTw==,iv:4D+ln6mt1/4qr3lGtQAS8LNrPWBunCTx8yj1jemuK30=,tag:PHhrV8B2TGCpq4lAeKxoJg==,type:str]
+sops:
+ kms: []
+ gcp_kms: []
+ azure_kv: []
+ hc_vault: []
+ age:
+ - recipient: age1esjyg2qfy49awv0ptkzvpk425adczjr38m37w2mmcahzc4p8n54sll2nzh
+ enc: |
+ -----BEGIN AGE ENCRYPTED FILE-----
+ YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3ZFNranI1UzNJOGQ1bTlr
+ VFpocFpBTDFla1pXSzVud2Ivd0pTbTJjeVhRCjZWbzB0VFIxTks3aEhBejd5MjJ2
+ aGI3KzJhS3FmSi9yYVhaWDhTRDlUWm8KLS0tIGQ5SHBNblJENUZsQ2tmUnFkMWxM
+ SXMxZ1d2STY2V0s1b0FxOExlNy9RYlUKzsXQhUeVtZyabr4aGXZBVi7QdbG5aHLo
+ XZE64tpTXJIl6H3iqZ3Bz0QBm/wripFCiZ/zPdt5p/cv5y31GV1MhQ==
+ -----END AGE ENCRYPTED FILE-----
+ lastmodified: "2024-10-17T10:35:45Z"
+ mac: ENC[AES256_GCM,data:de1PoJqU/ShGTsMXAZz64Ltn0m+XLieTPpoOw6x/Uy8hcxiTM06hmUQHu7lF9sHhL7HvV4D8/rPgaZFiJMSRDzVV8PQUZmqihcD3WoNsw6gnPO2x5chuczLYCjNPFxT+67ttEOEwwetGc2BBZZXzDFhjxobbH8mbUn0t2Dvg9CQ=,iv:hMXwEJ9jn8ysSRSjjkvTPPBEqmN5MkWbNE5I3kxTXJI=,tag:pp839r/R1fbX1DYODa7z4Q==,type:str]
+ pgp: []
+ encrypted_regex: ^(routing_key|DATABASE_URL|SMTP_PASSWORD|SECRET_KEY_BASE|admin_password|extraCommands|key|clickhouseDatabaseURL|databaseURL|client_id|client_secret|secret_key_base|otp_secret|private_key|public_key|primaryKey|deterministicKey|keyDerivationSalt|token|clientId|secretKey|installationId|installationKey|uriOverride|adminToken.value|password.value|sql_password|erlangCookie|AUTHENTICATION_PASSWORD|ROOM_API_SECRET_KEY|adminPassword|configPassword|adminUser|configUser|MAIL_PASSWORD|APP_KEY|api_key|api_secret|keys|livekit_key|livekit_secret|secret_key|admin_pass|admin_email|mariadbPassword|mariadbRootPassword|privateKey|data|stringData|PASSWD|password|pass|postgresPassword|postgresqlPassword|redminePassword|smtpPassword|registration_shared_secret|shared_secret|secret|admin_token|integrationKey|rootPassword)$
+ version: 3.8.1
diff --git a/apps/2024_cluster/secrets/kustomization.yaml b/apps/2024_cluster/secrets/kustomization.yaml
@@ -12,3 +12,4 @@ resources:
- coder.yaml
- mas_config.yaml
- cachet_sync.yaml
+ - backup-repo.yaml
diff --git a/apps/base/k8up/kustomization.yaml b/apps/base/k8up/kustomization.yaml
@@ -0,0 +1,6 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+namespace: k8up
+resources:
+ - repository.yaml
+ - release.yaml
diff --git a/apps/base/k8up/release.yaml b/apps/base/k8up/release.yaml
@@ -0,0 +1,77 @@
+apiVersion: helm.toolkit.fluxcd.io/v2beta2
+kind: HelmRelease
+metadata:
+ name: k8up
+ namespace: k8up
+spec:
+ releaseName: k8up
+ interval: 60m
+ chart:
+ spec:
+ chart: k8up
+ sourceRef:
+ kind: HelmRepository
+ name: k8up
+ values:
+ k8up:
+ timezone: Europe/Berlin
+ metrics:
+ serviceMonitor:
+ enabled: true
+ prometheusRule:
+ enabled: true
+ grafanaDashboard:
+ enabled: true
+---
+kind: PersistentVolumeClaim
+apiVersion: v1
+metadata:
+ name: storagebox-pvc
+ namespace: k8up
+spec:
+ accessModes:
+ - ReadWriteMany
+ resources:
+ requests:
+ storage: 700Gi
+ storageClassName: smb-storagebox
+---
+apiVersion: k8up.io/v1
+kind: Schedule
+metadata:
+ name: backup-storagebox-schedule
+spec:
+ resourceRequirementsTemplate:
+ requests:
+ memory: "64Mi"
+ cpu: "250m"
+ limits: {}
+ backend:
+ repoPasswordSecretRef:
+ name: backup-repo
+ key: password
+ local:
+ mountPoint: /mnt/storagebox
+ volumeMounts:
+ - name: storagebox-vol
+ mountPath: /mnt/storagebox
+ backup:
+ schedule: '@daily-random'
+ failedJobsHistoryLimit: 2
+ successfulJobsHistoryLimit: 2
+ resources:
+ requests:
+ memory: "64Mi"
+ cpu: "250m"
+ limits: {}
+ prune:
+ schedule: '@daily-random'
+ retention:
+ keepDaily: 7
+ keepWeekly: 4
+ keepMonthly: 3
+ keepYearly: 1
+ volumes:
+ - name: storagebox-vol
+ persistentVolumeClaim:
+ claimName: storagebox-pvc
diff --git a/apps/base/k8up/repository.yaml b/apps/base/k8up/repository.yaml
@@ -0,0 +1,8 @@
+apiVersion: source.toolkit.fluxcd.io/v1beta2
+kind: HelmRepository
+metadata:
+ name: k8up
+ namespace: k8up
+spec:
+ interval: 60m
+ url: https://k8up-io.github.io/k8up