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.yamlor 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
clusterAdminRoleparameter 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
enableSkipLoginandenableInsecureLoginwere removed in favor of usingextraEnv.^[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md] - Renamed Fields:
dashboardContainerSecurityContextwas renamed tocontainerSecurityContext.^[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]
Related Concepts¶
Sources¶
^[400-devops-06-kubernetes-devops-helm-terraform-helm-helm-readme.md]