-
Bug
-
Resolution: Not a Bug
-
Undefined
-
None
-
None
-
None
-
False
-
-
False
Ref: https://github.ibm.com/PrivateCloud-analytics/CPD-Quality/issues/44029
Problem Description:
There is non compliance found in cert-manager Operator for Red Hat OpenShift.Â
cpd_nc_sh_026_csv_clusterPermissions_present
CSV: cert-manager-operator.v1.15.1 - we are using this in CPD.
ClusterPermissions give operators cluster-wide access, which violates CPD’s requirement for namespace-scoped RBAC.
This poses a security risk by enabling potential privilege escalation for tenant admins through service account tokens. So, we need the clusterpermissions removed from CSV's.
CSV info:
Â
apiVersion: operators.coreos.com/v1alpha1 kind: ClusterServiceVersion metadata:  annotations:   alm-examples: |-    [     {      "apiVersion": "acme.cert-manager.io/v1",      "kind": "Challenge",      "metadata": {       "name": "tls-cert-sample",       "namespace": "default"      },      "spec": {       "authorizationURL": "https://acme-staging-v02.api.letsencrypt.org/acme/authz-v3/XXXXX",       "dnsName": "sample.dns.name",       "issuerRef": {        "kind": "Issuer",        "name": "letsencrypt-staging"       },       "key": "XXX",       "solver": {        "dns01": {         "route53": {          "accessKeyID": "XXX",          "hostedZoneID": "XXX",          "region": "us-east-1",          "secretAccessKeySecretRef": {           "key": "awsSecretAccessKey",           "name": "aws-secret"          }         }        },        "selector": {         "dnsNames": [          "sample.dns.name"         ]        }       },       "token": "XXX",       "type": "DNS-01",       "url": "https://acme-staging-v02.api.letsencrypt.org/acme/chall-v3/XXXXXX/XXXXX",       "wildcard": false      }     },     {      "apiVersion": "acme.cert-manager.io/v1",      "kind": "Order",      "metadata": {       "annotations": {        "cert-manager.io/certificate-name": "tls-cert",        "cert-manager.io/certificate-revision": "1",        "cert-manager.io/private-key-secret-name": "tls-cert-sample"       },       "name": "tls-cert-sample",       "namespace": "default"      },      "spec": {       "commonName": "sample.dns.name",       "dnsNames": [        "sample.dns.name"       ],       "issuerRef": {        "kind": "Issuer",        "name": "letsencrypt-staging"       },       "request": "XXX"      }     },     {      "apiVersion": "cert-manager.io/v1",      "kind": "Certificate",      "metadata": {       "name": "selfsigned-ca",       "namespace": "default"      },      "spec": {       "commonName": "selfsigned-ca.dns.name",       "isCA": true,       "issuerRef": {        "group": "cert-manager.io",        "kind": "ClusterIssuer",        "name": "selfsigned-issuer"       },       "privateKey": {        "algorithm": "ECDSA",        "size": 256       },       "secretName": "ca-root-secret"      }     },     {      "apiVersion": "cert-manager.io/v1",      "kind": "Certificate",      "metadata": {       "name": "tls-cert",       "namespace": "default"      },      "spec": {       "commonName": "sample.dns.name",       "dnsNames": [        "sample.dns.name"       ],       "isCA": false,       "issuerRef": {        "kind": "Issuer",        "name": "letsencrypt-staging"       },       "secretName": "tls-cert"      }     },     {      "apiVersion": "cert-manager.io/v1",      "kind": "CertificateRequest",      "metadata": {       "annotations": {        "cert-manager.io/certificate-name": "tls-cert",        "cert-manager.io/certificate-revision": "1",        "cert-manager.io/private-key-secret-name": "tls-cert-sample"       },       "name": "tls-cert-sample",       "namespace": "default"      },      "spec": {       "groups": [        "system:serviceaccounts",        "system:serviceaccounts:cert-manager",        "system:authenticated"       ],       "issuerRef": {        "kind": "Issuer",        "name": "letsencrypt-staging"       },       "request": "XXX",       "username": "system:serviceaccount:cert-manager:cert-manager"      }     },     {      "apiVersion": "cert-manager.io/v1",      "kind": "ClusterIssuer",      "metadata": {       "name": "selfsigned-issuer"      },      "spec": {       "selfSigned": {}      }     },     {      "apiVersion": "cert-manager.io/v1",      "kind": "Issuer",      "metadata": {       "name": "ca-issuer",       "namespace": "default"      },      "spec": {       "ca": {        "secretName": "ca-root-secret"       }      }     },     {      "apiVersion": "cert-manager.io/v1",      "kind": "Issuer",      "metadata": {       "name": "letsencrypt-staging",       "namespace": "default"      },      "spec": {       "acme": {        "email": "aos-ci-cd@redhat.com",        "privateKeySecretRef": {         "name": "letsencrypt-staging"        },        "server": "https://acme-staging-v02.api.letsencrypt.org/directory",        "solvers": [         {          "dns01": {           "route53": {            "accessKeyID": "ACCESS_KEY_ID",            "hostedZoneID": "HOSTED_ZONE_ID",            "region": "AWS_REGION",            "secretAccessKeySecretRef": {             "key": "access-key",             "name": "sample-aws-secret"            }           }          },          "selector": {           "dnsNames": [            "sample.dns.name"           ]          }         }        ]       }      }     },     {      "apiVersion": "operator.openshift.io/v1alpha1",      "kind": "CertManager",      "metadata": {       "name": "cluster"      },      "spec": {       "logLevel": "Normal",       "managementState": "Managed"      }     },     {      "apiVersion": "operator.openshift.io/v1alpha1",      "kind": "IstioCSR",      "metadata": {       "annotations": {        "kubernetes.io/description": "Creating this resource requires the istio-csr tech-preview feature to be enabled, which otherwise has no effect. Please refer to the cert-manager documentation for more information on enabling the istio-csr feature. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process"       },       "name": "default",       "namespace": "istio-csr"      },      "spec": {       "istioCSRConfig": {        "certManager": {         "issuerRef": {          "group": "cert-manager.io",          "kind": "Issuer",          "name": "istio-csr-issuer"         }        },        "istio": {         "namespace": "istio-system"        },        "istiodTLSConfig": {         "trustDomain": "cluster.local"        }       }      }     }    ]   capabilities: Seamless Upgrades   categories: Security   console.openshift.io/disable-operand-delete: "true"   containerImage: registry.redhat.io/cert-manager/cert-manager-operator-rhel9@sha256:f328263e2d29e34ede65e4501f0447b2d9f84e9445a365c2fa2fbb253939e274   createdAt: 2025-03-13T18:26:37   features.operators.openshift.io/cnf: "false"   features.operators.openshift.io/cni: "false"   features.operators.openshift.io/csi: "false"   features.operators.openshift.io/disconnected: "false"   features.operators.openshift.io/fips-compliant: "true"   features.operators.openshift.io/proxy-aware: "true"   features.operators.openshift.io/tls-profiles: "false"   features.operators.openshift.io/token-auth-aws: "true"   features.operators.openshift.io/token-auth-azure: "true"   features.operators.openshift.io/token-auth-gcp: "true"   olm.operatorGroup: openshift-cert-manager-operator   olm.operatorNamespace: cert-manager-operator   olm.skipRange: '>=1.15.0 <1.15.1'   operator.openshift.io/uninstall-message: The cert-manager Operator for Red Hat    OpenShift will be removed from cert-manager-operator namespace. If your Operator    configured any off-cluster resources, these will continue to run and require    manual cleanup. All operands created by the operator will need to be manually    cleaned up. Please refer to https://docs.openshift.com/container-platform/latest/security/cert_manager_operator/cert-manager-operator-uninstall.html    for additional steps.   operatorframework.io/cluster-monitoring: "true"   operatorframework.io/properties: '{"properties":[{"type":"olm.gvk","value":{"group":"acme.cert-manager.io","kind":"Challenge","version":"v1"}},{"type":"olm.gvk","value":{"group":"acme.cert-manager.io","kind":"Order","version":"v1"}},{"type":"olm.gvk","value":{"group":"cert-manager.io","kind":"Certificate","version":"v1"}},{"type":"olm.gvk","value":{"group":"cert-manager.io","kind":"CertificateRequest","version":"v1"}},{"type":"olm.gvk","value":{"group":"cert-manager.io","kind":"ClusterIssuer","version":"v1"}},{"type":"olm.gvk","value":{"group":"cert-manager.io","kind":"Issuer","version":"v1"}},{"type":"olm.gvk","value":{"group":"operator.openshift.io","kind":"CertManager","version":"v1alpha1"}},{"type":"olm.gvk","value":{"group":"operator.openshift.io","kind":"IstioCSR","version":"v1alpha1"}},{"type":"olm.package","value":{"packageName":"openshift-cert-manager-operator","version":"1.15.1"}}]}'   operatorframework.io/suggested-namespace: cert-manager-operator   operators.openshift.io/infrastructure-features: '["proxy-aware"]'   operators.openshift.io/valid-subscription: '["OpenShift Kubernetes Engine", "OpenShift    Container Platform", "OpenShift Platform Plus"]'   operators.operatorframework.io/builder: operator-sdk-v1.25.1   operators.operatorframework.io/project_layout: go.kubebuilder.io/v3   repository: https://github.com/openshift/cert-manager-operator   support: Red Hat, Inc.  creationTimestamp: "2025-04-06T22:10:47Z"  generation: 1  labels:   olm.copiedFrom: cert-manager-operator   olm.managed: "true"   operatorframework.io/arch.amd64: supported   operatorframework.io/arch.arm64: supported   operatorframework.io/arch.ppc64le: supported   operatorframework.io/arch.s390x: supported   operatorframework.io/os.linux: supported  name: cert-manager-operator.v1.15.1  namespace: cpd-ops  resourceVersion: "86876"  uid: 8eba92b9-fad3-46b0-87e6-d80e8f0019d6 spec:  apiservicedefinitions: {}  cleanup:   enabled: false  customresourcedefinitions:   owned:   - kind: CertificateRequest    name: certificaterequests.cert-manager.io    version: v1   - kind: Certificate    name: certificates.cert-manager.io    version: v1   - description: CertManager is the Schema for the certmanagers API    displayName: CertManager    kind: CertManager    name: certmanagers.operator.openshift.io    version: v1alpha1   - kind: Challenge    name: challenges.acme.cert-manager.io    version: v1   - kind: ClusterIssuer    name: clusterissuers.cert-manager.io    version: v1   - kind: Issuer    name: issuers.cert-manager.io    version: v1   - kind: IstioCSR    name: istiocsrs.operator.openshift.io    version: v1alpha1   - kind: Order    name: orders.acme.cert-manager.io    version: v1  description: |   The cert-manager Operator for Red Hat OpenShift provides seamless support for [cert-manager v1.15.5](https://github.com/cert-manager/cert-manager/tree/v1.15.2), which automates certificate management.   For more information, see the [cert-manager Operator for Red Hat OpenShift documentation](https://docs.openshift.com/container-platform/latest/security/cert_manager_operator/index.html).  displayName: cert-manager Operator for Red Hat OpenShift  icon:  - base64data: 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   mediatype: image/png  install:   spec:    clusterPermissions:    - rules:     - apiGroups:      - ""      resources:      - configmaps      - events      - namespaces      - serviceaccounts      - services      verbs:      - create      - delete      - get      - list      - patch      - update      - watch     - apiGroups:      - ""      resources:      - pods      - secrets      verbs:      - create      - delete      - get      - list      - patch      - update      - watch     - apiGroups:      - acme.cert-manager.io      resources:      - challenges      - challenges/finalizers      - challenges/status      verbs:      - create      - delete      - get      - list      - patch      - update      - watch     - apiGroups:      - acme.cert-manager.io      resources:      - challenges      - challenges/finalizers      - challenges/status      - orders      - orders/finalizers      - orders/status      verbs:      - create      - delete      - deletecollection      - get      - list      - patch      - update      - watch     - apiGroups:      - admissionregistration.k8s.io      resources:      - mutatingwebhookconfigurations      - validatingwebhookconfigurations      verbs:      - create      - delete      - get      - list      - patch      - update      - watch     - apiGroups:      - apiextensions.k8s.io      resources:      - customresourcedefinitions      verbs:      - create      - delete      - get      - list      - patch      - update      - watch     - apiGroups:      - apiregistration.k8s.io      resources:      - apiservices      verbs:      - create      - delete      - get      - list      - patch      - update      - watch     - apiGroups:      - apps      resources:      - deployments      - replicasets      verbs:      - create      - delete      - get      - list      - patch      - update      - watch     - apiGroups:      - cert-manager.io      resources:      - certificaterequests      - certificaterequests/finalizers      - certificaterequests/status      - certificates      - certificates/finalizers      - certificates/status      - clusterissuers      - clusterissuers/status      - issuers      - issuers/status      verbs:      - create      - delete      - deletecollection      - get      - list      - patch      - update      - watch     - apiGroups:      - cert-manager.io      resourceNames:      - clusterissuers.cert-manager.io/*      - issuers.cert-manager.io/*      resources:      - signers      verbs:      - approve     - apiGroups:      - certificates.k8s.io      resources:      - certificatesigningrequests      - certificatesigningrequests/status      verbs:      - create      - delete      - get      - list      - patch      - update      - watch     - apiGroups:      - certificates.k8s.io      resources:      - signers      verbs:      - create      - delete      - get      - list      - patch      - sign      - update      - watch     - apiGroups:      - config.openshift.io      resources:      - certmanagers      - clusteroperators      - clusteroperators/status      - infrastructures      verbs:      - create      - delete      - get      - list      - patch      - update      - watch     - apiGroups:      - coordination.k8s.io      resources:      - leases      verbs:      - create      - delete      - get      - list      - patch      - update      - watch     - apiGroups:      - gateway.networking.k8s.io      resources:      - gateways      - gateways/finalizers      - httproutes      - httproutes/finalizers      verbs:      - create      - delete      - get      - list      - patch      - update      - watch     - apiGroups:      - networking.k8s.io      resources:      - ingresses      - ingresses/finalizers      verbs:      - create      - delete      - get      - list      - patch      - update      - watch     - apiGroups:      - operator.openshift.io      resources:      - certmanagers      verbs:      - create      - delete      - get      - list      - patch      - update      - watch     - apiGroups:      - operator.openshift.io      resources:      - certmanagers/finalizers      verbs:      - update     - apiGroups:      - operator.openshift.io      resources:      - certmanagers/status      verbs:      - get      - patch      - update     - apiGroups:      - operator.openshift.io      resources:      - istiocsrs      verbs:      - get      - list      - patch      - update      - watch     - apiGroups:      - operator.openshift.io      resources:      - istiocsrs/finalizers      verbs:      - update     - apiGroups:      - operator.openshift.io      resources:      - istiocsrs/status      verbs:      - get      - patch      - update     - apiGroups:      - rbac.authorization.k8s.io      resources:      - clusterrolebindings      - clusterroles      - rolebindings      - roles      verbs:      - create      - delete      - get      - list      - patch      - update      - watch     - apiGroups:      - route.openshift.io      resources:      - routes      - routes/custom-host      verbs:      - create      - delete      - get      - list      - patch      - update      - watch     - apiGroups:      - authentication.k8s.io      resources:      - tokenreviews      verbs:      - create     - apiGroups:      - authorization.k8s.io      resources:      - subjectaccessreviews      verbs:      - create     serviceAccountName: cert-manager-operator-controller-manager    deployments:    - label:      app.kubernetes.io/component: manager      app.kubernetes.io/created-by: cert-manager-operator      app.kubernetes.io/instance: controller-manager      app.kubernetes.io/managed-by: kustomize      app.kubernetes.io/name: deployment      app.kubernetes.io/part-of: cert-manager-operator     name: cert-manager-operator-controller-manager     spec:      replicas: 1      selector:       matchLabels:        name: cert-manager-operator      strategy: {}      template:       metadata:        annotations:         kubectl.kubernetes.io/default-container: cert-manager-operator        creationTimestamp: null        labels:         name: cert-manager-operator       spec:        affinity:         nodeAffinity:          requiredDuringSchedulingIgnoredDuringExecution:           nodeSelectorTerms:           - matchExpressions:            - key: kubernetes.io/arch             operator: In             values:             - amd64             - arm64             - ppc64le             - s390x            - key: kubernetes.io/os             operator: In             values:             - linux        containers:        - args:         - start         - --v=$(OPERATOR_LOG_LEVEL)         - --trusted-ca-configmap=$(TRUSTED_CA_CONFIGMAP_NAME)         - --cloud-credentials-secret=$(CLOUD_CREDENTIALS_SECRET_NAME)         - --unsupported-addon-features=$(UNSUPPORTED_ADDON_FEATURES)         command:         - /usr/bin/cert-manager-operator         env:         - name: WATCH_NAMESPACE          valueFrom:           fieldRef:            fieldPath: metadata.annotations['olm.targetNamespaces']         - name: POD_NAME          valueFrom:           fieldRef:            fieldPath: metadata.name         - name: OPERATOR_NAME          value: cert-manager-operator         - name: RELATED_IMAGE_CERT_MANAGER_WEBHOOK          value: registry.redhat.io/cert-manager/jetstack-cert-manager-rhel9@sha256:6af3ee8b2a5a87042fb7158bda8d6cf2e6324d1e265974acf77214d4cd0ea0d3         - name: RELATED_IMAGE_CERT_MANAGER_CA_INJECTOR          value: registry.redhat.io/cert-manager/jetstack-cert-manager-rhel9@sha256:6af3ee8b2a5a87042fb7158bda8d6cf2e6324d1e265974acf77214d4cd0ea0d3         - name: RELATED_IMAGE_CERT_MANAGER_CONTROLLER          value: registry.redhat.io/cert-manager/jetstack-cert-manager-rhel9@sha256:6af3ee8b2a5a87042fb7158bda8d6cf2e6324d1e265974acf77214d4cd0ea0d3         - name: RELATED_IMAGE_CERT_MANAGER_ACMESOLVER          value: registry.redhat.io/cert-manager/jetstack-cert-manager-acmesolver-rhel9@sha256:20efff60a0caf5eafb38986fd21611697b5bc534c2e789da233983a9739938ed         - name: RELATED_IMAGE_CERT_MANAGER_ISTIOCSR          value: registry.redhat.io/cert-manager/cert-manager-istio-csr-rhel9@sha256:9573d74bd2b926ec94af76f813e6358f14c5b2f4e0eedab7c1ff1070b7279a5c         - name: OPERAND_IMAGE_VERSION          value: 1.15.5         - name: ISTIOCSR_OPERAND_IMAGE_VERSION          value: 0.14.0         - name: OPERATOR_IMAGE_VERSION          value: 1.15.1         - name: OPERATOR_LOG_LEVEL          value: "2"         - name: TRUSTED_CA_CONFIGMAP_NAME         - name: CLOUD_CREDENTIALS_SECRET_NAME         - name: UNSUPPORTED_ADDON_FEATURES         image: registry.redhat.io/cert-manager/cert-manager-operator-rhel9@sha256:f328263e2d29e34ede65e4501f0447b2d9f84e9445a365c2fa2fbb253939e274         imagePullPolicy: IfNotPresent         name: cert-manager-operator         ports:         - containerPort: 8443          name: https          protocol: TCP         resources:          requests:           cpu: 10m           memory: 32Mi         securityContext:          allowPrivilegeEscalation: false          capabilities:           drop:           - ALL          privileged: false          runAsNonRoot: true          seccompProfile:           type: RuntimeDefault        securityContext:         runAsNonRoot: true         seccompProfile:          type: RuntimeDefault        serviceAccountName: cert-manager-operator-controller-manager        terminationGracePeriodSeconds: 10    permissions:    - rules:     - apiGroups:      - ""      resources:      - configmaps      verbs:      - get      - list      - watch      - create      - update      - patch      - delete     - apiGroups:      - coordination.k8s.io      resources:      - leases      verbs:      - get      - list      - watch      - create      - update      - patch      - delete     - apiGroups:      - ""      resources:      - events      verbs:      - create      - patch     serviceAccountName: cert-manager-operator-controller-manager   strategy: deployment  installModes:  - supported: true   type: OwnNamespace  - supported: true   type: SingleNamespace  - supported: false   type: MultiNamespace  - supported: true   type: AllNamespaces  keywords:  - cert-manager  - cert-manager-operator  - cert  - certificates  - security  - TLS  links:  - name: Documentation   url: https://github.com/openshift/cert-manager-operator/blob/master/README.md  maintainers:  - email: support@redhat.com   name: Red Hat Support  maturity: stable  minKubeVersion: 1.25.0  provider:   name: Red Hat  relatedImages:  - image: registry.redhat.io/cert-manager/jetstack-cert-manager-rhel9@sha256:6af3ee8b2a5a87042fb7158bda8d6cf2e6324d1e265974acf77214d4cd0ea0d3   name: cert-manager-webhook  - image: registry.redhat.io/cert-manager/jetstack-cert-manager-rhel9@sha256:6af3ee8b2a5a87042fb7158bda8d6cf2e6324d1e265974acf77214d4cd0ea0d3   name: cert-manager-ca-injector  - image: registry.redhat.io/cert-manager/jetstack-cert-manager-rhel9@sha256:6af3ee8b2a5a87042fb7158bda8d6cf2e6324d1e265974acf77214d4cd0ea0d3   name: cert-manager-controller  - image: registry.redhat.io/cert-manager/jetstack-cert-manager-acmesolver-rhel9@sha256:20efff60a0caf5eafb38986fd21611697b5bc534c2e789da233983a9739938ed   name: cert-manager-acmesolver  - image: registry.redhat.io/cert-manager/cert-manager-istio-csr-rhel9@sha256:9573d74bd2b926ec94af76f813e6358f14c5b2f4e0eedab7c1ff1070b7279a5c   name: cert-manager-istiocsr  replaces: cert-manager-operator.v1.15.0  version: 1.15.1 status:  cleanup: {}  conditions:  - lastTransitionTime: "2025-04-06T22:10:41Z"   lastUpdateTime: "2025-04-06T22:10:41Z"   message: requirements not yet checked   phase: Pending   reason: RequirementsUnknown  - lastTransitionTime: "2025-04-06T22:10:41Z"   lastUpdateTime: "2025-04-06T22:10:41Z"   message: one or more requirements couldn't be found   phase: Pending   reason: RequirementsNotMet  - lastTransitionTime: "2025-04-06T22:10:43Z"   lastUpdateTime: "2025-04-06T22:10:43Z"   message: all requirements found, attempting install   phase: InstallReady   reason: AllRequirementsMet  - lastTransitionTime: "2025-04-06T22:10:43Z"   lastUpdateTime: "2025-04-06T22:10:43Z"   message: waiting for install components to report healthy   phase: Installing   reason: InstallSucceeded  - lastTransitionTime: "2025-04-06T22:10:43Z"   lastUpdateTime: "2025-04-06T22:10:43Z"   message: 'installing: waiting for deployment cert-manager-operator-controller-manager    to become ready: deployment "cert-manager-operator-controller-manager" not available:    Deployment does not have minimum availability.'   phase: Installing   reason: InstallWaiting  - lastTransitionTime: "2025-04-06T22:10:55Z"   lastUpdateTime: "2025-04-06T22:10:55Z"   message: install strategy completed with no errors   phase: Succeeded   reason: InstallSucceeded  lastTransitionTime: "2025-04-06T22:10:55Z"  lastUpdateTime: "2025-04-06T22:10:55Z"  message: The operator is running in cert-manager-operator but is managing this namespace  phase: Succeeded  reason: Copied  requirementStatus:  - group: operators.coreos.com   kind: ClusterServiceVersion   message: CSV minKubeVersion (1.25.0) less than server version (v1.31.5)   name: cert-manager-operator.v1.15.1   status: Present   version: v1alpha1  - group: apiextensions.k8s.io   kind: CustomResourceDefinition   message: CRD is present and Established condition is true   name: certificaterequests.cert-manager.io   status: Present   uuid: e6c090e0-e789-40fb-a6bc-1a18af0102c3   version: v1  - group: apiextensions.k8s.io   kind: CustomResourceDefinition   message: CRD is present and Established condition is true   name: certificates.cert-manager.io   status: Present   uuid: 84cf9fbd-1b30-42a7-ba6b-a90c4910bfab   version: v1  - group: apiextensions.k8s.io   kind: CustomResourceDefinition   message: CRD is present and Established condition is true   name: certmanagers.operator.openshift.io   status: Present   uuid: 74d29fe2-17aa-4974-b2ab-7d3b58a5221f   version: v1  - group: apiextensions.k8s.io   kind: CustomResourceDefinition   message: CRD is present and Established condition is true   name: challenges.acme.cert-manager.io   status: Present   uuid: 5d76cd3c-e1e7-4499-b4e7-f18e5495dd79   version: v1  - group: apiextensions.k8s.io   kind: CustomResourceDefinition   message: CRD is present and Established condition is true   name: clusterissuers.cert-manager.io   status: Present   uuid: d98e3865-b83d-455e-808f-85c304325fc1   version: v1  - group: apiextensions.k8s.io   kind: CustomResourceDefinition   message: CRD is present and Established condition is true   name: issuers.cert-manager.io   status: Present   uuid: 44d8db10-759f-4dd4-9b8e-351ebfa83c9c   version: v1  - group: apiextensions.k8s.io   kind: CustomResourceDefinition   message: CRD is present and Established condition is true   name: istiocsrs.operator.openshift.io   status: Present   uuid: 5d8f062b-fc85-450a-af48-4b536877c434   version: v1  - group: apiextensions.k8s.io   kind: CustomResourceDefinition   message: CRD is present and Established condition is true   name: orders.acme.cert-manager.io   status: Present   uuid: c3939a3d-cce0-45d9-acdc-b3c899d0ff60   version: v1  - dependents:   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":[""],"resources":["configmaps","events","namespaces","serviceaccounts","services"]}    status: Satisfied    version: v1   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":[""],"resources":["pods","secrets"]}    status: Satisfied    version: v1   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["acme.cert-manager.io"],"resources":["challenges","challenges/finalizers","challenges/status"]}    status: Satisfied    version: v1   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["create","delete","deletecollection","get","list","patch","update","watch"],"apiGroups":["acme.cert-manager.io"],"resources":["challenges","challenges/finalizers","challenges/status","orders","orders/finalizers","orders/status"]}    status: Satisfied    version: v1   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["admissionregistration.k8s.io"],"resources":["mutatingwebhookconfigurations","validatingwebhookconfigurations"]}    status: Satisfied    version: v1   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["apiextensions.k8s.io"],"resources":["customresourcedefinitions"]}    status: Satisfied    version: v1   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["apiregistration.k8s.io"],"resources":["apiservices"]}    status: Satisfied    version: v1   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["apps"],"resources":["deployments","replicasets"]}    status: Satisfied    version: v1   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["create","delete","deletecollection","get","list","patch","update","watch"],"apiGroups":["cert-manager.io"],"resources":["certificaterequests","certificaterequests/finalizers","certificaterequests/status","certificates","certificates/finalizers","certificates/status","clusterissuers","clusterissuers/status","issuers","issuers/status"]}    status: Satisfied    version: v1   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["approve"],"apiGroups":["cert-manager.io"],"resources":["signers"],"resourceNames":["clusterissuers.cert-manager.io/*","issuers.cert-manager.io/*"]}    status: Satisfied    version: v1   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["certificates.k8s.io"],"resources":["certificatesigningrequests","certificatesigningrequests/status"]}    status: Satisfied    version: v1   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["create","delete","get","list","patch","sign","update","watch"],"apiGroups":["certificates.k8s.io"],"resources":["signers"]}    status: Satisfied    version: v1   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["config.openshift.io"],"resources":["certmanagers","clusteroperators","clusteroperators/status","infrastructures"]}    status: Satisfied    version: v1   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["coordination.k8s.io"],"resources":["leases"]}    status: Satisfied    version: v1   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["gateway.networking.k8s.io"],"resources":["gateways","gateways/finalizers","httproutes","httproutes/finalizers"]}    status: Satisfied    version: v1   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["networking.k8s.io"],"resources":["ingresses","ingresses/finalizers"]}    status: Satisfied    version: v1   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["operator.openshift.io"],"resources":["certmanagers"]}    status: Satisfied    version: v1   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["update"],"apiGroups":["operator.openshift.io"],"resources":["certmanagers/finalizers"]}    status: Satisfied    version: v1   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["operator.openshift.io"],"resources":["certmanagers/status"]}    status: Satisfied    version: v1   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["get","list","patch","update","watch"],"apiGroups":["operator.openshift.io"],"resources":["istiocsrs"]}    status: Satisfied    version: v1   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["update"],"apiGroups":["operator.openshift.io"],"resources":["istiocsrs/finalizers"]}    status: Satisfied    version: v1   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["get","patch","update"],"apiGroups":["operator.openshift.io"],"resources":["istiocsrs/status"]}    status: Satisfied    version: v1   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["rbac.authorization.k8s.io"],"resources":["clusterrolebindings","clusterroles","rolebindings","roles"]}    status: Satisfied    version: v1   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["create","delete","get","list","patch","update","watch"],"apiGroups":["route.openshift.io"],"resources":["routes","routes/custom-host"]}    status: Satisfied    version: v1   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["create"],"apiGroups":["authentication.k8s.io"],"resources":["tokenreviews"]}    status: Satisfied    version: v1   - group: rbac.authorization.k8s.io    kind: PolicyRule    message: cluster rule:{"verbs":["create"],"apiGroups":["authorization.k8s.io"],"resources":["subjectaccessreviews"]}    status: Satisfied    version: v1   group: ""   kind: ServiceAccount   message: ""   name: cert-manager-operator-controller-manager   status: Present   version: v1// code placeholder
Â
Â
Expected result: Please remove clusterPermissions in Operator CSVs. Use just "permissions" instead. Thanks.
- account is impacted by
-
RFE-8072 CSV cert-manager-operator.v1.15.1 has cluster permissions
-
- Backlog
-