It was 2 a.m., the deployment window was closing, and the only way forward was to fix the Helm chart before the cluster burned.
A Helm chart deployment is simple on paper and brutal in practice. You define Kubernetes manifests, templatize them, package them, and push them into the cluster. But the details — values, overrides, upgrades, rollbacks — are where projects stall or break.
Deploying with Helm starts with Chart.yaml and values.yaml. Keep your values clean. Favor explicit configuration. Avoid guessing what’s happening under the hood. One change in a values.yaml file can push a service into a different namespace or break secrets injection.
Version control your charts. Every release should have a version bump in Chart.yaml. This keeps deployments predictable and makes rollbacks instant. Tag and store your packaged charts in an internal Helm repository or a cloud chart registry.
Run helm lint before deploying. A single missing indentation can stop a rollout. Combine helm template with kubectl apply --dry-run=client to preview exactly what Kubernetes will see. This avoids the trap of assuming your chart is fine because Helm didn’t throw an error.