如果资源已经存在,如何告诉 helm 不创建/更改资源?

Tom*_*ino 7 kubernetes kubernetes-helm

我有一个秘密资源模板,安装后会为数据生成随机值。

删除该图表(它没有删除秘密资源,因为它们会保留)并稍后重新安装后,我遇到了问题。

这导致它使用新生成的数据运行前一个秘密,这在我的情况下是不希望的。

我试图找到我需要在模板中包含的 if 条件是什么,这样它就不会创建或修改已经存在的秘密。我怎么做?

san*_*alp 11

从 helm 3.1 版本开始,有一个查找功能可用于检查给定资源是否存在。使用此功能您可以跳过升级或安装已存在的资源。

查找功能

例如,请参阅此示例图表。我创建了一个gen.secret在 _helpers.tpl 中命名的函数并在 secret.yaml 中使用它

  • 谢谢!也许您可以将其添加到您的答案中。 (3认同)

Yas*_*sen 3

抱歉,但目前您不能。

根据问题#4824如果资源策略保留,则在安装时忽略现有资源),舵团队既不支持它,也没有任何计划。

UPD:一个解决秘密的方法:

使用 Ansible k8s 模块生成机密,并将其传递给 Helm 图表。有点丑,但是有用。