mirror of
https://github.com/funkypenguin/geek-cookbook/
synced 2025-12-14 02:06:32 +00:00
Add blog post re stuck helmreleases (#273)
Signed-off-by: David Young <davidy@funkypenguin.co.nz>
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
### Tip your waiter (sponsor) 👏
|
### 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) 🤝
|
### Employ your chef (engage) 🤝
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,7 @@
|
|||||||
[invidious]: /recipes/invidious/
|
[invidious]: /recipes/invidious/
|
||||||
[jackett]: /recipes/autopirate/jackett/
|
[jackett]: /recipes/autopirate/jackett/
|
||||||
[jellyfin]: /recipes/jellyfin/
|
[jellyfin]: /recipes/jellyfin/
|
||||||
|
[kofi]: https://ko-fi.com/funkypenguin/
|
||||||
[k8s/invidious]: /recipes/kubernetes/invidious/
|
[k8s/invidious]: /recipes/kubernetes/invidious/
|
||||||
[k8s/mastodon]: /recipes/kubernetes/mastodon/
|
[k8s/mastodon]: /recipes/kubernetes/mastodon/
|
||||||
[k8s/matrix]: /recipes/kubernetes/matrix/
|
[k8s/matrix]: /recipes/kubernetes/matrix/
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
### Tip your waiter (sponsor) 👏
|
### 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) 🤝
|
### Employ your chef (engage) 🤝
|
||||||
|
|
||||||
|
|||||||
@@ -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...
|
||||||
|
|
||||||
|
<!-- more -->
|
||||||
|
|
||||||
|
## 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"
|
||||||
@@ -49,7 +49,7 @@ Found a bug in your soup? Tell the chef by either:
|
|||||||
|
|
||||||
## Tip the chef
|
## 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:
|
The best way to support this work is to become a [Sponsor][11] (_GitHub_) or a [Patron][10] (_Patreon_). Sponsors get:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user