首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重新检查数组中的字段是否存在

重新检查数组中的字段是否存在
EN

Stack Overflow用户
提问于 2022-04-20 11:33:37
回答 1查看 390关注 0票数 0

如何检查"spec.rules.host“项中"speck.rules”项中是否存在“speck.rules”字段,如果其中任何一项没有这样的条目,就会触发“拒绝”。

代码语言:javascript
复制
apiVersion: getambassador.io/v3alpha1
kind: FilterPolicy
metadata:
  name: multi-domain-policy
spec:
  rules:
  - host: foo.bar.com
    path: "*"
    filters:
      - name: foo-keycloak
  - host: example.com
    path: "*"
    filters:
      - name: example-auth0

由于某些原因,我无法理解,这不是工作:

代码语言:javascript
复制
        violation[{"msg": msg}] {
          hostExists := input.review.object.spec.rules[_].host
          not hostExists
          msg := sprintf("This is the value: %v", [hostExists])
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-20 12:14:28

您可以使用一个数组理解来收集缺少主机属性的规则,然后简单地数一下这些规则,看看是否有:

代码语言:javascript
复制
violation[{"msg": msg}] {
    rules_without_host := [rule | rule := input.review.object.spec.rules[_]; not rule.host]
    count(rules_without_host) > 0
    
    msg := sprintf("Rules missing host: %v", [rules_without_host])
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71938912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档