У меня есть файл yaml и сценарий оболочки с запросами на завивку с приведенной ниже логикой. Мне нужно получить вывод сценария оболочки и поместить его в значение данных yaml.
Например: логика сценария оболочки:
servers=`curl test.com/servers`
for a in servers; do
val=`curl $a/number`
if [$val == 0]
output=`curl $a/ip`
done
echo $output
Если значение $output — программирование, то мне нужен test.yaml:
name: test
config: $get_output_value_from_shell #config: programming
Это может быть очень полезно, если кто-то поможет мне решить эту проблему. Мне нужно добиться этого в руле.
Решение проблемы
Ваш сценарий оболочки должен иметь возможность просто записать файл.
output=$(curl "$a/ip")
cat >install-values.yaml <<EOF
name: test
config: $output
EOF
Вы также можете рассмотреть возможность использования языка более высокого уровня для достижения этой цели; например, в Python есть requests
и pyyaml
библиотеки, которые можно комбинировать для сборки YAML-файла из HTTP-запросов, и будет проще получить правильное цитирование и экранирование, чем в сценарии оболочки.
Сам Helm не может ни вызывать внешние команды, ни делать произвольные HTTP-запросы, поэтому вам нужно сделать это в каком-то инструменте перед запуском helm
.
Комментариев нет:
Отправить комментарий