因此,我的 Helm 图表中有一个环境变量,当我运行 --dry-run
时,该变量运行良好。但是,当我尝试真正释放它时,会抛出错误。
因为 Postgres 节点的数量根据用户在 value.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"|...
任何帮助将不胜感激,并提前致谢。
最佳答案
事实证明,我的副本位于引号之间,导致了此错误。
关于kubernetes - Helm 图表在发布时抛出错误,但在 --dry-run 上运行良好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55593886/