--- apiVersion: apps/v1 items: - apiVersion: apps/v1 kind: ReplicaSet metadata: annotations: console.openshift.io/authn-ca-trust-config-version: "6888" console.openshift.io/console-config-version: "7161" console.openshift.io/image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c0471aac8dca7b920d98cf2b50bdb113f4498c563f3fd9d0a7c76f8bc04a0bd3 console.openshift.io/infrastructure-config-version: "1594" console.openshift.io/oauth-secret-version: "6910" console.openshift.io/proxy-config-version: "1446" console.openshift.io/service-ca-config-version: "7164" console.openshift.io/serving-cert-secret-version: "6918" console.openshift.io/trusted-ca-config-version: "7167" deployment.kubernetes.io/desired-replicas: "1" deployment.kubernetes.io/max-replicas: "2" deployment.kubernetes.io/revision: "1" operator.openshift.io/spec-hash: d557e4ee6d83f3a8d2563a1b75ee8ef993d1995e23d5c2b778fbba14ba1f1c12 creationTimestamp: "2026-10-30T21:36:19Z" generation: 2 labels: app: console component: ui pod-template-hash: 74dd85458c managedFields: - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:console.openshift.io/authn-ca-trust-config-version: {} f:console.openshift.io/console-config-version: {} f:console.openshift.io/image: {} f:console.openshift.io/infrastructure-config-version: {} f:console.openshift.io/oauth-secret-version: {} f:console.openshift.io/proxy-config-version: {} f:console.openshift.io/service-ca-config-version: {} f:console.openshift.io/serving-cert-secret-version: {} f:console.openshift.io/trusted-ca-config-version: {} f:deployment.kubernetes.io/desired-replicas: {} f:deployment.kubernetes.io/max-replicas: {} f:deployment.kubernetes.io/revision: {} f:operator.openshift.io/spec-hash: {} f:labels: .: {} f:app: {} f:component: {} f:pod-template-hash: {} f:ownerReferences: .: {} k:{"uid":"9f884f0e-1745-4332-b8f3-b30a0982fc40"}: {} f:spec: f:replicas: {} f:selector: {} f:template: f:metadata: f:annotations: .: {} f:console.openshift.io/authn-ca-trust-config-version: {} f:console.openshift.io/console-config-version: {} f:console.openshift.io/image: {} f:console.openshift.io/infrastructure-config-version: {} f:console.openshift.io/oauth-secret-version: {} f:console.openshift.io/proxy-config-version: {} f:console.openshift.io/service-ca-config-version: {} f:console.openshift.io/serving-cert-secret-version: {} f:console.openshift.io/trusted-ca-config-version: {} f:openshift.io/required-scc: {} f:target.workload.openshift.io/management: {} f:labels: .: {} f:app: {} f:component: {} f:pod-template-hash: {} f:name: {} f:spec: f:affinity: {} f:containers: k:{"name":"console"}: .: {} f:command: {} f:env: .: {} k:{"name":"POD_NAME"}: .: {} f:name: {} f:valueFrom: .: {} f:fieldRef: {} f:image: {} f:imagePullPolicy: {} f:lifecycle: .: {} f:preStop: .: {} f:exec: .: {} f:command: {} f:livenessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:name: {} f:ports: .: {} k:{"containerPort":8443,"protocol":"TCP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} f:readinessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:resources: .: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:allowPrivilegeEscalation: {} f:capabilities: .: {} f:drop: {} f:readOnlyRootFilesystem: {} f:startupProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/tmp"}: .: {} f:mountPath: {} f:name: {} k:{"mountPath":"/var/console-config"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/var/oauth-config"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/var/oauth-serving-cert"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/var/service-ca"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/var/serving-cert"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} f:dnsPolicy: {} f:priorityClassName: {} f:restartPolicy: {} f:schedulerName: {} f:securityContext: .: {} f:runAsNonRoot: {} f:seccompProfile: .: {} f:type: {} f:serviceAccount: {} f:serviceAccountName: {} f:terminationGracePeriodSeconds: {} f:tolerations: {} f:volumes: .: {} k:{"name":"console-config"}: .: {} f:configMap: .: {} f:defaultMode: {} f:name: {} f:name: {} k:{"name":"console-oauth-config"}: .: {} f:name: {} f:secret: .: {} f:defaultMode: {} f:secretName: {} k:{"name":"console-serving-cert"}: .: {} f:name: {} f:secret: .: {} f:defaultMode: {} f:secretName: {} k:{"name":"oauth-serving-cert"}: .: {} f:configMap: .: {} f:defaultMode: {} f:name: {} f:name: {} k:{"name":"service-ca"}: .: {} f:configMap: .: {} f:defaultMode: {} f:name: {} f:name: {} k:{"name":"tmp"}: .: {} f:emptyDir: {} f:name: {} manager: kube-controller-manager operation: Update time: "2026-10-30T21:36:50Z" - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:status: f:observedGeneration: {} f:replicas: {} f:terminatingReplicas: {} manager: kube-controller-manager operation: Update subresource: status time: "2026-10-30T21:37:16Z" name: console-74dd85458c namespace: openshift-console ownerReferences: - apiVersion: apps/v1 blockOwnerDeletion: true controller: true kind: Deployment name: console uid: 9f884f0e-1745-4332-b8f3-b30a0982fc40 resourceVersion: "9147" uid: b9c929b6-8c52-4e45-8815-2a51ef99b47d spec: replicas: 0 selector: matchLabels: app: console component: ui pod-template-hash: 74dd85458c template: metadata: annotations: console.openshift.io/authn-ca-trust-config-version: "6888" console.openshift.io/console-config-version: "7161" console.openshift.io/image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c0471aac8dca7b920d98cf2b50bdb113f4498c563f3fd9d0a7c76f8bc04a0bd3 console.openshift.io/infrastructure-config-version: "1594" console.openshift.io/oauth-secret-version: "6910" console.openshift.io/proxy-config-version: "1446" console.openshift.io/service-ca-config-version: "7164" console.openshift.io/serving-cert-secret-version: "6918" console.openshift.io/trusted-ca-config-version: "7167" openshift.io/required-scc: restricted-v2 target.workload.openshift.io/management: '{"effect": "PreferredDuringScheduling"}' labels: app: console component: ui pod-template-hash: 74dd85458c name: console spec: affinity: {} containers: - command: - /opt/bridge/bin/bridge - --public-dir=/opt/bridge/static - --config=/var/console-config/console-config.yaml - --service-ca-file=/var/service-ca/service-ca.crt - --v=2 env: - name: POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c0471aac8dca7b920d98cf2b50bdb113f4498c563f3fd9d0a7c76f8bc04a0bd3 imagePullPolicy: IfNotPresent lifecycle: preStop: exec: command: - sleep - "25" livenessProbe: failureThreshold: 1 httpGet: path: /health port: 8443 scheme: HTTPS periodSeconds: 10 successThreshold: 1 timeoutSeconds: 10 name: console ports: - containerPort: 8443 name: https protocol: TCP readinessProbe: failureThreshold: 3 httpGet: path: /health port: 8443 scheme: HTTPS periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 resources: requests: cpu: 10m memory: 100Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true startupProbe: failureThreshold: 30 httpGet: path: /health port: 8443 scheme: HTTPS periodSeconds: 10 successThreshold: 1 timeoutSeconds: 10 terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /var/serving-cert name: console-serving-cert readOnly: true - mountPath: /var/oauth-config name: console-oauth-config readOnly: true - mountPath: /var/console-config name: console-config readOnly: true - mountPath: /var/service-ca name: service-ca readOnly: true - mountPath: /tmp name: tmp - mountPath: /var/oauth-serving-cert name: oauth-serving-cert readOnly: true dnsPolicy: ClusterFirst priorityClassName: system-cluster-critical restartPolicy: Always schedulerName: default-scheduler securityContext: runAsNonRoot: true seccompProfile: type: RuntimeDefault serviceAccount: console serviceAccountName: console terminationGracePeriodSeconds: 40 tolerations: - effect: NoSchedule key: node-role.kubernetes.io/master operator: Exists - effect: NoExecute key: node.kubernetes.io/unreachable operator: Exists tolerationSeconds: 120 volumes: - name: console-serving-cert secret: defaultMode: 420 secretName: console-serving-cert - name: console-oauth-config secret: defaultMode: 420 secretName: console-oauth-config - configMap: defaultMode: 420 name: console-config name: console-config - configMap: defaultMode: 420 name: service-ca name: service-ca - emptyDir: {} name: tmp - configMap: defaultMode: 420 name: oauth-serving-cert name: oauth-serving-cert status: observedGeneration: 2 replicas: 0 terminatingReplicas: 0 - apiVersion: apps/v1 kind: ReplicaSet metadata: annotations: console.openshift.io/authn-ca-trust-config-version: "6888" console.openshift.io/console-config-version: "8596" console.openshift.io/image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c0471aac8dca7b920d98cf2b50bdb113f4498c563f3fd9d0a7c76f8bc04a0bd3 console.openshift.io/infrastructure-config-version: "1594" console.openshift.io/oauth-secret-version: "6910" console.openshift.io/proxy-config-version: "1446" console.openshift.io/service-ca-config-version: "7168" console.openshift.io/serving-cert-secret-version: "6918" console.openshift.io/trusted-ca-config-version: "7170" deployment.kubernetes.io/desired-replicas: "1" deployment.kubernetes.io/max-replicas: "2" deployment.kubernetes.io/revision: "3" operator.openshift.io/spec-hash: b7a600d9295709fc7f88d7433cd5d2390258acb598a52b6131b6e1df9c6d17bc creationTimestamp: "2026-10-30T21:36:40Z" generation: 3 labels: app: console component: ui pod-template-hash: 779d4db569 managedFields: - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:console.openshift.io/authn-ca-trust-config-version: {} f:console.openshift.io/console-config-version: {} f:console.openshift.io/image: {} f:console.openshift.io/infrastructure-config-version: {} f:console.openshift.io/oauth-secret-version: {} f:console.openshift.io/proxy-config-version: {} f:console.openshift.io/service-ca-config-version: {} f:console.openshift.io/serving-cert-secret-version: {} f:console.openshift.io/trusted-ca-config-version: {} f:deployment.kubernetes.io/desired-replicas: {} f:deployment.kubernetes.io/max-replicas: {} f:deployment.kubernetes.io/revision: {} f:operator.openshift.io/spec-hash: {} f:labels: .: {} f:app: {} f:component: {} f:pod-template-hash: {} f:ownerReferences: .: {} k:{"uid":"9f884f0e-1745-4332-b8f3-b30a0982fc40"}: {} f:spec: f:replicas: {} f:selector: {} f:template: f:metadata: f:annotations: .: {} f:console.openshift.io/authn-ca-trust-config-version: {} f:console.openshift.io/console-config-version: {} f:console.openshift.io/image: {} f:console.openshift.io/infrastructure-config-version: {} f:console.openshift.io/oauth-secret-version: {} f:console.openshift.io/proxy-config-version: {} f:console.openshift.io/service-ca-config-version: {} f:console.openshift.io/serving-cert-secret-version: {} f:console.openshift.io/trusted-ca-config-version: {} f:openshift.io/required-scc: {} f:target.workload.openshift.io/management: {} f:labels: .: {} f:app: {} f:component: {} f:pod-template-hash: {} f:name: {} f:spec: f:affinity: {} f:containers: k:{"name":"console"}: .: {} f:command: {} f:env: .: {} k:{"name":"POD_NAME"}: .: {} f:name: {} f:valueFrom: .: {} f:fieldRef: {} f:image: {} f:imagePullPolicy: {} f:lifecycle: .: {} f:preStop: .: {} f:exec: .: {} f:command: {} f:livenessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:name: {} f:ports: .: {} k:{"containerPort":8443,"protocol":"TCP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} f:readinessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:resources: .: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:allowPrivilegeEscalation: {} f:capabilities: .: {} f:drop: {} f:readOnlyRootFilesystem: {} f:startupProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/etc/pki/ca-trust/extracted/pem"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/tmp"}: .: {} f:mountPath: {} f:name: {} k:{"mountPath":"/var/console-config"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/var/oauth-config"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/var/oauth-serving-cert"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/var/service-ca"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/var/serving-cert"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} f:dnsPolicy: {} f:priorityClassName: {} f:restartPolicy: {} f:schedulerName: {} f:securityContext: .: {} f:runAsNonRoot: {} f:seccompProfile: .: {} f:type: {} f:serviceAccount: {} f:serviceAccountName: {} f:terminationGracePeriodSeconds: {} f:tolerations: {} f:volumes: .: {} k:{"name":"console-config"}: .: {} f:configMap: .: {} f:defaultMode: {} f:name: {} f:name: {} k:{"name":"console-oauth-config"}: .: {} f:name: {} f:secret: .: {} f:defaultMode: {} f:secretName: {} k:{"name":"console-serving-cert"}: .: {} f:name: {} f:secret: .: {} f:defaultMode: {} f:secretName: {} k:{"name":"oauth-serving-cert"}: .: {} f:configMap: .: {} f:defaultMode: {} f:name: {} f:name: {} k:{"name":"service-ca"}: .: {} f:configMap: .: {} f:defaultMode: {} f:name: {} f:name: {} k:{"name":"tmp"}: .: {} f:emptyDir: {} f:name: {} k:{"name":"trusted-ca-bundle"}: .: {} f:configMap: .: {} f:defaultMode: {} f:items: {} f:name: {} f:name: {} manager: kube-controller-manager operation: Update time: "2026-10-30T21:37:57Z" - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:status: f:observedGeneration: {} f:replicas: {} f:terminatingReplicas: {} manager: kube-controller-manager operation: Update subresource: status time: "2026-10-30T21:38:22Z" name: console-779d4db569 namespace: openshift-console ownerReferences: - apiVersion: apps/v1 blockOwnerDeletion: true controller: true kind: Deployment name: console uid: 9f884f0e-1745-4332-b8f3-b30a0982fc40 resourceVersion: "9531" uid: 3bce5b84-452c-48c1-896b-2a9675fe916a spec: replicas: 0 selector: matchLabels: app: console component: ui pod-template-hash: 779d4db569 template: metadata: annotations: console.openshift.io/authn-ca-trust-config-version: "6888" console.openshift.io/console-config-version: "8596" console.openshift.io/image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c0471aac8dca7b920d98cf2b50bdb113f4498c563f3fd9d0a7c76f8bc04a0bd3 console.openshift.io/infrastructure-config-version: "1594" console.openshift.io/oauth-secret-version: "6910" console.openshift.io/proxy-config-version: "1446" console.openshift.io/service-ca-config-version: "7168" console.openshift.io/serving-cert-secret-version: "6918" console.openshift.io/trusted-ca-config-version: "7170" openshift.io/required-scc: restricted-v2 target.workload.openshift.io/management: '{"effect": "PreferredDuringScheduling"}' labels: app: console component: ui pod-template-hash: 779d4db569 name: console spec: affinity: {} containers: - command: - /opt/bridge/bin/bridge - --public-dir=/opt/bridge/static - --config=/var/console-config/console-config.yaml - --service-ca-file=/var/service-ca/service-ca.crt - --v=2 env: - name: POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c0471aac8dca7b920d98cf2b50bdb113f4498c563f3fd9d0a7c76f8bc04a0bd3 imagePullPolicy: IfNotPresent lifecycle: preStop: exec: command: - sleep - "25" livenessProbe: failureThreshold: 1 httpGet: path: /health port: 8443 scheme: HTTPS periodSeconds: 10 successThreshold: 1 timeoutSeconds: 10 name: console ports: - containerPort: 8443 name: https protocol: TCP readinessProbe: failureThreshold: 3 httpGet: path: /health port: 8443 scheme: HTTPS periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 resources: requests: cpu: 10m memory: 100Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true startupProbe: failureThreshold: 30 httpGet: path: /health port: 8443 scheme: HTTPS periodSeconds: 10 successThreshold: 1 timeoutSeconds: 10 terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /var/serving-cert name: console-serving-cert readOnly: true - mountPath: /var/oauth-config name: console-oauth-config readOnly: true - mountPath: /var/console-config name: console-config readOnly: true - mountPath: /var/service-ca name: service-ca readOnly: true - mountPath: /tmp name: tmp - mountPath: /etc/pki/ca-trust/extracted/pem name: trusted-ca-bundle readOnly: true - mountPath: /var/oauth-serving-cert name: oauth-serving-cert readOnly: true dnsPolicy: ClusterFirst priorityClassName: system-cluster-critical restartPolicy: Always schedulerName: default-scheduler securityContext: runAsNonRoot: true seccompProfile: type: RuntimeDefault serviceAccount: console serviceAccountName: console terminationGracePeriodSeconds: 40 tolerations: - effect: NoSchedule key: node-role.kubernetes.io/master operator: Exists - effect: NoExecute key: node.kubernetes.io/unreachable operator: Exists tolerationSeconds: 120 volumes: - name: console-serving-cert secret: defaultMode: 420 secretName: console-serving-cert - name: console-oauth-config secret: defaultMode: 420 secretName: console-oauth-config - configMap: defaultMode: 420 name: console-config name: console-config - configMap: defaultMode: 420 name: service-ca name: service-ca - emptyDir: {} name: tmp - configMap: defaultMode: 420 items: - key: ca-bundle.crt path: tls-ca-bundle.pem name: trusted-ca-bundle name: trusted-ca-bundle - configMap: defaultMode: 420 name: oauth-serving-cert name: oauth-serving-cert status: observedGeneration: 3 replicas: 0 terminatingReplicas: 0 - apiVersion: apps/v1 kind: ReplicaSet metadata: annotations: console.openshift.io/authn-ca-trust-config-version: "6888" console.openshift.io/console-config-version: "7161" console.openshift.io/image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c0471aac8dca7b920d98cf2b50bdb113f4498c563f3fd9d0a7c76f8bc04a0bd3 console.openshift.io/infrastructure-config-version: "1594" console.openshift.io/oauth-secret-version: "6910" console.openshift.io/proxy-config-version: "1446" console.openshift.io/service-ca-config-version: "7168" console.openshift.io/serving-cert-secret-version: "6918" console.openshift.io/trusted-ca-config-version: "7170" deployment.kubernetes.io/desired-replicas: "1" deployment.kubernetes.io/max-replicas: "2" deployment.kubernetes.io/revision: "2" operator.openshift.io/spec-hash: 582b01091b635d956ddbfa435f82e408afda32ebed5f0d6bd1ad7435b4fe14d0 creationTimestamp: "2026-10-30T21:36:31Z" generation: 2 labels: app: console component: ui pod-template-hash: 7d8996b46 managedFields: - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:console.openshift.io/authn-ca-trust-config-version: {} f:console.openshift.io/console-config-version: {} f:console.openshift.io/image: {} f:console.openshift.io/infrastructure-config-version: {} f:console.openshift.io/oauth-secret-version: {} f:console.openshift.io/proxy-config-version: {} f:console.openshift.io/service-ca-config-version: {} f:console.openshift.io/serving-cert-secret-version: {} f:console.openshift.io/trusted-ca-config-version: {} f:deployment.kubernetes.io/desired-replicas: {} f:deployment.kubernetes.io/max-replicas: {} f:deployment.kubernetes.io/revision: {} f:operator.openshift.io/spec-hash: {} f:labels: .: {} f:app: {} f:component: {} f:pod-template-hash: {} f:ownerReferences: .: {} k:{"uid":"9f884f0e-1745-4332-b8f3-b30a0982fc40"}: {} f:spec: f:replicas: {} f:selector: {} f:template: f:metadata: f:annotations: .: {} f:console.openshift.io/authn-ca-trust-config-version: {} f:console.openshift.io/console-config-version: {} f:console.openshift.io/image: {} f:console.openshift.io/infrastructure-config-version: {} f:console.openshift.io/oauth-secret-version: {} f:console.openshift.io/proxy-config-version: {} f:console.openshift.io/service-ca-config-version: {} f:console.openshift.io/serving-cert-secret-version: {} f:console.openshift.io/trusted-ca-config-version: {} f:openshift.io/required-scc: {} f:target.workload.openshift.io/management: {} f:labels: .: {} f:app: {} f:component: {} f:pod-template-hash: {} f:name: {} f:spec: f:affinity: {} f:containers: k:{"name":"console"}: .: {} f:command: {} f:env: .: {} k:{"name":"POD_NAME"}: .: {} f:name: {} f:valueFrom: .: {} f:fieldRef: {} f:image: {} f:imagePullPolicy: {} f:lifecycle: .: {} f:preStop: .: {} f:exec: .: {} f:command: {} f:livenessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:name: {} f:ports: .: {} k:{"containerPort":8443,"protocol":"TCP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} f:readinessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:resources: .: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:allowPrivilegeEscalation: {} f:capabilities: .: {} f:drop: {} f:readOnlyRootFilesystem: {} f:startupProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/etc/pki/ca-trust/extracted/pem"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/tmp"}: .: {} f:mountPath: {} f:name: {} k:{"mountPath":"/var/console-config"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/var/oauth-config"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/var/oauth-serving-cert"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/var/service-ca"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/var/serving-cert"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} f:dnsPolicy: {} f:priorityClassName: {} f:restartPolicy: {} f:schedulerName: {} f:securityContext: .: {} f:runAsNonRoot: {} f:seccompProfile: .: {} f:type: {} f:serviceAccount: {} f:serviceAccountName: {} f:terminationGracePeriodSeconds: {} f:tolerations: {} f:volumes: .: {} k:{"name":"console-config"}: .: {} f:configMap: .: {} f:defaultMode: {} f:name: {} f:name: {} k:{"name":"console-oauth-config"}: .: {} f:name: {} f:secret: .: {} f:defaultMode: {} f:secretName: {} k:{"name":"console-serving-cert"}: .: {} f:name: {} f:secret: .: {} f:defaultMode: {} f:secretName: {} k:{"name":"oauth-serving-cert"}: .: {} f:configMap: .: {} f:defaultMode: {} f:name: {} f:name: {} k:{"name":"service-ca"}: .: {} f:configMap: .: {} f:defaultMode: {} f:name: {} f:name: {} k:{"name":"tmp"}: .: {} f:emptyDir: {} f:name: {} k:{"name":"trusted-ca-bundle"}: .: {} f:configMap: .: {} f:defaultMode: {} f:items: {} f:name: {} f:name: {} manager: kube-controller-manager operation: Update time: "2026-10-30T21:36:40Z" - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:status: f:observedGeneration: {} f:replicas: {} f:terminatingReplicas: {} manager: kube-controller-manager operation: Update subresource: status time: "2026-10-30T21:37:13Z" name: console-7d8996b46 namespace: openshift-console ownerReferences: - apiVersion: apps/v1 blockOwnerDeletion: true controller: true kind: Deployment name: console uid: 9f884f0e-1745-4332-b8f3-b30a0982fc40 resourceVersion: "9127" uid: 9d414247-b46d-4b0f-97ce-0f858ba23fee spec: replicas: 0 selector: matchLabels: app: console component: ui pod-template-hash: 7d8996b46 template: metadata: annotations: console.openshift.io/authn-ca-trust-config-version: "6888" console.openshift.io/console-config-version: "7161" console.openshift.io/image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c0471aac8dca7b920d98cf2b50bdb113f4498c563f3fd9d0a7c76f8bc04a0bd3 console.openshift.io/infrastructure-config-version: "1594" console.openshift.io/oauth-secret-version: "6910" console.openshift.io/proxy-config-version: "1446" console.openshift.io/service-ca-config-version: "7168" console.openshift.io/serving-cert-secret-version: "6918" console.openshift.io/trusted-ca-config-version: "7170" openshift.io/required-scc: restricted-v2 target.workload.openshift.io/management: '{"effect": "PreferredDuringScheduling"}' labels: app: console component: ui pod-template-hash: 7d8996b46 name: console spec: affinity: {} containers: - command: - /opt/bridge/bin/bridge - --public-dir=/opt/bridge/static - --config=/var/console-config/console-config.yaml - --service-ca-file=/var/service-ca/service-ca.crt - --v=2 env: - name: POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c0471aac8dca7b920d98cf2b50bdb113f4498c563f3fd9d0a7c76f8bc04a0bd3 imagePullPolicy: IfNotPresent lifecycle: preStop: exec: command: - sleep - "25" livenessProbe: failureThreshold: 1 httpGet: path: /health port: 8443 scheme: HTTPS periodSeconds: 10 successThreshold: 1 timeoutSeconds: 10 name: console ports: - containerPort: 8443 name: https protocol: TCP readinessProbe: failureThreshold: 3 httpGet: path: /health port: 8443 scheme: HTTPS periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 resources: requests: cpu: 10m memory: 100Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true startupProbe: failureThreshold: 30 httpGet: path: /health port: 8443 scheme: HTTPS periodSeconds: 10 successThreshold: 1 timeoutSeconds: 10 terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /var/serving-cert name: console-serving-cert readOnly: true - mountPath: /var/oauth-config name: console-oauth-config readOnly: true - mountPath: /var/console-config name: console-config readOnly: true - mountPath: /var/service-ca name: service-ca readOnly: true - mountPath: /tmp name: tmp - mountPath: /etc/pki/ca-trust/extracted/pem name: trusted-ca-bundle readOnly: true - mountPath: /var/oauth-serving-cert name: oauth-serving-cert readOnly: true dnsPolicy: ClusterFirst priorityClassName: system-cluster-critical restartPolicy: Always schedulerName: default-scheduler securityContext: runAsNonRoot: true seccompProfile: type: RuntimeDefault serviceAccount: console serviceAccountName: console terminationGracePeriodSeconds: 40 tolerations: - effect: NoSchedule key: node-role.kubernetes.io/master operator: Exists - effect: NoExecute key: node.kubernetes.io/unreachable operator: Exists tolerationSeconds: 120 volumes: - name: console-serving-cert secret: defaultMode: 420 secretName: console-serving-cert - name: console-oauth-config secret: defaultMode: 420 secretName: console-oauth-config - configMap: defaultMode: 420 name: console-config name: console-config - configMap: defaultMode: 420 name: service-ca name: service-ca - emptyDir: {} name: tmp - configMap: defaultMode: 420 items: - key: ca-bundle.crt path: tls-ca-bundle.pem name: trusted-ca-bundle name: trusted-ca-bundle - configMap: defaultMode: 420 name: oauth-serving-cert name: oauth-serving-cert status: observedGeneration: 2 replicas: 0 terminatingReplicas: 0 - apiVersion: apps/v1 kind: ReplicaSet metadata: annotations: console.openshift.io/authn-ca-trust-config-version: "6888" console.openshift.io/console-config-version: "9411" console.openshift.io/image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c0471aac8dca7b920d98cf2b50bdb113f4498c563f3fd9d0a7c76f8bc04a0bd3 console.openshift.io/infrastructure-config-version: "1594" console.openshift.io/oauth-secret-version: "6910" console.openshift.io/proxy-config-version: "1446" console.openshift.io/service-ca-config-version: "7168" console.openshift.io/serving-cert-secret-version: "6918" console.openshift.io/trusted-ca-config-version: "7170" deployment.kubernetes.io/desired-replicas: "1" deployment.kubernetes.io/max-replicas: "2" deployment.kubernetes.io/revision: "5" operator.openshift.io/spec-hash: d74d302e131846cce3a96f4889c6e7c65a2ee9c356df4666da10e740826eb48b creationTimestamp: "2026-10-30T21:37:57Z" generation: 1 labels: app: console component: ui pod-template-hash: 98c8b7bbd managedFields: - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:console.openshift.io/authn-ca-trust-config-version: {} f:console.openshift.io/console-config-version: {} f:console.openshift.io/image: {} f:console.openshift.io/infrastructure-config-version: {} f:console.openshift.io/oauth-secret-version: {} f:console.openshift.io/proxy-config-version: {} f:console.openshift.io/service-ca-config-version: {} f:console.openshift.io/serving-cert-secret-version: {} f:console.openshift.io/trusted-ca-config-version: {} f:deployment.kubernetes.io/desired-replicas: {} f:deployment.kubernetes.io/max-replicas: {} f:deployment.kubernetes.io/revision: {} f:operator.openshift.io/spec-hash: {} f:labels: .: {} f:app: {} f:component: {} f:pod-template-hash: {} f:ownerReferences: .: {} k:{"uid":"9f884f0e-1745-4332-b8f3-b30a0982fc40"}: {} f:spec: f:replicas: {} f:selector: {} f:template: f:metadata: f:annotations: .: {} f:console.openshift.io/authn-ca-trust-config-version: {} f:console.openshift.io/console-config-version: {} f:console.openshift.io/image: {} f:console.openshift.io/infrastructure-config-version: {} f:console.openshift.io/oauth-secret-version: {} f:console.openshift.io/proxy-config-version: {} f:console.openshift.io/service-ca-config-version: {} f:console.openshift.io/serving-cert-secret-version: {} f:console.openshift.io/trusted-ca-config-version: {} f:openshift.io/required-scc: {} f:target.workload.openshift.io/management: {} f:labels: .: {} f:app: {} f:component: {} f:pod-template-hash: {} f:name: {} f:spec: f:affinity: {} f:containers: k:{"name":"console"}: .: {} f:command: {} f:env: .: {} k:{"name":"POD_NAME"}: .: {} f:name: {} f:valueFrom: .: {} f:fieldRef: {} f:image: {} f:imagePullPolicy: {} f:lifecycle: .: {} f:preStop: .: {} f:exec: .: {} f:command: {} f:livenessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:name: {} f:ports: .: {} k:{"containerPort":8443,"protocol":"TCP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} f:readinessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:resources: .: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:allowPrivilegeEscalation: {} f:capabilities: .: {} f:drop: {} f:readOnlyRootFilesystem: {} f:startupProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/etc/pki/ca-trust/extracted/pem"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/tmp"}: .: {} f:mountPath: {} f:name: {} k:{"mountPath":"/var/console-config"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/var/oauth-config"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/var/oauth-serving-cert"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/var/service-ca"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/var/serving-cert"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} f:dnsPolicy: {} f:priorityClassName: {} f:restartPolicy: {} f:schedulerName: {} f:securityContext: .: {} f:runAsNonRoot: {} f:seccompProfile: .: {} f:type: {} f:serviceAccount: {} f:serviceAccountName: {} f:terminationGracePeriodSeconds: {} f:tolerations: {} f:volumes: .: {} k:{"name":"console-config"}: .: {} f:configMap: .: {} f:defaultMode: {} f:name: {} f:name: {} k:{"name":"console-oauth-config"}: .: {} f:name: {} f:secret: .: {} f:defaultMode: {} f:secretName: {} k:{"name":"console-serving-cert"}: .: {} f:name: {} f:secret: .: {} f:defaultMode: {} f:secretName: {} k:{"name":"oauth-serving-cert"}: .: {} f:configMap: .: {} f:defaultMode: {} f:name: {} f:name: {} k:{"name":"service-ca"}: .: {} f:configMap: .: {} f:defaultMode: {} f:name: {} f:name: {} k:{"name":"tmp"}: .: {} f:emptyDir: {} f:name: {} k:{"name":"trusted-ca-bundle"}: .: {} f:configMap: .: {} f:defaultMode: {} f:items: {} f:name: {} f:name: {} manager: kube-controller-manager operation: Update time: "2026-10-30T21:37:57Z" - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:status: f:availableReplicas: {} f:fullyLabeledReplicas: {} f:observedGeneration: {} f:readyReplicas: {} f:replicas: {} f:terminatingReplicas: {} manager: kube-controller-manager operation: Update subresource: status time: "2026-10-30T21:38:08Z" name: console-98c8b7bbd namespace: openshift-console ownerReferences: - apiVersion: apps/v1 blockOwnerDeletion: true controller: true kind: Deployment name: console uid: 9f884f0e-1745-4332-b8f3-b30a0982fc40 resourceVersion: "9470" uid: 67fcbf8d-36fc-444d-a4a0-b7bf7cdc45cf spec: replicas: 1 selector: matchLabels: app: console component: ui pod-template-hash: 98c8b7bbd template: metadata: annotations: console.openshift.io/authn-ca-trust-config-version: "6888" console.openshift.io/console-config-version: "9411" console.openshift.io/image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c0471aac8dca7b920d98cf2b50bdb113f4498c563f3fd9d0a7c76f8bc04a0bd3 console.openshift.io/infrastructure-config-version: "1594" console.openshift.io/oauth-secret-version: "6910" console.openshift.io/proxy-config-version: "1446" console.openshift.io/service-ca-config-version: "7168" console.openshift.io/serving-cert-secret-version: "6918" console.openshift.io/trusted-ca-config-version: "7170" openshift.io/required-scc: restricted-v2 target.workload.openshift.io/management: '{"effect": "PreferredDuringScheduling"}' labels: app: console component: ui pod-template-hash: 98c8b7bbd name: console spec: affinity: {} containers: - command: - /opt/bridge/bin/bridge - --public-dir=/opt/bridge/static - --config=/var/console-config/console-config.yaml - --service-ca-file=/var/service-ca/service-ca.crt - --v=2 env: - name: POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c0471aac8dca7b920d98cf2b50bdb113f4498c563f3fd9d0a7c76f8bc04a0bd3 imagePullPolicy: IfNotPresent lifecycle: preStop: exec: command: - sleep - "25" livenessProbe: failureThreshold: 1 httpGet: path: /health port: 8443 scheme: HTTPS periodSeconds: 10 successThreshold: 1 timeoutSeconds: 10 name: console ports: - containerPort: 8443 name: https protocol: TCP readinessProbe: failureThreshold: 3 httpGet: path: /health port: 8443 scheme: HTTPS periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 resources: requests: cpu: 10m memory: 100Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true startupProbe: failureThreshold: 30 httpGet: path: /health port: 8443 scheme: HTTPS periodSeconds: 10 successThreshold: 1 timeoutSeconds: 10 terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /var/serving-cert name: console-serving-cert readOnly: true - mountPath: /var/oauth-config name: console-oauth-config readOnly: true - mountPath: /var/console-config name: console-config readOnly: true - mountPath: /var/service-ca name: service-ca readOnly: true - mountPath: /tmp name: tmp - mountPath: /etc/pki/ca-trust/extracted/pem name: trusted-ca-bundle readOnly: true - mountPath: /var/oauth-serving-cert name: oauth-serving-cert readOnly: true dnsPolicy: ClusterFirst priorityClassName: system-cluster-critical restartPolicy: Always schedulerName: default-scheduler securityContext: runAsNonRoot: true seccompProfile: type: RuntimeDefault serviceAccount: console serviceAccountName: console terminationGracePeriodSeconds: 40 tolerations: - effect: NoSchedule key: node-role.kubernetes.io/master operator: Exists - effect: NoExecute key: node.kubernetes.io/unreachable operator: Exists tolerationSeconds: 120 volumes: - name: console-serving-cert secret: defaultMode: 420 secretName: console-serving-cert - name: console-oauth-config secret: defaultMode: 420 secretName: console-oauth-config - configMap: defaultMode: 420 name: console-config name: console-config - configMap: defaultMode: 420 name: service-ca name: service-ca - emptyDir: {} name: tmp - configMap: defaultMode: 420 items: - key: ca-bundle.crt path: tls-ca-bundle.pem name: trusted-ca-bundle name: trusted-ca-bundle - configMap: defaultMode: 420 name: oauth-serving-cert name: oauth-serving-cert status: availableReplicas: 1 fullyLabeledReplicas: 1 observedGeneration: 1 readyReplicas: 1 replicas: 1 terminatingReplicas: 0 - apiVersion: apps/v1 kind: ReplicaSet metadata: annotations: console.openshift.io/authn-ca-trust-config-version: "6888" console.openshift.io/console-config-version: "9332" console.openshift.io/image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c0471aac8dca7b920d98cf2b50bdb113f4498c563f3fd9d0a7c76f8bc04a0bd3 console.openshift.io/infrastructure-config-version: "1594" console.openshift.io/oauth-secret-version: "6910" console.openshift.io/proxy-config-version: "1446" console.openshift.io/service-ca-config-version: "7168" console.openshift.io/serving-cert-secret-version: "6918" console.openshift.io/trusted-ca-config-version: "7170" deployment.kubernetes.io/desired-replicas: "1" deployment.kubernetes.io/max-replicas: "2" deployment.kubernetes.io/revision: "4" operator.openshift.io/spec-hash: 235e19586b952bd55dafa949f722effacc662774be83fae3396abcb82d8d1835 creationTimestamp: "2026-10-30T21:37:46Z" generation: 2 labels: app: console component: ui pod-template-hash: cfd69bf58 managedFields: - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:console.openshift.io/authn-ca-trust-config-version: {} f:console.openshift.io/console-config-version: {} f:console.openshift.io/image: {} f:console.openshift.io/infrastructure-config-version: {} f:console.openshift.io/oauth-secret-version: {} f:console.openshift.io/proxy-config-version: {} f:console.openshift.io/service-ca-config-version: {} f:console.openshift.io/serving-cert-secret-version: {} f:console.openshift.io/trusted-ca-config-version: {} f:deployment.kubernetes.io/desired-replicas: {} f:deployment.kubernetes.io/max-replicas: {} f:deployment.kubernetes.io/revision: {} f:operator.openshift.io/spec-hash: {} f:labels: .: {} f:app: {} f:component: {} f:pod-template-hash: {} f:ownerReferences: .: {} k:{"uid":"9f884f0e-1745-4332-b8f3-b30a0982fc40"}: {} f:spec: f:replicas: {} f:selector: {} f:template: f:metadata: f:annotations: .: {} f:console.openshift.io/authn-ca-trust-config-version: {} f:console.openshift.io/console-config-version: {} f:console.openshift.io/image: {} f:console.openshift.io/infrastructure-config-version: {} f:console.openshift.io/oauth-secret-version: {} f:console.openshift.io/proxy-config-version: {} f:console.openshift.io/service-ca-config-version: {} f:console.openshift.io/serving-cert-secret-version: {} f:console.openshift.io/trusted-ca-config-version: {} f:openshift.io/required-scc: {} f:target.workload.openshift.io/management: {} f:labels: .: {} f:app: {} f:component: {} f:pod-template-hash: {} f:name: {} f:spec: f:affinity: {} f:containers: k:{"name":"console"}: .: {} f:command: {} f:env: .: {} k:{"name":"POD_NAME"}: .: {} f:name: {} f:valueFrom: .: {} f:fieldRef: {} f:image: {} f:imagePullPolicy: {} f:lifecycle: .: {} f:preStop: .: {} f:exec: .: {} f:command: {} f:livenessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:name: {} f:ports: .: {} k:{"containerPort":8443,"protocol":"TCP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} f:readinessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:resources: .: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:allowPrivilegeEscalation: {} f:capabilities: .: {} f:drop: {} f:readOnlyRootFilesystem: {} f:startupProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/etc/pki/ca-trust/extracted/pem"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/tmp"}: .: {} f:mountPath: {} f:name: {} k:{"mountPath":"/var/console-config"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/var/oauth-config"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/var/oauth-serving-cert"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/var/service-ca"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/var/serving-cert"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} f:dnsPolicy: {} f:priorityClassName: {} f:restartPolicy: {} f:schedulerName: {} f:securityContext: .: {} f:runAsNonRoot: {} f:seccompProfile: .: {} f:type: {} f:serviceAccount: {} f:serviceAccountName: {} f:terminationGracePeriodSeconds: {} f:tolerations: {} f:volumes: .: {} k:{"name":"console-config"}: .: {} f:configMap: .: {} f:defaultMode: {} f:name: {} f:name: {} k:{"name":"console-oauth-config"}: .: {} f:name: {} f:secret: .: {} f:defaultMode: {} f:secretName: {} k:{"name":"console-serving-cert"}: .: {} f:name: {} f:secret: .: {} f:defaultMode: {} f:secretName: {} k:{"name":"oauth-serving-cert"}: .: {} f:configMap: .: {} f:defaultMode: {} f:name: {} f:name: {} k:{"name":"service-ca"}: .: {} f:configMap: .: {} f:defaultMode: {} f:name: {} f:name: {} k:{"name":"tmp"}: .: {} f:emptyDir: {} f:name: {} k:{"name":"trusted-ca-bundle"}: .: {} f:configMap: .: {} f:defaultMode: {} f:items: {} f:name: {} f:name: {} manager: kube-controller-manager operation: Update time: "2026-10-30T21:38:08Z" - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:status: f:observedGeneration: {} f:replicas: {} f:terminatingReplicas: {} manager: kube-controller-manager operation: Update subresource: status time: "2026-10-30T21:38:33Z" name: console-cfd69bf58 namespace: openshift-console ownerReferences: - apiVersion: apps/v1 blockOwnerDeletion: true controller: true kind: Deployment name: console uid: 9f884f0e-1745-4332-b8f3-b30a0982fc40 resourceVersion: "9557" uid: 1024464e-66b5-4bef-aabc-a801b0c4cf06 spec: replicas: 0 selector: matchLabels: app: console component: ui pod-template-hash: cfd69bf58 template: metadata: annotations: console.openshift.io/authn-ca-trust-config-version: "6888" console.openshift.io/console-config-version: "9332" console.openshift.io/image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c0471aac8dca7b920d98cf2b50bdb113f4498c563f3fd9d0a7c76f8bc04a0bd3 console.openshift.io/infrastructure-config-version: "1594" console.openshift.io/oauth-secret-version: "6910" console.openshift.io/proxy-config-version: "1446" console.openshift.io/service-ca-config-version: "7168" console.openshift.io/serving-cert-secret-version: "6918" console.openshift.io/trusted-ca-config-version: "7170" openshift.io/required-scc: restricted-v2 target.workload.openshift.io/management: '{"effect": "PreferredDuringScheduling"}' labels: app: console component: ui pod-template-hash: cfd69bf58 name: console spec: affinity: {} containers: - command: - /opt/bridge/bin/bridge - --public-dir=/opt/bridge/static - --config=/var/console-config/console-config.yaml - --service-ca-file=/var/service-ca/service-ca.crt - --v=2 env: - name: POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c0471aac8dca7b920d98cf2b50bdb113f4498c563f3fd9d0a7c76f8bc04a0bd3 imagePullPolicy: IfNotPresent lifecycle: preStop: exec: command: - sleep - "25" livenessProbe: failureThreshold: 1 httpGet: path: /health port: 8443 scheme: HTTPS periodSeconds: 10 successThreshold: 1 timeoutSeconds: 10 name: console ports: - containerPort: 8443 name: https protocol: TCP readinessProbe: failureThreshold: 3 httpGet: path: /health port: 8443 scheme: HTTPS periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 resources: requests: cpu: 10m memory: 100Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true startupProbe: failureThreshold: 30 httpGet: path: /health port: 8443 scheme: HTTPS periodSeconds: 10 successThreshold: 1 timeoutSeconds: 10 terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /var/serving-cert name: console-serving-cert readOnly: true - mountPath: /var/oauth-config name: console-oauth-config readOnly: true - mountPath: /var/console-config name: console-config readOnly: true - mountPath: /var/service-ca name: service-ca readOnly: true - mountPath: /tmp name: tmp - mountPath: /etc/pki/ca-trust/extracted/pem name: trusted-ca-bundle readOnly: true - mountPath: /var/oauth-serving-cert name: oauth-serving-cert readOnly: true dnsPolicy: ClusterFirst priorityClassName: system-cluster-critical restartPolicy: Always schedulerName: default-scheduler securityContext: runAsNonRoot: true seccompProfile: type: RuntimeDefault serviceAccount: console serviceAccountName: console terminationGracePeriodSeconds: 40 tolerations: - effect: NoSchedule key: node-role.kubernetes.io/master operator: Exists - effect: NoExecute key: node.kubernetes.io/unreachable operator: Exists tolerationSeconds: 120 volumes: - name: console-serving-cert secret: defaultMode: 420 secretName: console-serving-cert - name: console-oauth-config secret: defaultMode: 420 secretName: console-oauth-config - configMap: defaultMode: 420 name: console-config name: console-config - configMap: defaultMode: 420 name: service-ca name: service-ca - emptyDir: {} name: tmp - configMap: defaultMode: 420 items: - key: ca-bundle.crt path: tls-ca-bundle.pem name: trusted-ca-bundle name: trusted-ca-bundle - configMap: defaultMode: 420 name: oauth-serving-cert name: oauth-serving-cert status: observedGeneration: 2 replicas: 0 terminatingReplicas: 0 - apiVersion: apps/v1 kind: ReplicaSet metadata: annotations: deployment.kubernetes.io/desired-replicas: "1" deployment.kubernetes.io/max-replicas: "2" deployment.kubernetes.io/revision: "1" operator.openshift.io/spec-hash: eb171b5084a27fe6e5986cf2d3852f44addc26b65224c2891f6531b5cfee2137 creationTimestamp: "2026-10-30T21:36:18Z" generation: 1 labels: app: console component: downloads pod-template-hash: 6dd789c8b7 managedFields: - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:deployment.kubernetes.io/desired-replicas: {} f:deployment.kubernetes.io/max-replicas: {} f:deployment.kubernetes.io/revision: {} f:operator.openshift.io/spec-hash: {} f:labels: .: {} f:app: {} f:component: {} f:pod-template-hash: {} f:ownerReferences: .: {} k:{"uid":"cb6d96c9-7330-4be0-b437-a40a9d53d80d"}: {} f:spec: f:replicas: {} f:selector: {} f:template: f:metadata: f:annotations: .: {} f:openshift.io/required-scc: {} f:target.workload.openshift.io/management: {} f:labels: .: {} f:app: {} f:component: {} f:pod-template-hash: {} f:name: {} f:spec: f:affinity: {} f:containers: k:{"name":"download-server"}: .: {} f:args: {} f:command: {} f:image: {} f:imagePullPolicy: {} f:livenessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:name: {} f:ports: .: {} k:{"containerPort":8080,"protocol":"TCP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} f:readinessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:resources: .: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:allowPrivilegeEscalation: {} f:capabilities: .: {} f:drop: {} f:readOnlyRootFilesystem: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/tmp"}: .: {} f:mountPath: {} f:name: {} f:dnsPolicy: {} f:nodeSelector: {} f:priorityClassName: {} f:restartPolicy: {} f:schedulerName: {} f:securityContext: .: {} f:runAsNonRoot: {} f:seccompProfile: .: {} f:type: {} f:serviceAccount: {} f:serviceAccountName: {} f:terminationGracePeriodSeconds: {} f:tolerations: {} f:volumes: .: {} k:{"name":"tmp"}: .: {} f:emptyDir: {} f:name: {} manager: kube-controller-manager operation: Update time: "2026-10-30T21:36:18Z" - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:status: f:availableReplicas: {} f:fullyLabeledReplicas: {} f:observedGeneration: {} f:readyReplicas: {} f:replicas: {} f:terminatingReplicas: {} manager: kube-controller-manager operation: Update subresource: status time: "2026-10-30T21:36:36Z" name: downloads-6dd789c8b7 namespace: openshift-console ownerReferences: - apiVersion: apps/v1 blockOwnerDeletion: true controller: true kind: Deployment name: downloads uid: cb6d96c9-7330-4be0-b437-a40a9d53d80d resourceVersion: "8479" uid: 28eac307-2886-44d4-a3ec-cd24dec61939 spec: replicas: 1 selector: matchLabels: app: console component: downloads pod-template-hash: 6dd789c8b7 template: metadata: annotations: openshift.io/required-scc: restricted-v2 target.workload.openshift.io/management: '{"effect": "PreferredDuringScheduling"}' labels: app: console component: downloads pod-template-hash: 6dd789c8b7 name: downloads spec: affinity: {} containers: - args: - -c - "cat </tmp/serve.py\nimport errno, http.server, os, re, shutil, signal, socket, sys, tarfile, tempfile, threading, time, zipfile\n\ndef shutdown_handler(signum, frame):\n print(\"Received signal {}, shutting down...\".format(signum), flush=True)\n os._exit(0)\nsignal.signal(signal.SIGTERM, shutdown_handler)\n\ndef write_index(path, message):\n with open(path, 'wb') as f:\n f.write('\\n'.join([\n '',\n '',\n '',\n ' ',\n \ '',\n '',\n ' {}'.format(message),\n '',\n \ '',\n '',\n ]).encode('utf-8'))\n\n# Launch multiple listeners as threads\nclass Thread(threading.Thread):\n def __init__(self, i, socket):\n threading.Thread.__init__(self)\n self.i = i\n self.socket = socket\n self.daemon = True\n self.start()\n\n def run(self):\n \ server = http.server.SimpleHTTPRequestHandler\n server.server_version = \"OpenShift Downloads Server\"\n server.sys_version = \"\"\n httpd = http.server.HTTPServer(addr, server, False)\n\n # Prevent the HTTP server from re-binding every handler.\n # https://stackoverflow.com/questions/46210672/\n \ httpd.socket = self.socket\n httpd.server_bind = self.server_close = lambda self: None\n\n httpd.serve_forever()\n\nprint('Starting downloads server...', flush=True)\n\n# Clean up any existing download-* directories\nTEMP_DIR_PREFIX = 'download-'\ntmp_base = tempfile.gettempdir()\nprint('Cleaning up old temp directories in {}...'.format(tmp_base), flush=True)\nfor item in os.listdir(tmp_base):\n if item.startswith(TEMP_DIR_PREFIX):\n old_dir = os.path.join(tmp_base, item)\n try:\n if os.path.isdir(old_dir):\n \ print(' Removing old directory: {}'.format(old_dir), flush=True)\n \ shutil.rmtree(old_dir)\n except Exception as e:\n print(' \ WARNING: Failed to remove {}: {}'.format(old_dir, str(e)), flush=True)\n\ntemp_dir = tempfile.mkdtemp(prefix=TEMP_DIR_PREFIX)\nprint('Serving from: {}'.format(temp_dir), flush=True)\nos.chdir(temp_dir)\n\nprint('Creating arch directories...', flush=True)\nfor arch in ['amd64', 'arm64', 'ppc64le', 's390x']:\n os.mkdir(arch)\n\ncontent = ['license']\nprint('Creating license symlink...', flush=True)\nos.symlink('/usr/share/openshift/LICENSE', 'oc-license')\n\n# Function to create archives in background\ndef create_archives_async(arch, operating_system, path, basename, archive_path_root):\n try:\n print(' \ [Background] Creating archives for {} {}...'.format(arch, operating_system), flush=True)\n \n print(' [Background] Creating tar archive...', flush=True)\n with tarfile.open('{}.tar'.format(archive_path_root), 'w') as tar:\n tar.add(path, basename)\n \n print(' [Background] Creating zip archive...', flush=True)\n with zipfile.ZipFile('{}.zip'.format(archive_path_root), 'w') as zip:\n zip.write(path, basename)\n \n print(' [Background] Done with archives for {} {}'.format(arch, operating_system), flush=True)\n \ except Exception as e:\n print(' [Background] ERROR creating archives for {} {}: {}'.format(arch, operating_system, str(e)), flush=True)\n\nprint('Creating oc binary symlinks (archives will be created asynchronously)...', flush=True)\narchive_threads = []\n\nfor arch, operating_system, path in [\n ('amd64', 'linux', '/usr/share/openshift/linux_amd64/oc'),\n ('amd64', 'linux', '/usr/share/openshift/linux_amd64/oc.rhel8'),\n \ ('amd64', 'linux', '/usr/share/openshift/linux_amd64/oc.rhel9'),\n \ ('amd64', 'mac', '/usr/share/openshift/mac/oc'),\n ('amd64', 'windows', '/usr/share/openshift/windows/oc.exe'),\n ('arm64', 'linux', '/usr/share/openshift/linux_arm64/oc'),\n \ ('arm64', 'linux', '/usr/share/openshift/linux_arm64/oc.rhel8'),\n \ ('arm64', 'linux', '/usr/share/openshift/linux_arm64/oc.rhel9'),\n \ ('arm64', 'mac', '/usr/share/openshift/mac_arm64/oc'),\n ('ppc64le', 'linux', '/usr/share/openshift/linux_ppc64le/oc'),\n ('ppc64le', 'linux', '/usr/share/openshift/linux_ppc64le/oc.rhel8'),\n ('ppc64le', 'linux', '/usr/share/openshift/linux_ppc64le/oc.rhel9'),\n ('s390x', 'linux', '/usr/share/openshift/linux_s390x/oc'),\n ('s390x', 'linux', '/usr/share/openshift/linux_s390x/oc.rhel8'),\n \ ('s390x', 'linux', '/usr/share/openshift/linux_s390x/oc.rhel9'),\n \ ]:\n try:\n print(' Processing {} {} ({})...'.format(arch, operating_system, path), flush=True)\n \n # Check if source file exists\n if not os.path.exists(path):\n print(' WARNING: {} does not exist, skipping'.format(path), flush=True)\n continue\n \n file_size = os.path.getsize(path)\n \ print(' Source file size: {} MB'.format(file_size // (1024*1024)), flush=True)\n \n basename = os.path.basename(path)\n target_path = os.path.join(arch, operating_system, basename)\n \n print(' Creating directory...', flush=True)\n os.makedirs(os.path.join(arch, operating_system), exist_ok=True)\n \n print(' Creating symlink...', flush=True)\n \ os.symlink(path, target_path)\n \n # Only strip .exe extension, keep everything else (e.g., oc.rhel8 stays oc.rhel8)\n if basename.endswith('.exe'):\n \ base_root = basename[:-4]\n else:\n base_root = basename\n \ archive_path_root = os.path.join(arch, operating_system, base_root)\n \ \n # Start background thread to create archives\n archive_thread = threading.Thread(\n target=create_archives_async,\n args=(arch, operating_system, path, basename, archive_path_root),\n daemon=True\n \ )\n archive_thread.start()\n archive_threads.append(archive_thread)\n \ \n content.append(\n 'oc ({1} {2}) (tar zip)'.format(\n target_path, arch, operating_system, archive_path_root\n )\n )\n print(' \ Done with {} {} (archives creating in background)'.format(arch, operating_system), flush=True)\n except Exception as e:\n print(' ERROR processing {} {}: {}'.format(arch, operating_system, str(e)), flush=True)\n\nprint('All symlinks created. {} background threads creating archives...'.format(len(archive_threads)), flush=True)\n\nfor root, directories, filenames in os.walk(temp_dir):\n \ root_link = os.path.relpath(temp_dir, os.path.join(root, 'child')).replace(os.path.sep, '/')\n for directory in directories:\n write_index(\n path=os.path.join(root, directory, 'index.html'),\n message='

Directory listings are disabled. \ See here for available content.

'.format(root_link),\n \ )\n\nwrite_index(\n path=os.path.join(temp_dir, 'index.html'),\n \ message='\\n'.join(\n ['

Note: Archive files (.tar, .zip) are generated on server startup and may take a few moments to become available.

'] +\n ['']\n ),\n)\n\n# Create socket\n# IPv6 should handle IPv4 passively so long as it is not bound to a\n# specific address or set to IPv6_ONLY\n# https://stackoverflow.com/questions/25817848/python-3-does-http-server-support-ipv6\ntry:\n \ addr = ('::', 8080)\n sock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)\nexcept socket.error as err:\n # errno.EAFNOSUPPORT is \"socket.error: [Errno 97] Address family not supported by protocol\"\n # When IPv6 is disabled, socket will bind using IPv4.\n if err.errno == errno.EAFNOSUPPORT:\n \ addr = ('', 8080)\n sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n \ else:\n raise \nsock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)\nprint('Binding to {}...'.format(addr), flush=True)\nsock.bind(addr)\nsock.listen(5)\n\nprint('Starting 100 worker threads...', flush=True)\n[Thread(i, socket=sock) for i in range(100)]\nprint('Server ready on port 8080!', flush=True)\ntime.sleep(9e9)\nEOF\nexec python3 /tmp/serve.py\n" command: - /bin/sh image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:36c3da5821b9e51334e9c523aca7fca6a9ef8b853fd4f238b908b086b129619d imagePullPolicy: IfNotPresent livenessProbe: failureThreshold: 3 httpGet: path: / port: 8080 scheme: HTTP periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 name: download-server ports: - containerPort: 8080 name: http protocol: TCP readinessProbe: failureThreshold: 3 httpGet: path: / port: 8080 scheme: HTTP periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 resources: requests: cpu: 10m memory: 50Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /tmp name: tmp dnsPolicy: ClusterFirst nodeSelector: kubernetes.io/os: linux priorityClassName: system-cluster-critical restartPolicy: Always schedulerName: default-scheduler securityContext: runAsNonRoot: true seccompProfile: type: RuntimeDefault serviceAccount: downloads serviceAccountName: downloads terminationGracePeriodSeconds: 5 tolerations: - effect: NoSchedule key: node-role.kubernetes.io/master operator: Exists - effect: NoExecute key: node.kubernetes.io/unreachable operator: Exists tolerationSeconds: 120 volumes: - emptyDir: {} name: tmp status: availableReplicas: 1 fullyLabeledReplicas: 1 observedGeneration: 1 readyReplicas: 1 replicas: 1 terminatingReplicas: 0 kind: ReplicaSetList metadata: resourceVersion: "9915"