Skip to content

Commit 55eab3e

Browse files
author
Mikalai Radchuk
committed
Add ValidatingAdmissionPolicy
To enforce package uniqueness across `ClusterExtension` Signed-off-by: Mikalai Radchuk <mradchuk@redhat.com>
1 parent 652e4bc commit 55eab3e

File tree

3 files changed

+35
-0
lines changed

3 files changed

+35
-0
lines changed

config/admission/admission.yaml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
apiVersion: admissionregistration.k8s.io/v1beta1
2+
kind: ValidatingAdmissionPolicy
3+
metadata:
4+
name: "clusterextensions-package-uniqueness.olm.operatorframework.io"
5+
spec:
6+
failurePolicy: Fail
7+
paramKind:
8+
apiVersion: olm.operatorframework.io/v1alpha1
9+
kind: ClusterExtension
10+
matchConstraints:
11+
resourceRules:
12+
- apiGroups: ["olm.operatorframework.io"]
13+
apiVersions: ["v1alpha1"]
14+
operations: ["CREATE", "UPDATE"]
15+
resources: ["clusterextensions"]
16+
validations:
17+
- expression: "object.spec.packageName != params.spec.packageName"
18+
messageExpression: "'Package \"' + string(object.spec.packageName) + '\" is already installed via ClusterExtension \"' + string(params.metadata.name) + '\"'"
19+
reason: Invalid
20+
21+
---
22+
23+
apiVersion: admissionregistration.k8s.io/v1beta1
24+
kind: ValidatingAdmissionPolicyBinding
25+
metadata:
26+
name: "clusterextensions-package-uniqueness-binding.olm.operatorframework.io"
27+
spec:
28+
policyName: "clusterextensions-package-uniqueness.olm.operatorframework.io"
29+
validationActions: [Deny]
30+
paramRef:
31+
parameterNotFoundAction: Allow
32+
selector: {}

config/admission/kustomization.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
resources:
2+
- admission.yaml

config/default/kustomization.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ namePrefix: operator-controller-
1616

1717
resources:
1818
- ../crd
19+
- ../admission
1920
- ../rbac
2021
- ../manager
2122
# [WEBHOOK] To enable webhook, uncomment all the sections with [WEBHOOK] prefix including the one in

0 commit comments

Comments
 (0)