42 lines
2.6 KiB
Markdown
42 lines
2.6 KiB
Markdown
> Per [AI Blitz Plan §6](../docs/global/AGENT_BOUNDARIES.md). 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
|
|
|
|
```text
|
|
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 with `helm template` against multiple values files before merging.
|
|
- See [AGENT_BOUNDARIES.md](../docs/global/AGENT_BOUNDARIES.md) for the full classification.
|