Skip to content

Unable to deploy runtime-enforcer with open-shift 4.22 cluster #775

Description

@venkateshjayagopal

Is there an existing issue for this?

  • I have searched the existing issues

Environment

- OS: Red Hat 11.5.0-14
- Architecture: x86
- Cluster: OC 4.22 cluster

Issue Description

  • Expected behavior: Unable to deploy runtime-enforcer using HELM. Followed quick start guide to deploy.
  • Current behavior: Observing multiple ERRORs while deploying cert-manager and runtime-enforcer using HELM
  • Steps to reproduce:
  • Install HELM
  • Deploy cert-manager using below command,
[neuvector@master0 runtime-enforcer]$ helm install cert-manager jetstack/cert-manager \
        --namespace cert-manager \
        --create-namespace \
        --set crds.enabled=true \
        --wait

NAME: cert-manager
LAST DEPLOYED: Fri Jul 24 17:36:41 2026
NAMESPACE: cert-manager
STATUS: deployed
REVISION: 1
DESCRIPTION: Install complete
TEST SUITE: None
NOTES:
cert-manager v1.21.0 has been deployed successfully!

In order to begin issuing certificates, you will need to set up a ClusterIssuer
or Issuer resource (for example, by creating a 'letsencrypt-staging' issuer).

More information on the different types of issuers and how to configure them
can be found in our documentation:

https://cert-manager.io/docs/configuration/

For information on how to configure cert-manager to automatically provision
Certificates for Ingress resources, take a look at the `ingress-shim`
documentation:

https://cert-manager.io/docs/usage/ingress/

For information on how to configure cert-manager to automatically provision
Certificates for Gateway API resources, take a look at the `gateway resource`
documentation:

https://cert-manager.io/docs/usage/gateway/

Deploy cert-manager-csi-driver using HELM

[neuvector@master0 ~]$ helm install cert-manager-csi-driver jetstack/cert-manager-csi-driver \
        --namespace cert-manager \
        --wait
I0724 17:27:49.109980 3535459 warnings.go:107] "Warning: would violate PodSecurity \"restricted:latest\": privileged (container \"cert-manager-csi-driver\" must not set securityContext.privileged=true), allowPrivilegeEscalation != false (container \"cert-manager-csi-driver\" must set securityContext.allowPrivilegeEscalation=false), restricted volume types (volumes \"plugin-dir\", \"pods-mount-dir\", \"registration-dir\", \"csi-data-dir\" use restricted volume type \"hostPath\"), runAsNonRoot != true (pod or containers \"node-driver-registrar\", \"liveness-probe\", \"cert-manager-csi-driver\" must set securityContext.runAsNonRoot=true), runAsUser=0 (containers \"node-driver-registrar\", \"liveness-probe\", \"cert-manager-csi-driver\" must not set runAsUser=0)"
NAME: cert-manager-csi-driver
LAST DEPLOYED: Fri Jul 24 17:27:48 2026
NAMESPACE: cert-manager
STATUS: deployed
REVISION: 1
DESCRIPTION: Install complete
TEST SUITE: None
[neuvector@master0 ~]$ kubectl get pods -n cert-manager
NAME                                       READY   STATUS    RESTARTS   AGE
cert-manager-8fcb9d456-kxxrz               1/1     Running   0          54s
cert-manager-cainjector-85c8bf6d8b-kwm72   1/1     Running   0          54s
cert-manager-csi-driver-cxn8h              3/3     Running   0          16s
cert-manager-csi-driver-mzffc              3/3     Running   0          16s
cert-manager-webhook-85d7d5497-bqpzd       1/1     Running   0          54s

Now try deploying runtime-enforcer using HELM,

[neuvector@master0 runtime-enforcer]$ helm install runtime-enforcer ./ --namespace runtime-enforcer --set controller.image.tag=latest,agent.image.tag=latest,controller.image.pullPolicy=Always,agent.image.pullPolicy=Always
I0724 17:53:13.005874 3562622 warnings.go:107] "Warning: would violate PodSecurity \"restricted:latest\": forbidden AppArmor profile (pod must not set AppArmor profile type to \"Unconfined\"), host namespaces (hostPID=true), seLinuxOptions (pod set forbidden securityContext.seLinuxOptions: type \"spc_t\"), unrestricted capabilities (container \"agent\" must not include \"BPF\", \"PERFMON\", \"SYS_PTRACE\", \"SYS_RESOURCE\" in securityContext.capabilities.add), restricted volume types (volume \"nri-socket\" uses restricted volume type \"hostPath\"), runAsNonRoot != true (pod must not set securityContext.runAsNonRoot=false)"
Error: INSTALLATION FAILED: server-side apply failed for object runtime-enforcer/runtime-enforcer-agent apps/v1, Kind=DaemonSet: daemonsets.apps "runtime-enforcer-agent" is forbidden: runtime-enforcer-agent uses an inline volume provided by CSIDriver csi.cert-manager.io and namespace runtime-enforcer has a pod security enforce level that is lower than privileged
server-side apply failed for object runtime-enforcer/runtime-enforcer-controller-manager apps/v1, Kind=Deployment: deployments.apps "runtime-enforcer-controller-manager" is forbidden: runtime-enforcer-controller-manager uses an inline volume provided by CSIDriver csi.cert-manager.io and namespace runtime-enforcer has a pod security enforce level that is lower than privileged
server-side apply failed for object runtime-enforcer/runtime-enforcer-otel-collector apps/v1, Kind=Deployment: deployments.apps "runtime-enforcer-otel-collector" is forbidden: runtime-enforcer-otel-collector uses an inline volume provided by CSIDriver csi.cert-manager.io and namespace runtime-enforcer has a pod security enforce level that is lower than privileged

I had enforced pod-security.kubernetes.io/enforce=privileged to both cert-manager and runtime-enforcer namespace.

kubectl label namespace cert-manager pod-security.kubernetes.io/enforce=privileged --overwrite
kubectl label namespace runtime-enforcer pod-security.kubernetes.io/enforce=privileged --overwrite

Then I tried to deploy the cert-manager, csi-driver and runtime-enforcer again, but the not pods were deployed for runtime-enforcer,

[neuvector@master0 runtime-enforcer]$ helm install runtime-enforcer ./ --namespace runtime-enforcer --set controller.image.tag=latest,agent.image.tag=latest,controller.image.pullPolicy=Always,agent.image.pullPolicy=Always
I0724 17:55:01.527761 3564259 warnings.go:107] "Warning: would violate PodSecurity \"restricted:latest\": forbidden AppArmor profile (pod must not set AppArmor profile type to \"Unconfined\"), host namespaces (hostPID=true), seLinuxOptions (pod set forbidden securityContext.seLinuxOptions: type \"spc_t\"), unrestricted capabilities (container \"agent\" must not include \"BPF\", \"PERFMON\", \"SYS_PTRACE\", \"SYS_RESOURCE\" in securityContext.capabilities.add), restricted volume types (volume \"nri-socket\" uses restricted volume type \"hostPath\"), runAsNonRoot != true (pod must not set securityContext.runAsNonRoot=false)"
I0724 17:55:01.527789 3564259 warnings.go:107] "Warning: runtime-enforcer-agent uses an inline volume provided by CSIDriver csi.cert-manager.io and namespace runtime-enforcer has a pod security warn level that is lower than privileged"
I0724 17:55:01.545242 3564259 warnings.go:107] "Warning: runtime-enforcer-controller-manager uses an inline volume provided by CSIDriver csi.cert-manager.io and namespace runtime-enforcer has a pod security warn level that is lower than privileged"
I0724 17:55:01.545690 3564259 warnings.go:107] "Warning: runtime-enforcer-otel-collector uses an inline volume provided by CSIDriver csi.cert-manager.io and namespace runtime-enforcer has a pod security warn level that is lower than privileged"
NAME: runtime-enforcer
LAST DEPLOYED: Fri Jul 24 17:55:00 2026
NAMESPACE: runtime-enforcer
STATUS: deployed
REVISION: 1
DESCRIPTION: Install complete
TEST SUITE: None
[neuvector@master0 runtime-enforcer]$
[neuvector@master0 runtime-enforcer]$
[neuvector@master0 runtime-enforcer]$ kubectl get pods -n runtime-enforcer
No resources found in runtime-enforcer namespace.
[neuvector@master0 runtime-enforcer]$ helm list -A
NAME                    NAMESPACE               REVISION        UPDATED                                 STATUS          CHART                           APP VERSION
cert-manager            cert-manager            1               2026-07-24 17:36:41.700755251 +0000 UTC deployed        cert-manager-v1.21.0            v1.21.0
cert-manager-csi-driver cert-manager            1               2026-07-24 17:52:36.479068172 +0000 UTC deployed        cert-manager-csi-driver-v0.15.0 v0.15.0
runtime-enforcer        runtime-enforcer        1               2026-07-24 17:55:00.920800495 +0000 UTC deployed        runtime-enforcer-0.1.9          v0.7.0
[neuvector@master0 runtime-enforcer]$ kubectl get pods -n runtime-enforcer
No resources found in runtime-enforcer namespace.
[neuvector@master0 runtime-enforcer]$ kubectl describe ns runtime-enforcer
Name:         runtime-enforcer
Labels:       kubernetes.io/metadata.name=runtime-enforcer
              name=runtime-enforcer
              pod-security.kubernetes.io/audit=restricted
              pod-security.kubernetes.io/audit-version=latest
              pod-security.kubernetes.io/enforce=privileged
              pod-security.kubernetes.io/warn=restricted
              pod-security.kubernetes.io/warn-version=latest
Annotations:  openshift.io/sa.scc.mcs: s0:c27,c24
              openshift.io/sa.scc.supplemental-groups: 1000750000/10000
              openshift.io/sa.scc.uid-range: 1000750000/10000
              security.openshift.io/MinimallySufficientPodSecurityStandard: restricted
Status:       Active

No resource quota.

No LimitRange resource.
[neuvector@master0 runtime-enforcer]$ kubectl describe deployment runtime-enforcer-agent
Error from server (NotFound): deployments.apps "runtime-enforcer-agent" not found
[neuvector@master0 runtime-enforcer]$ kubectl describe deployment runtime-enforcer-agent -n runtime-enforcer
Error from server (NotFound): deployments.apps "runtime-enforcer-agent" not found
[neuvector@master0 runtime-enforcer]$ helm list -A
NAME                    NAMESPACE               REVISION        UPDATED                                 STATUS          CHART                           APP VERSION
cert-manager            cert-manager            1               2026-07-24 17:36:41.700755251 +0000 UTC deployed        cert-manager-v1.21.0            v1.21.0
cert-manager-csi-driver cert-manager            1               2026-07-24 17:52:36.479068172 +0000 UTC deployed        cert-manager-csi-driver-v0.15.0 v0.15.0
runtime-enforcer        runtime-enforcer        1               2026-07-24 17:55:00.920800495 +0000 UTC deployed        runtime-enforcer-0.1.9          v0.7.0
[neuvector@master0 runtime-enforcer]$ kubectl get pods -n runtime-enforcer
No resources found in runtime-enforcer namespace.
[neuvector@master0 runtime-enforcer]$ oc get deployment
No resources found in neuvector namespace.
[neuvector@master0 runtime-enforcer]$ oc get deployment -n runtime-enforcer
NAME                                  READY   UP-TO-DATE   AVAILABLE   AGE
runtime-enforcer-controller-manager   0/1     0            0           6m35s
runtime-enforcer-otel-collector       0/1     0            0           6m35s
[neuvector@master0 runtime-enforcer]$ oc get replicaset
-n runtime-enforcer
No resources found in neuvector namespace.
-bash: -n: command not found
[neuvector@master0 runtime-enforcer]$ oc get replicaset -n runtime-enforcer
NAME                                             DESIRED   CURRENT   READY   AGE
runtime-enforcer-controller-manager-599786f94f   1         0         0       6m58s
runtime-enforcer-otel-collector-dc7cc8fcb        1         0         0       6m58s
[neuvector@master0 runtime-enforcer]$ oc describe deployment runtime-enforcer-controller-manager -n runtime-enforcer
Name:                   runtime-enforcer-controller-manager
Namespace:              runtime-enforcer
CreationTimestamp:      Fri, 24 Jul 2026 17:55:01 +0000
Labels:                 app.kubernetes.io/instance=runtime-enforcer
                        app.kubernetes.io/managed-by=Helm
                        app.kubernetes.io/name=runtime-enforcer
                        app.kubernetes.io/version=v0.7.0
                        control-plane=controller-manager
                        helm.sh/chart=runtime-enforcer-0.1.9
Annotations:            deployment.kubernetes.io/revision: 1
                        meta.helm.sh/release-name: runtime-enforcer
                        meta.helm.sh/release-namespace: runtime-enforcer
Selector:               app.kubernetes.io/component=controller,app.kubernetes.io/instance=runtime-enforcer,app.kubernetes.io/name=runtime-enforcer
Replicas:               1 desired | 0 updated | 0 total | 0 available | 1 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:           app.kubernetes.io/component=controller
                    app.kubernetes.io/instance=runtime-enforcer
                    app.kubernetes.io/managed-by=Helm
                    app.kubernetes.io/name=runtime-enforcer
                    app.kubernetes.io/version=v0.7.0
                    helm.sh/chart=runtime-enforcer-0.1.9
  Annotations:      kubectl.kubernetes.io/default-container: manager
  Service Account:  runtime-enforcer-controller-manager
  Containers:
   manager:
    Image:      ghcr.io/rancher-sandbox/runtime-enforcer/controller:latest
    Port:       <none>
    Host Port:  <none>
    Command:
      /controller
    Args:
      --wp-status-reconciler-agent-grpc-port=50051
      --wp-status-reconciler-update-interval=30s
      --wp-status-reconciler-agent-label-selector=app.kubernetes.io/component=agent,app.kubernetes.io/instance=runtime-enforcer,app.kubernetes.io/name=runtime-enforcer
      --wp-status-reconciler-agent-grpc-mtls-cert-dir=/etc/runtime-enforcer/certs
      --log-level=info
      --metrics-bind-address=:8443
      --leader-elect
      --health-probe-bind-address=:8081
    Limits:
      cpu:     250m
      memory:  256Mi
    Requests:
      cpu:      250m
      memory:   256Mi
    Liveness:   http-get http://:8081/healthz delay=15s timeout=1s period=20s #success=1 #failure=3
    Readiness:  http-get http://:8081/readyz delay=5s timeout=1s period=10s #success=1 #failure=3
    Environment:
      KUBERNETES_CLUSTER_DOMAIN:       cluster.local
      OTEL_EXPORTER_OTLP_ENDPOINT:     https://runtime-enforcer-otel-collector.runtime-enforcer.svc.cluster.local:4317
      OTEL_EXPORTER_OTLP_PROTOCOL:     grpc
      OTEL_EXPORTER_OTLP_CERTIFICATE:  /etc/runtime-enforcer/certs/ca.crt
    Mounts:
      /etc/runtime-enforcer/certs from grpc-certs (ro)
      /tmp/k8s-webhook-server/serving-certs/ from webhook-certs (ro)
  Volumes:
   webhook-certs:
    Type:              CSI (a Container Storage Interface (CSI) volume source)
    Driver:            csi.cert-manager.io
    FSType:
    ReadOnly:          true
    VolumeAttributes:      csi.cert-manager.io/dns-names=runtime-enforcer-controller-webhook.runtime-enforcer.svc
                           csi.cert-manager.io/issuer-kind=Issuer
                           csi.cert-manager.io/issuer-name=runtime-enforcer-ca
   grpc-certs:
    Type:               CSI (a Container Storage Interface (CSI) volume source)
    Driver:             csi.cert-manager.io
    FSType:
    ReadOnly:           true
    VolumeAttributes:       csi.cert-manager.io/dns-names=runtime-enforcer-controller
                            csi.cert-manager.io/issuer-kind=Issuer
                            csi.cert-manager.io/issuer-name=runtime-enforcer-ca
  Priority Class Name:  runtime-enforcer-priorityclass
  Node-Selectors:       <none>
  Tolerations:          <none>
Conditions:
  Type             Status  Reason
  ----             ------  ------
  Progressing      True    NewReplicaSetCreated
  Available        False   MinimumReplicasUnavailable
  ReplicaFailure   True    FailedCreate
OldReplicaSets:    <none>
NewReplicaSet:     runtime-enforcer-controller-manager-599786f94f (0/1 replicas created)
Events:
  Type    Reason             Age    From                   Message
  ----    ------             ----   ----                   -------
  Normal  ScalingReplicaSet  7m16s  deployment-controller  Scaled up replica set runtime-enforcer-controller-manager-599786f94f from 0 to 1
[neuvector@master0 runtime-enforcer]$ kubectl get pods -n runtime-enforcer
No resources found in runtime-enforcer namespace.
[neuvector@master0 runtime-enforcer]$ oc describe rs runtime-enforcer-controller-manager-599786f94f
Error from server (NotFound): replicasets.apps "runtime-enforcer-controller-manager-599786f94f" not found
[neuvector@master0 runtime-enforcer]$ oc describe rs runtime-enforcer-controller-manager-599786f94f -n runtime-enforcer
Name:           runtime-enforcer-controller-manager-599786f94f
Namespace:      runtime-enforcer
Selector:       app.kubernetes.io/component=controller,app.kubernetes.io/instance=runtime-enforcer,app.kubernetes.io/name=runtime-enforcer,pod-template-hash=599786f94f
Labels:         app.kubernetes.io/component=controller
                app.kubernetes.io/instance=runtime-enforcer
                app.kubernetes.io/managed-by=Helm
                app.kubernetes.io/name=runtime-enforcer
                app.kubernetes.io/version=v0.7.0
                helm.sh/chart=runtime-enforcer-0.1.9
                pod-template-hash=599786f94f
Annotations:    deployment.kubernetes.io/desired-replicas: 1
                deployment.kubernetes.io/max-replicas: 2
                deployment.kubernetes.io/revision: 1
                meta.helm.sh/release-name: runtime-enforcer
                meta.helm.sh/release-namespace: runtime-enforcer
Controlled By:  Deployment/runtime-enforcer-controller-manager
Replicas:       0 current / 1 desired
Pods Status:    0 Running / 0 Waiting / 0 Succeeded / 0 Failed
Pod Template:
  Labels:           app.kubernetes.io/component=controller
                    app.kubernetes.io/instance=runtime-enforcer
                    app.kubernetes.io/managed-by=Helm
                    app.kubernetes.io/name=runtime-enforcer
                    app.kubernetes.io/version=v0.7.0
                    helm.sh/chart=runtime-enforcer-0.1.9
                    pod-template-hash=599786f94f
  Annotations:      kubectl.kubernetes.io/default-container: manager
  Service Account:  runtime-enforcer-controller-manager
  Containers:
   manager:
    Image:      ghcr.io/rancher-sandbox/runtime-enforcer/controller:latest
    Port:       <none>
    Host Port:  <none>
    Command:
      /controller
    Args:
      --wp-status-reconciler-agent-grpc-port=50051
      --wp-status-reconciler-update-interval=30s
      --wp-status-reconciler-agent-label-selector=app.kubernetes.io/component=agent,app.kubernetes.io/instance=runtime-enforcer,app.kubernetes.io/name=runtime-enforcer
      --wp-status-reconciler-agent-grpc-mtls-cert-dir=/etc/runtime-enforcer/certs
      --log-level=info
      --metrics-bind-address=:8443
      --leader-elect
      --health-probe-bind-address=:8081
    Limits:
      cpu:     250m
      memory:  256Mi
    Requests:
      cpu:      250m
      memory:   256Mi
    Liveness:   http-get http://:8081/healthz delay=15s timeout=1s period=20s #success=1 #failure=3
    Readiness:  http-get http://:8081/readyz delay=5s timeout=1s period=10s #success=1 #failure=3
    Environment:
      KUBERNETES_CLUSTER_DOMAIN:       cluster.local
      OTEL_EXPORTER_OTLP_ENDPOINT:     https://runtime-enforcer-otel-collector.runtime-enforcer.svc.cluster.local:4317
      OTEL_EXPORTER_OTLP_PROTOCOL:     grpc
      OTEL_EXPORTER_OTLP_CERTIFICATE:  /etc/runtime-enforcer/certs/ca.crt
    Mounts:
      /etc/runtime-enforcer/certs from grpc-certs (ro)
      /tmp/k8s-webhook-server/serving-certs/ from webhook-certs (ro)
  Volumes:
   webhook-certs:
    Type:              CSI (a Container Storage Interface (CSI) volume source)
    Driver:            csi.cert-manager.io
    FSType:
    ReadOnly:          true
    VolumeAttributes:      csi.cert-manager.io/dns-names=runtime-enforcer-controller-webhook.runtime-enforcer.svc
                           csi.cert-manager.io/issuer-kind=Issuer
                           csi.cert-manager.io/issuer-name=runtime-enforcer-ca
   grpc-certs:
    Type:               CSI (a Container Storage Interface (CSI) volume source)
    Driver:             csi.cert-manager.io
    FSType:
    ReadOnly:           true
    VolumeAttributes:       csi.cert-manager.io/dns-names=runtime-enforcer-controller
                            csi.cert-manager.io/issuer-kind=Issuer
                            csi.cert-manager.io/issuer-name=runtime-enforcer-ca
  Priority Class Name:  runtime-enforcer-priorityclass
  Node-Selectors:       <none>
  Tolerations:          <none>
Conditions:
  Type             Status  Reason
  ----             ------  ------
  ReplicaFailure   True    FailedCreate
Events:
  Type     Reason        Age                   From                   Message
  ----     ------        ----                  ----                   -------
  Warning  FailedCreate  25s (x18 over 8m37s)  replicaset-controller  Error creating: pods "runtime-enforcer-controller-manager-599786f94f-" is forbidden: unable to validate against any security context constraint: [provider "anyuid": Forbidden: not usable by user or serviceaccount, provider restricted-v2: .containers[0].runAsUser: Invalid value: 1000: must be in the ranges: [1000750000, 1000759999], provider restricted-v3: .spec.hostUsers: Invalid value: null: Host Users must be set to false, provider "restricted": Forbidden: not usable by user or serviceaccount, provider "nested-container": Forbidden: not usable by user or serviceaccount, provider "nonroot-v2": Forbidden: not usable by user or serviceaccount, provider "nonroot": Forbidden: not usable by user or serviceaccount, provider "neuvector-scc-controller": Forbidden: not usable by user or serviceaccount, provider "neuvector-scanner": Forbidden: not usable by user or serviceaccount, provider "hostmount-anyuid": Forbidden: not usable by user or serviceaccount, provider "hostmount-anyuid-v2": Forbidden: not usable by user or serviceaccount, provider "machine-api-termination-handler": Forbidden: not usable by user or serviceaccount, provider "hostnetwork-v2": Forbidden: not usable by user or serviceaccount, provider "hostnetwork": Forbidden: not usable by user or serviceaccount, provider "hostaccess": Forbidden: not usable by user or serviceaccount, provider "insights-runtime-extractor-scc": Forbidden: not usable by user or serviceaccount, provider "node-exporter": Forbidden: not usable by user or serviceaccount, provider "privileged": Forbidden: not usable by user or serviceaccount]
[neuvector@master0 runtime-enforcer]$ ^C
[neuvector@master0 runtime-enforcer]$
[neuvector@master0 runtime-enforcer]$
[neuvector@master0 runtime-enforcer]$

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions