- Render the Newt Helm chart to manifests.
- Use the rendered output as the Kustomize base.
- Create overlays per site, cluster, or environment.
- Apply the overlay with
kubectl apply -kor reconcile it with Argo CD or Flux.
When to use Kustomize for Newt
Use Kustomize if you:- want site-specific or environment-specific overlays
- need explicit patches committed to Git
- prefer reviewing rendered Kubernetes manifests before applying them
- use Argo CD or Flux with Kustomize sources
- want to customize Helm-rendered output without forking the chart
Supported approach
The Newt chart does not provide native Kustomize bases. Render the Helm chart first, then use Kustomize on the rendered manifests. Recommended ownership model:- Use Helm only to render the Newt chart.
- Use Kustomize, Argo CD, or Flux to apply and reconcile the rendered manifests.
- Re-render the base when upgrading the chart or changing Helm values.
Example directory structure
Step 1: Create the namespace
Create the namespace before applying rendered manifests:Step 2: Create Newt credentials
Create a Kubernetes Secret for each Newt site or instance.Use existing Kubernetes Secrets for production. Do not commit Newt credentials into Helm values, rendered manifests, or Kustomize patches.
Step 3: Create base values
Createvalues/values-base.yaml:
auth.keys.* only when your Secret uses different key names.
Step 4: Render Newt to the base
Add and update the Helm repository:Step 5: Create the base kustomization
The namespace is already rendered by Helm through
--namespace pangolin. You can also set namespace: pangolin in Kustomize, but avoid changing namespaces in overlays unless you have verified all rendered resources and references.Step 6: Inspect the rendered resource names
Before writing patches, check the generated names:Step 7: Create site-specific overlays
Example overlay for Site A:Replace
newt-main-tunnel with the actual Deployment name from your rendered manifests.values/values-site-b.yaml:
For different credentials, endpoints, provisioning keys, or instance names, prefer separate Helm-rendered bases. Use Kustomize patches for environment-level changes such as labels, annotations, resources, scheduling, or NetworkPolicy adjustments.
Common Kustomize patches for Newt
Patch resource requests and limits
Patch log level
Prefer configuring log level through Helm values before rendering. If you still need a manifest patch, patch the generated environment variable carefully after inspecting the rendered Deployment. Example JSON6902-style patch:Add node affinity
Add annotations
Do not rename rendered Helm resources by default
Avoid Kustomize options such asnamePrefix and nameSuffix for Helm-rendered bases unless you have validated every generated reference.
Renaming rendered resources can break:
- Service selectors
- Secret references
- ConfigMap references
- ServiceAccount references
- NetworkPolicy selectors
- Prometheus monitor selectors
Apply the overlay
Preview the rendered output:Updating the rendered base
When upgrading the Newt chart, re-render the base and review the changes.Ownership model
Do not runhelm upgrade against a release that is managed by Kustomize.
Avoid this pattern:
Validation
Validate Kustomize output:Troubleshooting
The patch does not apply
Check the rendered resource name and kind:The pod does not start
Check pod status and events:Newt does not connect
Check logs:- the Secret exists in the same namespace
PANGOLIN_ENDPOINTis reachable from the podNEWT_IDandNEWT_SECRETare correct- outbound DNS and HTTPS are allowed
- TLS certificates for the Pangolin endpoint are valid
Next steps
Helm Install
Install Newt with Helm.
Configuration
Review Newt chart options.
Troubleshooting
Debug Newt deployment and connection issues.
GitOps
Deploy Kustomize overlays with Argo CD or Flux.

