2.6 KiB
2.6 KiB
Per AI Blitz Plan §6. Layer: 1-T.
03 — Generic Chart Template
Purpose
Instead of maintaining one Application YAML per tool per cluster, generic-argo-apps-chart/templates/genericTemplate.yaml generates all Application CRDs dynamically from a single values file. Adding a tool = adding 4 lines to appSpec[].
Variable flow
values file rendered Application
─────────── ────────────────────
appSpec[].name ──────────────────────────────► metadata.name: <name>-<mungedCluster>-<env>
appSpec[].namespace ─────────────────────────► spec.destination.namespace
appSpec[].nameOverride (optional) ───────────► metadata.name (overrides auto-generated)
appSpec[].chartDir ──────────────────────────► spec.source.path: helm-templates/<chartDir>
appSpec[].valuesDir ─────────────────────────► spec.source.helm.valueFiles: .../helm-overrides/<cluster>/<valuesDir>/custom-values.yaml
appSpec[].additionalValueFiles (optional) ───► extra helm valueFiles entries
teamSpec.devops.labels ──────────────────────► metadata.labels (bu, team, env, cluster)
teamSpec.devops.source.repoURL ──────────────► spec.source.repoURL
argocdSpec.namespace ────────────────────────► metadata.namespace (where Application CRD lives)
clusterSpec.destination.name ────────────────► spec.destination.name
Cluster name munging
The template strips environment/region noise from the cluster name to produce a short Application name segment:
| Step | Transformation |
|---|---|
| Strip | k8s-, prd-, int-, dev-, -ase1 |
| Replace | -ase1c → -c |
Example: k8s-central-prd-ase1 → central-prd → Application name: keda-central-prd
Why this matters for agents
- Template changes are fleet-wide — a bug breaks every tool on every cluster simultaneously.
generic-argo-apps-chart/edits are classified as Layer 1-T HIGH RISK — requires explicit platform-team sign-off and must be tested withhelm templateagainst multiple values files before merging.- See AGENT_BOUNDARIES.md for the full classification.