Files
devops-infra-argo-config-gcp/claude/04-values-hierarchy.md
T
2026-08-26 04:03:34 +05:30

69 lines
2.7 KiB
Markdown

> Per [AI Blitz Plan §6](../docs/global/AGENT_BOUNDARIES.md). Layer: 1-T.
# 04 — Values Hierarchy
Each cluster values file (`values/<env>/incubator-infra-<cluster>-values.yaml`) has exactly four top-level keys in this order:
## 1. clusterSpec — where to deploy
```yaml
clusterSpec:
destination:
server: "" # Always empty — use name-based routing
name: "k8s-central-prd-ase1" # GKE cluster name (must match incubator filename and helm-overrides/ folder)
```
## 2. argocdSpec — ArgoCD context
```yaml
argocdSpec:
namespace: argocd-prd # ArgoCD namespace where child Application CRDs are created
# prd → argocd-prd, stg → argocd-dev, int → argocd-shared-int
```
## 3. teamSpec — chart source and labels
```yaml
teamSpec:
devops:
source:
repoURL: https://github.com/Meesho/devops-infra-helm-charts # Allow-listed; do not change
targetRevision: main # prd=main, stg=develop, int=pre-prod
path: helm-templates # Chart root in the helm-charts repo
valueFiles: ../../helm-overrides/k8s-central-prd-ase1 # Relative path to cluster overrides
labels:
bu: infra # Always "infra" for this repo
team: devops # Maps to ArgoCD AppProject (sre or sec)
env: prd # Environment: prd, int, dev, admin
cluster: k8s-central-prd-ase1 # Must match clusterSpec.destination.name
```
## 4. appSpec — the editing surface
```yaml
appSpec:
- name: keda # Short tool name — used in Application name generation
namespace: keda-central-prd # Target Kubernetes namespace
chartDir: keda # Directory under helm-templates/ in helm-charts repo
valuesDir: keda # Directory under helm-overrides/<cluster>/ in helm-charts repo
# Optional fields:
- name: coredns
namespace: kube-system
chartDir: coredns
valuesDir: coredns
nameOverride: coredns-central-prd # Only for name collisions or >253 char names
additionalValueFiles:
- ../../helm-templates/coredns/gcp-ase1a-values.yaml # Region-shared overlay
```
## Cross-repo dependency
Every `appSpec` entry creates a dependency on `devops-infra-helm-charts`:
| appSpec field | Must exist in devops-infra-helm-charts |
| ------------- | -------------------------------------- |
| `chartDir` | `helm-templates/<chartDir>/` |
| `valuesDir` | `helm-overrides/<cluster>/<valuesDir>/custom-values.yaml` |
If either is missing, ArgoCD will fail to render the Application. Always verify in the sister repo before adding an appSpec entry. See [SANCTITY_RULES.md R3](../docs/global/SANCTITY_RULES.md).