Skip to content

Helm upgrade migration

Helm upgrade migration refers to the necessary procedures and manual interventions required when upgrading a Helm chart to a new major version that introduces breaking changes or incompatible configurations.^[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md]

General Principle

A major chart version change (for example, v1.2.3 to v2.0.0) indicates that there is an incompatible breaking change that necessitates manual actions.^[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md] In many cases involving significant structural shifts or deprecated parameters, a standard helm upgrade is insufficient, and the required migration strategy involves uninstalling the existing release and reinstalling it with the new configuration.^[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md]

Common Migration Steps

When migrating between major versions, users typically need to perform the following actions:

  • Update Configuration: Users must modify their values.yaml or command-line arguments to remove deprecated parameters and adapt to new naming conventions.^[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md]
  • Uninstall and Reinstall: Due to the nature of breaking changes (such as immutable field updates), the migration process often requires deleting the old release and deploying the new one.^[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md]

Example: Kubernetes Dashboard v1.x.x to v2.x.x

The migration path for the Kubernetes Dashboard chart from version 1.x.x to 2.0.0 illustrates the complexity of major version upgrades.^[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md]

Breaking Changes

This specific upgrade involved several significant changes requiring user intervention:

  • RBAC and Security Management: The clusterAdminRole parameter was removed due to security concerns, and all secrets are now explicitly created.^[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md]
  • Deprecated Parameters: Parameters such as enableSkipLogin and enableInsecureLogin were removed in favor of using extraEnv.^[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md]
  • Renamed Fields: dashboardContainerSecurityContext was renamed to containerSecurityContext.^[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md]
  • Label Updates: All labels were updated to new recommended standards, rendering most of them immutable.^[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md]

Migration Action

To complete the upgrade to v2.0.0, users were required to update their configuration to remove the clusterAdminRole parameter and adapt other settings, followed by a complete uninstall and reinstall of the chart.^[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md]

Sources

^[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md]