> Per [AI Blitz Plan §6](../docs/global/AGENT_BOUNDARIES.md). Layer: 1-T. # 04 — Values Hierarchy Each cluster values file (`values//incubator-infra--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// 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//` | | `valuesDir` | `helm-overrides///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).