Skip to content

Commit c2ec825

Browse files
committed
Protect Global Copied CSVs in the openshift namespace
Problem: After disabling Copied CSVs, the openshift console can no longer communicate to users which operators are available globally across the cluster. Solution: Configure OLM to ensure that Copied CSVs for operators scoped to All Namespaces appear in the openshift namespace. Update the OLM manifests to include RBAC for authenticated users to view CSVs in this namespace.
1 parent 77ed0a2 commit c2ec825

5 files changed

+83
-0
lines changed

manifests/0000_50_olm_07-olm-operator.deployment.ibm-cloud-managed.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ spec:
5353
- /srv-cert/tls.key
5454
- --client-ca
5555
- /profile-collector-cert/tls.crt
56+
- --protectedCopiedCSVNamespaces
57+
- openshift
5658
image: quay.io/operator-framework/olm@sha256:de396b540b82219812061d0d753440d5655250c621c753ed1dc67d6154741607
5759
imagePullPolicy: IfNotPresent
5860
ports:

manifests/0000_50_olm_07-olm-operator.deployment.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ spec:
5353
- /srv-cert/tls.key
5454
- --client-ca
5555
- /profile-collector-cert/tls.crt
56+
- --protectedCopiedCSVNamespaces
57+
- openshift
5658
image: quay.io/operator-framework/olm@sha256:de396b540b82219812061d0d753440d5655250c621c753ed1dc67d6154741607
5759
imagePullPolicy: IfNotPresent
5860
ports:
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: Role
3+
metadata:
4+
annotations:
5+
rbac.authorization.kubernetes.io/autoupdate: "true"
6+
include.release.openshift.io/ibm-cloud-managed: "true"
7+
include.release.openshift.io/self-managed-high-availability: "true"
8+
name: copied-csv-viewer
9+
namespace: openshift
10+
rules:
11+
- apiGroups:
12+
- "operators.coreos.com"
13+
resources:
14+
- "clusterserviceversions"
15+
verbs:
16+
- get
17+
- list
18+
- watch
19+
---
20+
apiVersion: rbac.authorization.k8s.io/v1
21+
kind: RoleBinding
22+
metadata:
23+
annotations:
24+
rbac.authorization.kubernetes.io/autoupdate: "true"
25+
include.release.openshift.io/ibm-cloud-managed: "true"
26+
include.release.openshift.io/self-managed-high-availability: "true"
27+
name: copied-csv-viewers
28+
namespace: openshift
29+
roleRef:
30+
apiGroup: rbac.authorization.k8s.io
31+
kind: Role
32+
name: copied-csv-viewer
33+
subjects:
34+
- apiGroup: rbac.authorization.k8s.io
35+
kind: Group
36+
name: system:authenticated

scripts/generate_crds_manifests.sh

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,41 @@ metadata:
363363
release.openshift.io/delete: "true"
364364
EOF
365365

366+
cat << EOF > manifests/0000_50_olm_15-csv-viewer.rbac.yaml
367+
apiVersion: rbac.authorization.k8s.io/v1
368+
kind: Role
369+
metadata:
370+
annotations:
371+
rbac.authorization.kubernetes.io/autoupdate: "true"
372+
name: copied-csv-viewer
373+
namespace: openshift
374+
rules:
375+
- apiGroups:
376+
- "operators.coreos.com"
377+
resources:
378+
- "clusterserviceversions"
379+
verbs:
380+
- get
381+
- list
382+
- watch
383+
---
384+
apiVersion: rbac.authorization.k8s.io/v1
385+
kind: RoleBinding
386+
metadata:
387+
annotations:
388+
rbac.authorization.kubernetes.io/autoupdate: "true"
389+
name: copied-csv-viewers
390+
namespace: openshift
391+
roleRef:
392+
apiGroup: rbac.authorization.k8s.io
393+
kind: Role
394+
name: copied-csv-viewer
395+
subjects:
396+
- apiGroup: rbac.authorization.k8s.io
397+
kind: Group
398+
name: system:authenticated
399+
EOF
400+
366401
add_ibm_managed_cloud_annotations "${ROOT_DIR}/manifests"
367402

368403
find "${ROOT_DIR}/manifests" -type f -exec $SED -i "/^#/d" {} \;

scripts/olm-deployment.patch.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,14 @@
99
value:
1010
name: RELEASE_VERSION
1111
value: "0.0.1-snapshot"
12+
- command: update
13+
path: spec.template.spec.containers[0].args[+]
14+
value:
15+
--protectedCopiedCSVNamespaces
16+
- command: update
17+
path: spec.template.spec.containers[0].args[+]
18+
value:
19+
openshift
1220
- command: update
1321
path: spec.template.spec.containers[*].securityContext
1422
value:

0 commit comments

Comments
 (0)