代码之家  ›  专栏  ›  技术社区  ›  Taylor D. Edmiston

我可以对给定图表的所有版本运行helm命令吗?

  •  1
  • Taylor D. Edmiston  · 技术社区  · 7 年前

    我经常在多个名称空间中安装伞形头盔图的多个实例以进行测试。我想继续使用随机生成的名称,但也可以在一个命令中删除同一图表的多个版本,而不需要为每个新的版本名称更改这些命令。

    所以对于这样的图表:

    $ helm ls
    NAME                REVISION    UPDATED                     STATUS      CHART                 NAMESPACE
    braided-chimp       1           Mon Jul 23 15:52:43 2018    DEPLOYED    foo-platform-0.2.1    foo-2
    juiced-meerkat      1           Mon Jul  9 15:19:43 2018    DEPLOYED    postgresql-0.9.4      default
    sweet-sabertooth    1           Mon Jul 23 15:52:34 2018    DEPLOYED    foo-platform-0.2.1    foo-1
    

    我可以删除 foo-platform-0.2.1 通过键入发布名称来绘制图表,如:

    $ helm delete braided-chimp sweet-sabertooth
    

    但每次运行该命令时,我都必须用新的发布名称更新它。

    是否可以基于图表名称在所有命名空间中对给定图表的所有实例运行list/delete?(我在想什么 kubectl 支持 -l 旗帜)

    例如,我如何才能实现与此相当的目标?

    $ helm delete -l 'chart=foo-platform-0.2.1'
    

    有更好的方法吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   cwurtz    7 年前

    你可以试试:

    helm delete $(helm ls | awk '$9 ~ /SEARCH/ { print $1 }')

    替代 SEARCH 使用您想要使用的任何图表名称模式

    它会被抛出一点,因为awk将在时间戳具有多个空格的空间上进行定界。

    那么传统上用制表符分隔的内容是:

    1=NAME 2=REVISION 3=UPDATED 4=STATUS 5=CHART 6=NAMESPACE

    变成:

    1=mottled-whippet 2=1 3=Fri 4=Jul 5=20 6=13:15:45 7=2018 8=DEPLOYED 9=postgresql-0.15.0 10=namespace

    推荐文章