I have about five years of experience as a DevOps engineer. Earlier in my career, I worked mainly with service-based companies, where I gained hands-on experience with deployments, CI/CD pipelines, cloud platforms, and several technology stacks. For the past two years, I've been working with enterprise products running on-premises, using both self-managed Kubernetes and managed services such as EKS, GKE, and OKE.
I recently joined a product company whose infrastructure runs on AWS and is managed with Terraform. The part I'm struggling with is that application deployments and supporting services are managed through Helm charts, subcharts, and dependencies. I understand the underlying Kubernetes YAML and can trace what the resources are doing, but I'm unsure how to reason about chart versions, values, dependencies, and supporting tools when upgrading something.
The setup uses Helm primarily as a templating and provisioning layer alongside Argo CD. Since this is a live product rather than a development project, there is very little room for mistakes, and upgrades often need to be handled quickly. What would be a practical way to learn Helm in this situation, and what workflow would you recommend for safely testing and rolling back chart or dependency upgrades?
4 Answers
For production upgrades, avoid changing everything at once. Pin the chart, application, and dependency versions, reproduce the current configuration in a staging environment, and upgrade one layer at a time. Render the manifests before applying them and use a diff tool such as helm-diff to see exactly what will change. Make sure rollback procedures are tested rather than assumed, and keep the previous known-good chart and values available.
Since your charts provision supporting services for the application, map the dependency chain before making changes. Check which version is controlled by the parent chart, which values are passed to subcharts, and whether Argo CD or another automation layer is overriding anything. Treat Chart.yaml, the lock file, values files, and the rendered manifests as one unit. A small local example is useful, but reading the existing production chart and tracing one real upgrade end to end will probably teach you faster.
You can also use an existing set of plain Kubernetes manifests as a learning exercise: convert them into templates, move environment-specific settings into values, and add a dependency. AI coding tools can help explain unfamiliar templates or generate a starting point, but review every generated manifest carefully. They should support your understanding, not replace testing and change review.
Helm is easier to understand if you think of it as both a Kubernetes package format and a YAML template engine. Start by learning how your organization uses it: inspect the Chart.yaml, values files, templates, and dependency definitions, then follow how Argo CD renders and applies the chart. Once you recognize the pattern, most charts become much less intimidating. For practice, build a small chart locally with kind or another local Kubernetes cluster, and try creating an umbrella chart with one or two dependencies.

Related Questions
Can't Load PhpMyadmin On After Server Update
Redirect www to non-www in Apache Conf
How To Check If Your SSL Cert Is SHA 1
Windows TrackPad Gestures