diff --git a/_snippets/blog-footer.md b/_snippets/blog-footer.md index 507b801..d0c42c1 100644 --- a/_snippets/blog-footer.md +++ b/_snippets/blog-footer.md @@ -4,7 +4,7 @@ ### Tip your waiter (sponsor) 👏 -Did you receive excellent service? Want to compliment the chef? (_..and support development of current and future recipes!_) Share a [review](https://fnky.nz/testimonial), sponsor me on [Github][github_sponsor] / [Patreon][patreon], or see the [contribute](/community/contribute/) page for more (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to compliment the chef? (_..and support development of current and future recipes!_) Sponsor me on [Github][github_sponsor] / [Ko-Fi][ko-fi] / [Patreon][patreon], or see the [contribute](/community/contribute/) page for more (_free or paid)_ ways to say thank you! 👏 ### Employ your chef (engage) 🤝 diff --git a/_snippets/common-links.md b/_snippets/common-links.md index 6e8bea6..c2ceeb7 100644 --- a/_snippets/common-links.md +++ b/_snippets/common-links.md @@ -29,6 +29,7 @@ [invidious]: /recipes/invidious/ [jackett]: /recipes/autopirate/jackett/ [jellyfin]: /recipes/jellyfin/ +[kofi]: https://ko-fi.com/funkypenguin/ [k8s/invidious]: /recipes/kubernetes/invidious/ [k8s/mastodon]: /recipes/kubernetes/mastodon/ [k8s/matrix]: /recipes/kubernetes/matrix/ diff --git a/_snippets/recipe-footer.md b/_snippets/recipe-footer.md index 16c1b15..abf6e08 100644 --- a/_snippets/recipe-footer.md +++ b/_snippets/recipe-footer.md @@ -4,7 +4,7 @@ ### Tip your waiter (sponsor) 👏 -Did you receive excellent service? Want to compliment the chef? (_..and support development of current and future recipes!_) Share a [review](https://fnky.nz/testimonial), sponsor me on [Github][github_sponsor] / [Patreon][patreon], or see the [contribute](/community/contribute/) page for more (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to compliment the chef? (_..and support development of current and future recipes!_) Sponsor me on [Github][github_sponsor] / [Ko-Fi][ko-fi] / [Patreon][patreon], or see the [contribute](/community/contribute/) page for more (_free or paid)_ ways to say thank you! 👏 ### Employ your chef (engage) 🤝 diff --git a/docs/blog/posts/notes/helm-upgrades-across-api-deprecations-can-cause-stuckage.md b/docs/blog/posts/notes/helm-upgrades-across-api-deprecations-can-cause-stuckage.md new file mode 100644 index 0000000..a0db931 --- /dev/null +++ b/docs/blog/posts/notes/helm-upgrades-across-api-deprecations-can-cause-stuckage.md @@ -0,0 +1,75 @@ +--- +date: 2023-03-03 +categories: + - note +tags: + - helm +title: When helm says "no" (failed to delete release) +description: TIL that a helm chart which used deprecated APIs can't be upgraded/removed after a major Kubernetes version upgrade, without a little "help" +--- + +# When helm says "no" (failed to delete release) + +My beloved "[Penguin Patrol](https://penguinpatrol.funkypenguin.co.nz)" bot, which I use to give [GitHub][github_sponsor] / [Patreon][patreon] / [Ko-Fi][kofi] supporters access to the [premix](/premix/) repo, was deployed on a Kube 1.19 [Digital Ocean](/kubernetes/cluster/digitalocean/) cluster, 3 years ago. At the time, the Ingress API was at v1beta1. + +Fast-forward to today, and several Kubernetes major version upgrades later (*it's on 1.23 currently, and we're on Ingress v1*), and I discovered that I was unable to upgrade the chart, since helm complained that the **previous** release referred to deprecated APIs. + +Worse, helm wouldn't let me **delete** and re-install the release - because of those damned deprecated APIs! + +Here's how I fixed it... + + + +## Use the helm mapkubeapis plugin + +I stumbled across [this helpful comment](https://github.com/helm/helm/issues/11513#issuecomment-1404101041), which gave me the solution. + +I installed the [mapkubeapis](https://github.com/helm/helm-mapkubeapis) helm plugin using ` helm plugin install https://github.com/helm/helm-mapkubeapis` + +```bash +~❯ helm plugin install https://github.com/helm/helm-mapkubeapis +Downloading and installing helm-mapkubeapis v0.3.2 ... +https://github.com/helm/helm-mapkubeapis/releases/download/v0.3.2/helm-mapkubeapis_0.3.2_darwin_amd64.tar.gz +Installed plugin: mapkubeapis +~❯ +``` + +Then I ran mapkubeapis against my crusty ol' helm release: + +```bash +~❯ helm mapkubeapis -n penguinpatrol penguinpatrol +2023/03/03 10:45:13 Release 'penguinpatrol' will be checked for deprecated or removed Kubernetes APIs and will be updated if necessary to supported API versions. +2023/03/03 10:45:13 Get release 'penguinpatrol' latest version. +2023/03/03 10:45:15 Check release 'penguinpatrol' for deprecated or removed APIs... +2023/03/03 10:45:16 Found 1 instances of deprecated or removed Kubernetes API: +"apiVersion: networking.k8s.io/v1beta1 +kind: Ingress +" +Supported API equivalent: +"apiVersion: networking.k8s.io/v1 +kind: Ingress +" +2023/03/03 10:45:16 Finished checking release 'penguinpatrol' for deprecated or removed APIs. +2023/03/03 10:45:16 Deprecated or removed APIs exist, updating release: penguinpatrol. +2023/03/03 10:45:16 Set status of release version 'penguinpatrol.v39' to 'superseded'. +2023/03/03 10:45:16 Release version 'penguinpatrol.v39' updated successfully. +2023/03/03 10:45:16 Add release version 'penguinpatrol.v40' with updated supported APIs. +2023/03/03 10:45:16 Release version 'penguinpatrol.v40' added successfully. +2023/03/03 10:45:16 Release 'penguinpatrol' with deprecated or removed APIs updated successfully to new version. +2023/03/03 10:45:16 Map of release 'penguinpatrol' deprecated or removed APIs to supported versions, completed successfully. +~❯ +``` + +And I was finally able to delete the "stuck" release, with a `helm delete`[^1]! + +## Summary + +What did I learn? + +1. Upgrade your deprecated APIs **before** upgrading your Kubernetes major versions +2. `helm ls -a` can help identify stuck releases which wouldn't normally appear with a simple `helm ls` + +[^1]: And now the misbehaving chart can be re-installed, since there's no invalid **previous** version to worry about! + +--8<-- "common-links.md" +--8<-- "blog-footer.md" diff --git a/docs/support.md b/docs/support.md index 6d8b00c..16b2957 100644 --- a/docs/support.md +++ b/docs/support.md @@ -49,7 +49,7 @@ Found a bug in your soup? Tell the chef by either: ## Tip the chef -### [Sponsor][7] / [Patreonize][8] me 💰 +### [Sponsor][7] / [Ko-Fi][ko-fi] / [Patreonize][8] me 💰 The best way to support this work is to become a [Sponsor][11] (_GitHub_) or a [Patron][10] (_Patreon_). Sponsors get: