DEV Community

Alex Spinov
Alex Spinov

Posted on

Kustomize Has a Free API: Template-Free Kubernetes Configuration

Why Kustomize

Kustomize customizes Kubernetes YAML without templates — no Go templating, no Helm charts. Overlay base configs with patches for different environments.

Built into kubectl

kubectl apply -k overlays/production/
Enter fullscreen mode Exit fullscreen mode

Base Configuration

# base/kustomization.yaml
resources:
  - deployment.yaml
  - service.yaml

# base/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp
spec:
  replicas: 1
  template:
    spec:
      containers:
        - name: app
          image: myorg/myapp:latest
          resources:
            limits:
              memory: 256Mi
Enter fullscreen mode Exit fullscreen mode

Production Overlay

# overlays/production/kustomization.yaml
bases:
  - ../../base

replicas:
  - name: myapp
    count: 5

images:
  - name: myorg/myapp
    newTag: v2.0.0

patchesStrategicMerge:
  - increase-resources.yaml

namePrefix: prod-
namespace: production

labels:
  - pairs:
      environment: production
Enter fullscreen mode Exit fullscreen mode
# overlays/production/increase-resources.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp
spec:
  template:
    spec:
      containers:
        - name: app
          resources:
            limits:
              memory: 1Gi
              cpu: "1"
Enter fullscreen mode Exit fullscreen mode

Common Transformers

# kustomization.yaml
configMapGenerator:
  - name: app-config
    literals:
      - DB_HOST=postgres
      - DB_PORT=5432

secretGenerator:
  - name: app-secrets
    literals:
      - DB_PASSWORD=secret

commonLabels:
  app: myapp
  team: backend
Enter fullscreen mode Exit fullscreen mode

Key Features

  • No templates — plain YAML, no Go/Jinja syntax
  • Overlays — base + patches per environment
  • Built into kubectl — no extra tools needed
  • Generators — ConfigMaps and Secrets from files/literals
  • Transformers — labels, annotations, namespace, prefix
  • Composable — combine multiple bases

Resources


Need to extract K8s configs, compare environments, or audit manifests? Check out my Apify tools or email spinov001@gmail.com for custom solutions.

Top comments (0)