gpt4 book ai didi

kubernetes - 如何不覆盖 Helm 模板中随机生成的 secret

转载 作者:行者123 更新时间:2023-12-03 16:46:33 29 4
gpt4 key购买 nike

我想在 Helm 模板中生成密码,这很容易使用 randAlphaNum功能。然而,当版本升级时密码将被更改。有没有办法检查之前是否生成了密码,然后使用现有值?像这样的东西:

apiVersion: v1
kind: Secret
metadata:
name: db-details
data:
{{ if .Secrets.db-details.db-password }}
db-password: {{ .Secrets.db-details.db-password | b64enc }}
{{ else }}
db-password: {{ randAlphaNum 20 | b64enc }}
{{ end }}

最佳答案

您可以建立在 shaunc使用 lookup 的想法修复原始海报代码的功能,如下所示:

apiVersion: v1
kind: Secret
metadata:
name: db-details
data:
{{- if .Release.IsInstall }}
db-password: {{ randAlphaNum 20 | b64enc }}
{{ else }}
# `index` function is necessary because the property name contains a dash.
# Otherwise (...).data.db_password would have worked too.
db-password: {{ index (lookup "v1" "Secret" .Release.Namespace "db-details").data "db-password" }}
{{ end }}
仅创建 Secret当它不存在时将不起作用,因为 Helm 将删除升级期间不再定义的对象。
使用注释来保留对象的缺点是,当您使用 helm delete ... 删除发布时,它不会被删除。 .

关于kubernetes - 如何不覆盖 Helm 模板中随机生成的 secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56170052/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com