【问题标题】:Helm delete all releasesHelm 删除所有版本
【发布时间】:2021-08-27 15:08:13
【问题描述】:

我正在尝试找到一种方法来删除 Helm 中所有已部署的版本。

Helm does not support 似乎删除了所有版本,--all 或其他方式。

是否有另一种方法可以在一个命令中删除所有 Helm 版本?

【问题讨论】:

    标签: kubernetes-helm


    【解决方案1】:

    要使用单个命令删除 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”选项吗?似乎没有它也可以工作。
    • @demisx:-L1 不是必需的。此参数用于最大行数,无论如何默认为 1,因此在这种情况下不需要它。
    • -L 选项不在busybox中。
    • 注意--purge 标志在 Helm 3 中不可用
    【解决方案2】:

    对于 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

    【讨论】:

    • 这是考虑命名空间的正确且跨平台的答案。
    • 这个答案负责跨命名空间的所有部署。谢谢!
    【解决方案3】:

    这在 powershell cmd 窗口中对我有用:

    helm del $(helm ls --all --short) --purge
    

    【讨论】:

    • helm del $(helm ls --short --deleted) --purge 清除所有 DELTED 图表。
    • 对于 Windows PS 这确实是正确答案,接受的答案在 Windows 上不起作用。
    • helm del $(helm ls --all --short |grep test) --purge 删除和清除只删除以测试名称开头的版本。
    【解决方案4】:

    helm delete $(helm ls --short)

    说明:

    helm ls --short 给出了发布 ID 的列表。

    helm delete id1 id2 id3 删除 ID 为:id1id2id3 的版本。

    因此将它们结合起来,我们得到: helm delete $(helm ls --short)

    【讨论】:

    • 虽然此代码可以回答问题,但提供有关 如何为什么 解决问题的附加上下文将提高​​答案的长期价值。
    【解决方案5】:

    我也经常删除 Helm 中的所有版本,所以我认为为它制作一个 Helm 插件会很有用。

    安装:

    helm plugin install https://github.com/tedmiston/helm-delete-all-plugin --version 0.0.3
    

    (您可以在较新版本的 Helm 上省略 --version x 部分。)

    用法:

    helm delete-all
    

    https://github.com/tedmiston/helm-delete-all-plugin

    【讨论】:

    • 回购不再存在
    【解决方案6】:

    有一个非常好的插件可以从所有命名空间中删除所有 helm 版本(这篇文章中的前一个插件对我不起作用)。 安装:

    helm plugin install https://github.com/BarelElbaz/helm-delete-all
    

    用法:

    helm delete-all
    

    您可以为删除 PVC 提供更多标志,例如 --deletePersistent 或通过--except-namespace跳过特定命名空间

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-03
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      • 1970-01-01
      • 2016-01-07
      • 2020-02-07
      相关资源
      最近更新 更多