0

我有一个 jsonnet 文件

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

{

    appname::'app-dev',
    version::version,
    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吗?

4

1 回答 1

1

找到了解决方案。

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)"  
于 2020-03-20T12:49:07.283 回答