问题描述
我一直在使用 Conftest 编写一些策略,并希望使用 conftest verify
命令验证我的配置。到目前为止,我已经能够像这样成功验证我的政策
test_deployment_with_security_context {
no_violations with input as {
... json content ...
}
}
然而,上面省略的 JSON 内容相当大,并且使我的策略测试变得混乱。我想将 JSON 放入一个文件并将其导入到测试中。 conftest verify
命令采用 --data
标志,允许将文件作为数据加载并可供策略使用。例如,根据文档,conftest verify --data policy
将递归加载它找到的 YAML 和 JSON 文件。因此,位于 policy/examples/input.json
中的文件在 import data.examples
下的策略中可用。我的问题是如何在测试中使用这些数据?
解决方法
对此有一个 open issue - 文档当前反映了 OPA 从目录中递归读取数据文件并使用目录名称进行命名空间的行为。此行为目前未反映在 conftest 中。我建议跟踪票证的进展情况。作为在此之前的解决方法,您始终可以自己“命名空间”数据,以便您的 input.json 看起来像这样:
{
"examples": {
"actual_data": {
...
}
}
}