Подставить массив в jsonnet - PullRequest
0 голосов
/ 20 марта 2020

У меня есть файл jso nnet

local version = std.extVar('version');
local entities = std.extVar('entities');

{

    appname::'app-dev',
    version::version,
    entities::entities,

}

Поле версии выглядит как строка, а поле "entity" - это массив, расположенный рядом с файлом jso nnet. Я использую kubecfg show для создания json файла и замены переменных следующим образом:

kubecfg show test.jsonnet --ext-str "version=$VERSION" --ext-str "entities=$(cat entities.txt)"  

Конечно, во время этой команды я получаю сообщение об ошибке:

got "string", expected "array";

Есть ли какие-либо способ замены массива с помощью kubecfg show?

1 Ответ

0 голосов
/ 20 марта 2020

Решение найдено.

kubecfg 0.15.3 имеет флаг, обеспечивающий способ ввода jso nnet из командной строки, файла или среды.

--ext-code      | jsonnet      | commandline    | std.extVar(...) | 
--ext-code-env  | jsonnet      | environment    | std.extVar(...) |
--ext-code-file | jsonnet      | file           | std.extVar(...) |

Итак в результате решение выглядит так:

kubecfg show test.jsonnet --ext-str "version=$VERSION" --ext-code "entities=$(cat entities.txt)"  
...