From 4aff69d0e6bfcc5112574e565760fe88a7e76885 Mon Sep 17 00:00:00 2001 From: Julia McGhee Date: Fri, 20 Mar 2026 18:40:16 +0000 Subject: [PATCH] Add Helm-based ArgoCD Applications for platform operators - Longhorn: Helm chart v1.7.2 (sync-wave -2, installs first) - cert-manager: Helm chart v1.16.3 with CRDs enabled - CloudNativePG: Helm chart v0.23.0 - Sealed Secrets: Helm chart v2.16.2 - Remove custom StorageClass (Helm chart manages it) Previously only config resources were deployed without the actual operators, causing PVCs to pend and CRDs to be missing. --- .../platform/cert-manager/application.yaml | 26 +++++++++++++++++ .../platform/cert-manager/kustomization.yaml | 1 + .../platform/cloudnativepg/application.yaml | 22 ++++++++++++++ .../platform/cloudnativepg/kustomization.yaml | 1 + .../platform/longhorn/application.yaml | 29 +++++++++++++++++++ .../platform/longhorn/kustomization.yaml | 2 +- .../platform/sealed-secrets/application.yaml | 18 ++++++++++++ .../sealed-secrets/kustomization.yaml | 1 + 8 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 infra/kubernetes/platform/cert-manager/application.yaml create mode 100644 infra/kubernetes/platform/cloudnativepg/application.yaml create mode 100644 infra/kubernetes/platform/longhorn/application.yaml create mode 100644 infra/kubernetes/platform/sealed-secrets/application.yaml diff --git a/infra/kubernetes/platform/cert-manager/application.yaml b/infra/kubernetes/platform/cert-manager/application.yaml new file mode 100644 index 0000000..78ab115 --- /dev/null +++ b/infra/kubernetes/platform/cert-manager/application.yaml @@ -0,0 +1,26 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: cert-manager-helm + namespace: argocd + annotations: + argocd.argoproj.io/sync-wave: "-1" +spec: + project: default + source: + repoURL: https://charts.jetstack.io + chart: cert-manager + targetRevision: v1.16.3 + helm: + valuesObject: + crds: + enabled: true + destination: + server: https://kubernetes.default.svc + namespace: cert-manager + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true diff --git a/infra/kubernetes/platform/cert-manager/kustomization.yaml b/infra/kubernetes/platform/cert-manager/kustomization.yaml index 48d5c61..c2cc64d 100644 --- a/infra/kubernetes/platform/cert-manager/kustomization.yaml +++ b/infra/kubernetes/platform/cert-manager/kustomization.yaml @@ -1,5 +1,6 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: + - application.yaml - namespace.yaml - clusterissuer-letsencrypt.yaml diff --git a/infra/kubernetes/platform/cloudnativepg/application.yaml b/infra/kubernetes/platform/cloudnativepg/application.yaml new file mode 100644 index 0000000..e531433 --- /dev/null +++ b/infra/kubernetes/platform/cloudnativepg/application.yaml @@ -0,0 +1,22 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: cloudnativepg-helm + namespace: argocd + annotations: + argocd.argoproj.io/sync-wave: "-1" +spec: + project: default + source: + repoURL: https://cloudnative-pg.github.io/charts + chart: cloudnative-pg + targetRevision: 0.23.0 + destination: + server: https://kubernetes.default.svc + namespace: cnpg-system + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true diff --git a/infra/kubernetes/platform/cloudnativepg/kustomization.yaml b/infra/kubernetes/platform/cloudnativepg/kustomization.yaml index 993fbde..07852d1 100644 --- a/infra/kubernetes/platform/cloudnativepg/kustomization.yaml +++ b/infra/kubernetes/platform/cloudnativepg/kustomization.yaml @@ -1,4 +1,5 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: + - application.yaml - cluster.yaml diff --git a/infra/kubernetes/platform/longhorn/application.yaml b/infra/kubernetes/platform/longhorn/application.yaml new file mode 100644 index 0000000..64d28df --- /dev/null +++ b/infra/kubernetes/platform/longhorn/application.yaml @@ -0,0 +1,29 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: longhorn-helm + namespace: argocd + annotations: + argocd.argoproj.io/sync-wave: "-2" +spec: + project: default + source: + repoURL: https://charts.longhorn.io + chart: longhorn + targetRevision: 1.7.2 + helm: + valuesObject: + defaultSettings: + defaultReplicaCount: 2 + defaultDataLocality: best-effort + persistence: + defaultClassReplicaCount: 2 + destination: + server: https://kubernetes.default.svc + namespace: longhorn-system + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true diff --git a/infra/kubernetes/platform/longhorn/kustomization.yaml b/infra/kubernetes/platform/longhorn/kustomization.yaml index be9468e..0e0a709 100644 --- a/infra/kubernetes/platform/longhorn/kustomization.yaml +++ b/infra/kubernetes/platform/longhorn/kustomization.yaml @@ -1,5 +1,5 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: + - application.yaml - namespace.yaml - - storageclass.yaml diff --git a/infra/kubernetes/platform/sealed-secrets/application.yaml b/infra/kubernetes/platform/sealed-secrets/application.yaml new file mode 100644 index 0000000..58adbae --- /dev/null +++ b/infra/kubernetes/platform/sealed-secrets/application.yaml @@ -0,0 +1,18 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: sealed-secrets-helm + namespace: argocd +spec: + project: default + source: + repoURL: https://bitnami-labs.github.io/sealed-secrets + chart: sealed-secrets + targetRevision: 2.16.2 + destination: + server: https://kubernetes.default.svc + namespace: kube-system + syncPolicy: + automated: + prune: true + selfHeal: true diff --git a/infra/kubernetes/platform/sealed-secrets/kustomization.yaml b/infra/kubernetes/platform/sealed-secrets/kustomization.yaml index 48ef36e..0e0a709 100644 --- a/infra/kubernetes/platform/sealed-secrets/kustomization.yaml +++ b/infra/kubernetes/platform/sealed-secrets/kustomization.yaml @@ -1,4 +1,5 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: + - application.yaml - namespace.yaml