Skip to main content
Kustomize can be used to customize Kubernetes manifests with bases, overlays, and patches. For Pangolin and Newt, the supported Kustomize workflow is to render the Helm charts into manifests and use those rendered manifests as the Kustomize base. Use Kustomize when you need:
  • environment-specific overlays for dev, staging, or production
  • explicit manifest patches in Git
  • a manifest-driven workflow for GitOps tools
  • small changes on top of a shared base without maintaining separate full manifests

Supported workflow

The chart repository does not provide native Kustomize bases. Use this workflow instead:
1

Render chart manifests

Render the Helm chart with your values file and save the output as base manifests.
2

Commit base manifests

Commit rendered manifests as the Kustomize base in Git.
3

Create environment overlays

Create overlays for each environment (for example dev, staging, production).
4

Apply or reconcile

Apply overlays manually or reconcile them with Argo CD or Flux.
Do not manage the same resources with both a live Helm release and Kustomize. Pick one ownership model per environment.
Recommended ownership model:
  • Use Helm only to render manifests.
  • Use Kustomize, Argo CD, or Flux to apply and reconcile the rendered manifests.
  • Re-render the base when upgrading the chart version.

Example repository layout

Step 1: Render manifests from Helm

Create a base directory:
Render Pangolin:
Render Newt:

Step 2: Create the base kustomization

Step 3: Create an overlay

Use resources to reference the base.
Avoid namePrefix and nameSuffix for Helm-rendered bases unless you have verified every generated reference. Renaming chart-generated resources can break service names, selectors, secret references, and workload dependencies.

Step 4: Add patches

Example Strategic Merge patch for container resources:
Example JSON6902-style inline patch:
Modern Kustomize uses the patches field for both Strategic Merge and JSON6902-style patches. Avoid patchesStrategicMerge, patchesJson6902, and bases in new examples.

Apply an overlay

Preview the rendered output:
Compare with the live cluster:
Apply the overlay:
Or apply the rendered output:

Updating the base

When upgrading chart versions or changing Helm values, re-render the base and review the diff.
Render the updated chart output:
Then validate the overlay:
Review changes before applying:
Apply after review:

Important considerations

Namespace handling

Render the charts with the namespace you intend to use:
Create the namespace before applying the overlay:
Apply any required Pod Security Admission labels or cluster-policy labels before workloads are created.

Secrets

Do not commit plaintext secrets into rendered manifests. Use one of these approaches instead:
  • reference existing Kubernetes Secrets in the values file before rendering
  • create secrets separately with your secret-management workflow
  • use Sealed Secrets, External Secrets Operator, SOPS, or another GitOps-safe secret solution

Do not mix ownership models

Avoid this pattern:
This creates two tools managing the same objects. Use one of these models instead:

Troubleshooting

Validate the overlay:
Check the generated YAML:
Run a server-side dry run:
Preview live changes:
Check live resources:

Next steps

Pangolin Kustomize Install

Install Pangolin with rendered manifests and Kustomize overlays.

Newt Kustomize Install

Install Newt with rendered manifests and Kustomize overlays.

Argo CD

Reconcile Kustomize overlays with Argo CD.

Flux

Reconcile Kustomize overlays with Flux.

Troubleshooting

Troubleshoot Pangolin deployments on Kubernetes.