1 问题描述:
编写一个应用charts,将一个模板yaml中的command命令提取到values.yaml中,但是在验证的时候发现command命令中包含的双引号无法正常加载,具体如下:
values.yaml
containers:
command: [ "sh","-ce","source /etc/profile"]
-------------------------------
templates/test.yaml
containers:
command: { .Values.containers.command }
-------------------------------
执行: helm lint ./ 发现没有报错
但是执行 helm template ./ 进行验证可以发现,实际加载结果如下:
--------------------------------
templates/test.yaml
# 可以看到加载的双引号及逗号都没有了
containers:
command: [ sh -ce source /etc/profile]
--------------------------------
2 解决方法:
-------------------------------------------
values.yaml
# 在外层加一个 单引号
containers:
command: '[ "sh","-ce","source /etc/profile"]'
--------------------------------------------
再次执行 helm template ./ 进行验证可以发现:
--------------------------------------------
templates/test.yaml
# 可以看到加载command是正常的了
containers:
command: [ "sh","-ce","source /etc/profile"]
----------------------------------------------
小贴士:
ConfigMap: 里面涉及的数字 都要加 双引号 quote
Server: 所有的端口号不能加双引号