将数组替换为 jsonnet

Substitute array to jsonnet

我有一个json网络文件

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

{

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

}

版本字段似乎是一个字符串,但"entities"字段是一个数组,位于jsonnet文件附近。 我正在使用 kubecfg show 创建 json 文件并像这样替换变量:

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

当然,在这个命令中我收到一个错误:

got "string", expected "array";

有什么方法可以使用 kubecfg show 替换数组吗?

已找到解决方案。

kubecfg 0.15.3 有一个标志,提供了从命令行、文件或环境注入 jsonnet 的方式。

--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)"