open-policy-agent - Rego:如何指定不具有多个条件中的任何一个
问题描述
如何验证 Rego for OPA 中是否存在两个单独的密钥?目前,我正在使用这样的not
运算符:
deny["Containers must specify readiness and liveness probes"] {
not container.readinessProbe
not container.livenessProbe
}
但是,这只会拒绝没有livenessProbe
和的容器readinessProbe
。如何指定拒绝缺少两个键中的任何一个的容器?
解决方案
对于这种情况,我认为只为每个设置一个拒绝规则是有意义的:
deny["Containers must specify readiness probes"] {
not container.readinessProbe
}
deny["Containers must specify liveness probes"] {
not container.livenessProbe
}
使用 Rego 策略,规则是 OR'd 在一起,并且规则正文语句是 AND'd。因此,如果您尝试表达 OR 条件,通常会为每种情况寻找一个规则。
推荐阅读
- c# - 绑定到属性在 CodeBehind 中不起作用,但在 xaml 中起作用
- java - 该字段应该在接口中还是应该在每个类中编写?
- python - 创建 OAuth 用户 ID
- javascript - 更好地理解查找字符串排列的解决方案 - javascript
- c# - 会话值未保留或在 dotnetcore webapi 中不起作用
- java - 三元运算符有问题
- android - 推动从“内部测试”轨道发布到生产
- python - for循环中numpy数组的计算结果错误
- bash - 从 Bash 检查 postgres 查询的结果
- yii - EchMultiselect(TypeError: m.easing[this.easing] 不是函数)