From 4699ae2cb26c46751c3de4b82e7f4f48aff40752 Mon Sep 17 00:00:00 2001 From: j Date: Sun, 17 Aug 2025 13:39:50 +0000 Subject: [PATCH] Solve chicken/egg on cert-manager --- .../20-domain-names/{ => bind}/bind.yaml | 0 .../certmanager-a/certmanager-a.yaml | 33 +++++++++++++++ .../certmanager-b.yaml} | 35 ---------------- applications/20-domain-names/dns.yaml | 42 +++++++++++++++++++ .../{ => externaldns}/externaldns.yaml | 0 5 files changed, 75 insertions(+), 35 deletions(-) rename applications/20-domain-names/{ => bind}/bind.yaml (100%) create mode 100644 applications/20-domain-names/certmanager-a/certmanager-a.yaml rename applications/20-domain-names/{certmanager.yaml => certmanager-b/certmanager-b.yaml} (53%) create mode 100644 applications/20-domain-names/dns.yaml rename applications/20-domain-names/{ => externaldns}/externaldns.yaml (100%) diff --git a/applications/20-domain-names/bind.yaml b/applications/20-domain-names/bind/bind.yaml similarity index 100% rename from applications/20-domain-names/bind.yaml rename to applications/20-domain-names/bind/bind.yaml diff --git a/applications/20-domain-names/certmanager-a/certmanager-a.yaml b/applications/20-domain-names/certmanager-a/certmanager-a.yaml new file mode 100644 index 0000000..b0fa560 --- /dev/null +++ b/applications/20-domain-names/certmanager-a/certmanager-a.yaml @@ -0,0 +1,33 @@ +--- +# 1. cert-manager Helm chart +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: cert-manager + namespace: argocd +spec: + project: default + source: + repoURL: "https://charts.jetstack.io" + chart: "cert-manager" + targetRevision: "v1.18.2" + helm: + releaseName: "cert-manager" + values: | + installCRDs: true + extraArgs: + - --dns01-recursive-nameservers-only + - --dns01-recursive-nameservers=8.8.8.8:53,1.1.1.1:53 + destination: + server: "https://kubernetes.default.svc" + namespace: home-server + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true + - ApplyOutOfSyncOnly=true + - SkipHooks=false + - SyncWave=0 # ensure cert-manager is installed first + diff --git a/applications/20-domain-names/certmanager.yaml b/applications/20-domain-names/certmanager-b/certmanager-b.yaml similarity index 53% rename from applications/20-domain-names/certmanager.yaml rename to applications/20-domain-names/certmanager-b/certmanager-b.yaml index 83befe8..a116f35 100644 --- a/applications/20-domain-names/certmanager.yaml +++ b/applications/20-domain-names/certmanager-b/certmanager-b.yaml @@ -1,38 +1,4 @@ --- -# 1. cert-manager Helm chart -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: cert-manager - namespace: argocd -spec: - project: default - source: - repoURL: "https://charts.jetstack.io" - chart: "cert-manager" - targetRevision: "v1.18.2" - helm: - releaseName: "cert-manager" - values: | - installCRDs: true - extraArgs: - - --dns01-recursive-nameservers-only - - --dns01-recursive-nameservers=8.8.8.8:53,1.1.1.1:53 - destination: - server: "https://kubernetes.default.svc" - namespace: home-server - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true - - ApplyOutOfSyncOnly=true - - SkipHooks=false - - SyncWave=0 # ensure cert-manager is installed first - ---- -# 2. ClusterIssuer apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: @@ -54,7 +20,6 @@ spec: key: hxme-update-key --- -# 3. Certificate apiVersion: cert-manager.io/v1 kind: Certificate metadata: diff --git a/applications/20-domain-names/dns.yaml b/applications/20-domain-names/dns.yaml new file mode 100644 index 0000000..871ff52 --- /dev/null +++ b/applications/20-domain-names/dns.yaml @@ -0,0 +1,42 @@ +--- +apiVersion: argoproj.io/v1alpha1 +kind: ApplicationSet +metadata: + name: hxme-dns-deploy + namespace: argocd +spec: + goTemplate: true + generators: + - list: + elements: + - name: certmanager-crds + path: applications/20-domain-names/certmanager-a.yaml + wave: 1 + - name: certmanager-not-crds + path: applications/20-domain-names/certmanager-b.yaml + wave: 2 + - name: bind + path: applications/20-domain-names/bind + wave: 3 + - name: externaldns + path: applications/20-domain-names/externaldns + wave: 3 + template: + metadata: + name: '{{.name}}' + spec: + project: default + source: + repoURL: 'https://repobase.net/j/home-server.git' + targetRevision: HEAD + path: '{{.path}}' + destination: + server: 'https://kubernetes.default.svc' + namespace: database + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true + - SyncWave={{.wave}} diff --git a/applications/20-domain-names/externaldns.yaml b/applications/20-domain-names/externaldns/externaldns.yaml similarity index 100% rename from applications/20-domain-names/externaldns.yaml rename to applications/20-domain-names/externaldns/externaldns.yaml