我想删除Helmfile的特定发布版本

我想做的事情

我正在使用helmfile.yaml部署多个Helm图表,并且希望删除不再需要的图表。例如,我已经发布了以下两个图表,我只想删除haproxy。

$ ls .
helmfile.yaml
$ helmfile list
NAME    NAMESPACE       ENABLED INSTALLED       LABELS  CHART           VERSION
nginx   nginx           true    true                    bitnami/nginx   15.1.0
haproxy haproxy         true    true                    bitnami/haproxy 0.8.3

请提供相关信息

$ helmfile --version
helmfile version 0.152.0
repositories:

- name: bitnami
  url: https://charts.bitnami.com/bitnami

releases:

- name: nginx
  namespace: nginx
  createNamespace: true
  chart: bitnami/nginx
  version: 15.1.0

- name: haproxy
  namespace: haproxy
  createNamespace: true
  chart: bitnami/haproxy
  version: 0.8.3

我错误地使用了helmfile destroy…

当查看helmfile –help命令时,发现有一个名为destroy的子命令可供使用。

$ helmfile --help | grep destroy
  destroy      Destroys and then purges releases

于是我想着很轻率地执行”helmfile destroy haproxy”就可以删除它。

【警告】请千万不要轻易执行此命令,因为实际上会删除所有发布的内容!!
$ helmfile destroy haproxy
Adding repo bitnami https://charts.bitnami.com/bitnami
"bitnami" has been added to your repositories

Listing releases matching ^haproxy$
haproxy haproxy         1               2023-07-01 05:39:20.532555249 +0900 JST deployed        haproxy-0.8.3   2.8.0

Listing releases matching ^nginx$
nginx   nginx           1               2023-07-01 05:39:20.866827715 +0900 JST deployed        nginx-15.1.0    1.25.1

Deleting haproxy
Deleting nginx
release "haproxy" uninstalled

release "nginx" uninstalled


DELETED RELEASES:
NAME
haproxy
nginx

不仅仅是haproxy,连nginx也被删除了…
helmfile destroy(或者delete)是一个可怕的命令,它会无论如何删除helmfile.yaml中列出的所有发布。

由于目前版本(0.152.0)的运行方式,未来可能会有改进的可能性。

根据类似的报告,可以明显看出误用的可能性和危险性非常高。

 

怎样才能删除特定的发布?

我花了一些时间进行调查,但是没有找到什么有用的信息,最后我写了一个只包含想要删除的发布的helmfile,然后运行helmfile destroy来解决这个问题。

repositories:

- name: bitnami
  url: https://charts.bitnami.com/bitnami

releases:

- name: haproxy
  namespace: haproxy
  createNamespace: true
  chart: bitnami/haproxy
  version: 0.8.3

执行命令及其输出

$ helmfile destroy --file helmfile-delete.yaml
Adding repo bitnami https://charts.bitnami.com/bitnami
"bitnami" has been added to your repositories

Listing releases matching ^haproxy$
haproxy haproxy         1               2023-07-01 06:06:53.924671604 +0900 JST deployed        haproxy-0.8.3   2.8.0

Deleting haproxy
release "haproxy" uninstalled


DELETED RELEASES:
NAME
haproxy

在最后

如果由于某些原因使用了 helmfile destroy(或 delete)命令,并且在 ~/.bash_history 中保留了该记录,请推荐删除该记录及其历史(或设置为不记录历史)。