Добавление ямловых якорей в рулевые карты - PullRequest
0 голосов
/ 06 июня 2018

Я строю рулевую диаграмму и у меня проблема с файлом values.yaml.Поскольку yaml не поддерживает переменные внутри себя, я попробовал привязки, но что-то вроде этого работает:

foo: &anchor A
bar: *anchor

с выводом

foo: A
bar: A

Мне нужно, чтобы якорь был добавлен к некоторой строке,как

foo: &anchor A
baz: &anotherAnchor B
bar: www.*anchor.*anotherAnchor.com

с выводом

foo: A
baz: B
bar: www.A.B.com

Возможно ли это сделать?

1 Ответ

0 голосов
/ 07 июня 2018

Не с YAML, как это существует сегодня.YAML не имеет функций для преобразования данных.Люди склонны использовать движки шаблонов, такие как Jinja, для выполнения подобных вещей в качестве шага предварительной обработки (см. Ansible, SaltStack, др.).

Обратите внимание, что хотя функция привязки / псевдонима часто используется для дедупликации данных, этоникогда не было намерения.Изначально они предназначены для использования для сериализации структур данных в памяти, которые могут содержать циклы или что-либо еще, где несколько переменных указывают на один и тот же объект.В семантике YAML ваши первые два фрагмента кода не идентичны, поскольку первый определяет один строковый объект A, который упоминается в двух местах, а второй определяет two строковые объекты A.Однако для данных конфигурации это, как правило, не имеет значения (если конфигурация не была изменена в памяти и записана обратно).

Именно поэтому в YAML отсутствуют какие-либо функции преобразования, которые позволили бы выполнять такие операции, какВы хотите сделать.

...