我已经为命名空间上的所有服务帐户设置了删除限制(使用验证 webhook),包括命名空间本身,作为集群管理员,我有没有办法从该命名空间中删除对象?
package kubernetes.admission
deny[msg] {
namespace := input.request.namespace
operation := input.request.operation
namespaces := {"test01"}
operations := {"CREATE","DELETE","UPDATE"}
namespaces[namespace]
operations[operation]
msg := sprintf("Operation not permitted in protected namespace, invalid operation for %q",[namespace,operation])
}
或者,有没有办法将集群管理员置于异常状态。
更新:
我想出了要执行的用户名,但是该策略虽然在策略检查器中正确评估但没有状态:在 configmap 状态中正常:
package kubernetes.admission
deny[msg] {
namespace := input.request.namespace
operation := input.request.operation
username := input.request.userInfo.username
namespaces := {"test01","kube-system"}
users := {"kubernetes-admin","admin"}
operations := {"CREATE","DELETE","UPDATE"}
namespaces[namespace]
operations[operation]
not users[username]
msg := sprintf("Operation not permitted in protected namespace, invalid operation for %q",[namespace,username,operation])
}
更新:
一段时间后,策略状态为 Ok。