Kubernetes 如何设置;“必需”;模板中的值来自--set选项?
如何强制指定--set选项打开Kubernetes 如何设置;“必需”;模板中的值来自--set选项?,kubernetes,kubernetes-helm,Kubernetes,Kubernetes Helm,如何强制指定--set选项打开helm安装|升级 在我的例子中,需要一些环境变量。(例如“数据库密码”) 文件 . |-- Chart.yaml |-- templates | |-- NOTES.txt | |-- _helpers.tpl | |-- deployment.yaml | |-- ingress.yaml | |-- secret.yaml | `-- service.yaml `-- values.yaml values.yaml(snip) 模板/
helm安装|升级
在我的例子中,需要一些环境变量。(例如“数据库密码”)
文件
.
|-- Chart.yaml
|-- templates
| |-- NOTES.txt
| |-- _helpers.tpl
| |-- deployment.yaml
| |-- ingress.yaml
| |-- secret.yaml
| `-- service.yaml
`-- values.yaml
values.yaml(snip)
模板/秘密。yaml
apiVersion: v1
kind: Secret
metadata:
name: myapp-secrets
type: Opaque
data:
app-database-password: {{required .Values.database.password | b64enc | quote }}
模板/deployment.yaml(snip)
命令
# Retrieve from GCP KMS(prod) or define directly(dev)
DATABASE_PASSWORD=$( ... )
# Deploy.
helm upgrade --install \
-f ./values.yaml \
--set database.password=$DATABASE_PASSWORD \
myapp-dev ./ --dry-run --debug
它因错误而失败
Error: render error in "myapp/templates/secret.yaml": template: myapp/templates/secret.yaml:7:28: executing "myapp/templates/secret.yaml" at <required>: wrong number of args for required: want 2 got 1
错误:在“myapp/templates/secret.yaml”中呈现错误:模板:myapp/templates/secret.yaml:7:28:在以下位置执行“myapp/templates/secret.yaml”:所需参数的数目错误:想要2得到1
似乎required
函数是在解析时静态评估模板文件
我需要以下事项:
数据库。密码可通过env(如“prod”或“stage”)进行切换
数据库。密码应存储为机密
- 我想在命令执行时使用env vars设置实际的
值数据库.password
有什么想法吗?需要特定于驾驶仪的
宏:如果该值不存在,则显示错误消息,以及您正在检查的值。此语法还允许以管道形式使用它。在您的示例中,secret值可以是
app-database-password: {{.Values.database.password | required "database password is required" | b64enc | quote }}
Error: render error in "myapp/templates/secret.yaml": template: myapp/templates/secret.yaml:7:28: executing "myapp/templates/secret.yaml" at <required>: wrong number of args for required: want 2 got 1
app-database-password: {{.Values.database.password | required "database password is required" | b64enc | quote }}