I'm looking to upgrade RabbitMQ from version 3.12.11 to 3.13.7 using Helm, and I've run into an overwhelming number of changes—around 1,700 additions and 750 deletions across more than 50 files just for a minor version upgrade. Since I'm relatively new to this project and didn't set up RabbitMQ originally, I'm unsure if there were any custom configurations made to the original chart. My current process involved replacing the old chart and image with the new ones while maintaining the values.yaml as close as possible to the original. However, testing in a Sandbox environment has led to failures, possibly related to the Web STOMP WebSocket plugin or other unknown issues. I'm curious, what is everyone else's approach to upgrading Helm charts, particularly when faced with so many changes? Do you comb through all the differences, or do you have a more effective strategy? Any tips or recommendations are much appreciated.
5 Answers
One universal tip that has always worked for me is to rebuild a test environment that's identical to your production setup. First, install the old Helm chart version and practice the upgrade until you get it figured out. If it fails, tear it down and try again. Also, keep track of your terminal commands as you go—it helps in the future.
Depending on the service, I read the release notes and check diffs, then deploy to a dev cluster to see how it behaves. Even popular charts can have unforeseen issues that make their way into the main versions without proper testing.
For sensitive environments, I usually research existing issues and discussions related to the charts first. If it’s not too sensitive, I look for any 'breaking change' notes, then do a straightforward installation. Always have a rollback plan just in case things go sideways!
I leverage helm-diff to see the changes. I maintain my own charts even if a version already exists. This helps me keep track of what's changed and allows me to verify if the updates are relevant to my configurations.
I typically start by checking the software changelogs and Helm chart notes. If there's no official changelog, I delve into GitHub release notes, paying special attention to any breaking changes. Then, I proceed with a development, testing, and then production rollout, after verifying everything works as expected.

Related Questions
How To Get Your Domain Unblocked From Facebook
How To Find A String In a Directory of Files Using Linux