Невозможно вызывать внешние команды из Jsonnet.Это сделано специально (см. Герметичность https://jsonnet.org/articles/design.html).
. Необходимо явно передать данные в Jsonnet. Для этого есть три механизма:
1) import
/ importstr
, что являетсялучше всего для статических вещей, которые живут вместе с кодом.Но вы можете использовать их другими способами (см. Ответ Kerndog73).
2) Внешние переменные - глобальные параметры, которые доступны во всей программе, например:
jsonnet --ext-str from_curl="$(curl 'https://example.com')" -e 'std.extVar("from_curl")'
3) Верхний уровеньаргументы - если ваша программа jsonnet оценивает функцию, вы можете передать ей аргументы:
`jsonnet --tla-str from_curl="$(curl 'https://jsonplaceholder.typicode.com/posts/1')" -e 'function(from_curl) from_curl'`
Если вы используете ksonnet, она может отличаться, потому что ksonnet имеет свои собственные механизмы для передачи данных в jsonnet AFAIK.