Kubernetes – Switch Helm Config Based on kubectl Context

helmkubernetes

I’m using Helm for managing apps running in my Kubernetes cluster. I’m managing multiple clusters for different environments. kubectl supports this out of the box, e.g.:

kubectl config set-context staging
kubectl config set-context production

To each cluster belongs a specific Helm configurarion.

2 environment variables:

  • TILLER_NAMESPACE
  • HELM_TLS_ENABLE

And in case HELM_TLS_ENABLE is true, also a PEM certificate and key.

Currently when I switch context, I need to change the Helm related variables manually. Is there a way to automate this? I imagined maybe a hook that’s called when the kubectl context is changed, but I couldn’t really find a way.

A ZSH specific option is also acceptable, although a shell agnostic method is preferred.

Best Answer

Posting this answer as a community wiki to point to the comments made under the question and to add additional information.

Feel free to expand.

This issue is now to be considered irrelevant. The question was specific on the following environment variables:

  • TILLER_NAMESPACE
  • HELM_TLS_ENABLE

Focusing specifically on tiller:

A companion server component, tiller , that runs on your Kubernetes cluster, listens for commands from helm , and handles the configuration and deployment of software releases on the cluster. The Helm packaging format, called charts.

-- Digitalocean.com: Community: Tutorials: An introduction to helm the package manager for Kubernetes

Helm v2 which was using tiller is now deprecated. Helm v3 does not use tiller anymore.

Citing the official documentation on support skew:

After November 13, 2020, you will see these changes:

  • No further Helm v2 releases (even for security patches)
  • No further updates to Helm v2 documentation, which will remain available for the present time but may be discontinued
  • Existing and new issues/PRs that are v2-specific will be closed Transitioning Helm release and chart hosting ownership to CNCF

Additional resources:

Related Topic