首页 > 解决方案 > Conftest 验证夹具数据

问题描述

我一直在使用 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-policy-agentconftest

解决方案


有一个未解决的问题- 文档当前反映了OPA从 dir 递归读取数据文件并使用目录名称进行命名空间的行为。此行为当前反映在 conftest 中。我建议跟踪票以了解这方面的进展。作为一种解决方法,在此之前,您始终可以自己“命名空间”数据,以便您的 input.json 看起来像这样:

{
  "examples": {
     "actual_data": {
        ...
     }
  }
}

推荐阅读