Kustomize Kubernetes manifest composition without templating. This skill should be used when writing kustomization.yaml files, creating base/overlay directory structures, using Components for shared config (single source of truth pattern), applying strategic merge or JSON patches, using replacements (modern vars alternative) to inject values across resources, configuring generators (ConfigMapGenerator, SecretGenerator), inflating Helm charts (helmCharts/helmGlobals), applying common transformers (namespace, namePrefix, labels, images), CRD field configurations, debugging kustomize build output, or structuring multi-app repositories with shared components.
Build Kubernetes manifests from bases + overlays without templating. Compose resources declaratively using patches, transformers, and replacements.
| Kind | API Version | Purpose |
|---|---|---|
| Kustomization | kustomize.config.k8s.io/v1beta1 | Base or overlay - lists resources, patches, config |
| Component | kustomize.config.k8s.io/v1alpha1 | Reusable mixin - shared across multiple kustomizations |
apps/
_components/ # Shared components (prefixed _ to sort first)
domain/
kustomization.yaml # kind: Component
cluster-config.yaml
airgap/
kustomization.yaml # kind: Component - imagePullPolicy overrides
myapp/
base/
kustomization.yaml
deployment.yaml
service.yaml
overlays/
dev/kustomization.yaml
prod/kustomization.yaml
kustomization.yaml # Top-level, may reference base + components
Flat layout (no base/overlays) is fine for apps without environment variants.
apiVersion: kustomize.config.k8s.io/v1beta1