【发布时间】:2021-08-27 15:08:13
【问题描述】:
我正在尝试找到一种方法来删除 Helm 中所有已部署的版本。
Helm does not support 似乎删除了所有版本,--all 或其他方式。
是否有另一种方法可以在一个命令中删除所有 Helm 版本?
【问题讨论】:
标签: kubernetes-helm
我正在尝试找到一种方法来删除 Helm 中所有已部署的版本。
Helm does not support 似乎删除了所有版本,--all 或其他方式。
是否有另一种方法可以在一个命令中删除所有 Helm 版本?
【问题讨论】:
标签: kubernetes-helm
要使用单个命令删除 Linux(在 Helm v2.X 中)中的所有 Helm 版本,您可以使用一些不错的旧 bash。只需将helm ls --short 的输出通过管道传输到xargs,然后为返回的每个版本运行helm delete。
helm ls --all --short | xargs -L1 helm delete
根据@Yeasin Ar Rahman 的评论,添加--purge 也会删除图表。
helm ls --all --short | xargs -L1 helm delete --purge
在 Windows 上,您可以再次使用此命令删除所有版本,--purge 也可以删除图表。
helm del $(helm ls --all --short) --purge
【讨论】:
helm ls --all --short | xargs -L1 helm delete --purge
-L1 不是必需的。此参数用于最大行数,无论如何默认为 1,因此在这种情况下不需要它。
-L 选项不在busybox中。
--purge 标志在 Helm 3 中不可用
对于 helm 3,您必须提供命名空间,因此在 xargs 之前有一个 awk 步骤:
helm ls -a --all-namespaces | awk 'NR > 1 { print "-n "$2, $1}' | xargs -L1 helm delete
这会产生如下命令:
helm delete -n my-namespace my-release
【讨论】:
这在 powershell cmd 窗口中对我有用:
helm del $(helm ls --all --short) --purge
【讨论】:
helm del $(helm ls --short --deleted) --purge 清除所有 DELTED 图表。
helm del $(helm ls --all --short |grep test) --purge 删除和清除只删除以测试名称开头的版本。
helm delete $(helm ls --short)
说明:
helm ls --short 给出了发布 ID 的列表。
helm delete id1 id2 id3 删除 ID 为:id1、id2、id3 的版本。
因此将它们结合起来,我们得到:
helm delete $(helm ls --short)
【讨论】:
我也经常删除 Helm 中的所有版本,所以我认为为它制作一个 Helm 插件会很有用。
安装:
helm plugin install https://github.com/tedmiston/helm-delete-all-plugin --version 0.0.3
(您可以在较新版本的 Helm 上省略 --version x 部分。)
用法:
helm delete-all
【讨论】:
有一个非常好的插件可以从所有命名空间中删除所有 helm 版本(这篇文章中的前一个插件对我不起作用)。 安装:
helm plugin install https://github.com/BarelElbaz/helm-delete-all
用法:
helm delete-all
您可以为删除 PVC 提供更多标志,例如 --deletePersistent
或通过--except-namespace跳过特定命名空间
【讨论】: