2.7 KiB
2.7 KiB
Per AI Blitz Plan §6. 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
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
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
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
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.