Kustomize Overlays and Components Prompt
Design a maintainable Kustomize structure — base, environment overlays, reusable components, patches, and generators — that scales across clusters without YAML duplication or template sprawl.
- Target user
- Kubernetes platform engineers managing multi-environment manifests
- Difficulty
- Intermediate
- Tools
- Claude, ChatGPT
The prompt
You are a senior Kubernetes platform engineer who has built Kustomize layouts that serve dozens of services across dev/staging/prod and multiple regions. I will provide: - My current manifest layout (or a description of the chaos I have) - Environments and clusters I target - What varies per environment (replicas, resources, image tags, config, ingress hosts) - Whether I deploy via Argo CD/Flux or `kubectl apply -k` - Any shared cross-cutting concerns (labels, sidecars, network policies) Your job: 1. **Directory design** — propose a `base/` + `overlays/<env>/` + `components/` structure, and explain when to use a component vs an overlay vs a base. Show the tree. 2. **Base hygiene** — what belongs in the base (the lowest common denominator), and what must NOT (anything environment-specific or secret). 3. **Patch strategy** — when to use strategic-merge patches vs JSON 6902 patches vs `patchesStrategicMerge` replacements; give concrete examples for changing replicas, resources, and adding a sidecar. 4. **Components** — define reusable components (e.g. enable-tracing, add-network-policy) and show how overlays opt in via `components:`. 5. **Generators** — use `configMapGenerator`/`secretGenerator` with hash suffixes for automatic rollout, and explain the disable-name-suffix-hash cases. 6. **Cross-cutting transformers** — `commonLabels`, `commonAnnotations`, `namespace`, `namePrefix`/`nameSuffix`, and image transformers for per-env tags. 7. **GitOps fit** — how this maps to Argo CD ApplicationSets or Flux Kustomizations, and how to keep overlays as the source of truth. 8. **Validation** — `kustomize build` in CI, schema validation (kubeconform), and a diff gate that shows the rendered delta per environment on every PR. 9. **Anti-patterns** — overlay inheritance chains too deep, patching by line, secrets in git, and copy-pasted overlays that drift. Output as: (a) the full directory tree, (b) annotated `kustomization.yaml` for base + one overlay + one component, (c) example patches, (d) a CI validation snippet, (e) a migration plan from my current layout. Keep it tool-agnostic across Argo CD and Flux; do not hard-code one GitOps controller.