GOOGLE ADS

пятница, 6 мая 2022 г.

Как выполнить команду оболочки и ввести вывод внутри данных yaml

У меня есть файл 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.

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...