头盔图表在发布时引发错误,但在--dry-run上运行良好

时间:2019-04-09 13:17:48

标签: kubernetes terraform kubernetes-helm

因此,我的Helm图表中有一个环境变量,当我运行--dry-run时,该变量可以正常工作。但是,当我尝试真正释放它时,会引发错误。

由于Postgres节点的数量根据values.yaml中用户输入的不同而不同,我需要一种方法根据指定的节点数生成伙伴节点变量。

我试图做的是使用until函数创建一个循环遍历数字的循环,该循环返回一个以0开头并以$ until-1结尾的整数列表,其中我将postgres_nodes值作为输入数字像这样:

- name: "PARTNER_NODES"
value: "{{ range $i, $e := until ( int $.Values.postgres_nodes ) }}{{ if $i }},{{ end }}{{ $.Values.name }}-db-node-{{ $i }}.{{ $.Values.name }}-db{{ end }}"

helm install --dry-run --debug身份运行时,它可以正常工作,并且可以正确打印配置文件:

"xxx-db-node-0.xxx-db,xxx-db-node-1.xxx-db,xxx-db-node-2.xxx-db"

但是当我删除--dry-run使其真正部署时,会抛出以下错误:

Error: release ha-postgres failed: StatefulSet in version "v1beta1" cannot be handled as a StatefulSet: v1beta1.StatefulSet.Spec: v1beta1.StatefulSetSpec.Replicas: readUint32: unexpected character: �, error found in #10 byte of ...|eplicas":"3","servic|..., bigger context ...|-node","namespace":"default"},"spec":{"replicas":"3","serviceName":"boost-db","template":{"metadata"|...

任何帮助将不胜感激,在此先感谢。

1 个答案:

答案 0 :(得分:1)

原来,我的引号之间有副本,导致此错误。