因此,我的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"|...
任何帮助将不胜感激,在此先感谢。
答案 0 :(得分:1)
原来,我的引号之间有副本,导致此错误。