From 99e18185726286dcb8b1c02fa873727cc7e04852 Mon Sep 17 00:00:00 2001 From: Aleksandr Bogomiakov Date: Mon, 5 Oct 2026 18:49:42 +0100 Subject: [PATCH] NG: app-of-apps CORE --- k8s-ng/argocd/app.yaml | 21 ---------- k8s-ng/bootstrap/bootstrap.sh | 27 ++++++++++++ k8s-ng/bootstrap/root.yaml | 29 +++++++++++++ k8s-ng/cnpg/app.yaml | 21 ---------- k8s-ng/core-state/Chart.yaml | 4 ++ k8s-ng/core-state/templates/applications.yaml | 29 +++++++++++++ k8s-ng/core-state/values.yaml | 42 +++++++++++++++++++ k8s-ng/{ => core}/argocd/appprojects.yaml | 0 k8s-ng/{ => core}/argocd/ingress.yaml | 4 +- k8s-ng/{ => core}/argocd/kustomization.yaml | 1 - k8s-ng/{ => core}/argocd/values.yaml | 16 ++++++- k8s-ng/core/cert-manager/issuer.yaml | 23 ++++++++++ k8s-ng/core/cert-manager/kustomization.yaml | 15 +++++++ k8s-ng/core/cert-manager/self-signed.yaml | 29 +++++++++++++ k8s-ng/core/cert-manager/values.yaml | 2 + k8s-ng/{ => core}/cnpg/kustomization.yaml | 3 -- k8s-ng/{ => core}/cnpg/values.yaml | 0 .../external-secrets/Dockerfile-bitwarden-cli | 0 .../external-secrets/bitwarden-store.yaml | 0 .../external-secrets/kustomization.yaml | 9 ++-- .../{ => core}/external-secrets/values.yaml | 0 k8s-ng/{ => core}/postgresql/cluster.yaml | 0 .../postgresql/databases/vaultwarden.yaml | 0 .../{ => core}/postgresql/kustomization.yaml | 1 - .../postgresql/password-generator.yaml | 0 k8s-ng/{ => core}/vaultwarden/deployment.yaml | 2 +- k8s-ng/{ => core}/vaultwarden/ingress.yaml | 4 +- .../{ => core}/vaultwarden/kustomization.yaml | 1 - k8s-ng/{ => core}/vaultwarden/pvc.yaml | 0 k8s-ng/{ => core}/vaultwarden/secrets.yaml | 0 k8s-ng/{ => core}/vaultwarden/service.yaml | 0 k8s-ng/external-secrets/app.yaml | 21 ---------- k8s-ng/postgresql/app.yaml | 22 ---------- k8s-ng/vaultwarden/app.yaml | 22 ---------- 34 files changed, 224 insertions(+), 124 deletions(-) delete mode 100644 k8s-ng/argocd/app.yaml create mode 100755 k8s-ng/bootstrap/bootstrap.sh create mode 100644 k8s-ng/bootstrap/root.yaml delete mode 100644 k8s-ng/cnpg/app.yaml create mode 100644 k8s-ng/core-state/Chart.yaml create mode 100644 k8s-ng/core-state/templates/applications.yaml create mode 100644 k8s-ng/core-state/values.yaml rename k8s-ng/{ => core}/argocd/appprojects.yaml (100%) rename k8s-ng/{ => core}/argocd/ingress.yaml (89%) rename k8s-ng/{ => core}/argocd/kustomization.yaml (95%) rename k8s-ng/{ => core}/argocd/values.yaml (69%) create mode 100644 k8s-ng/core/cert-manager/issuer.yaml create mode 100644 k8s-ng/core/cert-manager/kustomization.yaml create mode 100644 k8s-ng/core/cert-manager/self-signed.yaml create mode 100644 k8s-ng/core/cert-manager/values.yaml rename k8s-ng/{ => core}/cnpg/kustomization.yaml (91%) rename k8s-ng/{ => core}/cnpg/values.yaml (100%) rename k8s-ng/{ => core}/external-secrets/Dockerfile-bitwarden-cli (100%) rename k8s-ng/{ => core}/external-secrets/bitwarden-store.yaml (100%) rename k8s-ng/{ => core}/external-secrets/kustomization.yaml (60%) rename k8s-ng/{ => core}/external-secrets/values.yaml (100%) rename k8s-ng/{ => core}/postgresql/cluster.yaml (100%) rename k8s-ng/{ => core}/postgresql/databases/vaultwarden.yaml (100%) rename k8s-ng/{ => core}/postgresql/kustomization.yaml (92%) rename k8s-ng/{ => core}/postgresql/password-generator.yaml (100%) rename k8s-ng/{ => core}/vaultwarden/deployment.yaml (97%) rename k8s-ng/{ => core}/vaultwarden/ingress.yaml (88%) rename k8s-ng/{ => core}/vaultwarden/kustomization.yaml (92%) rename k8s-ng/{ => core}/vaultwarden/pvc.yaml (100%) rename k8s-ng/{ => core}/vaultwarden/secrets.yaml (100%) rename k8s-ng/{ => core}/vaultwarden/service.yaml (100%) delete mode 100644 k8s-ng/external-secrets/app.yaml delete mode 100644 k8s-ng/postgresql/app.yaml delete mode 100644 k8s-ng/vaultwarden/app.yaml diff --git a/k8s-ng/argocd/app.yaml b/k8s-ng/argocd/app.yaml deleted file mode 100644 index 3ad66a1..0000000 --- a/k8s-ng/argocd/app.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: argocd - namespace: argocd -spec: - project: core - destination: - namespace: argocd - server: https://kubernetes.default.svc - source: - repoURL: https://gt.hexor.cy/ab/homelab.git - targetRevision: main - path: k8s-ng/argocd - syncPolicy: - automated: - selfHeal: true - prune: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true diff --git a/k8s-ng/bootstrap/bootstrap.sh b/k8s-ng/bootstrap/bootstrap.sh new file mode 100755 index 0000000..1e28c72 --- /dev/null +++ b/k8s-ng/bootstrap/bootstrap.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +# Brings the whole core state up on an empty cluster: +# k8s-ng/bootstrap/bootstrap.sh +# Installs Argo CD (the only thing that cannot install itself) and applies the +# root application; Argo CD then pulls every core application in wave order. +set -euo pipefail + +ctx=${1:?usage: bootstrap.sh } +here=$(cd "$(dirname "$0")" && pwd) +k="kubectl --context $ctx" + +# Render in a scratch copy so kustomize does not leave downloaded charts in the repo. +tmp=$(mktemp -d) +trap 'rm -rf "$tmp"' EXIT +cp -r "$here/../core/argocd" "$tmp/argocd" +kubectl kustomize --enable-helm "$tmp/argocd" > "$tmp/argocd.yaml" + +$k create namespace argocd --dry-run=client -o yaml | $k apply -f - +# CRDs must exist before the Argo CD objects that use them: apply twice. +$k apply --server-side --force-conflicts -f "$tmp/argocd.yaml" >/dev/null 2>&1 || true +sleep 8 +$k apply --server-side --force-conflicts -f "$tmp/argocd.yaml" +$k -n argocd rollout status deploy --timeout=300s +$k -n argocd rollout status statefulset --timeout=300s + +$k apply --server-side --force-conflicts -f "$here/root.yaml" +echo "Core state requested. Watch it with: $k -n argocd get app" diff --git a/k8s-ng/bootstrap/root.yaml b/k8s-ng/bootstrap/root.yaml new file mode 100644 index 0000000..a197ae0 --- /dev/null +++ b/k8s-ng/bootstrap/root.yaml @@ -0,0 +1,29 @@ +# Root of the core state. Applying this one object makes Argo CD pull every core +# application in wave order (see k8s-ng/core-state/values.yaml). +# Note: there are deliberately no finalizers; deleting this Application keeps all +# deployed services and data. +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: core-state + namespace: argocd +spec: + project: core + destination: + server: https://kubernetes.default.svc + namespace: argocd + source: + repoURL: https://gt.hexor.cy/ab/homelab.git + targetRevision: main + path: k8s-ng/core-state + helm: + # Per-cluster overrides of core-state/values.yaml, for example: + # valuesObject: + # targetRevision: some-branch + valuesObject: {} + syncPolicy: + automated: + selfHeal: true + prune: true + syncOptions: + - ServerSideApply=true diff --git a/k8s-ng/cnpg/app.yaml b/k8s-ng/cnpg/app.yaml deleted file mode 100644 index 853f652..0000000 --- a/k8s-ng/cnpg/app.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: cnpg - namespace: argocd -spec: - project: core - destination: - namespace: cnpg-system - server: https://kubernetes.default.svc - source: - repoURL: https://gt.hexor.cy/ab/homelab.git - targetRevision: main - path: k8s-ng/cnpg - syncPolicy: - automated: - selfHeal: true - prune: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true diff --git a/k8s-ng/core-state/Chart.yaml b/k8s-ng/core-state/Chart.yaml new file mode 100644 index 0000000..be6b804 --- /dev/null +++ b/k8s-ng/core-state/Chart.yaml @@ -0,0 +1,4 @@ +apiVersion: v2 +name: core-state +description: App of apps for the core services of the cluster +version: 0.1.0 diff --git a/k8s-ng/core-state/templates/applications.yaml b/k8s-ng/core-state/templates/applications.yaml new file mode 100644 index 0000000..8438561 --- /dev/null +++ b/k8s-ng/core-state/templates/applications.yaml @@ -0,0 +1,29 @@ +{{- range .Values.apps }} +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: {{ .name }} + namespace: argocd + annotations: + argocd.argoproj.io/sync-wave: {{ .wave | quote }} +spec: + project: {{ .project | default $.Values.project }} + destination: + server: {{ $.Values.destinationServer }} + namespace: {{ .namespace }} + source: + repoURL: {{ $.Values.repoURL }} + targetRevision: {{ $.Values.targetRevision }} + path: {{ .path }} + syncPolicy: + automated: + selfHeal: true + prune: {{ if hasKey . "prune" }}{{ .prune }}{{ else }}true{{ end }} + syncOptions: + - CreateNamespace=true + - ServerSideApply=true + {{- if .skipDryRunOnMissingResource }} + - SkipDryRunOnMissingResource=true + {{- end }} +{{- end }} diff --git a/k8s-ng/core-state/values.yaml b/k8s-ng/core-state/values.yaml new file mode 100644 index 0000000..03dfc16 --- /dev/null +++ b/k8s-ng/core-state/values.yaml @@ -0,0 +1,42 @@ +# Per-cluster variables. Override them in k8s-ng/bootstrap/root.yaml +# (spec.source.helm.valuesObject) when the state is deployed to another cluster. +repoURL: https://gt.hexor.cy/ab/homelab.git +targetRevision: main +destinationServer: https://kubernetes.default.svc +project: core + +# Core applications. Lower waves are synced first and must be Healthy before the +# next wave starts. Every path is a kustomize (or plain manifest) directory. +# wave 0: Argo CD itself and its projects +# wave 1: operators (their CRDs are used by the later waves) +# wave 2: the database cluster and its databases/users +# wave 3: services that need the database and secrets +apps: + - name: argocd + path: k8s-ng/core/argocd + namespace: argocd + wave: 0 + - name: cnpg + path: k8s-ng/core/cnpg + namespace: cnpg-system + wave: 1 + - name: cert-manager + path: k8s-ng/core/cert-manager + namespace: cert-manager + wave: 1 + skipDryRunOnMissingResource: true # ClusterIssuers need the cert-manager CRDs + - name: external-secrets + path: k8s-ng/core/external-secrets + namespace: external-secrets + wave: 1 + - name: postgresql + path: k8s-ng/core/postgresql + namespace: psql + wave: 2 + prune: false # never delete databases because of a manifest change + skipDryRunOnMissingResource: true # CRDs come from the cnpg and external-secrets apps + - name: vaultwarden + path: k8s-ng/core/vaultwarden + namespace: vaultwarden + wave: 3 + skipDryRunOnMissingResource: true diff --git a/k8s-ng/argocd/appprojects.yaml b/k8s-ng/core/argocd/appprojects.yaml similarity index 100% rename from k8s-ng/argocd/appprojects.yaml rename to k8s-ng/core/argocd/appprojects.yaml diff --git a/k8s-ng/argocd/ingress.yaml b/k8s-ng/core/argocd/ingress.yaml similarity index 89% rename from k8s-ng/argocd/ingress.yaml rename to k8s-ng/core/argocd/ingress.yaml index 86a43b1..63a4e38 100644 --- a/k8s-ng/argocd/ingress.yaml +++ b/k8s-ng/core/argocd/ingress.yaml @@ -9,10 +9,10 @@ metadata: spec: tls: - hosts: - - ag.hexor.cy + - ag.btwiusearch.net secretName: argocd-server-tls rules: - - host: ag.hexor.cy + - host: ag.btwiusearch.net http: paths: - path: / diff --git a/k8s-ng/argocd/kustomization.yaml b/k8s-ng/core/argocd/kustomization.yaml similarity index 95% rename from k8s-ng/argocd/kustomization.yaml rename to k8s-ng/core/argocd/kustomization.yaml index 52ec8bf..88e253c 100644 --- a/k8s-ng/argocd/kustomization.yaml +++ b/k8s-ng/core/argocd/kustomization.yaml @@ -2,7 +2,6 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - app.yaml - ingress.yaml - appprojects.yaml diff --git a/k8s-ng/argocd/values.yaml b/k8s-ng/core/argocd/values.yaml similarity index 69% rename from k8s-ng/argocd/values.yaml rename to k8s-ng/core/argocd/values.yaml index 1a54d1a..10429b2 100644 --- a/k8s-ng/argocd/values.yaml +++ b/k8s-ng/core/argocd/values.yaml @@ -1,7 +1,7 @@ # Argo CD Helm Chart Values (k8s-ng cluster) global: - domain: ag.hexor.cy + domain: ag.btwiusearch.net logging: format: text level: info @@ -23,6 +23,20 @@ configs: admin.enabled: true statusbadge.enabled: true timeout.reconciliation: 60s + # Lets sync waves in an app of apps wait for child Applications to be Healthy. + resource.customizations.health.argoproj.io_Application: | + hs = {} + hs.status = "Progressing" + hs.message = "" + if obj.status ~= nil then + if obj.status.health ~= nil then + hs.status = obj.status.health.status + if obj.status.health.message ~= nil then + hs.message = obj.status.health.message + end + end + end + return hs rbac: create: true policy.default: "" diff --git a/k8s-ng/core/cert-manager/issuer.yaml b/k8s-ng/core/cert-manager/issuer.yaml new file mode 100644 index 0000000..57db047 --- /dev/null +++ b/k8s-ng/core/cert-manager/issuer.yaml @@ -0,0 +1,23 @@ +# Public certificates through DNS-01. The Cloudflare token Secret is created by hand +# (it will move to Vaultwarden + External Secrets): +# kubectl -n cert-manager create secret generic cloudflare-api-token --from-literal=apiToken= +# The token needs Zone:DNS:Edit on the btwiusearch.net zone. +apiVersion: cert-manager.io/v1 +kind: ClusterIssuer +metadata: + name: letsencrypt +spec: + acme: + server: https://acme-v02.api.letsencrypt.org/directory + email: k8s-master@hexor.cy + privateKeySecretRef: + name: letsencrypt-account-key + solvers: + - selector: + dnsZones: + - btwiusearch.net + dns01: + cloudflare: + apiTokenSecretRef: + name: cloudflare-api-token + key: apiToken diff --git a/k8s-ng/core/cert-manager/kustomization.yaml b/k8s-ng/core/cert-manager/kustomization.yaml new file mode 100644 index 0000000..118582b --- /dev/null +++ b/k8s-ng/core/cert-manager/kustomization.yaml @@ -0,0 +1,15 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - issuer.yaml + - self-signed.yaml + +helmCharts: + - name: cert-manager + repo: https://charts.jetstack.io + version: 1.21.1 + releaseName: cert-manager + namespace: cert-manager + valuesFile: values.yaml + includeCRDs: true diff --git a/k8s-ng/core/cert-manager/self-signed.yaml b/k8s-ng/core/cert-manager/self-signed.yaml new file mode 100644 index 0000000..b463086 --- /dev/null +++ b/k8s-ng/core/cert-manager/self-signed.yaml @@ -0,0 +1,29 @@ +# Private CA for internal services: issuer "hexor-lab". +apiVersion: cert-manager.io/v1 +kind: ClusterIssuer +metadata: + name: selfsigned +spec: + selfSigned: {} +--- +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: hexor-ca-root + namespace: cert-manager +spec: + isCA: true + duration: 87600h # 10y + commonName: hexor-ca + secretName: hexor-ca-root-secret + issuerRef: + name: selfsigned + kind: ClusterIssuer +--- +apiVersion: cert-manager.io/v1 +kind: ClusterIssuer +metadata: + name: hexor-lab +spec: + ca: + secretName: hexor-ca-root-secret diff --git a/k8s-ng/core/cert-manager/values.yaml b/k8s-ng/core/cert-manager/values.yaml new file mode 100644 index 0000000..c526c4b --- /dev/null +++ b/k8s-ng/core/cert-manager/values.yaml @@ -0,0 +1,2 @@ +crds: + enabled: true diff --git a/k8s-ng/cnpg/kustomization.yaml b/k8s-ng/core/cnpg/kustomization.yaml similarity index 91% rename from k8s-ng/cnpg/kustomization.yaml rename to k8s-ng/core/cnpg/kustomization.yaml index fefbede..539e958 100644 --- a/k8s-ng/cnpg/kustomization.yaml +++ b/k8s-ng/core/cnpg/kustomization.yaml @@ -1,9 +1,6 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization -resources: - - app.yaml - helmCharts: - name: cloudnative-pg repo: https://cloudnative-pg.github.io/charts diff --git a/k8s-ng/cnpg/values.yaml b/k8s-ng/core/cnpg/values.yaml similarity index 100% rename from k8s-ng/cnpg/values.yaml rename to k8s-ng/core/cnpg/values.yaml diff --git a/k8s-ng/external-secrets/Dockerfile-bitwarden-cli b/k8s-ng/core/external-secrets/Dockerfile-bitwarden-cli similarity index 100% rename from k8s-ng/external-secrets/Dockerfile-bitwarden-cli rename to k8s-ng/core/external-secrets/Dockerfile-bitwarden-cli diff --git a/k8s-ng/external-secrets/bitwarden-store.yaml b/k8s-ng/core/external-secrets/bitwarden-store.yaml similarity index 100% rename from k8s-ng/external-secrets/bitwarden-store.yaml rename to k8s-ng/core/external-secrets/bitwarden-store.yaml diff --git a/k8s-ng/external-secrets/kustomization.yaml b/k8s-ng/core/external-secrets/kustomization.yaml similarity index 60% rename from k8s-ng/external-secrets/kustomization.yaml rename to k8s-ng/core/external-secrets/kustomization.yaml index a70ce92..3f85211 100644 --- a/k8s-ng/external-secrets/kustomization.yaml +++ b/k8s-ng/core/external-secrets/kustomization.yaml @@ -1,11 +1,10 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization -resources: - - app.yaml - # Enable after the Vaultwarden bot account exists and the bitwarden-cli - # secret is created (see the header of bitwarden-store.yaml): - # - bitwarden-store.yaml +# Enable after the Vaultwarden bot account exists and the bitwarden-cli +# secret is created (see the header of bitwarden-store.yaml): +# resources: +# - bitwarden-store.yaml helmCharts: - name: external-secrets diff --git a/k8s-ng/external-secrets/values.yaml b/k8s-ng/core/external-secrets/values.yaml similarity index 100% rename from k8s-ng/external-secrets/values.yaml rename to k8s-ng/core/external-secrets/values.yaml diff --git a/k8s-ng/postgresql/cluster.yaml b/k8s-ng/core/postgresql/cluster.yaml similarity index 100% rename from k8s-ng/postgresql/cluster.yaml rename to k8s-ng/core/postgresql/cluster.yaml diff --git a/k8s-ng/postgresql/databases/vaultwarden.yaml b/k8s-ng/core/postgresql/databases/vaultwarden.yaml similarity index 100% rename from k8s-ng/postgresql/databases/vaultwarden.yaml rename to k8s-ng/core/postgresql/databases/vaultwarden.yaml diff --git a/k8s-ng/postgresql/kustomization.yaml b/k8s-ng/core/postgresql/kustomization.yaml similarity index 92% rename from k8s-ng/postgresql/kustomization.yaml rename to k8s-ng/core/postgresql/kustomization.yaml index caa7c7f..01d6550 100644 --- a/k8s-ng/postgresql/kustomization.yaml +++ b/k8s-ng/core/postgresql/kustomization.yaml @@ -2,7 +2,6 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - app.yaml - cluster.yaml - password-generator.yaml - databases/vaultwarden.yaml diff --git a/k8s-ng/postgresql/password-generator.yaml b/k8s-ng/core/postgresql/password-generator.yaml similarity index 100% rename from k8s-ng/postgresql/password-generator.yaml rename to k8s-ng/core/postgresql/password-generator.yaml diff --git a/k8s-ng/vaultwarden/deployment.yaml b/k8s-ng/core/vaultwarden/deployment.yaml similarity index 97% rename from k8s-ng/vaultwarden/deployment.yaml rename to k8s-ng/core/vaultwarden/deployment.yaml index 9fbfaa6..4330ed4 100644 --- a/k8s-ng/vaultwarden/deployment.yaml +++ b/k8s-ng/core/vaultwarden/deployment.yaml @@ -27,7 +27,7 @@ spec: memory: 512Mi env: - name: DOMAIN - value: https://vw.hexor.cy + value: https://vw.btwiusearch.net - name: ORG_GROUPS_ENABLED value: "true" - name: DATABASE_URL diff --git a/k8s-ng/vaultwarden/ingress.yaml b/k8s-ng/core/vaultwarden/ingress.yaml similarity index 88% rename from k8s-ng/vaultwarden/ingress.yaml rename to k8s-ng/core/vaultwarden/ingress.yaml index f7ce97a..3981075 100644 --- a/k8s-ng/vaultwarden/ingress.yaml +++ b/k8s-ng/core/vaultwarden/ingress.yaml @@ -7,7 +7,7 @@ metadata: traefik.ingress.kubernetes.io/router.entrypoints: websecure spec: rules: - - host: vw.hexor.cy + - host: vw.btwiusearch.net http: paths: - path: / @@ -20,4 +20,4 @@ spec: tls: - secretName: vaultwarden-tls hosts: - - vw.hexor.cy + - vw.btwiusearch.net diff --git a/k8s-ng/vaultwarden/kustomization.yaml b/k8s-ng/core/vaultwarden/kustomization.yaml similarity index 92% rename from k8s-ng/vaultwarden/kustomization.yaml rename to k8s-ng/core/vaultwarden/kustomization.yaml index fa23277..09ab2ac 100644 --- a/k8s-ng/vaultwarden/kustomization.yaml +++ b/k8s-ng/core/vaultwarden/kustomization.yaml @@ -2,7 +2,6 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - app.yaml - secrets.yaml - pvc.yaml - deployment.yaml diff --git a/k8s-ng/vaultwarden/pvc.yaml b/k8s-ng/core/vaultwarden/pvc.yaml similarity index 100% rename from k8s-ng/vaultwarden/pvc.yaml rename to k8s-ng/core/vaultwarden/pvc.yaml diff --git a/k8s-ng/vaultwarden/secrets.yaml b/k8s-ng/core/vaultwarden/secrets.yaml similarity index 100% rename from k8s-ng/vaultwarden/secrets.yaml rename to k8s-ng/core/vaultwarden/secrets.yaml diff --git a/k8s-ng/vaultwarden/service.yaml b/k8s-ng/core/vaultwarden/service.yaml similarity index 100% rename from k8s-ng/vaultwarden/service.yaml rename to k8s-ng/core/vaultwarden/service.yaml diff --git a/k8s-ng/external-secrets/app.yaml b/k8s-ng/external-secrets/app.yaml deleted file mode 100644 index fe5f9ae..0000000 --- a/k8s-ng/external-secrets/app.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: external-secrets - namespace: argocd -spec: - project: core - destination: - namespace: external-secrets - server: https://kubernetes.default.svc - source: - repoURL: https://gt.hexor.cy/ab/homelab.git - targetRevision: main - path: k8s-ng/external-secrets - syncPolicy: - automated: - selfHeal: true - prune: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true diff --git a/k8s-ng/postgresql/app.yaml b/k8s-ng/postgresql/app.yaml deleted file mode 100644 index ce063b5..0000000 --- a/k8s-ng/postgresql/app.yaml +++ /dev/null @@ -1,22 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: postgresql - namespace: argocd -spec: - project: core - destination: - namespace: psql - server: https://kubernetes.default.svc - source: - repoURL: https://gt.hexor.cy/ab/homelab.git - targetRevision: main - path: k8s-ng/postgresql - syncPolicy: - automated: - selfHeal: true - prune: false # never delete databases because of a manifest change - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - - SkipDryRunOnMissingResource=true # the cnpg Application installs the CRDs diff --git a/k8s-ng/vaultwarden/app.yaml b/k8s-ng/vaultwarden/app.yaml deleted file mode 100644 index a458356..0000000 --- a/k8s-ng/vaultwarden/app.yaml +++ /dev/null @@ -1,22 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: vaultwarden - namespace: argocd -spec: - project: apps - destination: - namespace: vaultwarden - server: https://kubernetes.default.svc - source: - repoURL: https://gt.hexor.cy/ab/homelab.git - targetRevision: main - path: k8s-ng/vaultwarden - syncPolicy: - automated: - selfHeal: true - prune: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - - SkipDryRunOnMissingResource=true # the external-secrets Application installs the CRDs