有没有一种方法可以只生成一次唯一标识符值(如果未设置),并且用户无法对其进行编辑

时间:2019-04-02 05:06:37

标签: kubernetes-helm

我想生成一个特定长度的唯一标识符,并在内部跨多个Pod使用此值。由于长度必须是特定的,并且我希望此长度在内部处理而不是由用户调整,因此我更喜欢在安装/升级时创建唯一标识符(如果尚未设置,则仅创建一次),而不是多变。

我想在内部将标识符用作在特定部署中创建的对象的命名架构的一部分。我想在其他部署中共享这些对象,并且需要标识符来确定给定对象是否属于给定部署。

我正在研究使用randAlphaNum在“秘密”中设置一个值。我在使用Secrets时遇到的一些问题是:

  1. 与此问题有关:https://github.com/helm/helm/issues/3053 看起来Secret值将在升级时被覆盖。有一个开放的PR可能提供解决方案:https://github.com/helm/helm/pull/5290 但是我没有能力升级头盔/ kubernetes atm

  2. 秘密值是b64编码的。我想将值作为环境变量传递给已解码的各种Pod。用户是否知道唯一标识符并不重要。所以,也许我不需要秘密?但是,再次,我不希望用户能够编辑该值,并且对于给定的部署,该值永远不应更改。

任何帮助或建议,我们将不胜感激!谢谢

1 个答案:

答案 0 :(得分:1)

然后您可以尝试使用ConfigMap代替。似乎它在helm upgrade上没有变化。然后,您可以使用this guide将值从ConfigMap传递到Pod。