From 1ddd5faecef6ac4bccffd4be5d49bc45dfd03f65 Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Sun, 28 Dec 2025 22:08:56 -0600 Subject: [PATCH] Give Gitea its own database --- manifests/databases/kustomization.yaml | 1 - manifests/databases/postgres-cluster.yaml | 7 -- manifests/databases/postgres-gitea.yaml | 9 -- manifests/databases/secrets.yaml | 28 ----- manifests/gitea/chart.yaml | 9 +- manifests/gitea/kustomization.yaml | 1 + manifests/gitea/postgres.yaml | 129 ++++++++++++++++++++++ 7 files changed, 137 insertions(+), 47 deletions(-) delete mode 100644 manifests/databases/postgres-gitea.yaml create mode 100644 manifests/gitea/postgres.yaml diff --git a/manifests/databases/kustomization.yaml b/manifests/databases/kustomization.yaml index 86bfb9c..4a5c0e7 100644 --- a/manifests/databases/kustomization.yaml +++ b/manifests/databases/kustomization.yaml @@ -9,4 +9,3 @@ resources: - postgres-matrix.yaml - immich.yaml - ingress.yaml - - postgres-gitea.yaml diff --git a/manifests/databases/postgres-cluster.yaml b/manifests/databases/postgres-cluster.yaml index eeeb27f..823fd47 100644 --- a/manifests/databases/postgres-cluster.yaml +++ b/manifests/databases/postgres-cluster.yaml @@ -32,13 +32,6 @@ spec: superuser: false passwordSecret: name: postgres-user-matrix - - name: gitea - ensure: present - comment: Gitea DB user - login: true - superuser: false - passwordSecret: - name: postgres-user-gitea plugins: - name: barman-cloud.cloudnative-pg.io diff --git a/manifests/databases/postgres-gitea.yaml b/manifests/databases/postgres-gitea.yaml deleted file mode 100644 index 28db5bf..0000000 --- a/manifests/databases/postgres-gitea.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: postgresql.cnpg.io/v1 -kind: Database -metadata: - name: database-gitea -spec: - name: gitea - owner: gitea - cluster: - name: postgres diff --git a/manifests/databases/secrets.yaml b/manifests/databases/secrets.yaml index 0ca481f..b7533a1 100644 --- a/manifests/databases/secrets.yaml +++ b/manifests/databases/secrets.yaml @@ -167,31 +167,3 @@ spec: remoteRef: key: 5ce63e26-dd7f-46d4-b7ed-b310002ef93f property: password ---- -apiVersion: external-secrets.io/v1 -kind: ExternalSecret -metadata: - name: postgres-user-gitea -spec: - target: - name: postgres-user-gitea - deletionPolicy: Delete - template: - type: kukbernetes.io/basic-auth - data: - username: |- - {{ .dbuser }} - password: |- - {{ .dbpass }} - secretStoreRef: - name: bitwarden-login - kind: ClusterSecretStore - data: - - secretKey: dbuser - remoteRef: - key: df47ed61-61d7-4273-b81c-b3a9000de00e - property: username - - secretKey: dbpass - remoteRef: - key: df47ed61-61d7-4273-b81c-b3a9000de00e - property: password diff --git a/manifests/gitea/chart.yaml b/manifests/gitea/chart.yaml index 152ba26..81574da 100644 --- a/manifests/gitea/chart.yaml +++ b/manifests/gitea/chart.yaml @@ -15,13 +15,18 @@ spec: chart: spec: chart: gitea + version: "12.4.0" sourceRef: kind: HelmRepository name: gitea-repository interval: "1h" + dependsOn: + - name: cnpg + namespace: cnpg-system values: - # Gitea Helm Chart Values + # Gitea Helm Chart Values https://gitea.com/gitea/helm-gitea global: + appVersion: "1.25.3" storageClass: longhorn-default replicaCount: 1 @@ -58,7 +63,7 @@ spec: SSH_PORT: "2222" database: DB_TYPE: postgres - HOST: "postgres-rw.db.svc.cluster.local:5432" + HOST: "postgres-rw:5432" NAME: gitea # USER: "" # PASSWD: "" diff --git a/manifests/gitea/kustomization.yaml b/manifests/gitea/kustomization.yaml index 8f5af53..e48af02 100644 --- a/manifests/gitea/kustomization.yaml +++ b/manifests/gitea/kustomization.yaml @@ -2,6 +2,7 @@ namespace: gitea resources: - namespace.yaml + - postgres.yaml - chart.yaml - ingress.yaml - secrets.yaml diff --git a/manifests/gitea/postgres.yaml b/manifests/gitea/postgres.yaml new file mode 100644 index 0000000..07baf68 --- /dev/null +++ b/manifests/gitea/postgres.yaml @@ -0,0 +1,129 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: postgres-user-gitea +spec: + target: + name: postgres-user-gitea + deletionPolicy: Delete + template: + type: kukbernetes.io/basic-auth + data: + username: |- + {{ .dbuser }} + password: |- + {{ .dbpass }} + secretStoreRef: + name: bitwarden-login + kind: ClusterSecretStore + data: + - secretKey: dbuser + remoteRef: + key: df47ed61-61d7-4273-b81c-b3a9000de00e + property: username + - secretKey: dbpass + remoteRef: + key: df47ed61-61d7-4273-b81c-b3a9000de00e + property: password +--- +apiVersion: postgresql.cnpg.io/v1 +kind: Cluster +metadata: + name: postgres +spec: + instances: 3 + enablePDB: false + storage: + size: 20Gi + primaryUpdateStrategy: unsupervised + + managed: + roles: + - name: gitea + ensure: present + comment: Gitea DB user + login: true + superuser: false + passwordSecret: + name: postgres-user-gitea + + plugins: + - name: barman-cloud.cloudnative-pg.io + isWALArchiver: true + parameters: + barmanObjectName: k3sbackup-objectstore +--- +apiVersion: barmancloud.cnpg.io/v1 +kind: ObjectStore +metadata: + name: k3sbackup-objectstore +spec: + configuration: + destinationPath: "s3://k3sbackup/postgres-gitea" + endpointURL: "http://s3.thehellings.lan:9000/" + s3Credentials: + accessKeyId: + name: k3sbackup-secret + key: username + secretAccessKey: + name: k3sbackup-secret + key: password + wal: + compression: gzip +--- +apiVersion: postgresql.cnpg.io/v1 +kind: ScheduledBackup +metadata: + name: postgres-backup +spec: + immediate: true # Create one when this is added to the cluster + schedule: "0 1 0 * * *" # 1AM, nightly + backupOwnerReference: self + cluster: + name: postgres + method: plugin + pluginConfiguration: + name: barman-cloud.cloudnative-pg.io +--- +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: k3sbackup-externalsecret +spec: + target: + name: k3sbackup-secret + deletionPolicy: Delete + template: + type: Opaque + data: + username: |- + {{ .username }} + password: |- + {{ .password }} + data: + - secretKey: username + sourceRef: + storeRef: + name: bitwarden-login + kind: ClusterSecretStore + remoteRef: + key: 685b29c6-9264-4e60-ba4a-b2ea005a5d7b + property: username + - secretKey: password + sourceRef: + storeRef: + name: bitwarden-login + kind: ClusterSecretStore + remoteRef: + key: 685b29c6-9264-4e60-ba4a-b2ea005a5d7b + property: password +--- +apiVersion: postgresql.cnpg.io/v1 +kind: Database +metadata: + name: database-gitea +spec: + name: gitea + owner: gitea + cluster: + name: postgres