policyDefinitions/Kubernetes/flexvolume-drivers/rego/src.rego (17 lines of code) (raw):

package k8sazureflexvolumes violation[{"msg": msg, "details": {}}] { volume := input_flexvolumes[_] not input_flexvolumes_allowed(volume) msg := sprintf("FlexVolume %v is not allowed, pod: %v. Allowed drivers: %v", [volume, input.review.object.metadata.name, input.parameters.allowedFlexVolumeDrivers]) } input_flexvolumes_allowed(volume) { input.parameters.allowedFlexVolumeDrivers[_] == volume.flexVolume.driver } input_flexvolumes[v] { v := input.review.object.spec.volumes[_] has_field(v, "flexVolume") } # has_field returns whether an object has a field has_field(object, field) = true { object[field] }