如何解决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 举报,一经查实,本站将立刻删除。