Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions kubernetes/apps/tools/discord-bot/app/backup.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
apiVersion: postgresql.cnpg.io/v1
kind: ScheduledBackup
metadata:
name: discord-bot-db-daily-backup
namespace: tools
spec:
schedule: "0 18 * * *"
cluster:
name: discord-bot-db
14 changes: 14 additions & 0 deletions kubernetes/apps/tools/discord-bot/app/database.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,17 @@ spec:
storage:
size: 10Gi
storageClass: zfs
backup:
retentionPolicy: "14d"
barmanObjectStore:
destinationPath: s3://${bucket_name}
endpointURL: ${api_endpoint}
wal:
compression: bzip2
s3Credentials:
accessKeyId:
name: discord-bot-db-backup-secret
key: id
secretAccessKey:
name: discord-bot-db-backup-secret
key: secret
1 change: 1 addition & 0 deletions kubernetes/apps/tools/discord-bot/app/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ resources:
- ./helmrelease.yaml
- ./secret.yaml
- ./database.yaml
- ./backup.yaml
27 changes: 26 additions & 1 deletion kubernetes/apps/tools/discord-bot/ks.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,25 @@
---
# yaml-language-server: $schema=https://github.com/fluxcd-community/flux2-schemas/raw/main/kustomization-kustomize-v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app discord-bot-secrets
namespace: flux-system
spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
dependsOn:
- name: external-secrets-stores
path: ./kubernetes/apps/tools/discord-bot/secrets
prune: true
sourceRef:
kind: GitRepository
name: immich-kubernetes
wait: true
interval: 30m
retryInterval: 1m
timeout: 5m
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
Expand All @@ -13,6 +33,7 @@ spec:
dependsOn:
- name: cluster-apps-onepassword
- name: podbump
- name: discord-bot-secrets
path: ./kubernetes/apps/tools/discord-bot/app
prune: true
sourceRef:
Expand All @@ -22,3 +43,7 @@ spec:
interval: 30m
retryInterval: 1m
timeout: 5m
postBuild:
substituteFrom:
- kind: Secret
name: discord-bot-db-backup-bucket
19 changes: 19 additions & 0 deletions kubernetes/apps/tools/discord-bot/secrets/db-backup-bucket.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: discord-bot-db-backup-bucket
namespace: flux-system
spec:
secretStoreRef:
kind: ClusterSecretStore
name: 1p-tf
refreshInterval: "20s"
data:
- secretKey: bucket_name
remoteRef:
key: DISCORD_BOT_DB_BACKUP_BUCKET
property: bucket_name
- secretKey: api_endpoint
remoteRef:
key: DISCORD_BOT_DB_BACKUP_BUCKET
property: endpoint
21 changes: 21 additions & 0 deletions kubernetes/apps/tools/discord-bot/secrets/db-backup-secret.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: discord-bot-db-backup-secret
namespace: tools
labels:
cnpg.io/reload: "true"
spec:
secretStoreRef:
kind: ClusterSecretStore
name: 1p-tf
refreshInterval: "20s"
data:
- secretKey: id
remoteRef:
key: DISCORD_BOT_DB_BACKUP_BUCKET
property: access_key_id
- secretKey: secret
remoteRef:
key: DISCORD_BOT_DB_BACKUP_BUCKET
property: secret_access_key
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./db-backup-secret.yaml
- ./db-backup-bucket.yaml
13 changes: 13 additions & 0 deletions tf/deployment/modules/shared/cloudflare/account/r2.tf
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,19 @@ module "victorialogs_volsync_backups" {
allowed_cidrs = local.mich_cidrs
}

module "discord_bot_db_backups" {
source = "./shared/modules/cloudflare-r2-bucket"
providers = {
cloudflare.api_keys = cloudflare.api_keys
}

bucket_name = "discord-bot-db-backups"
cloudflare_account_id = var.cloudflare_account_id
onepassword_vault_id = data.onepassword_vault.tf.uuid
item_name = "DISCORD_BOT_DB_BACKUP_BUCKET"
allowed_cidrs = local.mich_cidrs
}

resource "cloudflare_r2_bucket" "static" {
account_id = var.cloudflare_account_id
name = "static"
Expand Down
Loading