微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

OPA Rego规则与其他规则一起检查k8s命名空间中的注释

如何解决OPA Rego规则与其他规则一起检查k8s命名空间中的注释

如果不拒绝,我想检查名称空间中是否存在注释。我有代码,但无法正常工作。如何获得正确的对象路径(namespace.annotation)进行比较?

  violation[{"msg": msg,"details": {}}] {
        input.request.kind.kind == "Namespace"
        not input.review.object.Metadata.annotations.hostPath
        msg := sprintf("no hostpath defined in namespace for this pod %v,[input.review.object.Metadata.name])
    }

我在约束中同时指定了pod和名称空间,因为我需要同时检查模板中的规则

spec:
  match:
    kinds:
      - apiGroups: [""]
        kinds: ["Pod"]
      - apiGroups: [""]
        kinds: ["Namespace"]

谢谢!

解决方法

从Gatekeeper库存储库中检出this nearly identical example
我认为具体问题在于提取注释本身的方式(注意,在示例中,当使用点符号时,示例使用方括号)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。