Dit deel is nog niet vertaald. Je ziet de Engelse tekst.
Wat het doet
Kustomize starts from a base (plain YAML) and applies overlays: change the namespace, image tag, replicas, labels, or patch any field. Nothing is copied by hand, and the output is plain YAML. It is built into kubectl (kubectl apply -k, kubectl kustomize) and into Argo CD and Flux.
Each folder has a kustomization.yaml that lists resources and changes.
Zo schrijf je het
kustomize build DIR
kubectl apply -k DIR
kubectl kustomize DIRBelangrijkste delen
kustomization.yaml fields
resources- Files or folders to include (also remote Git URLs).
namespace- Put everything in this namespace.
images- Change image names and tags.
replicas- Change replica counts.
patches- Strategic-merge or JSON patches for any field.
labels/commonAnnotations- Add labels / annotations to all objects.
namePrefix/nameSuffix- Change object names.
configMapGenerator/secretGenerator- Make ConfigMaps/Secrets from files (with a hash suffix).
components- Re-usable optional parts.
Opties 5
Meest gebruikt
Commands
Niets past bij dit filter.
Voorbeelden 10
$ als gewone gebruiker# als root (of met sudo)
1The folder layout
tree shop shop/ ├── base/ │ ├── deployment.yaml │ ├── service.yaml │ └── kustomization.yaml └── overlays/ ├── dev/kustomization.yaml └── prod/kustomization.yaml2The base
cat shop/base/kustomization.yaml resources: - deployment.yaml - service.yaml labels: - pairs: { app: shop }3A prod overlay
cat shop/overlays/prod/kustomization.yaml resources: [../../base] namespace: shop-prod images: - name: ghcr.io/s0sta/shop newTag: 1.4.0 replicas: - name: shop count: 3 patches: - target: { kind: Deployment, name: shop } patch: |- - op: add path: /spec/template/spec/containers/0/resources value: { limits: { memory: 512Mi, cpu: 500m } }4See and apply the result
5Change the image tag in CI
6Make a ConfigMap from a file
cat shop/base/kustomization.yaml configMapGenerator: - name: shop-config files: [app.properties]The name gets a hash; pods restart by themselves when the file changes.
7Scan the final YAML
kustomize build shop/overlays/prod > prod.yaml && trivy config prod.yaml8Use a remote base from Git
cat kustomization.yaml resources: - https://github.com/s0sta/platform//apps/shop/base?ref=v1.4.09Add a label and a name prefix to everything
cat overlays/dev/kustomization.yaml resources: [../../base] namePrefix: dev- labels: - pairs: { env: dev }10Patch with a small YAML file
cat overlays/prod/probe.yaml apiVersion: apps/v1 kind: Deployment metadata: { name: shop } spec: template: spec: containers: - name: shop readinessProbe: { httpGet: { path: /health, port: 8080 } } kustomize edit add patch --path probe.yaml
Niets past bij dit filter.
Let op
secretGeneratorwith real values in Git is not safe; encrypt with SOPS or use External Secrets.- The kubectl built-in kustomize can be older than the standalone one.
Bestanden
kustomization.yaml- The file in every base and overlay folder.
Tips om te onthouden
- Use Helm for third-party apps and Kustomize for your own apps — or Kustomize on top of a rendered chart.
Exitcodes
0 | Success. |
1 | Error. |