From 9239dc27fd1d2aa939d5f86763daa80132924e45 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Wed, 21 Oct 2026 21:31:40 +0200 Subject: [PATCH] Prepare dedicated Ombi PostgreSQL migration --- apps/ombi-postgresql/values.yaml | 32 +++++++++++++++++++++++++++ apps/ombi/values.yaml | 7 +++++- bootstrap/kustomization.yaml | 4 ++++ bootstrap/ombi-namespace.yaml | 6 +++++ bootstrap/ombi-postgresql-secret.yaml | 17 ++++++++++++++ bootstrap/ombi-postgresql.yaml | 30 +++++++++++++++++++++++++ bootstrap/ombi-project.yaml | 32 +++++++++++++++++++++++++++ bootstrap/ombi.yaml | 6 ++--- 8 files changed, 130 insertions(+), 4 deletions(-) create mode 100644 apps/ombi-postgresql/values.yaml create mode 100644 bootstrap/ombi-namespace.yaml create mode 100644 bootstrap/ombi-postgresql-secret.yaml create mode 100644 bootstrap/ombi-postgresql.yaml create mode 100644 bootstrap/ombi-project.yaml diff --git a/apps/ombi-postgresql/values.yaml b/apps/ombi-postgresql/values.yaml new file mode 100644 index 0000000..bdcd485 --- /dev/null +++ b/apps/ombi-postgresql/values.yaml @@ -0,0 +1,32 @@ +settings: + existingSecret: ombi-postgresql + superuser: + secretKey: POSTGRES_USER + superuserPassword: + secretKey: POSTGRES_PASSWORD + +userDatabase: + existingSecret: ombi-postgresql + name: + secretKey: USERDB_NAME + user: + secretKey: USERDB_USER + password: + secretKey: USERDB_PASSWORD + +customScripts: + 02-ombi-databases.sql: | + CREATE DATABASE "ombi-settings" OWNER ombi; + CREATE DATABASE "ombi-external" OWNER ombi; + +storage: + requestedSize: 5Gi + className: rook-ceph-block + persistentVolumeClaimRetentionPolicy: + whenDeleted: Retain + whenScaled: Retain + +resources: + requests: + cpu: 100m + memory: 512Mi diff --git a/apps/ombi/values.yaml b/apps/ombi/values.yaml index 4070168..2e33e87 100644 --- a/apps/ombi/values.yaml +++ b/apps/ombi/values.yaml @@ -1,10 +1,14 @@ image: tag: 4.53.10 + +controller: + replicas: 0 + env: TZ: Europe/Vienna ingress: main: - enabled: true + enabled: false ingressClassName: traefik hosts: - host: ombi.brunner.ninja @@ -19,3 +23,4 @@ persistence: size: 1Gi storageClass: rook-ceph-block accessMode: ReadWriteOnce + retain: true diff --git a/bootstrap/kustomization.yaml b/bootstrap/kustomization.yaml index 12a46fb..df90224 100644 --- a/bootstrap/kustomization.yaml +++ b/bootstrap/kustomization.yaml @@ -58,6 +58,10 @@ resources: - flaresolverr.yaml - mosquitto.yaml - ombi.yaml +- ombi-project.yaml +- ombi-namespace.yaml +- ombi-postgresql-secret.yaml +- ombi-postgresql.yaml - tautulli.yaml - uptime-kuma.yaml - grafana.yaml diff --git a/bootstrap/ombi-namespace.yaml b/bootstrap/ombi-namespace.yaml new file mode 100644 index 0000000..266898d --- /dev/null +++ b/bootstrap/ombi-namespace.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: ombi + annotations: + argocd.argoproj.io/sync-wave: "-2" diff --git a/bootstrap/ombi-postgresql-secret.yaml b/bootstrap/ombi-postgresql-secret.yaml new file mode 100644 index 0000000..3833663 --- /dev/null +++ b/bootstrap/ombi-postgresql-secret.yaml @@ -0,0 +1,17 @@ +--- +apiVersion: bitnami.com/v1alpha1 +kind: SealedSecret +metadata: + name: ombi-postgresql + namespace: ombi +spec: + encryptedData: + POSTGRES_PASSWORD: AgANYA5Qn5f/e/o5ZUT2VTzFdJHtIdRIbIUxHCNkad549NRMjwiP92wEQP2PIIVW36iPyJkCl7TM8T1+6O9S/DeBVEoPVMP9L8ro7jWQAFF26wtXFgmdKq74Qk+IdpQGDkhk8i4nTovLLSqZq/siZVhHV4AXC2y2Ga5dhasLwCNmFV8WkiD5UfIVXLwk8EQlFGbSwiLlLu30uDCdVtSGD3wlBD0QUQ1yAlYgmPrbce+yjjnXKqj+Co+H5VOZbtSEZryH6BLInvDZWuSsLssr9iOMnypqETVslp0ztrSyLRjJZlA4ybdZ1S4DAe84440VvheNEqzg4/ZHTqGfQzDoMoz8gVbTTg2wnkOaHMvCXu8lEOyV7nnieLyNi4ihMY/Ckmf2Rso6X/KIcbe3q/WFJJvWwKFpb7218QT7e6U410lhbkwozqL9tsCZuxek0k9OoaExv7QdvhuizVRg2B43lAdAN/GTNxM40djeg6uDnuiodczii+z8BB7TQyY4GjyVZF3PCZ5cQMKoeh7YGDGoHq5IUX3qZPvI8YWdh2jEChRwu2L+IohT3pSXtlQ8atF9Urt3TjLf1itzsN9P1AKZifppMNL1uVMnuaY/JCp4GYrJv57LRc1fPV06gpNmvv+1CINDjqxzne9P9IS/MaXDwAHXwaDAiddrC5bRvz7CaO1P7cL8gSo4qiyGXkkuKO/nBJa+efprLFkSheCRIaqW+Y8d2uS4SX9aw42E+5kwVac3ui7pGi9gCUubOheUVlqa4nyX9WX66Z8XORsWt9MhzK3R + POSTGRES_USER: AgCLunJfjyDCUCPZeu8w34it8VHbDUliJSRrCp8nduRIYiK2dQFO7oTkOWkab4QrS52VY3Ab98yAjrtJ3q8Ost0ZbSXd7zgeuwqdfp8WRE4fXquC6IE0oaMp427kIsT8z5nfHi62IDnUdPBc7U3uZMsFTUg5My5qMRT+yjTjMlqVkro33RBUJ/aHnC8/0659xF4G8ytPVT9o6HM7UNLNX8bJfQM213OU+e49oHmUp5J936M/VMVqKWEZI9v+33b10aZ4HXPflHYs4BeNrIVmPbI7QNUhX6fxIUymNC8M5Onf0k51MJb7y9wPm9hu6wjEzdsjBDduMIUHlIEaAQ/0YIrFejy+Ca3g5j30g7afwMFMUdh4Cs9YOT9YxhBHXCbn8TDVxe7tMPBAA9XZE05FVL1FgykN95yXCaC+zCj4xwQmt8gZrDMZDfhND5SQVA+ZQdGAACTb8G3FbLRsyu+weqG52CNOcvdQURlSZKjuRFGoIGw88da0Qpq+xRB6sFXtLYsZNH+hab75NpfVpKG7hv2rb4ZS7wYbeyyP1IvdXuvQGNIRTaWpexzpe4Sgt3eJhTqMDeK/7+EWqhl5tQt//82RaRgWD7r7Lpst1UIZMqdsa/oOYP8ghcN9imYqxU+J+qzWJcfJt+QIhuiVNXxQKZojFY8XXXpwJJnqSmnu2YtLIccqZTQrIJcFOtoL4gPRxOEMScCNLxTeTQ== + USERDB_NAME: AgAesRPUz1voIjir03TuqMuQGOjbaajTGDRQ3/T4dvEPr5da1DaXXqK6c273b1TJcImzVhu2VBpxxw2wYsgUGvtQ7tJ/QGwy8pFTMxUhWSql1ZIeXphiiiek5xGo69bVvme7k/BbyymDv03+H4UO9m1zZri78ZlLHDWyaNOEO0/PpzWxORduLa6kVjcPn8hN3oxLLdKQx1GHUq6YbWjUO1PZJOBa4WGo24DCkOyBBMaJT6OeZV1HxzYLvnh2dPOtjEBo3WVHzH1T8eOIcd/aYsTZWluVz+PlSRsbXadtSV8XLbrkDlw5Fcfvk9LTO1nj6XXP+8T1aM1nGeCRtmt7UQ8Wcd+dwSgq/r2hjdlLnRikE08KQ3AojnLETM+hlSPyN+YAsms1pIq/nxIdTjkuTOZp2oEWgqB8O67D5G7vha5uu6R17qjlOMeyOGRUFZZ32WzkWfI0r9CjjdqqD0NmljHowA1Y8isMH7ExozFJcvriRGSGipATJV1MrJdr4glt2SQUD6K4fAa8A0f/iCh++WLgTf+2104YPibiF5SKSUencFfRS/2aBMxEFBYPolJ5dYolRW+dNBUOQcGJkpsXS8QPCW3yeoZB4NgG/U5WNQluEB+/5bHtBC7r20FeRG8uldY8jklEyqRfxsnOETYnHEKakKjUYpbijzT212DJdd3tclMi4WFn1Otcm+BsWycm3w+ympFP + USERDB_PASSWORD: AgB3SVG2fxRjpS9ORMaQOFkdj1ZtMQx876R2MrWAJK2mgeMaCXdIkajkMzZ/5MRuUI67hrFzSRvjskIm/hWzt4u43a4dTG1AVNbTphQyLu8UrFVXeqeJcxw6HHag2DDIUdJIIBjE4RcGdpqxZASlhgRieazAX7uai7O2rQMtZat80mzW4FzcxWNxaFpCEdVAc1onhgn1rHkEsjlaLJey6ZvLXH5I02xCYTQ+UFMfjSzquNALvtw8DRfhqPyEaZhvCyrUVgumcmBGxebZg9VDAdMg3AbBFSmpkNwAGNLbBULr/VPpH4RW002bMaTPRsTMhclLL2KPstO6cROAusLm7rF89MmtlL1PPHvccoobhgDbtymTKS3Xi3+EcxJ/HfSw6KB84sbTMnZEvFx5Xed9ETZ+XR91eeuCn5MEppRXvQD2IaDdfUO95t5wLeRwfymONCAzK/OUTWkcJvpG7t9q2Br863F5xAhykK9J74IstkqSLkM00pvTxPIIfBwW9q9KgRFUesYfDw1eCgwnu+g48xKsbIP7Iv4ELs+eZRGqXoBdHPc4mIR7Q+eWbuFJRIUD0cNXWhuTbQbo3S4qFhQ0/RknYhLmdWa90npApvcR3VSaAIds9wwnnZP8BObrKzJSzrxZETNrjhklNeT9WQxfToCsmst7RdyIXORP3Ke1VYyHtWUJtfLMQFUiZC/Y6VaQy/AZzDkJTk2bTBYYOoOB9CdL62V/ZVrnBxe6C9/Pjk3lwh0= + USERDB_USER: AgCjwHHQ+GHLw0hJsukZfPoO7x9qsbL4GKUYAcM8AlAgmXdmaCVGYwn9Rud/arLn3dhbC2oi15VyBo6qiV9fDbGhi0VwTjmwRkTMpmFucK8LuKhyreMMd6ioe/3Q47RajJ3JNCoN7LMux/8DUSONmT/Q7HY97Jay8cHxyYNvxrTLoWHz9KrDwMsTzMatCejwFzEQLeFfj3zdNoxeDu0fNfensE0tmQPFJV3+HMzrcxS5dDKYrwcke4Sb1+ycScLYeHKgcvGZjx9dKgQopGTChsDbQM8Ul8qIGvLzxr0nOG3phZHUvebqnsDSLyjSEjw7DFeH3nqRq6MC4CZtpjl9bGAqwEiRiwj//nDIPNKNtmWcPWX8FQMRmowWlvKuBGVlRhtZDm96bcI4LPv20IIbK1Q1KdDaa+AiADT1156bSjDXE9dm7fvJPq9TK5svpwqMCb7YI/dDna4Zil9LJ0JjYkmosWwx+Qdtjjk8YiEXLGaCU6Zr//tn061w58hDu//no6aNbyipfUynwdRONex6JujOn0ZOXa1SnpSgFnsKGb4YMBLi+K6SdyGSTxzEyZeK/xWsWZl4JAgdQxqPcA6ZRLbVRhdxHxgHrCYtqmn6WWvqsTtnfOTTEjbMW68gH5rFXX75A1dktjHmOZ+y9SuLmUpV4bA0bTCdVkas+KdO3VEMIm5B8E96qv3XBacnt1mOBbzN8yjy + template: + metadata: + name: ombi-postgresql + namespace: ombi diff --git a/bootstrap/ombi-postgresql.yaml b/bootstrap/ombi-postgresql.yaml new file mode 100644 index 0000000..6f9ee53 --- /dev/null +++ b/bootstrap/ombi-postgresql.yaml @@ -0,0 +1,30 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: ombi-postgresql + namespace: argocd + annotations: + argocd.argoproj.io/sync-wave: "0" +spec: + project: ombi + sources: + - repoURL: https://groundhog2k.github.io/helm-charts/ + chart: postgres + targetRevision: 1.5.14 + helm: + releaseName: postgresql + valueFiles: + - $values/apps/ombi-postgresql/values.yaml + - repoURL: https://code.brunner.ninja/feedc0de/homelab-gitops.git + targetRevision: main + ref: values + destination: + server: https://kubernetes.default.svc + namespace: ombi + syncPolicy: + automated: + enabled: true + prune: false + selfHeal: true + syncOptions: + - CreateNamespace=true diff --git a/bootstrap/ombi-project.yaml b/bootstrap/ombi-project.yaml new file mode 100644 index 0000000..45853d8 --- /dev/null +++ b/bootstrap/ombi-project.yaml @@ -0,0 +1,32 @@ +apiVersion: argoproj.io/v1alpha1 +kind: AppProject +metadata: + name: ombi + namespace: argocd + annotations: + argocd.argoproj.io/sync-wave: "-2" +spec: + description: Ombi and its dedicated PostgreSQL database + sourceRepos: + - https://code.brunner.ninja/feedc0de/homelab-gitops.git + - https://brunner.ninja/charts + - https://k8s-home-lab.github.io/helm-charts/ + - https://groundhog2k.github.io/helm-charts/ + destinations: + - namespace: ombi + server: https://kubernetes.default.svc + namespaceResourceWhitelist: + - group: "" + kind: ConfigMap + - group: "" + kind: PersistentVolumeClaim + - group: "" + kind: Service + - group: "" + kind: ServiceAccount + - group: apps + kind: Deployment + - group: apps + kind: StatefulSet + - group: networking.k8s.io + kind: Ingress diff --git a/bootstrap/ombi.yaml b/bootstrap/ombi.yaml index 2ff29b5..d93c7c2 100644 --- a/bootstrap/ombi.yaml +++ b/bootstrap/ombi.yaml @@ -4,7 +4,7 @@ metadata: name: ombi namespace: argocd spec: - project: homelab + project: ombi sources: - repoURL: https://k8s-home-lab.github.io/helm-charts/ chart: ombi @@ -18,9 +18,9 @@ spec: ref: values destination: server: https://kubernetes.default.svc - namespace: default + namespace: ombi syncPolicy: automated: enabled: true - prune: true + prune: false selfHeal: true