Refactor Argo CD application deployment by removing obsolete tasks and updating README for clarity. Introduce new task inclusion for Argo CD applications post-platform Helm installation, ensuring proper application order and synchronization.

This commit is contained in:
Nikholas Pcenicni
2026-05-13 16:57:51 -04:00
parent 4adaf100a2
commit c4e000d2d5
26 changed files with 512 additions and 41 deletions

View File

@@ -0,0 +1,31 @@
# Bootstrap app-of-apps leaf: cert-manager (namespace + issuers + Helm chart).
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: noble-cert-manager
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io/background
spec:
project: default
sources:
- repoURL: https://gitea.pcenicni.ca/gsdavidp/home-server.git
targetRevision: HEAD
path: clusters/noble/bootstrap/cert-manager
- repoURL: https://charts.jetstack.io
chart: cert-manager
targetRevision: v1.20.0
helm:
releaseName: cert-manager
valueFiles:
- $values/clusters/noble/bootstrap/cert-manager/values.yaml
- repoURL: https://gitea.pcenicni.ca/gsdavidp/home-server.git
targetRevision: HEAD
ref: values
destination:
server: https://kubernetes.default.svc
namespace: cert-manager
# Manual sync: Ansible helm runs first; enable automation after cutover (see ../README.md §5).
syncPolicy:
syncOptions:
- CreateNamespace=true

View File

@@ -0,0 +1,28 @@
# Bootstrap app-of-apps leaf: Cilium CNI.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: noble-cilium
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io/background
spec:
project: default
sources:
- repoURL: https://helm.cilium.io/
chart: cilium
targetRevision: 1.16.6
helm:
releaseName: cilium
valueFiles:
- $values/clusters/noble/bootstrap/cilium/values.yaml
- repoURL: https://gitea.pcenicni.ca/gsdavidp/home-server.git
targetRevision: HEAD
ref: values
destination:
server: https://kubernetes.default.svc
namespace: kube-system
# Manual sync: Ansible helm runs first; enable automation after cutover (see ../README.md §5).
syncPolicy:
syncOptions:
- CreateNamespace=true

View File

@@ -0,0 +1,18 @@
# Bootstrap app-of-apps leaf: external-snapshotter controller manifests.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: noble-csi-snapshot-controller
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io/background
spec:
project: default
source:
repoURL: https://gitea.pcenicni.ca/gsdavidp/home-server.git
targetRevision: HEAD
path: clusters/noble/bootstrap/csi-snapshot-controller/controller
destination:
server: https://kubernetes.default.svc
namespace: kube-system
# Manual sync: Ansible applies first; enable automation after cutover (see ../README.md §5).

View File

@@ -0,0 +1,18 @@
# Bootstrap app-of-apps leaf: external-snapshotter CRDs.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: noble-csi-snapshot-crds
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io/background
spec:
project: default
source:
repoURL: https://gitea.pcenicni.ca/gsdavidp/home-server.git
targetRevision: HEAD
path: clusters/noble/bootstrap/csi-snapshot-controller/crd
destination:
server: https://kubernetes.default.svc
namespace: kube-system
# Manual sync: Ansible applies first; enable automation after cutover (see ../README.md §5).

View File

@@ -0,0 +1,28 @@
# Bootstrap app-of-apps leaf: Fluent Bit.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: noble-fluent-bit
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io/background
spec:
project: default
sources:
- repoURL: https://fluent.github.io/helm-charts
chart: fluent-bit
targetRevision: 0.56.0
helm:
releaseName: fluent-bit
valueFiles:
- $values/clusters/noble/bootstrap/fluent-bit/values.yaml
- repoURL: https://gitea.pcenicni.ca/gsdavidp/home-server.git
targetRevision: HEAD
ref: values
destination:
server: https://kubernetes.default.svc
namespace: logging
# Manual sync: Ansible helm runs first; enable automation after cutover (see ../README.md §5).
syncPolicy:
syncOptions:
- CreateNamespace=true

View File

@@ -0,0 +1,28 @@
# Bootstrap app-of-apps leaf: Headlamp.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: noble-headlamp
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io/background
spec:
project: default
sources:
- repoURL: https://kubernetes-sigs.github.io/headlamp/
chart: headlamp
targetRevision: 0.40.1
helm:
releaseName: headlamp
valueFiles:
- $values/clusters/noble/bootstrap/headlamp/values.yaml
- repoURL: https://gitea.pcenicni.ca/gsdavidp/home-server.git
targetRevision: HEAD
ref: values
destination:
server: https://kubernetes.default.svc
namespace: headlamp
# Manual sync: Ansible helm runs first; enable automation after cutover (see ../README.md §5).
syncPolicy:
syncOptions:
- CreateNamespace=true

View File

@@ -0,0 +1,28 @@
# Bootstrap app-of-apps leaf: kube-prometheus-stack.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: noble-kube-prometheus
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io/background
spec:
project: default
sources:
- repoURL: https://prometheus-community.github.io/helm-charts
chart: kube-prometheus-stack
targetRevision: 82.15.1
helm:
releaseName: kube-prometheus
valueFiles:
- $values/clusters/noble/bootstrap/kube-prometheus-stack/values.yaml
- repoURL: https://gitea.pcenicni.ca/gsdavidp/home-server.git
targetRevision: HEAD
ref: values
destination:
server: https://kubernetes.default.svc
namespace: monitoring
# Manual sync: Ansible helm runs first; enable automation after cutover (see ../README.md §5).
syncPolicy:
syncOptions:
- CreateNamespace=true

View File

@@ -0,0 +1,18 @@
# Bootstrap app-of-apps leaf: kube-vip API virtual IP manifests.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: noble-kube-vip
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io/background
spec:
project: default
source:
repoURL: https://gitea.pcenicni.ca/gsdavidp/home-server.git
targetRevision: HEAD
path: clusters/noble/bootstrap/kube-vip
destination:
server: https://kubernetes.default.svc
namespace: kube-system
# Manual sync: Ansible applies first; enable automation after cutover (see ../README.md §5).

View File

@@ -0,0 +1,20 @@
# Sub-kustomization included by **clusters/noble/bootstrap/kustomization.yaml**.
# Leaf Argo **Application** resources for bootstrap workloads shown as separate apps under **noble-bootstrap-root**.
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- cilium-application.yaml
- metrics-server-application.yaml
- longhorn-application.yaml
- metallb-application.yaml
- traefik-application.yaml
- cert-manager-application.yaml
- kyverno-application.yaml
- kyverno-policies-application.yaml
- kube-vip-application.yaml
- csi-snapshot-crds-application.yaml
- csi-snapshot-controller-application.yaml
- kube-prometheus-application.yaml
- loki-application.yaml
- fluent-bit-application.yaml
- headlamp-application.yaml

View File

@@ -0,0 +1,28 @@
# Bootstrap app-of-apps leaf: Kyverno admission controller.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: noble-kyverno
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io/background
spec:
project: default
sources:
- repoURL: https://kyverno.github.io/kyverno/
chart: kyverno
targetRevision: 3.7.1
helm:
releaseName: kyverno
valueFiles:
- $values/clusters/noble/bootstrap/kyverno/values.yaml
- repoURL: https://gitea.pcenicni.ca/gsdavidp/home-server.git
targetRevision: HEAD
ref: values
destination:
server: https://kubernetes.default.svc
namespace: kyverno
# Manual sync: Ansible helm runs first; enable automation after cutover (see ../README.md §5).
syncPolicy:
syncOptions:
- CreateNamespace=true

View File

@@ -0,0 +1,28 @@
# Bootstrap app-of-apps leaf: Kyverno policy chart.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: noble-kyverno-policies
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io/background
spec:
project: default
sources:
- repoURL: https://kyverno.github.io/kyverno/
chart: kyverno-policies
targetRevision: 3.7.1
helm:
releaseName: kyverno-policies
valueFiles:
- $values/clusters/noble/bootstrap/kyverno/policies-values.yaml
- repoURL: https://gitea.pcenicni.ca/gsdavidp/home-server.git
targetRevision: HEAD
ref: values
destination:
server: https://kubernetes.default.svc
namespace: kyverno
# Manual sync: Ansible helm runs first; enable automation after cutover (see ../README.md §5).
syncPolicy:
syncOptions:
- CreateNamespace=true

View File

@@ -0,0 +1,28 @@
# Bootstrap app-of-apps leaf: Loki.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: noble-loki
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io/background
spec:
project: default
sources:
- repoURL: https://grafana.github.io/helm-charts
chart: loki
targetRevision: 6.55.0
helm:
releaseName: loki
valueFiles:
- $values/clusters/noble/bootstrap/loki/values.yaml
- repoURL: https://gitea.pcenicni.ca/gsdavidp/home-server.git
targetRevision: HEAD
ref: values
destination:
server: https://kubernetes.default.svc
namespace: loki
# Manual sync: Ansible helm runs first; enable automation after cutover (see ../README.md §5).
syncPolicy:
syncOptions:
- CreateNamespace=true

View File

@@ -0,0 +1,31 @@
# Bootstrap app-of-apps leaf: Longhorn (namespace labels + Helm chart).
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: noble-longhorn
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io/background
spec:
project: default
sources:
- repoURL: https://gitea.pcenicni.ca/gsdavidp/home-server.git
targetRevision: HEAD
path: clusters/noble/bootstrap/longhorn
- repoURL: https://charts.longhorn.io
chart: longhorn
targetRevision: 1.11.1
helm:
releaseName: longhorn
valueFiles:
- $values/clusters/noble/bootstrap/longhorn/values.yaml
- repoURL: https://gitea.pcenicni.ca/gsdavidp/home-server.git
targetRevision: HEAD
ref: values
destination:
server: https://kubernetes.default.svc
namespace: longhorn-system
# Manual sync: Ansible helm runs first; enable automation after cutover (see ../README.md §5).
syncPolicy:
syncOptions:
- CreateNamespace=true

View File

@@ -0,0 +1,26 @@
# Bootstrap app-of-apps leaf: MetalLB (namespace + pool/L2 + Helm chart).
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: noble-metallb
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io/background
spec:
project: default
sources:
- repoURL: https://gitea.pcenicni.ca/gsdavidp/home-server.git
targetRevision: HEAD
path: clusters/noble/bootstrap/metallb
- repoURL: https://metallb.github.io/metallb
chart: metallb
targetRevision: 0.15.3
helm:
releaseName: metallb
destination:
server: https://kubernetes.default.svc
namespace: metallb-system
# Manual sync: Ansible helm runs first; enable automation after cutover (see ../README.md §5).
syncPolicy:
syncOptions:
- CreateNamespace=true

View File

@@ -0,0 +1,28 @@
# Bootstrap app-of-apps leaf: metrics-server.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: noble-metrics-server
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io/background
spec:
project: default
sources:
- repoURL: https://kubernetes-sigs.github.io/metrics-server/
chart: metrics-server
targetRevision: 3.13.0
helm:
releaseName: metrics-server
valueFiles:
- $values/clusters/noble/bootstrap/metrics-server/values.yaml
- repoURL: https://gitea.pcenicni.ca/gsdavidp/home-server.git
targetRevision: HEAD
ref: values
destination:
server: https://kubernetes.default.svc
namespace: kube-system
# Manual sync: Ansible helm runs first; enable automation after cutover (see ../README.md §5).
syncPolicy:
syncOptions:
- CreateNamespace=true

View File

@@ -0,0 +1,28 @@
# Bootstrap app-of-apps leaf: Traefik ingress.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: noble-traefik
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io/background
spec:
project: default
sources:
- repoURL: https://traefik.github.io/charts
chart: traefik
targetRevision: 39.0.6
helm:
releaseName: traefik
valueFiles:
- $values/clusters/noble/bootstrap/traefik/values.yaml
- repoURL: https://gitea.pcenicni.ca/gsdavidp/home-server.git
targetRevision: HEAD
ref: values
destination:
server: https://kubernetes.default.svc
namespace: traefik
# Manual sync: Ansible helm runs first; enable automation after cutover (see ../README.md §5).
syncPolicy:
syncOptions:
- CreateNamespace=true