apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingAdmissionPolicy metadata: name: "servicecidrs.default" annotations: kubernetes.io/description: >-2 A ValidatingAdmissionPolicy that restricts the IP address ranges that can be used for ClusterIP type Services. Deploying this admission policy and its associated ValidatingAdmissionPolicyBinding prevents creating (or updating) a ServiceCIDR outside the permitted ranges. spec: failurePolicy: Fail matchConstraints: resourceRules: - apiGroups: ["networking.k8s.io"] apiVersions: ["v1","v1beta1"] operations: ["CREATE", "UPDATE"] resources: ["servicecidrs"] matchConditions: - name: 'exclude-default-servicecidr' expression: "object.metadata.name != 'kubernetes'" variables: - name: allowed expression: "['10.96.0.0/16','2001:db8::/64']" validations: - expression: "object.spec.cidrs.all(currentCIDR, variables.allowed.exists(allowedCIDR, cidr(allowedCIDR).containsCIDR(currentCIDR)))" --- apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingAdmissionPolicyBinding metadata: name: "servicecidrs-binding" annotations: kubernetes.io/description: >-2 A ValidatingAdmissionPolicyBinding to restricts the IP address ranges that can be used for ClusterIP type Services. Deploying this binding and its associated ValidatingAdmissionPolicy prevents creating (or updating) a ServiceCIDR that falls outside the permitted ranges. spec: policyName: "servicecidrs.default" validationActions: [Deny,Audit]