Они являются частью библиотеки шаблонов под названием Sprig , а точнее, ее функций для работы с словарями .
Используя подобные конструкции, можно запускать шаблоны с тем, что выглядит как объекты альтернативных значений, конструируя их из других частей исходных значений. В вашем примере, скажем, следующая строка (внутри {{ with }}...{{ end }}
) блока была просто {{ toYaml .Values }}
. Если исходный файл values.yaml
содержит что-то вроде
common:
a: "one"
b: "two"
a: "three"
c: "four"
, то код, который вы показываете, фактически «продвигает» общий контент на верхний уровень, но при этом фактические значения верхнего уровня переопределяют его, и вы будете get out
a: "three"
b: "two"
c: "four"
($common
- словарь, содержащий содержимое .Values.common
, под ключом "Values"
верхнего уровня. $noCommon
- словарь, содержащий все .Values
, кроме Клавиша common
, все еще находящаяся под "Values"
, а $noValues
- это словарь, содержащий "Chart"
, "Release"
и другие значения верхнего уровня. Все они объединяются в один словарь с переопределением $noCommon
$common
.)