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

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.