@@ -102,3 +102,49 @@ webhooks:
102102 t .Errorf ("Expected a webhook, got nil" )
103103 }
104104}
105+
106+ func TestValidatingAdmissionPolicies (t * testing.T ) {
107+ validValidatingAdmissionPolicy := `
108+ apiVersion: admissionregistration.k8s.io/v1
109+ kind: ValidatingAdmissionPolicy
110+ metadata:
111+ name: "machine-configuration-guards"
112+ spec:
113+ failurePolicy: Fail
114+ matchConstraints:
115+ matchPolicy: Equivalent
116+ namespaceSelector: {}
117+ objectSelector: {}
118+ resourceRules:
119+ - apiGroups: ["operator.openshift.io"]
120+ apiVersions: ["v1"]
121+ operations: ["CREATE","UPDATE"]
122+ resources: ["machineconfigurations"]
123+ scope: "*"
124+ validations:
125+ - expression: "object.metadata.name=='cluster'"
126+ message: "Only a single object of MachineConfiguration is allowed and it must be named cluster."
127+ `
128+ obj := ReadValidatingAdmissionPolicyV1OrDie ([]byte (validValidatingAdmissionPolicy ))
129+ if obj == nil {
130+ t .Errorf ("Expected a validatingadmissionpolicy, got nil" )
131+ }
132+
133+ }
134+
135+ func TestValidatingAdmissionPolicyBindings (t * testing.T ) {
136+ validValidatingAdmissionPolicyBinding := `
137+ apiVersion: admissionregistration.k8s.io/v1
138+ kind: ValidatingAdmissionPolicyBinding
139+ metadata:
140+ name: "machine-configuration-guards-binding"
141+ spec:
142+ policyName: "machine-configuration-guards"
143+ validationActions: [Deny]
144+ `
145+ obj := ReadValidatingAdmissionPolicyBindingV1OrDie ([]byte (validValidatingAdmissionPolicyBinding ))
146+ if obj == nil {
147+ t .Errorf ("Expected a validatingadmissionpolicybinding, got nil" )
148+ }
149+
150+ }
0 commit comments