Refine Argo CD documentation and configuration. Update README.md to clarify the relationship between noble-root and child applications, and enhance instructions for syncing workloads. Modify root-application.yaml to specify the use of kustomization.yaml for cluster workloads. Adjust values.yaml to enable Helm inflation for Kustomize charts. Update apps/README.md to streamline application management and clarify deployment processes.

This commit is contained in:
Nikholas Pcenicni
2026-03-28 02:05:09 -04:00
parent 445a1ac211
commit c148454e91
6 changed files with 114 additions and 9 deletions

View File

@@ -49,7 +49,7 @@ Use **Settings → Repositories** in the UI, or `argocd repo add` / a `Secret` o
kubectl apply -f clusters/noble/bootstrap/argocd/root-application.yaml
```
Until **`apps/`** contains valid **`Application`** resources, the root app may show **OutOfSync** or sync nothing — that is expected.
**`apps/noble-platform.yaml`** points at **`clusters/noble/apps`** (see **`kustomization.yaml`** there). After **`values.yaml`** changes that affect repo-server (e.g. **`kustomize.buildOptions`**), run **`helm upgrade`** for Argo CD again.
## Versions

View File

@@ -1,10 +1,7 @@
# Argo CD — app-of-apps children
Add **`Application`** manifests here (one file per workload or group). The **`noble-root`** Application in the parent directory syncs this folder.
**`noble-root`** syncs this directory. Keep **one** child Application (**`noble-platform`**) so the UI does not list every Helm release separately.
Example patterns:
- **`noble-platform.yaml`** — syncs **`clusters/noble/apps`** via **`kustomization.yaml`** (namespaces, extra YAML, and **helmCharts** with the same **`values.yaml`** files as the manual install commands in each app README).
- **Helm:** `spec.source` with `chart`, `repoURL` (Helm repo), and `helm.valueFiles` pointing at paths in the same git repo.
- **Kustomize / plain manifests:** `spec.source.path` to a directory of YAML.
The historical **`clusters/noble/apps/*`** tree is written for **manual `helm upgrade`**; migrating each app to an Argo CD `Application` is optional follow-up work.
After changing **`clusters/noble/bootstrap/argocd/values.yaml`** (e.g. **`kustomize.buildOptions`**), roll the Argo CD Helm release so repo-server picks up the new ConfigMap.

View File

@@ -0,0 +1,27 @@
# Noble cluster workloads — one Application so the Argo CD UI stays a single “platform” row
# under **noble-root** (app-of-apps). Renders **clusters/noble/apps** (Kustomize + Helm).
#
# Adopting existing manual Helm releases: release names and namespaces must match
# **clusters/noble/apps/kustomization.yaml** (same as the README install commands).
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: noble-platform
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io/background
spec:
project: default
source:
repoURL: https://gitea.pcenicni.ca/gsdavidp/home-server.git
targetRevision: main
path: clusters/noble/apps
destination:
server: https://kubernetes.default.svc
namespace: default
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

View File

@@ -3,8 +3,9 @@
# 1. Set spec.source.repoURL (and targetRevision) to this git repository.
# 2. kubectl apply -f clusters/noble/bootstrap/argocd/root-application.yaml
#
# Syncs **Application** YAMLs under **apps/** (add workloads there). Do **not**
# point at **clusters/noble/apps/** — that tree is Helm values for manual installs.
# Syncs **Application** YAMLs under **apps/** (today: **noble-platform**). Cluster
# workloads are defined by **clusters/noble/apps/kustomization.yaml** (Kustomize +
# Helm); per-app **values.yaml** and READMEs stay the source of truth for versions.
#
apiVersion: argoproj.io/v1alpha1
kind: Application

View File

@@ -17,6 +17,9 @@ global:
domain: argo.apps.noble.lab.pcenicni.dev
configs:
# Kustomize **helmCharts** in **clusters/noble/apps/kustomization.yaml** need Helm inflation.
cm:
kustomize.buildOptions: --enable-helm
params:
# TLS terminates at Traefik / cert-manager; Argo CD serves HTTP behind the Ingress.
server.insecure: true