# 这是一个示例 ValidatingAdmissionPolicy,用于阻止删除或修改 # 带有 "platform.example.com/protected: true" 标签的 # 基于 API 的准入资源。 apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingAdmissionPolicy metadata: name: "example-protect-admission-resources.static.k8s.io" annotations: kubernetes.io/description: "Prevent modification or deletion of protected admission resources" spec: failurePolicy: Fail matchConstraints: resourceRules: - apiGroups: ["admissionregistration.k8s.io"] apiVersions: ["*"] operations: ["DELETE", "UPDATE"] resources: - "validatingadmissionpolicies" - "validatingadmissionpolicybindings" - "mutatingadmissionpolicies" - "mutatingadmissionpolicybindings" - "validatingwebhookconfigurations" - "mutatingwebhookconfigurations" validations: - expression: >- !has(oldObject.metadata.labels) || !('platform.example.com/protected' in oldObject.metadata.labels) || oldObject.metadata.labels['platform.example.com/protected'] != 'true' message: "Protected admission resources cannot be modified or deleted" --- apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingAdmissionPolicyBinding metadata: name: "example-protect-admission-resources-binding.static.k8s.io" annotations: kubernetes.io/description: "Bind protect-admission-resources policy to all admission resources" spec: policyName: "example-protect-admission-resources.static.k8s.io" validationActions: - Deny