Conftest 验证夹具数据

Conftest verify fixture data

我一直在使用 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": {
        ...
     }
  }
}