Skip to content

Helm

Helm is the package manager for Kubernetes. Through charts it helps you define, install and upgrade even the most complex Kubernetes applications.

The advantages of using helm over kubectl apply are the easiness of:

  • Repeatable application installation.
  • CI integration.
  • Versioning and sharing.

Charts are a group of Go templates of kubernetes yaml resource manifests, they are easy to create, version, share, and publish.

Helm alone lacks some features, that are satisfied through some external programs:

  • Helmfile is used to declaratively configure your charts, so they can be versioned through git.
  • Helm-secrets is used to remove hardcoded credentials from values.yaml files. Helm has an open issue to integrate it into it's codebase.
  • Helm-git is used to install helm charts directly from Git repositories.

Troubleshooting

UPGRADE FAILED: another operation (install/upgrade/rollback) is in progress

This error can happen for few reasons, but it most commonly occurs when there is an interruption during the upgrade/install process as you already mentioned.

To fix this one may need to, first rollback to another version, then reinstall or helm upgrade again.

Try below command to list the available charts:

helm ls --namespace <namespace>

You may note that when running that command ,it may not show any columns with information. If that's the case try to check the history of the previous deployment

helm history <release> --namespace <namespace>

This provides with information mostly like the original installation was never completed successfully and is pending state something like STATUS: pending-upgrade state.

To escape from this state, use the rollback command:

helm rollback <release> <revision> --namespace <namespace>

revision is optional, but you should try to provide it.

You may then try to issue your original command again to upgrade or reinstall.