Helm chart выдает ошибку при выпуске, но отлично работает на —dry-run

#kubernetes #terraform #kubernetes-helm

#kubernetes #terraform #kubernetes-helm

Вопрос:

Итак, у меня есть переменная среды в моей Helm chart, которая отлично работает, когда я запускаю --dry-run . Однако, когда я пытаюсь выпустить ее по-настоящему, выдается ошибка.

Поскольку количество узлов Postgres отличается в зависимости от введенных пользователем значений.yaml Мне нужен способ генерировать переменную partner nodes на основе указанного количества узлов.

Что я пытался сделать, так это создать цикл, который перебирает числа, используя until функцию, которая возвращает список целых чисел, начинающихся с 0 и заканчивающихся $until-1, где я даю значение postgre_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 }}"
  

При запуске as 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:

Оказалось, что мои реплики были заключены в кавычки, что привело к этой ошибке.