我有一个模板,我使用uuidv4
内置函数生成一个名称:
apiVersion: k6.io/v1alpha1
kind: pod
metadata:
name: test-{{ uuidv4 }}
namespace: {{ .Release.Namespace }}
然后,我想在另一个模板上使用相同的名称uuidv4
。当我只是在另一个模板中使用内置函数时,它会生成一个新的ID,但我想要的ID已经在pod中生成。我是怎么做的?
**注意:**manifest位于不同的文件中,但在同一个/templates
文件夹中。
1条答案
按热度按时间pvabu6sv1#
你不能在Helm中以这种方式使用随机值。Helm没有任何类型的全局存储,只有
.Values
中的最终用户配置和每个模板的参数和返回值。每次你调用uuidv4
时,它都会生成一个新的随机UUID。更常见的情况是尝试为数据库生成随机密码。How not to overwrite randomly generated secrets in Helm templates可能是有趣的阅读,但请注意答案如何快速潜入使用
lookup
仅可能生成凭据,然后添加更多的变通方法时,这也不好用。默认的Helm chart scaffolding附带了生成名称的助手。它通常假设Helm chart和版本名称的组合在其命名空间中是唯一的,这允许您创建“足够唯一”的部署名称。您可以在这里使用它
如果名称确实需要是随机的,那么最好的方法可能是在Helm之外生成一个随机值并将其作为值传递。
x一个一个一个一个x一个一个二个x
然后在图表调用中,
.Values.testUuid
将在任何地方都是相同的值。如果您升级图表,您可以helm upgrade --reuse-values
来保留以前的随机值。