Вложенные циклы в шаблонах диаграмм - PullRequest
0 голосов
/ 31 октября 2018

У меня проблемы с рендерингом шаблона для Helm Chart, который должен иметь легко расширяемое количество узлов и реплик. Я получаю сообщение об ошибке ниже. Что странно, я не получаю сообщение об ошибке ниже, если удалить внутренний цикл, чтобы не вкладывать циклы Я совершенно новичок, но это кажется действительным. Я в растерянности.

Ошибка:

$ helm install . --dry-run --debug
Error: render error in "app-on-k8s/templates/configmap_configd.yaml": template: app-on-k8s/templates/configmap_configd.yaml:18:77: executing "app-on-k8s/templates/configmap_configd.yaml" at <.Values.nodeCount>: can't evaluate field Values in type int

Это соответствующий раздел из моего файла values.yaml:

# number of nodes / shards
nodeCount: 5
replicaCount: 3

И соответствующий раздел из моего файла шаблона:

    <default>
        {{range $i, $e := until (atoi (printf "%d" (int64 .Values.nodeCount))) }}
                <node>
                {{range $j, $k := until (atoi (printf "%d" (int64 .Values.replicaCount))) }}   #line 18
                    <replica>
                        <host>{{ $.Release.Name }}-{{$j}}</host>
                        <port>{{ $.Values.service.rpc_port }}</port>
                    </replica>
                {{end}}    
                </node>
        {{end}}
    </default>

1 Ответ

0 голосов
/ 31 октября 2018

Проблема в том, что когда вы используете .Values.replicaCount во втором цикле, область действия . была изменена и теперь указывает на .Values.nodeCount. Так что .Values.replicaCount теперь указывает на .Values.nodeCount.Values.replicaCount. Поскольку в файле values.yaml такого поля нет, вы получаете эту ошибку.

Используйте $.Values.replicaCount вместо .Values.replicaCount во втором цикле.

Ссылка: helm.sh

...