繁体   English   中英

OPA Rego 规则使用其他规则检查 k8s 命名空间中的注释

[英]OPA Rego rule to check annotation in k8s namespace with other rules

我想检查命名空间中是否存在注释,如果不否认。 我有这个代码但不工作。 我怎样才能得到正确的对象路径(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"]

谢谢 !

从看门人库存储库中查看这个几乎相同的示例
我认为具体问题在于您提取注释本身的方式(请注意,该示例在您使用点表示法时使用了方括号)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM