policyDefinitions/Kubernetes/host-network-ports/rego/src.rego (24 lines of code) (raw):
package k8sazurehostnetworkingports
violation[{"msg": msg, "details": {}}] {
container := input_containers[_]
input_share_hostnetwork(container)
msg := sprintf("The specified hostNetwork and hostPort are not allowed, pod: %v, container: %v. Allowed values: %v", [input.review.object.metadata.name, container.name, input.parameters])
}
input_share_hostnetwork(container) {
not input.parameters.allowHostNetwork
input.review.object.spec.hostNetwork
}
input_share_hostnetwork(container) {
hostPort := container.ports[_].hostPort
hostPort < input.parameters.minPort
}
input_share_hostnetwork(container) {
hostPort := container.ports[_].hostPort
hostPort > input.parameters.maxPort
}
input_containers[c] {
c := input.review.object.spec.containers[_]
}
input_containers[c] {
c := input.review.object.spec.initContainers[_]
}