I'm searching for a way with helm v3 to delete certain revision from given release.
Let's say that I got my-release
with revision 1,2,2,4 that are automatically created on running helm upgrade
and deploy new revisions. I can use helm rollback my-release 3
if I got issues with version 4.
Is there a way to delete specific revision - lets say 1 and 2
helm uninstall my-release 1 is not working unfortunately.
I just have a usecase where deleting a revision makes sense in my eyes:
There are 4 revisions:
$ helm history rocketchat-b '--namespace' 'rocketchat-b'
REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION
40 Fri Nov 3 12:16:38 2023 superseded rocketchat-1.0.0 Rollback to 38
43 Tue Nov 7 15:19:02 2023 superseded rocketchat-6.4.5-1 6.4.5 Upgrade "rocketchat-b" failed: failed to create resource: Ingress.extensions "rocketchat-b-rocketchat" is invalid: spec.rules[0].http.paths[0].path: Invalid value: "": must be an absolute path
44 Tue Nov 7 15:19:05 2023 failed rocketchat-6.4.5-1 6.4.5 Rollback "rocketchat-b" failed: failed to create resource: Ingress.extensions "rocketchat-b-rocketchat" is invalid: spec.rules[0].http.paths[0].path: Invalid value: "": must be an absolute path
45 Tue Nov 7 15:47:31 2023 deployed rocketchat-6.4.5-1 6.4.5 Upgrade complete
There was also a release 39, that one was actually the last one which worked, but it is already deleted automatically (this is what a user potentially wants to avoid). 40 is a deployment of the wrong version, it partially worked, 43 and 44 are complete garbage because port numbers of pod and service don't match. I want to keep 40 now, even when I do some more upgrades (would prefer 39, but that one is gone). I assume, helm always keeps 4 revisions. maybe not the newest, but chances that 40 stays in my system is bigger if I delete 43 and 44.
I delete these releases by deleting their secret:
$ kubectl -n rocketchat-b get secret
NAME TYPE DATA AGE
sh.helm.release.v1.rocketchat-b.v40 helm.sh/release.v1 1 4d22h
sh.helm.release.v1.rocketchat-b.v43 helm.sh/release.v1 1 19h
sh.helm.release.v1.rocketchat-b.v44 helm.sh/release.v1 1 19h
sh.helm.release.v1.rocketchat-b.v45 helm.sh/release.v1 1 18h
$ kubectl -n rocketchat-b delete secret sh.helm.release.v1.rocketchat-b.v43
secret "sh.helm.release.v1.rocketchat-b.v43" deleted
$ kubectl -n rocketchat-b delete secret sh.helm.release.v1.rocketchat-b.v44
secret "sh.helm.release.v1.rocketchat-b.v44" deleted
$ kubectl -n rocketchat-b get secret
NAME TYPE DATA AGE
sh.helm.release.v1.rocketchat-b.v40 helm.sh/release.v1 1 4d22h
sh.helm.release.v1.rocketchat-b.v45 helm.sh/release.v1 1 18h
What's left is exactly what I want:
$ helm history rocketchat-b '--namespace' 'rocketchat-b'
REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION
40 Fri Nov 3 12:16:38 2023 superseded rocketchat-1.0.0 Rollback to 38
45 Tue Nov 7 15:47:31 2023 deployed rocketchat-6.4.5-1 6.4.5 Upgrade complete