# infrastructure/modules/base/storageclass/veles-oceanus-policy.yaml apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingAdmissionPolicy metadata: name: veles-oceanus-storage-namespace spec: failurePolicy: Fail matchConstraints: resourceRules: - apiGroups: [""] apiVersions: ["v1"] operations: ["CREATE", "UPDATE"] resources: ["persistentvolumeclaims"] validations: - expression: "!has(object.spec.storageClassName) || !(object.spec.storageClassName in ['veles-oceanus-db', 'veles-oceanus-artifacts']) || object.metadata.namespace == 'veles'" message: "Veles Oceanus storage classes are reserved for namespace veles" --- apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingAdmissionPolicyBinding metadata: name: veles-oceanus-storage-namespace spec: policyName: veles-oceanus-storage-namespace validationActions: - Deny