diff --git a/apps/backup/kustomization.yaml b/apps/backup/kustomization.yaml index 307af06..be08e66 100644 --- a/apps/backup/kustomization.yaml +++ b/apps/backup/kustomization.yaml @@ -5,6 +5,7 @@ resources: - postgresql/asciinema - postgresql/authentik - postgresql/default-mumble + - postgresql/mumble - postgresql/default-shared - postgresql/ghostfolio - postgresql/grafana diff --git a/apps/backup/postgresql/mumble/kustomization.yaml b/apps/backup/postgresql/mumble/kustomization.yaml new file mode 100644 index 0000000..cc86c08 --- /dev/null +++ b/apps/backup/postgresql/mumble/kustomization.yaml @@ -0,0 +1,25 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: mumble +namePrefix: mumble- +resources: [../base] +patches: + - target: {kind: CronJob, name: postgresql-backup} + patch: |- + apiVersion: batch/v1 + kind: CronJob + metadata: {name: postgresql-backup} + spec: + schedule: "0 4 * * *" + jobTemplate: + spec: + template: + spec: + containers: + - name: pg-dump + env: + - {name: BACKUP_TARGET, value: mumble} + - {name: PGHOST, value: mumble-postgresql-rw} + - {name: PGSSLMODE, value: require} + - name: PGPASSWORD + valueFrom: {secretKeyRef: {name: mumble-postgresql-superuser, key: password}} diff --git a/apps/mumble-postgresql/cluster.yaml b/apps/mumble-postgresql/cluster.yaml new file mode 100644 index 0000000..3fe74be --- /dev/null +++ b/apps/mumble-postgresql/cluster.yaml @@ -0,0 +1,18 @@ +apiVersion: postgresql.cnpg.io/v1 +kind: Cluster +metadata: + name: mumble-postgresql + namespace: mumble +spec: + instances: 1 + imageName: ghcr.io/cloudnative-pg/postgresql:18.6-standard-trixie + enableSuperuserAccess: true + bootstrap: + initdb: + database: mumble + owner: mumble + secret: + name: mumble-secrets + storage: + size: 8Gi + storageClass: rook-ceph-block-ec diff --git a/apps/mumble-postgresql/kustomization.yaml b/apps/mumble-postgresql/kustomization.yaml new file mode 100644 index 0000000..993fbde --- /dev/null +++ b/apps/mumble-postgresql/kustomization.yaml @@ -0,0 +1,4 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - cluster.yaml diff --git a/bootstrap/backup-project.yaml b/bootstrap/backup-project.yaml index fca1cc5..a282a2d 100644 --- a/bootstrap/backup-project.yaml +++ b/bootstrap/backup-project.yaml @@ -50,6 +50,8 @@ spec: server: https://kubernetes.default.svc - namespace: wiki-js server: https://kubernetes.default.svc + - namespace: mumble + server: https://kubernetes.default.svc namespaceResourceWhitelist: - group: "" kind: ConfigMap diff --git a/bootstrap/kustomization.yaml b/bootstrap/kustomization.yaml index a156c5c..14db9b7 100644 --- a/bootstrap/kustomization.yaml +++ b/bootstrap/kustomization.yaml @@ -97,6 +97,7 @@ resources: - paperless.yaml - mumble.yaml - mumble-namespace.yaml +- mumble-postgresql.yaml - minecraft-project.yaml - minecraft-paper.yaml - minecraft-atm10.yaml diff --git a/bootstrap/mumble-namespace.yaml b/bootstrap/mumble-namespace.yaml index 1eb75eb..d686262 100644 --- a/bootstrap/mumble-namespace.yaml +++ b/bootstrap/mumble-namespace.yaml @@ -1,4 +1,6 @@ apiVersion: v1 kind: Namespace metadata: + annotations: + argocd.argoproj.io/sync-wave: "-2" name: mumble diff --git a/bootstrap/mumble-postgresql.yaml b/bootstrap/mumble-postgresql.yaml new file mode 100644 index 0000000..6d01b4e --- /dev/null +++ b/bootstrap/mumble-postgresql.yaml @@ -0,0 +1,21 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: mumble-postgresql + namespace: argocd + annotations: + argocd.argoproj.io/sync-wave: "-1" +spec: + project: homelab + source: + repoURL: https://code.brunner.ninja/feedc0de/homelab-gitops.git + targetRevision: main + path: apps/mumble-postgresql + destination: + server: https://kubernetes.default.svc + namespace: mumble + syncPolicy: + automated: + enabled: true + prune: false + selfHeal: true