I0319 19:20:23.285380 1 cmd.go:253] Using service-serving-cert provided certificates I0319 19:20:23.285501 1 leaderelection.go:121] The leader election gives 4 retries and allows for 30s of clock skew. The kube-apiserver downtime tolerance is 78s. Worst non-graceful lease acquisition is 2m43s. Worst graceful lease acquisition is {26s}. I0319 19:20:23.285990 1 observer_polling.go:159] Starting file observer I0319 19:20:23.313557 1 builder.go:304] console-operator version - I0319 19:20:24.102453 1 secure_serving.go:57] Forcing use of http/1.1 only W0319 19:20:24.102546 1 secure_serving.go:69] Use of insecure cipher 'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256' detected. W0319 19:20:24.102576 1 secure_serving.go:69] Use of insecure cipher 'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256' detected. W0319 19:20:24.102604 1 secure_serving.go:69] Use of insecure cipher 'TLS_RSA_WITH_AES_128_GCM_SHA256' detected. W0319 19:20:24.102626 1 secure_serving.go:69] Use of insecure cipher 'TLS_RSA_WITH_AES_256_GCM_SHA384' detected. W0319 19:20:24.102649 1 secure_serving.go:69] Use of insecure cipher 'TLS_RSA_WITH_AES_128_CBC_SHA' detected. W0319 19:20:24.102671 1 secure_serving.go:69] Use of insecure cipher 'TLS_RSA_WITH_AES_256_CBC_SHA' detected. I0319 19:20:24.119360 1 leaderelection.go:257] attempting to acquire leader lease openshift-console-operator/console-operator-lock... I0319 19:20:24.120731 1 configmap_cafile_content.go:205] "Starting controller" name="client-ca::kube-system::extension-apiserver-authentication::requestheader-client-ca-file" I0319 19:20:24.120856 1 shared_informer.go:349] "Waiting for caches to sync" controller="client-ca::kube-system::extension-apiserver-authentication::requestheader-client-ca-file" I0319 19:20:24.120781 1 requestheader_controller.go:180] Starting RequestHeaderAuthRequestController I0319 19:20:24.120787 1 configmap_cafile_content.go:205] "Starting controller" name="client-ca::kube-system::extension-apiserver-authentication::client-ca-file" I0319 19:20:24.121088 1 shared_informer.go:349] "Waiting for caches to sync" controller="client-ca::kube-system::extension-apiserver-authentication::client-ca-file" I0319 19:20:24.120785 1 dynamic_serving_content.go:135] "Starting controller" name="serving-cert::/var/run/secrets/serving-cert/tls.crt::/var/run/secrets/serving-cert/tls.key" I0319 19:20:24.121032 1 secure_serving.go:211] Serving securely on [::]:8443 I0319 19:20:24.121056 1 tlsconfig.go:243] "Starting DynamicServingCertificateController" I0319 19:20:24.121651 1 shared_informer.go:349] "Waiting for caches to sync" controller="RequestHeaderAuthRequestController" I0319 19:20:24.133245 1 leaderelection.go:271] successfully acquired lease openshift-console-operator/console-operator-lock I0319 19:20:24.133504 1 event.go:377] Event(v1.ObjectReference{Kind:"Lease", Namespace:"openshift-console-operator", Name:"console-operator-lock", UID:"2c5b0cde-fb0c-4e15-b3a3-e2012111a8b8", APIVersion:"coordination.k8s.io/v1", ResourceVersion:"8717", FieldPath:""}): type: 'Normal' reason: 'LeaderElection' console-operator-5b5d9b4544-64ttn_2f01a45a-a3b2-4c0a-8cc9-71f43c583fd2 became leader I0319 19:20:24.134789 1 simple_featuregate_reader.go:171] Starting feature-gate-detector I0319 19:20:24.138717 1 starter.go:213] FeatureGates initialized: knownFeatureGates=[AdditionalRoutingCapabilities AdminNetworkPolicy AlibabaPlatform AzureWorkloadIdentity BuildCSIVolumes CPMSMachineNamePrefix ConsolePluginContentSecurityPolicy ExternalOIDC ExternalOIDCWithUIDAndExtraClaimMappings GCPClusterHostedDNSInstall GatewayAPI GatewayAPIController HighlyAvailableArbiter HyperShiftOnlyDynamicResourceAllocation ImageStreamImportMode ImageVolume KMSv1 MachineConfigNodes ManagedBootImages ManagedBootImagesAWS ManagedBootImagesAzure ManagedBootImagesvSphere MetricsCollectionProfiles NetworkDiagnosticsConfig NetworkLiveMigration NetworkSegmentation PinnedImages PreconfiguredUDNAddresses ProcMountType RouteAdvertisements RouteExternalCertificate ServiceAccountTokenNodeBinding SigstoreImageVerification SigstoreImageVerificationPKI StoragePerformantSecurityPolicy UpgradeStatus UserNamespacesPodSecurityStandards UserNamespacesSupport VSphereMultiDisk VSphereMultiNetworks VolumeAttributesClass AWSClusterHostedDNS AWSClusterHostedDNSInstall AWSDedicatedHosts AWSDualStackInstall AWSServiceLBNetworkSecurityGroup AutomatedEtcdBackup AzureClusterHostedDNSInstall AzureDedicatedHosts AzureDualStackInstall AzureMultiDisk BootImageSkewEnforcement BootcNodeManagement CBORServingAndStorage CRDCompatibilityRequirementOperator ClientsAllowCBOR ClientsPreferCBOR ClusterAPIInstall ClusterAPIInstallIBMCloud ClusterAPIMachineManagement ClusterAPIMachineManagementVSphere ClusterMonitoringConfig ClusterVersionOperatorConfiguration DNSNameResolver DualReplica DyanmicServiceEndpointIBMCloud EtcdBackendQuota EventTTL EventedPLEG Example Example2 ExternalSnapshotMetadata GCPClusterHostedDNS GCPCustomAPIEndpoints GCPCustomAPIEndpointsInstall GCPDualStackInstall ImageModeStatusReporting IngressControllerDynamicConfigurationManager InsightsConfig InsightsOnDemandDataGather IrreconcilableMachineConfig KMSEncryptionProvider MachineAPIMigration MachineAPIOperatorDisableMachineHealthCheckController ManagedBootImagesCPMS MaxUnavailableStatefulSet MinimumKubeletVersion MixedCPUsAllocation MultiArchInstallAzure MultiDiskSetup MutableCSINodeAllocatableCount MutatingAdmissionPolicy NewOLM NewOLMBoxCutterRuntime NewOLMCatalogdAPIV1Metas NewOLMOwnSingleNamespace NewOLMPreflightPermissionChecks NewOLMWebhookProviderOpenshiftServiceCA NoRegistryClusterInstall NutanixMultiSubnets OSStreams OVNObservability OnPremDNSRecords OpenShiftPodSecurityAdmission ProvisioningRequestAvailable SELinuxMount ShortCertRotation SignatureStores TranslateStreamCloseWebsocketRequests VSphereConfigurableMaxAllowedBlockVolumesPerNode VSphereHostVMGroupZonal VSphereMixedNodeEnv VolumeGroupSnapshot] I0319 19:20:24.139010 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'FeatureGatesInitialized' FeatureGates updated to featuregates.Features{Enabled:[]v1.FeatureGateName{"AdditionalRoutingCapabilities", "AdminNetworkPolicy", "AlibabaPlatform", "AzureWorkloadIdentity", "BuildCSIVolumes", "CPMSMachineNamePrefix", "ConsolePluginContentSecurityPolicy", "ExternalOIDC", "ExternalOIDCWithUIDAndExtraClaimMappings", "GCPClusterHostedDNSInstall", "GatewayAPI", "GatewayAPIController", "HighlyAvailableArbiter", "HyperShiftOnlyDynamicResourceAllocation", "ImageStreamImportMode", "ImageVolume", "KMSv1", "MachineConfigNodes", "ManagedBootImages", "ManagedBootImagesAWS", "ManagedBootImagesAzure", "ManagedBootImagesvSphere", "MetricsCollectionProfiles", "NetworkDiagnosticsConfig", "NetworkLiveMigration", "NetworkSegmentation", "PinnedImages", "PreconfiguredUDNAddresses", "ProcMountType", "RouteAdvertisements", "RouteExternalCertificate", "ServiceAccountTokenNodeBinding", "SigstoreImageVerification", "SigstoreImageVerificationPKI", "StoragePerformantSecurityPolicy", "UpgradeStatus", "UserNamespacesPodSecurityStandards", "UserNamespacesSupport", "VSphereMultiDisk", "VSphereMultiNetworks", "VolumeAttributesClass"}, Disabled:[]v1.FeatureGateName{"AWSClusterHostedDNS", "AWSClusterHostedDNSInstall", "AWSDedicatedHosts", "AWSDualStackInstall", "AWSServiceLBNetworkSecurityGroup", "AutomatedEtcdBackup", "AzureClusterHostedDNSInstall", "AzureDedicatedHosts", "AzureDualStackInstall", "AzureMultiDisk", "BootImageSkewEnforcement", "BootcNodeManagement", "CBORServingAndStorage", "CRDCompatibilityRequirementOperator", "ClientsAllowCBOR", "ClientsPreferCBOR", "ClusterAPIInstall", "ClusterAPIInstallIBMCloud", "ClusterAPIMachineManagement", "ClusterAPIMachineManagementVSphere", "ClusterMonitoringConfig", "ClusterVersionOperatorConfiguration", "DNSNameResolver", "DualReplica", "DyanmicServiceEndpointIBMCloud", "EtcdBackendQuota", "EventTTL", "EventedPLEG", "Example", "Example2", "ExternalSnapshotMetadata", "GCPClusterHostedDNS", "GCPCustomAPIEndpoints", "GCPCustomAPIEndpointsInstall", "GCPDualStackInstall", "ImageModeStatusReporting", "IngressControllerDynamicConfigurationManager", "InsightsConfig", "InsightsOnDemandDataGather", "IrreconcilableMachineConfig", "KMSEncryptionProvider", "MachineAPIMigration", "MachineAPIOperatorDisableMachineHealthCheckController", "ManagedBootImagesCPMS", "MaxUnavailableStatefulSet", "MinimumKubeletVersion", "MixedCPUsAllocation", "MultiArchInstallAzure", "MultiDiskSetup", "MutableCSINodeAllocatableCount", "MutatingAdmissionPolicy", "NewOLM", "NewOLMBoxCutterRuntime", "NewOLMCatalogdAPIV1Metas", "NewOLMOwnSingleNamespace", "NewOLMPreflightPermissionChecks", "NewOLMWebhookProviderOpenshiftServiceCA", "NoRegistryClusterInstall", "NutanixMultiSubnets", "OSStreams", "OVNObservability", "OnPremDNSRecords", "OpenShiftPodSecurityAdmission", "ProvisioningRequestAvailable", "SELinuxMount", "ShortCertRotation", "SignatureStores", "TranslateStreamCloseWebsocketRequests", "VSphereConfigurableMaxAllowedBlockVolumesPerNode", "VSphereHostVMGroupZonal", "VSphereMixedNodeEnv", "VolumeGroupSnapshot"}} I0319 19:20:24.153547 1 base_controller.go:76] Waiting for caches to sync for StorageVersionMigrationController I0319 19:20:24.154898 1 base_controller.go:76] Waiting for caches to sync for ConsoleServiceController I0319 19:20:24.155035 1 base_controller.go:76] Waiting for caches to sync for ConsoleCLIDownloadsController I0319 19:20:24.155103 1 base_controller.go:76] Waiting for caches to sync for CLIOIDCClientStatusController I0319 19:20:24.155145 1 base_controller.go:76] Waiting for caches to sync for ClusterUpgradeNotificationController I0319 19:20:24.155175 1 base_controller.go:82] Caches are synced for ClusterUpgradeNotificationController I0319 19:20:24.155212 1 base_controller.go:119] Starting #1 worker of ClusterUpgradeNotificationController controller ... I0319 19:20:24.155308 1 base_controller.go:76] Waiting for caches to sync for OIDCSetupController I0319 19:20:24.155348 1 base_controller.go:76] Waiting for caches to sync for RemoveStaleConditionsController-RemoveStaleConditions I0319 19:20:24.155398 1 base_controller.go:76] Waiting for caches to sync for PodDisruptionBudgetController I0319 19:20:24.155454 1 base_controller.go:76] Waiting for caches to sync for PodDisruptionBudgetController I0319 19:20:24.155467 1 base_controller.go:76] Waiting for caches to sync for ConsoleDownloadsDeploymentSyncController E0319 19:20:24.155495 1 base_controller.go:279] "Unhandled Error" err="ClusterUpgradeNotificationController reconciliation failed: console.operator.openshift.io \"cluster\" not found" I0319 19:20:24.154935 1 base_controller.go:76] Waiting for caches to sync for ConsoleOperator I0319 19:20:24.155892 1 base_controller.go:76] Waiting for caches to sync for OAuthClientsController I0319 19:20:24.155921 1 base_controller.go:76] Waiting for caches to sync for OAuthClientSecretController I0319 19:20:24.155943 1 base_controller.go:76] Waiting for caches to sync for console-ManagementState I0319 19:20:24.156298 1 base_controller.go:76] Waiting for caches to sync for LoggingSyncer I0319 19:20:24.156348 1 base_controller.go:76] Waiting for caches to sync for UnsupportedConfigOverridesController-UnsupportedConfigOverrides I0319 19:20:24.156393 1 base_controller.go:76] Waiting for caches to sync for ConsoleServiceController I0319 19:20:24.156413 1 base_controller.go:76] Waiting for caches to sync for HealthCheckController I0319 19:20:24.156443 1 base_controller.go:76] Waiting for caches to sync for ConsoleRouteController I0319 19:20:24.154915 1 base_controller.go:76] Waiting for caches to sync for DownloadsRouteController I0319 19:20:24.156498 1 base_controller.go:76] Waiting for caches to sync for InformerWithSwitchController I0319 19:20:24.156548 1 base_controller.go:82] Caches are synced for InformerWithSwitchController I0319 19:20:24.156576 1 base_controller.go:119] Starting #1 worker of InformerWithSwitchController controller ... I0319 19:20:24.156655 1 base_controller.go:76] Waiting for caches to sync for StatusSyncer_console I0319 19:20:24.156518 1 base_controller.go:76] Waiting for caches to sync for console E0319 19:20:24.160908 1 base_controller.go:279] "Unhandled Error" err="ClusterUpgradeNotificationController reconciliation failed: console.operator.openshift.io \"cluster\" not found" I0319 19:20:24.221615 1 shared_informer.go:356] "Caches are synced" controller="client-ca::kube-system::extension-apiserver-authentication::client-ca-file" I0319 19:20:24.221616 1 shared_informer.go:356] "Caches are synced" controller="client-ca::kube-system::extension-apiserver-authentication::requestheader-client-ca-file" I0319 19:20:24.221817 1 shared_informer.go:356] "Caches are synced" controller="RequestHeaderAuthRequestController" I0319 19:20:24.253923 1 base_controller.go:82] Caches are synced for StorageVersionMigrationController I0319 19:20:24.254038 1 base_controller.go:119] Starting #1 worker of StorageVersionMigrationController controller ... I0319 19:20:24.256051 1 base_controller.go:82] Caches are synced for OIDCSetupController I0319 19:20:24.256110 1 base_controller.go:82] Caches are synced for PodDisruptionBudgetController I0319 19:20:24.256166 1 base_controller.go:119] Starting #1 worker of PodDisruptionBudgetController controller ... I0319 19:20:24.256115 1 base_controller.go:82] Caches are synced for PodDisruptionBudgetController I0319 19:20:24.256254 1 base_controller.go:119] Starting #1 worker of PodDisruptionBudgetController controller ... I0319 19:20:24.256700 1 base_controller.go:82] Caches are synced for LoggingSyncer I0319 19:20:24.256742 1 base_controller.go:82] Caches are synced for ConsoleServiceController I0319 19:20:24.256797 1 base_controller.go:119] Starting #1 worker of ConsoleServiceController controller ... I0319 19:20:24.256700 1 base_controller.go:82] Caches are synced for HealthCheckController I0319 19:20:24.256172 1 base_controller.go:82] Caches are synced for ConsoleOperator I0319 19:20:24.256914 1 base_controller.go:119] Starting #1 worker of ConsoleOperator controller ... I0319 19:20:24.256080 1 base_controller.go:82] Caches are synced for ConsoleServiceController I0319 19:20:24.256934 1 base_controller.go:119] Starting #1 worker of ConsoleServiceController controller ... I0319 19:20:24.256751 1 base_controller.go:119] Starting #1 worker of LoggingSyncer controller ... I0319 19:20:24.256096 1 base_controller.go:82] Caches are synced for OAuthClientsController I0319 19:20:24.257010 1 base_controller.go:119] Starting #1 worker of OAuthClientsController controller ... I0319 19:20:24.256103 1 base_controller.go:82] Caches are synced for RemoveStaleConditionsController-RemoveStaleConditions I0319 19:20:24.257029 1 base_controller.go:119] Starting #1 worker of RemoveStaleConditionsController-RemoveStaleConditions controller ... E0319 19:20:24.257049 1 status.go:130] SyncLoopRefreshDegraded FailedGet route.route.openshift.io "console" not found I0319 19:20:24.256109 1 base_controller.go:82] Caches are synced for CLIOIDCClientStatusController I0319 19:20:24.257173 1 base_controller.go:119] Starting #1 worker of CLIOIDCClientStatusController controller ... I0319 19:20:24.256124 1 base_controller.go:119] Starting #1 worker of OIDCSetupController controller ... I0319 19:20:24.256065 1 base_controller.go:82] Caches are synced for ConsoleCLIDownloadsController I0319 19:20:24.257420 1 base_controller.go:119] Starting #1 worker of ConsoleCLIDownloadsController controller ... I0319 19:20:24.256183 1 base_controller.go:82] Caches are synced for ConsoleDownloadsDeploymentSyncController I0319 19:20:24.257465 1 base_controller.go:119] Starting #1 worker of ConsoleDownloadsDeploymentSyncController controller ... I0319 19:20:24.256712 1 base_controller.go:82] Caches are synced for UnsupportedConfigOverridesController-UnsupportedConfigOverrides I0319 19:20:24.257527 1 base_controller.go:119] Starting #1 worker of UnsupportedConfigOverridesController-UnsupportedConfigOverrides controller ... I0319 19:20:24.256728 1 base_controller.go:82] Caches are synced for StatusSyncer_console I0319 19:20:24.256092 1 base_controller.go:82] Caches are synced for console-ManagementState I0319 19:20:24.257618 1 base_controller.go:119] Starting #1 worker of StatusSyncer_console controller ... I0319 19:20:24.257624 1 base_controller.go:119] Starting #1 worker of console-ManagementState controller ... I0319 19:20:24.256817 1 base_controller.go:82] Caches are synced for console I0319 19:20:24.257635 1 base_controller.go:119] Starting #1 worker of console controller ... E0319 19:20:24.257646 1 base_controller.go:279] "Unhandled Error" err="ConsoleCLIDownloadsController reconciliation failed: route.route.openshift.io \"downloads\" not found" I0319 19:20:24.256900 1 base_controller.go:119] Starting #1 worker of HealthCheckController controller ... I0319 19:20:24.257809 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Warning' reason: 'FastControllerResync' Controller "HealthCheckController" resync interval is set to 30s which might lead to client request throttling E0319 19:20:24.262978 1 base_controller.go:279] "Unhandled Error" err="ConsoleCLIDownloadsController reconciliation failed: route.route.openshift.io \"downloads\" not found" I0319 19:20:24.270257 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorVersionChanged' clusteroperator/console version "operator" changed from "" to "4.21.5" I0319 19:20:24.270797 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"Available"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}],"relatedObjects":[{"group":"console.openshift.io","name":"networking-console-plugin","resource":"consoleplugins"},{"group":"","name":"openshift-network-console","resource":"namespaces"},{"group":"oauth.openshift.io","name":"console","resource":"oauthclients"},{"group":"operator.openshift.io","name":"cluster","resource":"consoles"},{"group":"config.openshift.io","name":"cluster","resource":"consoles"},{"group":"config.openshift.io","name":"cluster","resource":"infrastructures"},{"group":"config.openshift.io","name":"cluster","resource":"proxies"},{"group":"config.openshift.io","name":"cluster","resource":"oauths"},{"group":"","name":"openshift-console-operator","resource":"namespaces"},{"group":"","name":"openshift-console","resource":"namespaces"},{"group":"","name":"console-public","namespace":"openshift-config-managed","resource":"configmaps"}],"versions":[{"name":"operator","version":"4.21.5"}]}} E0319 19:20:24.273593 1 base_controller.go:279] "Unhandled Error" err="ConsoleCLIDownloadsController reconciliation failed: route.route.openshift.io \"downloads\" not found" E0319 19:20:24.275298 1 base_controller.go:279] "Unhandled Error" err="ConsoleCLIDownloadsController reconciliation failed: route.route.openshift.io \"downloads\" not found" E0319 19:20:24.277929 1 base_controller.go:279] "Unhandled Error" err="ConsoleOperator reconciliation failed: route.route.openshift.io \"console\" not found" E0319 19:20:24.278037 1 status.go:130] SyncLoopRefreshDegraded FailedGet route.route.openshift.io "console" not found E0319 19:20:24.278129 1 base_controller.go:279] "Unhandled Error" err="ConsoleOperator reconciliation failed: route.route.openshift.io \"console\" not found" I0319 19:20:24.279935 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'PodDisruptionBudgetCreated' Created PodDisruptionBudget.policy/downloads -n openshift-console because it was missing E0319 19:20:24.283228 1 status.go:130] SyncLoopRefreshDegraded FailedGet route.route.openshift.io "console" not found E0319 19:20:24.283325 1 base_controller.go:279] "Unhandled Error" err="ConsoleOperator reconciliation failed: route.route.openshift.io \"console\" not found" I0319 19:20:24.283656 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'PodDisruptionBudgetCreated' Created PodDisruptionBudget.policy/console -n openshift-console because it was missing I0319 19:20:24.288024 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentCreated' Created Deployment.apps/downloads -n openshift-console because it was missing I0319 19:20:24.293980 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Degraded set to False ("All is well"),Progressing set to False ("All is well"),Available set to Unknown (""),Upgradeable set to Unknown (""),EvaluationConditionsDetected set to Unknown (""),status.relatedObjects changed from [] to [{"console.openshift.io" "consoleplugins" "" "networking-console-plugin"} {"" "namespaces" "" "openshift-network-console"} {"oauth.openshift.io" "oauthclients" "" "console"} {"operator.openshift.io" "consoles" "" "cluster"} {"config.openshift.io" "consoles" "" "cluster"} {"config.openshift.io" "infrastructures" "" "cluster"} {"config.openshift.io" "proxies" "" "cluster"} {"config.openshift.io" "oauths" "" "cluster"} {"" "namespaces" "" "openshift-console-operator"} {"" "namespaces" "" "openshift-console"} {"" "configmaps" "openshift-config-managed" "console-public"}],status.versions changed from [] to [{"operator" "4.21.5"}] E0319 19:20:24.294086 1 base_controller.go:279] "Unhandled Error" err="ConsoleCLIDownloadsController reconciliation failed: route.route.openshift.io \"downloads\" not found" E0319 19:20:24.302853 1 status.go:130] SyncLoopRefreshDegraded FailedGet route.route.openshift.io "console" not found E0319 19:20:24.302980 1 base_controller.go:279] "Unhandled Error" err="ConsoleOperator reconciliation failed: route.route.openshift.io \"console\" not found" E0319 19:20:24.303051 1 base_controller.go:279] "Unhandled Error" err="ConsoleCLIDownloadsController reconciliation failed: route.route.openshift.io \"downloads\" not found" E0319 19:20:24.304326 1 status.go:130] SyncLoopRefreshDegraded FailedGet route.route.openshift.io "console" not found E0319 19:20:24.304445 1 base_controller.go:279] "Unhandled Error" err="ConsoleOperator reconciliation failed: route.route.openshift.io \"console\" not found" E0319 19:20:24.346575 1 status.go:130] SyncLoopRefreshDegraded FailedGet route.route.openshift.io "console" not found E0319 19:20:24.346738 1 base_controller.go:279] "Unhandled Error" err="ConsoleOperator reconciliation failed: route.route.openshift.io \"console\" not found" I0319 19:20:24.359212 1 reflector.go:436] "Caches populated" type="*v1.Secret" reflector="k8s.io/client-go/informers/factory.go:160" I0319 19:20:24.366458 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorVersionChanged' clusteroperator/console version "operator" changed from "" to "4.21.5" I0319 19:20:24.366740 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"SyncLoopRefreshDegraded: route.route.openshift.io \"console\" not found","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"Available"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}],"relatedObjects":[{"group":"console.openshift.io","name":"networking-console-plugin","resource":"consoleplugins"},{"group":"","name":"openshift-network-console","resource":"namespaces"},{"group":"oauth.openshift.io","name":"console","resource":"oauthclients"},{"group":"operator.openshift.io","name":"cluster","resource":"consoles"},{"group":"config.openshift.io","name":"cluster","resource":"consoles"},{"group":"config.openshift.io","name":"cluster","resource":"infrastructures"},{"group":"config.openshift.io","name":"cluster","resource":"proxies"},{"group":"config.openshift.io","name":"cluster","resource":"oauths"},{"group":"","name":"openshift-console-operator","resource":"namespaces"},{"group":"","name":"openshift-console","resource":"namespaces"},{"group":"","name":"console-public","namespace":"openshift-config-managed","resource":"configmaps"}],"versions":[{"name":"operator","version":"4.21.5"}]}} E0319 19:20:24.373563 1 status.go:130] SyncLoopRefreshDegraded FailedGet route.route.openshift.io "console" not found E0319 19:20:24.373696 1 base_controller.go:279] "Unhandled Error" err="ConsoleOperator reconciliation failed: route.route.openshift.io \"console\" not found" E0319 19:20:24.373722 1 base_controller.go:279] "Unhandled Error" err="ConsoleCLIDownloadsController reconciliation failed: route.route.openshift.io \"downloads\" not found" E0319 19:20:24.374906 1 base_controller.go:279] "Unhandled Error" err="ConsoleCLIDownloadsController reconciliation failed: route.route.openshift.io \"downloads\" not found" E0319 19:20:24.385325 1 status.go:130] SyncLoopRefreshDegraded FailedGet route.route.openshift.io "console" not found E0319 19:20:24.385447 1 base_controller.go:279] "Unhandled Error" err="ConsoleOperator reconciliation failed: route.route.openshift.io \"console\" not found" I0319 19:20:24.456521 1 base_controller.go:82] Caches are synced for ConsoleRouteController I0319 19:20:24.456546 1 base_controller.go:119] Starting #1 worker of ConsoleRouteController controller ... I0319 19:20:24.456565 1 base_controller.go:82] Caches are synced for DownloadsRouteController I0319 19:20:24.456571 1 base_controller.go:119] Starting #1 worker of DownloadsRouteController controller ... I0319 19:20:24.456594 1 base_controller.go:82] Caches are synced for OAuthClientSecretController I0319 19:20:24.456600 1 base_controller.go:119] Starting #1 worker of OAuthClientSecretController controller ... E0319 19:20:24.503349 1 base_controller.go:279] "Unhandled Error" err="ConsoleCLIDownloadsController reconciliation failed: no ingress for host downloads-openshift-console.apps.rosa.kx-7419de865e.hdqq.p3.openshiftapps.com in route downloads in namespace openshift-console" E0319 19:20:24.503544 1 status.go:130] DownloadsDefaultRouteSyncDegraded FailedAdmitDefaultRoute no ingress for host downloads-openshift-console.apps.rosa.kx-7419de865e.hdqq.p3.openshiftapps.com in route downloads in namespace openshift-console E0319 19:20:24.503560 1 status.go:130] DownloadsDefaultRouteSyncUpgradeable FailedAdmitDefaultRoute no ingress for host downloads-openshift-console.apps.rosa.kx-7419de865e.hdqq.p3.openshiftapps.com in route downloads in namespace openshift-console E0319 19:20:24.506327 1 status.go:130] SyncLoopRefreshDegraded FailedIngress no ingress for host console-openshift-console.apps.rosa.kx-7419de865e.hdqq.p3.openshiftapps.com in route console in namespace openshift-console E0319 19:20:24.506494 1 status.go:130] ConsoleDefaultRouteSyncDegraded FailedAdmitDefaultRoute no ingress for host console-openshift-console.apps.rosa.kx-7419de865e.hdqq.p3.openshiftapps.com in route console in namespace openshift-console E0319 19:20:24.506513 1 status.go:130] ConsoleDefaultRouteSyncUpgradeable FailedAdmitDefaultRoute no ingress for host console-openshift-console.apps.rosa.kx-7419de865e.hdqq.p3.openshiftapps.com in route console in namespace openshift-console E0319 19:20:24.574784 1 base_controller.go:279] "Unhandled Error" err="OAuthClientsController reconciliation failed: route.route.openshift.io \"console\" not found" E0319 19:20:24.743354 1 base_controller.go:279] "Unhandled Error" err="StatusSyncer_console reconciliation failed: Operation cannot be fulfilled on clusteroperators.config.openshift.io \"console\": the object has been modified; please apply your changes to the latest version and try again" I0319 19:20:24.750735 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"SyncLoopRefreshDegraded: route.route.openshift.io \"console\" not found\nOAuthClientsControllerDegraded: route.route.openshift.io \"console\" not found","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"Available"},{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0319 19:20:24.948677 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Degraded message changed from "All is well" to "SyncLoopRefreshDegraded: route.route.openshift.io \"console\" not found\nOAuthClientsControllerDegraded: route.route.openshift.io \"console\" not found",Upgradeable changed from Unknown to True ("All is well") I0319 19:20:24.956927 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"SyncLoopRefreshDegraded: route.route.openshift.io \"console\" not found\nOAuthClientsControllerDegraded: route.route.openshift.io \"console\" not found","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"Available"},{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0319 19:20:24.968026 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'ConfigMapCreated' Created ConfigMap/oauth-serving-cert -n openshift-console because it was missing E0319 19:20:25.143945 1 base_controller.go:279] "Unhandled Error" err="StatusSyncer_console reconciliation failed: Operation cannot be fulfilled on clusteroperators.config.openshift.io \"console\": the object has been modified; please apply your changes to the latest version and try again" I0319 19:20:25.374059 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'ServiceCreated' Created Service/console -n openshift-console because it was missing I0319 19:20:25.556704 1 request.go:752] "Waited before sending request" delay="1.18262841s" reason="client-side throttling, not priority and fairness" verb="PATCH" URL="https://172.30.0.1:443/apis/operator.openshift.io/v1/consoles/cluster/status?fieldManager=UnsupportedConfigOverridesController-UnsupportedConfigOverrides&force=true" I0319 19:20:25.573159 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'ServiceCreated' Created Service/downloads -n openshift-console because it was missing I0319 19:20:25.767760 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'ConfigMapCreated' Created ConfigMap/default-ingress-cert -n openshift-console because it was missing I0319 19:20:25.964135 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'SecretCreated' Created Secret/console-oauth-config -n openshift-console because it was missing I0319 19:20:26.756965 1 request.go:752] "Waited before sending request" delay="2.180839019s" reason="client-side throttling, not priority and fairness" verb="PATCH" URL="https://172.30.0.1:443/apis/operator.openshift.io/v1/consoles/cluster/status?fieldManager=OAuthClientsController-reportDegraded&force=true" E0319 19:20:26.772281 1 base_controller.go:279] "Unhandled Error" err="OAuthClientsController reconciliation failed: secret \"console-oauth-config\" not found" I0319 19:20:26.779674 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"SyncLoopRefreshDegraded: route.route.openshift.io \"console\" not found\nOAuthClientsControllerDegraded: secret \"console-oauth-config\" not found","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"Available"},{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0319 19:20:26.792479 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Degraded message changed from "SyncLoopRefreshDegraded: route.route.openshift.io \"console\" not found\nOAuthClientsControllerDegraded: route.route.openshift.io \"console\" not found" to "SyncLoopRefreshDegraded: route.route.openshift.io \"console\" not found\nOAuthClientsControllerDegraded: secret \"console-oauth-config\" not found" I0319 19:20:27.757012 1 request.go:752] "Waited before sending request" delay="2.126984314s" reason="client-side throttling, not priority and fairness" verb="PUT" URL="https://172.30.0.1:443/apis/operator.openshift.io/v1/consoles/cluster/status" E0319 19:20:27.768649 1 base_controller.go:279] "Unhandled Error" err="StorageVersionMigrationController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" I0319 19:20:28.956987 1 request.go:752] "Waited before sending request" delay="2.778986613s" reason="client-side throttling, not priority and fairness" verb="PUT" URL="https://172.30.0.1:443/apis/operator.openshift.io/v1/consoles/cluster/status" E0319 19:20:29.966072 1 base_controller.go:279] "Unhandled Error" err="ConsoleDownloadsDeploymentSyncController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" I0319 19:20:29.973557 1 apps.go:155] Deployment "openshift-console/downloads" changes: {"spec":{"progressDeadlineSeconds":null,"revisionHistoryLimit":null,"template":{"spec":{"containers":[{"args":["-c","cat \u003c\u003cEOF \u003e/tmp/serve.py\nimport errno, http.server, os, re, 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 '\u003c!doctype html\u003e',\n '\u003chtml lang=\"en\"\u003e',\n '\u003chead\u003e',\n ' \u003cmeta charset=\"utf-8\"\u003e',\n '\u003c/head\u003e',\n '\u003cbody\u003e',\n ' {}'.format(message),\n '\u003c/body\u003e',\n '\u003c/html\u003e',\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)\ntemp_dir = tempfile.mkdtemp()\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 = ['\u003ca href=\"oc-license\"\u003elicense\u003c/a\u003e']\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 '\u003ca href=\"{0}\"\u003eoc ({1} {2})\u003c/a\u003e (\u003ca href=\"{3}.tar\"\u003etar\u003c/a\u003e \u003ca href=\"{3}.zip\"\u003ezip\u003c/a\u003e)'.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='\u003cp\u003eDirectory listings are disabled. See \u003ca href=\"{}\"\u003ehere\u003c/a\u003e for available content.\u003c/p\u003e'.format(root_link),\n )\n\nwrite_index(\n path=os.path.join(temp_dir, 'index.html'),\n message='\\n'.join(\n ['\u003cp\u003e\u003cem\u003eNote: Archive files (.tar, .zip) are generated on server startup and may take a few moments to become available.\u003c/em\u003e\u003c/p\u003e'] +\n ['\u003cul\u003e'] +\n [' \u003cli\u003e{}\u003c/li\u003e'.format(entry) for entry in content] +\n ['\u003c/ul\u003e']\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:670004bffddb41c787b9f9a5c7d1615453d4acfa6452dedfa61ad2f305eea814","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":false},"terminationMessagePolicy":"FallbackToLogsOnError"}],"dnsPolicy":null,"restartPolicy":null,"schedulerName":null}}}} I0319 19:20:29.981919 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentUpdated' Updated Deployment.apps/downloads -n openshift-console because it changed I0319 19:20:30.157135 1 request.go:752] "Waited before sending request" delay="2.580205245s" reason="client-side throttling, not priority and fairness" verb="PUT" URL="https://172.30.0.1:443/apis/operator.openshift.io/v1/consoles/cluster/status" I0319 19:20:31.356970 1 request.go:752] "Waited before sending request" delay="2.578861948s" reason="client-side throttling, not priority and fairness" verb="PUT" URL="https://172.30.0.1:443/apis/operator.openshift.io/v1/consoles/cluster/status" I0319 19:20:32.556189 1 request.go:752] "Waited before sending request" delay="2.525965526s" reason="client-side throttling, not priority and fairness" verb="PUT" URL="https://172.30.0.1:443/apis/operator.openshift.io/v1/consoles/cluster/status" E0319 19:20:32.565527 1 base_controller.go:279] "Unhandled Error" err="CLIOIDCClientStatusController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" E0319 19:20:33.173944 1 base_controller.go:279] "Unhandled Error" err="DownloadsRouteController reconciliation failed: no ingress for host downloads-openshift-console.apps.rosa.kx-7419de865e.hdqq.p3.openshiftapps.com in route downloads in namespace openshift-console" I0319 19:20:33.184385 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"SyncLoopRefreshDegraded: route.route.openshift.io \"console\" not found\nOAuthClientsControllerDegraded: secret \"console-oauth-config\" not found\nDownloadsDefaultRouteSyncDegraded: no ingress for host downloads-openshift-console.apps.rosa.kx-7419de865e.hdqq.p3.openshiftapps.com in route downloads in namespace openshift-console","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"Available"},{"lastTransitionTime":"2026-03-19T19:20:33Z","message":"DownloadsDefaultRouteSyncUpgradeable: no ingress for host downloads-openshift-console.apps.rosa.kx-7419de865e.hdqq.p3.openshiftapps.com in route downloads in namespace openshift-console","reason":"DownloadsDefaultRouteSync_FailedAdmitDefaultRoute","status":"False","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0319 19:20:33.197287 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Degraded message changed from "SyncLoopRefreshDegraded: route.route.openshift.io \"console\" not found\nOAuthClientsControllerDegraded: secret \"console-oauth-config\" not found" to "SyncLoopRefreshDegraded: route.route.openshift.io \"console\" not found\nOAuthClientsControllerDegraded: secret \"console-oauth-config\" not found\nDownloadsDefaultRouteSyncDegraded: no ingress for host downloads-openshift-console.apps.rosa.kx-7419de865e.hdqq.p3.openshiftapps.com in route downloads in namespace openshift-console",Upgradeable changed from True to False ("DownloadsDefaultRouteSyncUpgradeable: no ingress for host downloads-openshift-console.apps.rosa.kx-7419de865e.hdqq.p3.openshiftapps.com in route downloads in namespace openshift-console") I0319 19:20:33.556401 1 request.go:752] "Waited before sending request" delay="2.13441223s" reason="client-side throttling, not priority and fairness" verb="PUT" URL="https://172.30.0.1:443/apis/operator.openshift.io/v1/consoles/cluster/status" E0319 19:20:33.566693 1 base_controller.go:279] "Unhandled Error" err="ConsoleOperator reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" I0319 19:20:33.590167 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'ConfigMapCreated' Created ConfigMap/console-config -n openshift-console because it was missing E0319 19:20:33.630741 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 0 replicas available E0319 19:20:33.630753 1 status.go:130] DeploymentAvailable InsufficientReplicas 0 replicas available for console deployment I0319 19:20:33.630830 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentCreated' Created Deployment.apps/console -n openshift-console because it was missing I0319 19:20:33.660705 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'ConfigMapCreated' Created ConfigMap/console-public -n openshift-config-managed because it was missing E0319 19:20:33.966122 1 base_controller.go:279] "Unhandled Error" err="ConsoleRouteController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" E0319 19:20:34.168145 1 base_controller.go:279] "Unhandled Error" err="ConsoleCLIDownloadsController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" I0319 19:20:34.556948 1 request.go:752] "Waited before sending request" delay="2.334749261s" reason="client-side throttling, not priority and fairness" verb="PUT" URL="https://172.30.0.1:443/apis/operator.openshift.io/v1/consoles/cluster/status" E0319 19:20:34.567708 1 base_controller.go:279] "Unhandled Error" err="OIDCSetupController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" E0319 19:20:35.365939 1 base_controller.go:279] "Unhandled Error" err="ConsoleServiceController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" I0319 19:20:35.581615 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"SyncLoopRefreshDegraded: route.route.openshift.io \"console\" not found\nOAuthClientsControllerDegraded: secret \"console-oauth-config\" not found","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"Available"},{"lastTransitionTime":"2026-03-19T19:20:35Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0319 19:20:35.594644 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Degraded message changed from "SyncLoopRefreshDegraded: route.route.openshift.io \"console\" not found\nOAuthClientsControllerDegraded: secret \"console-oauth-config\" not found\nDownloadsDefaultRouteSyncDegraded: no ingress for host downloads-openshift-console.apps.rosa.kx-7419de865e.hdqq.p3.openshiftapps.com in route downloads in namespace openshift-console" to "SyncLoopRefreshDegraded: route.route.openshift.io \"console\" not found\nOAuthClientsControllerDegraded: secret \"console-oauth-config\" not found",Upgradeable changed from False to True ("All is well") I0319 19:20:35.756562 1 request.go:752] "Waited before sending request" delay="2.131206579s" reason="client-side throttling, not priority and fairness" verb="PUT" URL="https://172.30.0.1:443/apis/operator.openshift.io/v1/consoles/cluster/status" E0319 19:20:35.767058 1 base_controller.go:279] "Unhandled Error" err="OAuthClientSecretController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" E0319 19:20:36.387315 1 base_controller.go:279] "Unhandled Error" err="ConsoleServiceController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" I0319 19:20:36.757133 1 request.go:752] "Waited before sending request" delay="2.179615793s" reason="client-side throttling, not priority and fairness" verb="PUT" URL="https://172.30.0.1:443/apis/operator.openshift.io/v1/consoles/cluster/status" E0319 19:20:37.766306 1 base_controller.go:279] "Unhandled Error" err="StorageVersionMigrationController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" I0319 19:20:37.957065 1 request.go:752] "Waited before sending request" delay="2.189359181s" reason="client-side throttling, not priority and fairness" verb="PUT" URL="https://172.30.0.1:443/apis/operator.openshift.io/v1/consoles/cluster/status" I0319 19:20:39.156764 1 request.go:752] "Waited before sending request" delay="2.186679351s" reason="client-side throttling, not priority and fairness" verb="PATCH" URL="https://172.30.0.1:443/apis/operator.openshift.io/v1/consoles/cluster/status?fieldManager=OAuthClientsController-reportDegraded&force=true" E0319 19:20:39.172616 1 base_controller.go:279] "Unhandled Error" err="OAuthClientsController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" I0319 19:20:39.180296 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"SyncLoopRefreshDegraded: route.route.openshift.io \"console\" not found\nOAuthClientsControllerDegraded: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"Available"},{"lastTransitionTime":"2026-03-19T19:20:35Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0319 19:20:39.192733 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Degraded message changed from "SyncLoopRefreshDegraded: route.route.openshift.io \"console\" not found\nOAuthClientsControllerDegraded: secret \"console-oauth-config\" not found" to "SyncLoopRefreshDegraded: route.route.openshift.io \"console\" not found\nOAuthClientsControllerDegraded: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" E0319 19:20:39.565796 1 base_controller.go:279] "Unhandled Error" err="ConsoleDownloadsDeploymentSyncController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" I0319 19:20:39.573383 1 apps.go:155] Deployment "openshift-console/downloads" changes: {"spec":{"progressDeadlineSeconds":null,"revisionHistoryLimit":null,"template":{"spec":{"containers":[{"args":["-c","cat \u003c\u003cEOF \u003e/tmp/serve.py\nimport errno, http.server, os, re, 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 '\u003c!doctype html\u003e',\n '\u003chtml lang=\"en\"\u003e',\n '\u003chead\u003e',\n ' \u003cmeta charset=\"utf-8\"\u003e',\n '\u003c/head\u003e',\n '\u003cbody\u003e',\n ' {}'.format(message),\n '\u003c/body\u003e',\n '\u003c/html\u003e',\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)\ntemp_dir = tempfile.mkdtemp()\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 = ['\u003ca href=\"oc-license\"\u003elicense\u003c/a\u003e']\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 '\u003ca href=\"{0}\"\u003eoc ({1} {2})\u003c/a\u003e (\u003ca href=\"{3}.tar\"\u003etar\u003c/a\u003e \u003ca href=\"{3}.zip\"\u003ezip\u003c/a\u003e)'.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='\u003cp\u003eDirectory listings are disabled. See \u003ca href=\"{}\"\u003ehere\u003c/a\u003e for available content.\u003c/p\u003e'.format(root_link),\n )\n\nwrite_index(\n path=os.path.join(temp_dir, 'index.html'),\n message='\\n'.join(\n ['\u003cp\u003e\u003cem\u003eNote: Archive files (.tar, .zip) are generated on server startup and may take a few moments to become available.\u003c/em\u003e\u003c/p\u003e'] +\n ['\u003cul\u003e'] +\n [' \u003cli\u003e{}\u003c/li\u003e'.format(entry) for entry in content] +\n ['\u003c/ul\u003e']\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:670004bffddb41c787b9f9a5c7d1615453d4acfa6452dedfa61ad2f305eea814","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":false},"terminationMessagePolicy":"FallbackToLogsOnError"}],"dnsPolicy":null,"restartPolicy":null,"schedulerName":null}}}} I0319 19:20:39.583438 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentUpdated' Updated Deployment.apps/downloads -n openshift-console because it changed I0319 19:20:40.156955 1 request.go:752] "Waited before sending request" delay="2.182116215s" reason="client-side throttling, not priority and fairness" verb="PUT" URL="https://172.30.0.1:443/apis/operator.openshift.io/v1/consoles/cluster/status" I0319 19:20:41.157026 1 request.go:752] "Waited before sending request" delay="2.138135108s" reason="client-side throttling, not priority and fairness" verb="PUT" URL="https://172.30.0.1:443/apis/operator.openshift.io/v1/consoles/cluster/status" E0319 19:20:41.766858 1 base_controller.go:279] "Unhandled Error" err="CLIOIDCClientStatusController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" I0319 19:20:42.356271 1 request.go:752] "Waited before sending request" delay="1.736197031s" reason="client-side throttling, not priority and fairness" verb="PUT" URL="https://172.30.0.1:443/apis/operator.openshift.io/v1/consoles/cluster/status" E0319 19:20:42.366795 1 base_controller.go:279] "Unhandled Error" err="ConsoleOperator reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" I0319 19:20:42.390540 1 apps.go:155] Deployment "openshift-console/console" changes: {"metadata":{"annotations":{"console.openshift.io/service-ca-config-version":"9132","console.openshift.io/trusted-ca-config-version":"9160","operator.openshift.io/spec-hash":"73481a0e41b83c67dded12e7ce669d00d8c0c470324325ea0062cd1a2fe95b37"}},"spec":{"progressDeadlineSeconds":null,"revisionHistoryLimit":null,"template":{"metadata":{"annotations":{"console.openshift.io/service-ca-config-version":"9132","console.openshift.io/trusted-ca-config-version":"9160"}},"spec":{"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:a9dc28a6962d195dcce0c76a544aad5f784dd90b98282c169d7b94c870a85f8b","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":false},"startupProbe":{"failureThreshold":30,"httpGet":{"path":"/health","port":8443,"scheme":"HTTPS"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":10},"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":"/etc/pki/ca-trust/extracted/pem","name":"trusted-ca-bundle","readOnly":true},{"mountPath":"/var/oauth-serving-cert","name":"oauth-serving-cert","readOnly":true}]}],"dnsPolicy":null,"serviceAccount":null,"volumes":[{"name":"console-serving-cert","secret":{"secretName":"console-serving-cert"}},{"name":"console-oauth-config","secret":{"secretName":"console-oauth-config"}},{"configMap":{"name":"console-config"},"name":"console-config"},{"configMap":{"name":"service-ca"},"name":"service-ca"},{"configMap":{"items":[{"key":"ca-bundle.crt","path":"tls-ca-bundle.pem"}],"name":"trusted-ca-bundle"},"name":"trusted-ca-bundle"},{"configMap":{"name":"oauth-serving-cert"},"name":"oauth-serving-cert"}]}}}} E0319 19:20:42.403668 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 0 replicas available E0319 19:20:42.403687 1 status.go:130] DeploymentAvailable InsufficientReplicas 0 replicas available for console deployment I0319 19:20:42.403742 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentUpdated' Updated Deployment.apps/console -n openshift-console because it changed E0319 19:20:42.766321 1 base_controller.go:279] "Unhandled Error" err="ConsoleRouteController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" E0319 19:20:42.966489 1 base_controller.go:279] "Unhandled Error" err="ConsoleCLIDownloadsController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" I0319 19:20:43.181756 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"SyncLoopRefreshDegraded: route.route.openshift.io \"console\" not found","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"Available"},{"lastTransitionTime":"2026-03-19T19:20:35Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0319 19:20:43.194428 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Degraded message changed from "SyncLoopRefreshDegraded: route.route.openshift.io \"console\" not found\nOAuthClientsControllerDegraded: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" to "SyncLoopRefreshDegraded: route.route.openshift.io \"console\" not found" I0319 19:20:43.356550 1 request.go:752] "Waited before sending request" delay="1.934246943s" reason="client-side throttling, not priority and fairness" verb="PUT" URL="https://172.30.0.1:443/apis/operator.openshift.io/v1/consoles/cluster/status" E0319 19:20:43.367226 1 base_controller.go:279] "Unhandled Error" err="OIDCSetupController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" E0319 19:20:44.167043 1 base_controller.go:279] "Unhandled Error" err="ConsoleServiceController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" I0319 19:20:44.357116 1 request.go:752] "Waited before sending request" delay="1.947748804s" reason="client-side throttling, not priority and fairness" verb="PUT" URL="https://172.30.0.1:443/apis/operator.openshift.io/v1/consoles/cluster/status" E0319 19:20:44.766882 1 base_controller.go:279] "Unhandled Error" err="ConsoleServiceController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" I0319 19:20:45.556311 1 request.go:752] "Waited before sending request" delay="1.777637818s" reason="client-side throttling, not priority and fairness" verb="PUT" URL="https://172.30.0.1:443/apis/operator.openshift.io/v1/consoles/cluster/status" E0319 19:20:45.967504 1 base_controller.go:279] "Unhandled Error" err="StorageVersionMigrationController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" I0319 19:20:46.556478 1 request.go:752] "Waited before sending request" delay="1.778369557s" reason="client-side throttling, not priority and fairness" verb="PUT" URL="https://172.30.0.1:443/apis/operator.openshift.io/v1/consoles/cluster/status" E0319 19:20:47.166813 1 base_controller.go:279] "Unhandled Error" err="ConsoleDownloadsDeploymentSyncController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" I0319 19:20:47.174483 1 apps.go:155] Deployment "openshift-console/downloads" changes: {"spec":{"progressDeadlineSeconds":null,"revisionHistoryLimit":null,"template":{"spec":{"containers":[{"args":["-c","cat \u003c\u003cEOF \u003e/tmp/serve.py\nimport errno, http.server, os, re, 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 '\u003c!doctype html\u003e',\n '\u003chtml lang=\"en\"\u003e',\n '\u003chead\u003e',\n ' \u003cmeta charset=\"utf-8\"\u003e',\n '\u003c/head\u003e',\n '\u003cbody\u003e',\n ' {}'.format(message),\n '\u003c/body\u003e',\n '\u003c/html\u003e',\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)\ntemp_dir = tempfile.mkdtemp()\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 = ['\u003ca href=\"oc-license\"\u003elicense\u003c/a\u003e']\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 '\u003ca href=\"{0}\"\u003eoc ({1} {2})\u003c/a\u003e (\u003ca href=\"{3}.tar\"\u003etar\u003c/a\u003e \u003ca href=\"{3}.zip\"\u003ezip\u003c/a\u003e)'.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='\u003cp\u003eDirectory listings are disabled. See \u003ca href=\"{}\"\u003ehere\u003c/a\u003e for available content.\u003c/p\u003e'.format(root_link),\n )\n\nwrite_index(\n path=os.path.join(temp_dir, 'index.html'),\n message='\\n'.join(\n ['\u003cp\u003e\u003cem\u003eNote: Archive files (.tar, .zip) are generated on server startup and may take a few moments to become available.\u003c/em\u003e\u003c/p\u003e'] +\n ['\u003cul\u003e'] +\n [' \u003cli\u003e{}\u003c/li\u003e'.format(entry) for entry in content] +\n ['\u003c/ul\u003e']\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:670004bffddb41c787b9f9a5c7d1615453d4acfa6452dedfa61ad2f305eea814","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":false},"terminationMessagePolicy":"FallbackToLogsOnError"}],"dnsPolicy":null,"restartPolicy":null,"schedulerName":null}}}} I0319 19:20:47.184093 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentUpdated' Updated Deployment.apps/downloads -n openshift-console because it changed I0319 19:20:47.756977 1 request.go:752] "Waited before sending request" delay="1.534833319s" reason="client-side throttling, not priority and fairness" verb="PUT" URL="https://172.30.0.1:443/apis/operator.openshift.io/v1/consoles/cluster/status" I0319 19:20:48.586084 1 apps.go:155] Deployment "openshift-console/downloads" changes: {"spec":{"progressDeadlineSeconds":null,"revisionHistoryLimit":null,"template":{"spec":{"containers":[{"args":["-c","cat \u003c\u003cEOF \u003e/tmp/serve.py\nimport errno, http.server, os, re, 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 '\u003c!doctype html\u003e',\n '\u003chtml lang=\"en\"\u003e',\n '\u003chead\u003e',\n ' \u003cmeta charset=\"utf-8\"\u003e',\n '\u003c/head\u003e',\n '\u003cbody\u003e',\n ' {}'.format(message),\n '\u003c/body\u003e',\n '\u003c/html\u003e',\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)\ntemp_dir = tempfile.mkdtemp()\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 = ['\u003ca href=\"oc-license\"\u003elicense\u003c/a\u003e']\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 '\u003ca href=\"{0}\"\u003eoc ({1} {2})\u003c/a\u003e (\u003ca href=\"{3}.tar\"\u003etar\u003c/a\u003e \u003ca href=\"{3}.zip\"\u003ezip\u003c/a\u003e)'.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='\u003cp\u003eDirectory listings are disabled. See \u003ca href=\"{}\"\u003ehere\u003c/a\u003e for available content.\u003c/p\u003e'.format(root_link),\n )\n\nwrite_index(\n path=os.path.join(temp_dir, 'index.html'),\n message='\\n'.join(\n ['\u003cp\u003e\u003cem\u003eNote: Archive files (.tar, .zip) are generated on server startup and may take a few moments to become available.\u003c/em\u003e\u003c/p\u003e'] +\n ['\u003cul\u003e'] +\n [' \u003cli\u003e{}\u003c/li\u003e'.format(entry) for entry in content] +\n ['\u003c/ul\u003e']\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:670004bffddb41c787b9f9a5c7d1615453d4acfa6452dedfa61ad2f305eea814","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":false},"terminationMessagePolicy":"FallbackToLogsOnError"}],"dnsPolicy":null,"restartPolicy":null,"schedulerName":null}}}} I0319 19:20:48.596906 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentUpdated' Updated Deployment.apps/downloads -n openshift-console because it changed I0319 19:20:48.956881 1 request.go:752] "Waited before sending request" delay="1.378583892s" reason="client-side throttling, not priority and fairness" verb="PUT" URL="https://172.30.0.1:443/apis/operator.openshift.io/v1/consoles/cluster/status" E0319 19:20:49.168741 1 base_controller.go:279] "Unhandled Error" err="ConsoleOperator reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" I0319 19:20:49.193116 1 apps.go:155] Deployment "openshift-console/console" changes: {"spec":{"progressDeadlineSeconds":null,"revisionHistoryLimit":null,"template":{"spec":{"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:a9dc28a6962d195dcce0c76a544aad5f784dd90b98282c169d7b94c870a85f8b","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":false},"startupProbe":{"failureThreshold":30,"httpGet":{"path":"/health","port":8443,"scheme":"HTTPS"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":10},"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":"/etc/pki/ca-trust/extracted/pem","name":"trusted-ca-bundle","readOnly":true},{"mountPath":"/var/oauth-serving-cert","name":"oauth-serving-cert","readOnly":true}]}],"dnsPolicy":null,"serviceAccount":null,"volumes":[{"name":"console-serving-cert","secret":{"secretName":"console-serving-cert"}},{"name":"console-oauth-config","secret":{"secretName":"console-oauth-config"}},{"configMap":{"name":"console-config"},"name":"console-config"},{"configMap":{"name":"service-ca"},"name":"service-ca"},{"configMap":{"items":[{"key":"ca-bundle.crt","path":"tls-ca-bundle.pem"}],"name":"trusted-ca-bundle"},"name":"trusted-ca-bundle"},{"configMap":{"name":"oauth-serving-cert"},"name":"oauth-serving-cert"}]}}}} E0319 19:20:49.202926 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available I0319 19:20:49.203011 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentUpdated' Updated Deployment.apps/console -n openshift-console because it changed E0319 19:20:49.567988 1 base_controller.go:279] "Unhandled Error" err="ConsoleRouteController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" I0319 19:20:50.156450 1 request.go:752] "Waited before sending request" delay="1.118892715s" reason="client-side throttling, not priority and fairness" verb="PUT" URL="https://172.30.0.1:443/apis/operator.openshift.io/v1/consoles/cluster/status" E0319 19:20:50.169888 1 base_controller.go:279] "Unhandled Error" err="ConsoleServiceController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" E0319 19:20:50.767777 1 base_controller.go:279] "Unhandled Error" err="ConsoleServiceController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" E0319 19:20:51.169523 1 base_controller.go:279] "Unhandled Error" err="StorageVersionMigrationController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" I0319 19:20:53.013065 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:20:53Z","message":"SyncLoopRefreshProgressing: working toward version 4.21.5, 1 replicas available","reason":"SyncLoopRefresh_InProgress","status":"True","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:53Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-03-19T19:20:35Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0319 19:20:53.062164 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Degraded message changed from "SyncLoopRefreshDegraded: route.route.openshift.io \"console\" not found" to "All is well",Progressing changed from False to True ("SyncLoopRefreshProgressing: working toward version 4.21.5, 1 replicas available"),Available changed from Unknown to True ("All is well") E0319 19:20:53.068120 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:20:53.105516 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:20:53.184292 1 base_controller.go:279] "Unhandled Error" err="ConsoleRouteController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" E0319 19:20:53.307606 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:20:53.424890 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:20:53.585708 1 base_controller.go:279] "Unhandled Error" err="ConsoleServiceController reconciliation failed: Operation cannot be fulfilled on consoles.operator.openshift.io \"cluster\": the object has been modified; please apply your changes to the latest version and try again" E0319 19:20:54.056896 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:20:54.845082 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:20:55.316563 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:20:56.477504 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:20:57.077509 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:20:57.948580 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:21:01.714481 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:21:01.792780 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:21:01.912826 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:21:02.851034 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:21:03.955571 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:21:03.986623 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:21:07.373335 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:21:07.444695 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:21:10.258261 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:21:14.659194 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:21:18.533794 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 2 replicas available I0319 19:21:18.609068 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:20:53Z","message":"SyncLoopRefreshProgressing: working toward version 4.21.5, 2 replicas available","reason":"SyncLoopRefresh_InProgress","status":"True","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:53Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-03-19T19:20:35Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0319 19:21:18.626127 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Progressing message changed from "SyncLoopRefreshProgressing: working toward version 4.21.5, 1 replicas available" to "SyncLoopRefreshProgressing: working toward version 4.21.5, 2 replicas available" I0319 19:21:18.710185 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:20:53Z","message":"SyncLoopRefreshProgressing: working toward version 4.21.5, 2 replicas available","reason":"SyncLoopRefresh_InProgress","status":"True","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:53Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-03-19T19:20:35Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} E0319 19:21:18.721183 1 base_controller.go:279] "Unhandled Error" err="StatusSyncer_console reconciliation failed: Operation cannot be fulfilled on clusteroperators.config.openshift.io \"console\": the object has been modified; please apply your changes to the latest version and try again" I0319 19:21:18.736884 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:21:18Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:53Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-03-19T19:20:35Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0319 19:21:18.760324 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Progressing changed from True to False ("All is well") I0319 19:21:27.844090 1 status_controller.go:230] clusteroperator/console diff {"status":{"relatedObjects":[{"group":"console.openshift.io","name":"monitoring-plugin","resource":"consoleplugins"},{"group":"","name":"openshift-monitoring","resource":"namespaces"},{"group":"console.openshift.io","name":"networking-console-plugin","resource":"consoleplugins"},{"group":"","name":"openshift-network-console","resource":"namespaces"},{"group":"oauth.openshift.io","name":"console","resource":"oauthclients"},{"group":"operator.openshift.io","name":"cluster","resource":"consoles"},{"group":"config.openshift.io","name":"cluster","resource":"consoles"},{"group":"config.openshift.io","name":"cluster","resource":"infrastructures"},{"group":"config.openshift.io","name":"cluster","resource":"proxies"},{"group":"config.openshift.io","name":"cluster","resource":"oauths"},{"group":"","name":"openshift-console-operator","resource":"namespaces"},{"group":"","name":"openshift-console","resource":"namespaces"},{"group":"","name":"console-public","namespace":"openshift-config-managed","resource":"configmaps"}]}} I0319 19:21:27.861375 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: status.relatedObjects changed from [{"console.openshift.io" "consoleplugins" "" "networking-console-plugin"} {"" "namespaces" "" "openshift-network-console"} {"oauth.openshift.io" "oauthclients" "" "console"} {"operator.openshift.io" "consoles" "" "cluster"} {"config.openshift.io" "consoles" "" "cluster"} {"config.openshift.io" "infrastructures" "" "cluster"} {"config.openshift.io" "proxies" "" "cluster"} {"config.openshift.io" "oauths" "" "cluster"} {"" "namespaces" "" "openshift-console-operator"} {"" "namespaces" "" "openshift-console"} {"" "configmaps" "openshift-config-managed" "console-public"}] to [{"console.openshift.io" "consoleplugins" "" "monitoring-plugin"} {"" "namespaces" "" "openshift-monitoring"} {"console.openshift.io" "consoleplugins" "" "networking-console-plugin"} {"" "namespaces" "" "openshift-network-console"} {"oauth.openshift.io" "oauthclients" "" "console"} {"operator.openshift.io" "consoles" "" "cluster"} {"config.openshift.io" "consoles" "" "cluster"} {"config.openshift.io" "infrastructures" "" "cluster"} {"config.openshift.io" "proxies" "" "cluster"} {"config.openshift.io" "oauths" "" "cluster"} {"" "namespaces" "" "openshift-console-operator"} {"" "namespaces" "" "openshift-console"} {"" "configmaps" "openshift-config-managed" "console-public"}] I0319 19:21:27.871987 1 core.go:352] ConfigMap "openshift-console/console-config" changes: {"apiVersion":"v1","data":{"console-config.yaml":"apiVersion: console.openshift.io/v1\nauth:\n authType: openshift\n clientID: console\n clientSecretFile: /var/oauth-config/clientSecret\n oauthEndpointCAFile: /var/oauth-serving-cert/ca-bundle.crt\nclusterInfo:\n consoleBaseAddress: https://console-openshift-console.apps.rosa.kx-7419de865e.hdqq.p3.openshiftapps.com\n controlPlaneTopology: External\n masterPublicURL: https://api.kx-7419de865e.hdqq.p3.openshiftapps.com:443\n nodeArchitectures:\n - amd64\n nodeOperatingSystems:\n - linux\n releaseVersion: 4.21.5\ncontentSecurityPolicyEnabled: true\ncustomization:\n branding: rosa\n capabilities:\n - name: LightspeedButton\n visibility:\n state: Enabled\n - name: GettingStartedBanner\n visibility:\n state: Enabled\n developerCatalog:\n categories: null\n types:\n state: Enabled\n documentationBaseURL: https://docs.redhat.com/en/documentation/red_hat_openshift_service_on_aws/4/\n perspectives:\n - id: dev\n visibility:\n state: Disabled\ni18nNamespaces:\n- plugin__networking-console-plugin\n- plugin__monitoring-plugin\nkind: ConsoleConfig\nplugins:\n monitoring-plugin: https://monitoring-plugin.openshift-monitoring.svc.cluster.local:9443/\n networking-console-plugin: https://networking-console-plugin.openshift-network-console.svc.cluster.local:9443/\npluginsOrder:\n- networking-console-plugin\n- monitoring-plugin\nproviders: {}\nservingInfo:\n bindAddress: https://[::]:8443\n certFile: /var/serving-cert/tls.crt\n keyFile: /var/serving-cert/tls.key\nsession: {}\ntelemetry:\n CLUSTER_ID: 1f2fb805-2db0-44d9-9889-e716c2a03c9b\n SEGMENT_API_HOST: console.redhat.com/connections/api/v1\n SEGMENT_JS_HOST: console.redhat.com/connections/cdn\n SEGMENT_PUBLIC_API_KEY: BnuS1RP39EmLQjP21ko67oDjhbl9zpNU\n TELEMETER_CLIENT_DISABLED: \"true\"\n"},"kind":"ConfigMap","metadata":{"creationTimestamp":null,"managedFields":null,"resourceVersion":null,"uid":null}} I0319 19:21:27.872120 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'ConfigMapUpdated' Updated ConfigMap/console-config -n openshift-console: cause by changes in data.console-config.yaml I0319 19:21:27.896388 1 apps.go:155] Deployment "openshift-console/console" changes: {"metadata":{"annotations":{"console.openshift.io/console-config-version":"11751","operator.openshift.io/spec-hash":"7fe7aef135cb9710d5e753967b74d4f8ca962419605e717463e3a3aea918f346"}},"spec":{"progressDeadlineSeconds":null,"revisionHistoryLimit":null,"template":{"metadata":{"annotations":{"console.openshift.io/console-config-version":"11751"}},"spec":{"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:a9dc28a6962d195dcce0c76a544aad5f784dd90b98282c169d7b94c870a85f8b","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":false},"startupProbe":{"failureThreshold":30,"httpGet":{"path":"/health","port":8443,"scheme":"HTTPS"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":10},"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":"/etc/pki/ca-trust/extracted/pem","name":"trusted-ca-bundle","readOnly":true},{"mountPath":"/var/oauth-serving-cert","name":"oauth-serving-cert","readOnly":true}]}],"dnsPolicy":null,"serviceAccount":null,"volumes":[{"name":"console-serving-cert","secret":{"secretName":"console-serving-cert"}},{"name":"console-oauth-config","secret":{"secretName":"console-oauth-config"}},{"configMap":{"name":"console-config"},"name":"console-config"},{"configMap":{"name":"service-ca"},"name":"service-ca"},{"configMap":{"items":[{"key":"ca-bundle.crt","path":"tls-ca-bundle.pem"}],"name":"trusted-ca-bundle"},"name":"trusted-ca-bundle"},{"configMap":{"name":"oauth-serving-cert"},"name":"oauth-serving-cert"}]}}}} E0319 19:21:27.914034 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available I0319 19:21:27.914122 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentUpdated' Updated Deployment.apps/console -n openshift-console because it changed I0319 19:21:28.044411 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:21:28Z","message":"SyncLoopRefreshProgressing: working toward version 4.21.5, 1 replicas available","reason":"SyncLoopRefresh_InProgress","status":"True","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:53Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-03-19T19:20:35Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0319 19:21:28.067999 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Progressing changed from False to True ("SyncLoopRefreshProgressing: working toward version 4.21.5, 1 replicas available") I0319 19:21:28.217801 1 apps.go:155] Deployment "openshift-console/console" changes: {"spec":{"progressDeadlineSeconds":null,"revisionHistoryLimit":null,"template":{"spec":{"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:a9dc28a6962d195dcce0c76a544aad5f784dd90b98282c169d7b94c870a85f8b","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":false},"startupProbe":{"failureThreshold":30,"httpGet":{"path":"/health","port":8443,"scheme":"HTTPS"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":10},"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":"/etc/pki/ca-trust/extracted/pem","name":"trusted-ca-bundle","readOnly":true},{"mountPath":"/var/oauth-serving-cert","name":"oauth-serving-cert","readOnly":true}]}],"dnsPolicy":null,"serviceAccount":null,"volumes":[{"name":"console-serving-cert","secret":{"secretName":"console-serving-cert"}},{"name":"console-oauth-config","secret":{"secretName":"console-oauth-config"}},{"configMap":{"name":"console-config"},"name":"console-config"},{"configMap":{"name":"service-ca"},"name":"service-ca"},{"configMap":{"items":[{"key":"ca-bundle.crt","path":"tls-ca-bundle.pem"}],"name":"trusted-ca-bundle"},"name":"trusted-ca-bundle"},{"configMap":{"name":"oauth-serving-cert"},"name":"oauth-serving-cert"}]}}}} E0319 19:21:28.232882 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available I0319 19:21:28.232974 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentUpdated' Updated Deployment.apps/console -n openshift-console because it changed E0319 19:21:28.615716 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:21:29.026880 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:21:30.279132 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:21:33.500004 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:21:37.487842 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:21:43.847682 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:21:48.931738 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:21:54.154622 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:21:55.077145 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 2 replicas available I0319 19:21:55.124540 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:21:28Z","message":"SyncLoopRefreshProgressing: working toward version 4.21.5, 2 replicas available","reason":"SyncLoopRefresh_InProgress","status":"True","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:53Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-03-19T19:20:35Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0319 19:21:55.138760 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Progressing message changed from "SyncLoopRefreshProgressing: working toward version 4.21.5, 1 replicas available" to "SyncLoopRefreshProgressing: working toward version 4.21.5, 2 replicas available" I0319 19:21:55.231443 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:21:55Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:53Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-03-19T19:20:35Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0319 19:21:55.246409 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Progressing changed from True to False ("All is well") I0319 19:22:50.606988 1 core.go:352] ConfigMap "openshift-console/console-config" changes: {"apiVersion":"v1","data":{"console-config.yaml":"apiVersion: console.openshift.io/v1\nauth:\n authType: openshift\n clientID: console\n clientSecretFile: /var/oauth-config/clientSecret\n oauthEndpointCAFile: /var/oauth-serving-cert/ca-bundle.crt\nclusterInfo:\n consoleBaseAddress: https://console-openshift-console.apps.rosa.kx-7419de865e.hdqq.p3.openshiftapps.com\n controlPlaneTopology: External\n masterPublicURL: https://api.kx-7419de865e.hdqq.p3.openshiftapps.com:443\n nodeArchitectures:\n - amd64\n nodeOperatingSystems:\n - linux\n releaseVersion: 4.21.5\ncontentSecurityPolicyEnabled: true\ncustomization:\n branding: rosa\n capabilities:\n - name: LightspeedButton\n visibility:\n state: Enabled\n - name: GettingStartedBanner\n visibility:\n state: Enabled\n developerCatalog:\n categories: null\n types:\n state: Enabled\n documentationBaseURL: https://docs.redhat.com/en/documentation/red_hat_openshift_service_on_aws/4/\n perspectives:\n - id: dev\n visibility:\n state: Disabled\ni18nNamespaces:\n- plugin__networking-console-plugin\n- plugin__monitoring-plugin\nkind: ConsoleConfig\nplugins:\n monitoring-plugin: https://monitoring-plugin.openshift-monitoring.svc.cluster.local:9443/\n networking-console-plugin: https://networking-console-plugin.openshift-network-console.svc.cluster.local:9443/\npluginsOrder:\n- networking-console-plugin\n- monitoring-plugin\nproviders: {}\nservingInfo:\n bindAddress: https://[::]:8443\n certFile: /var/serving-cert/tls.crt\n keyFile: /var/serving-cert/tls.key\nsession: {}\ntelemetry:\n ACCOUNT_MAIL: xjiang+rhtap-shared@redhat.com\n CLUSTER_ID: 1f2fb805-2db0-44d9-9889-e716c2a03c9b\n ORGANIZATION_ID: \"18164403\"\n SEGMENT_API_HOST: console.redhat.com/connections/api/v1\n SEGMENT_JS_HOST: console.redhat.com/connections/cdn\n SEGMENT_PUBLIC_API_KEY: BnuS1RP39EmLQjP21ko67oDjhbl9zpNU\n"},"kind":"ConfigMap","metadata":{"creationTimestamp":null,"managedFields":null,"resourceVersion":null,"uid":null}} I0319 19:22:50.607203 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'ConfigMapUpdated' Updated ConfigMap/console-config -n openshift-console: cause by changes in data.console-config.yaml I0319 19:22:50.618931 1 apps.go:155] Deployment "openshift-console/console" changes: {"metadata":{"annotations":{"console.openshift.io/console-config-version":"13095","operator.openshift.io/spec-hash":"b66ad07785ea35507d3ccf6480f73add9b16ee6e00b4f8fc2c6e9d73204b7d77"}},"spec":{"progressDeadlineSeconds":null,"revisionHistoryLimit":null,"template":{"metadata":{"annotations":{"console.openshift.io/console-config-version":"13095"}},"spec":{"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:a9dc28a6962d195dcce0c76a544aad5f784dd90b98282c169d7b94c870a85f8b","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":false},"startupProbe":{"failureThreshold":30,"httpGet":{"path":"/health","port":8443,"scheme":"HTTPS"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":10},"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":"/etc/pki/ca-trust/extracted/pem","name":"trusted-ca-bundle","readOnly":true},{"mountPath":"/var/oauth-serving-cert","name":"oauth-serving-cert","readOnly":true}]}],"dnsPolicy":null,"serviceAccount":null,"volumes":[{"name":"console-serving-cert","secret":{"secretName":"console-serving-cert"}},{"name":"console-oauth-config","secret":{"secretName":"console-oauth-config"}},{"configMap":{"name":"console-config"},"name":"console-config"},{"configMap":{"name":"service-ca"},"name":"service-ca"},{"configMap":{"items":[{"key":"ca-bundle.crt","path":"tls-ca-bundle.pem"}],"name":"trusted-ca-bundle"},"name":"trusted-ca-bundle"},{"configMap":{"name":"oauth-serving-cert"},"name":"oauth-serving-cert"}]}}}} E0319 19:22:50.632327 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 2 replicas available I0319 19:22:50.632404 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentUpdated' Updated Deployment.apps/console -n openshift-console because it changed I0319 19:22:50.682277 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:22:50Z","message":"SyncLoopRefreshProgressing: working toward version 4.21.5, 2 replicas available","reason":"SyncLoopRefresh_InProgress","status":"True","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:53Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-03-19T19:20:35Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0319 19:22:50.713481 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Progressing changed from False to True ("SyncLoopRefreshProgressing: working toward version 4.21.5, 2 replicas available") I0319 19:22:50.725737 1 apps.go:155] Deployment "openshift-console/console" changes: {"spec":{"progressDeadlineSeconds":null,"revisionHistoryLimit":null,"template":{"spec":{"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:a9dc28a6962d195dcce0c76a544aad5f784dd90b98282c169d7b94c870a85f8b","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":false},"startupProbe":{"failureThreshold":30,"httpGet":{"path":"/health","port":8443,"scheme":"HTTPS"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":10},"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":"/etc/pki/ca-trust/extracted/pem","name":"trusted-ca-bundle","readOnly":true},{"mountPath":"/var/oauth-serving-cert","name":"oauth-serving-cert","readOnly":true}]}],"dnsPolicy":null,"serviceAccount":null,"volumes":[{"name":"console-serving-cert","secret":{"secretName":"console-serving-cert"}},{"name":"console-oauth-config","secret":{"secretName":"console-oauth-config"}},{"configMap":{"name":"console-config"},"name":"console-config"},{"configMap":{"name":"service-ca"},"name":"service-ca"},{"configMap":{"items":[{"key":"ca-bundle.crt","path":"tls-ca-bundle.pem"}],"name":"trusted-ca-bundle"},"name":"trusted-ca-bundle"},{"configMap":{"name":"oauth-serving-cert"},"name":"oauth-serving-cert"}]}}}} E0319 19:22:50.746680 1 status.go:130] DeploymentSyncDegraded FailedApply Operation cannot be fulfilled on deployments.apps "console": the object has been modified; please apply your changes to the latest version and try again I0319 19:22:50.746769 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Warning' reason: 'DeploymentUpdateFailed' Failed to update Deployment.apps/console -n openshift-console: Operation cannot be fulfilled on deployments.apps "console": the object has been modified; please apply your changes to the latest version and try again E0319 19:22:50.773684 1 base_controller.go:279] "Unhandled Error" err="ConsoleOperator reconciliation failed: Operation cannot be fulfilled on deployments.apps \"console\": the object has been modified; please apply your changes to the latest version and try again" I0319 19:22:50.791793 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"DeploymentSyncDegraded: Operation cannot be fulfilled on deployments.apps \"console\": the object has been modified; please apply your changes to the latest version and try again","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:22:50Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:53Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-03-19T19:20:35Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} E0319 19:22:50.807642 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available I0319 19:22:51.024685 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Degraded message changed from "All is well" to "DeploymentSyncDegraded: Operation cannot be fulfilled on deployments.apps \"console\": the object has been modified; please apply your changes to the latest version and try again",Progressing changed from True to False ("All is well") I0319 19:22:51.091498 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:22:51Z","message":"SyncLoopRefreshProgressing: working toward version 4.21.5, 1 replicas available","reason":"SyncLoopRefresh_InProgress","status":"True","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:53Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-03-19T19:20:35Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} E0319 19:22:51.608020 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available I0319 19:22:51.619899 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Degraded message changed from "DeploymentSyncDegraded: Operation cannot be fulfilled on deployments.apps \"console\": the object has been modified; please apply your changes to the latest version and try again" to "All is well",Progressing changed from False to True ("SyncLoopRefreshProgressing: working toward version 4.21.5, 1 replicas available") E0319 19:22:52.206682 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:22:55.790212 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:23:01.138840 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 2 replicas available I0319 19:23:01.177979 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:22:51Z","message":"SyncLoopRefreshProgressing: working toward version 4.21.5, 2 replicas available","reason":"SyncLoopRefresh_InProgress","status":"True","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:53Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-03-19T19:20:35Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0319 19:23:01.189885 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Progressing message changed from "SyncLoopRefreshProgressing: working toward version 4.21.5, 1 replicas available" to "SyncLoopRefreshProgressing: working toward version 4.21.5, 2 replicas available" I0319 19:23:01.283730 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:23:01Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:53Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-03-19T19:20:35Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0319 19:23:01.297347 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Progressing changed from True to False ("All is well") I0319 19:25:19.037656 1 core.go:352] ConfigMap "openshift-console/console-config" changes: {"apiVersion":"v1","data":{"console-config.yaml":"apiVersion: console.openshift.io/v1\nauth:\n authType: openshift\n clientID: console\n clientSecretFile: /var/oauth-config/clientSecret\n oauthEndpointCAFile: /var/oauth-serving-cert/ca-bundle.crt\nclusterInfo:\n consoleBaseAddress: https://console-openshift-console.apps.rosa.kx-7419de865e.hdqq.p3.openshiftapps.com\n controlPlaneTopology: External\n masterPublicURL: https://api.kx-7419de865e.hdqq.p3.openshiftapps.com:443\n nodeArchitectures:\n - amd64\n nodeOperatingSystems:\n - linux\n releaseVersion: 4.21.5\ncontentSecurityPolicyEnabled: true\ncustomization:\n branding: rosa\n capabilities:\n - name: LightspeedButton\n visibility:\n state: Enabled\n - name: GettingStartedBanner\n visibility:\n state: Enabled\n developerCatalog:\n categories: null\n types:\n state: Enabled\n documentationBaseURL: https://docs.redhat.com/en/documentation/red_hat_openshift_service_on_aws/4/\n perspectives:\n - id: dev\n visibility:\n state: Disabled\ni18nNamespaces:\n- plugin__networking-console-plugin\n- plugin__monitoring-plugin\nkind: ConsoleConfig\nmonitoringInfo:\n alertmanagerTenancyHost: alertmanager-main.openshift-monitoring.svc:9092\n alertmanagerUserWorkloadHost: alertmanager-main.openshift-monitoring.svc:9094\nplugins:\n monitoring-plugin: https://monitoring-plugin.openshift-monitoring.svc.cluster.local:9443/\n networking-console-plugin: https://networking-console-plugin.openshift-network-console.svc.cluster.local:9443/\npluginsOrder:\n- networking-console-plugin\n- monitoring-plugin\nproviders: {}\nservingInfo:\n bindAddress: https://[::]:8443\n certFile: /var/serving-cert/tls.crt\n keyFile: /var/serving-cert/tls.key\nsession: {}\ntelemetry:\n ACCOUNT_MAIL: xjiang+rhtap-shared@redhat.com\n CLUSTER_ID: 1f2fb805-2db0-44d9-9889-e716c2a03c9b\n ORGANIZATION_ID: \"18164403\"\n SEGMENT_API_HOST: console.redhat.com/connections/api/v1\n SEGMENT_JS_HOST: console.redhat.com/connections/cdn\n SEGMENT_PUBLIC_API_KEY: BnuS1RP39EmLQjP21ko67oDjhbl9zpNU\n"},"kind":"ConfigMap","metadata":{"creationTimestamp":null,"managedFields":null,"resourceVersion":null,"uid":null}} I0319 19:25:19.037831 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'ConfigMapUpdated' Updated ConfigMap/console-config -n openshift-console: cause by changes in data.console-config.yaml I0319 19:25:19.054241 1 apps.go:155] Deployment "openshift-console/console" changes: {"metadata":{"annotations":{"console.openshift.io/console-config-version":"14064","operator.openshift.io/spec-hash":"b06bb702bf6819706b01e65b6b74afc43a5c9253760055799d7981c1ac791cd0"}},"spec":{"progressDeadlineSeconds":null,"revisionHistoryLimit":null,"template":{"metadata":{"annotations":{"console.openshift.io/console-config-version":"14064"}},"spec":{"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:a9dc28a6962d195dcce0c76a544aad5f784dd90b98282c169d7b94c870a85f8b","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":false},"startupProbe":{"failureThreshold":30,"httpGet":{"path":"/health","port":8443,"scheme":"HTTPS"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":10},"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":"/etc/pki/ca-trust/extracted/pem","name":"trusted-ca-bundle","readOnly":true},{"mountPath":"/var/oauth-serving-cert","name":"oauth-serving-cert","readOnly":true}]}],"dnsPolicy":null,"serviceAccount":null,"volumes":[{"name":"console-serving-cert","secret":{"secretName":"console-serving-cert"}},{"name":"console-oauth-config","secret":{"secretName":"console-oauth-config"}},{"configMap":{"name":"console-config"},"name":"console-config"},{"configMap":{"name":"service-ca"},"name":"service-ca"},{"configMap":{"items":[{"key":"ca-bundle.crt","path":"tls-ca-bundle.pem"}],"name":"trusted-ca-bundle"},"name":"trusted-ca-bundle"},{"configMap":{"name":"oauth-serving-cert"},"name":"oauth-serving-cert"}]}}}} E0319 19:25:19.065342 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 2 replicas available I0319 19:25:19.065415 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentUpdated' Updated Deployment.apps/console -n openshift-console because it changed I0319 19:25:19.111303 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:25:19Z","message":"SyncLoopRefreshProgressing: working toward version 4.21.5, 2 replicas available","reason":"SyncLoopRefresh_InProgress","status":"True","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:53Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-03-19T19:20:35Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0319 19:25:19.127776 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Progressing changed from False to True ("SyncLoopRefreshProgressing: working toward version 4.21.5, 2 replicas available") I0319 19:25:19.148713 1 apps.go:155] Deployment "openshift-console/console" changes: {"spec":{"progressDeadlineSeconds":null,"revisionHistoryLimit":null,"template":{"spec":{"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:a9dc28a6962d195dcce0c76a544aad5f784dd90b98282c169d7b94c870a85f8b","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":false},"startupProbe":{"failureThreshold":30,"httpGet":{"path":"/health","port":8443,"scheme":"HTTPS"},"periodSeconds":10,"successThreshold":1,"timeoutSeconds":10},"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":"/etc/pki/ca-trust/extracted/pem","name":"trusted-ca-bundle","readOnly":true},{"mountPath":"/var/oauth-serving-cert","name":"oauth-serving-cert","readOnly":true}]}],"dnsPolicy":null,"serviceAccount":null,"volumes":[{"name":"console-serving-cert","secret":{"secretName":"console-serving-cert"}},{"name":"console-oauth-config","secret":{"secretName":"console-oauth-config"}},{"configMap":{"name":"console-config"},"name":"console-config"},{"configMap":{"name":"service-ca"},"name":"service-ca"},{"configMap":{"items":[{"key":"ca-bundle.crt","path":"tls-ca-bundle.pem"}],"name":"trusted-ca-bundle"},"name":"trusted-ca-bundle"},{"configMap":{"name":"oauth-serving-cert"},"name":"oauth-serving-cert"}]}}}} E0319 19:25:19.159810 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 2 replicas available I0319 19:25:19.159972 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentUpdated' Updated Deployment.apps/console -n openshift-console because it changed E0319 19:25:19.193257 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available I0319 19:25:19.310558 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:25:19Z","message":"SyncLoopRefreshProgressing: working toward version 4.21.5, 1 replicas available","reason":"SyncLoopRefresh_InProgress","status":"True","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:53Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-03-19T19:20:35Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0319 19:25:19.450188 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Progressing message changed from "SyncLoopRefreshProgressing: working toward version 4.21.5, 2 replicas available" to "SyncLoopRefreshProgressing: working toward version 4.21.5, 1 replicas available" E0319 19:25:19.617170 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:25:20.217776 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:25:24.282109 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:25:29.310372 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 1 replicas available E0319 19:25:30.152477 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.21.5, 2 replicas available I0319 19:25:30.226303 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:25:19Z","message":"SyncLoopRefreshProgressing: working toward version 4.21.5, 2 replicas available","reason":"SyncLoopRefresh_InProgress","status":"True","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:53Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-03-19T19:20:35Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0319 19:25:30.247809 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Progressing message changed from "SyncLoopRefreshProgressing: working toward version 4.21.5, 1 replicas available" to "SyncLoopRefreshProgressing: working toward version 4.21.5, 2 replicas available" I0319 19:25:30.334698 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:25:30Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:53Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-03-19T19:20:35Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0319 19:25:30.357492 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Progressing changed from True to False ("All is well") I0319 19:34:24.275337 1 status_controller.go:230] clusteroperator/console diff {"status":{"relatedObjects":[{"group":"console.openshift.io","name":"monitoring-plugin","resource":"consoleplugins"},{"group":"","name":"openshift-monitoring","resource":"namespaces"},{"group":"console.openshift.io","name":"networking-console-plugin","resource":"consoleplugins"},{"group":"","name":"openshift-network-console","resource":"namespaces"},{"group":"console.openshift.io","name":"pipelines-console-plugin","resource":"consoleplugins"},{"group":"","name":"openshift-pipelines","resource":"namespaces"},{"group":"oauth.openshift.io","name":"console","resource":"oauthclients"},{"group":"operator.openshift.io","name":"cluster","resource":"consoles"},{"group":"config.openshift.io","name":"cluster","resource":"consoles"},{"group":"config.openshift.io","name":"cluster","resource":"infrastructures"},{"group":"config.openshift.io","name":"cluster","resource":"proxies"},{"group":"config.openshift.io","name":"cluster","resource":"oauths"},{"group":"","name":"openshift-console-operator","resource":"namespaces"},{"group":"","name":"openshift-console","resource":"namespaces"},{"group":"","name":"console-public","namespace":"openshift-config-managed","resource":"configmaps"}]}} I0319 19:34:24.289516 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: status.relatedObjects changed from [{"console.openshift.io" "consoleplugins" "" "monitoring-plugin"} {"" "namespaces" "" "openshift-monitoring"} {"console.openshift.io" "consoleplugins" "" "networking-console-plugin"} {"" "namespaces" "" "openshift-network-console"} {"oauth.openshift.io" "oauthclients" "" "console"} {"operator.openshift.io" "consoles" "" "cluster"} {"config.openshift.io" "consoles" "" "cluster"} {"config.openshift.io" "infrastructures" "" "cluster"} {"config.openshift.io" "proxies" "" "cluster"} {"config.openshift.io" "oauths" "" "cluster"} {"" "namespaces" "" "openshift-console-operator"} {"" "namespaces" "" "openshift-console"} {"" "configmaps" "openshift-config-managed" "console-public"}] to [{"console.openshift.io" "consoleplugins" "" "monitoring-plugin"} {"" "namespaces" "" "openshift-monitoring"} {"console.openshift.io" "consoleplugins" "" "networking-console-plugin"} {"" "namespaces" "" "openshift-network-console"} {"console.openshift.io" "consoleplugins" "" "pipelines-console-plugin"} {"" "namespaces" "" "openshift-pipelines"} {"oauth.openshift.io" "oauthclients" "" "console"} {"operator.openshift.io" "consoles" "" "cluster"} {"config.openshift.io" "consoles" "" "cluster"} {"config.openshift.io" "infrastructures" "" "cluster"} {"config.openshift.io" "proxies" "" "cluster"} {"config.openshift.io" "oauths" "" "cluster"} {"" "namespaces" "" "openshift-console-operator"} {"" "namespaces" "" "openshift-console"} {"" "configmaps" "openshift-config-managed" "console-public"}] I0319 19:36:53.738204 1 reflector.go:568] "Warning: watch ended with error" reflector="github.com/openshift/client-go/route/informers/externalversions/factory.go:125" type="*v1.Route" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738208 1 reflector.go:568] "Warning: watch ended with error" reflector="k8s.io/client-go/dynamic/dynamicinformer/informer.go:108" type="operators.coreos.com/v1, Resource=olmconfigs" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738342 1 reflector.go:568] "Warning: watch ended with error" reflector="k8s.io/client-go/informers/factory.go:160" type="*v1.Service" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738405 1 reflector.go:568] "Warning: watch ended with error" reflector="k8s.io/client-go/informers/factory.go:160" type="*v1.Secret" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738350 1 reflector.go:568] "Warning: watch ended with error" reflector="github.com/openshift/client-go/console/informers/externalversions/factory.go:125" type="*v1.ConsolePlugin" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738475 1 reflector.go:568] "Warning: watch ended with error" reflector="k8s.io/client-go/informers/factory.go:160" type="*v1.ConfigMap" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738530 1 reflector.go:568] "Warning: watch ended with error" reflector="k8s.io/client-go/informers/factory.go:160" type="*v1.Secret" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" E0319 19:36:53.738543 1 status.go:130] CLIAuthStatusHandlerDegraded FailedApply Patch "https://172.30.0.1:443/apis/config.openshift.io/v1/authentications/cluster/status?fieldManager=CLIOIDCClientStatusController&force=true": http2: client connection lost I0319 19:36:53.738408 1 reflector.go:568] "Warning: watch ended with error" reflector="k8s.io/client-go/informers/factory.go:160" type="*v1.ConfigMap" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" E0319 19:36:53.738229 1 leaderelection.go:441] Failed to update lock optimistically: Put "https://172.30.0.1:443/apis/coordination.k8s.io/v1/namespaces/openshift-console-operator/leases/console-operator-lock?timeout=1m47s": http2: client connection lost, falling back to slow path I0319 19:36:53.738249 1 reflector.go:568] "Warning: watch ended with error" reflector="k8s.io/client-go/informers/factory.go:160" type="*v1.PodDisruptionBudget" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738252 1 reflector.go:568] "Warning: watch ended with error" reflector="k8s.io/client-go/informers/factory.go:160" type="*v1.ConfigMap" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738272 1 reflector.go:568] "Warning: watch ended with error" reflector="k8s.io/client-go/dynamic/dynamicinformer/informer.go:108" type="operator.openshift.io/v1, Resource=consoles" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738285 1 reflector.go:568] "Warning: watch ended with error" reflector="k8s.io/client-go/informers/factory.go:160" type="*v1.Node" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738301 1 reflector.go:568] "Warning: watch ended with error" reflector="github.com/openshift/client-go/config/informers/externalversions/factory.go:125" type="*v1.Proxy" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" E0319 19:36:53.738320 1 status.go:130] ConsoleNotificationSyncDegraded FailedDelete Delete "https://172.30.0.1:443/apis/console.openshift.io/v1/consolenotifications/cluster-upgrade": http2: client connection lost E0319 19:36:53.738320 1 status.go:130] DownloadsCustomRouteSyncDegraded FailedDeleteCustomRoutes Delete "https://172.30.0.1:443/apis/route.openshift.io/v1/namespaces/openshift-console/routes/downloads-custom": http2: client connection lost E0319 19:36:53.738801 1 status.go:130] DownloadsCustomRouteSyncUpgradeable FailedDeleteCustomRoutes Delete "https://172.30.0.1:443/apis/route.openshift.io/v1/namespaces/openshift-console/routes/downloads-custom": http2: client connection lost I0319 19:36:53.738324 1 reflector.go:568] "Warning: watch ended with error" reflector="k8s.io/client-go/informers/factory.go:160" type="*v1.ConfigMap" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738218 1 reflector.go:568] "Warning: watch ended with error" reflector="k8s.io/apiserver/pkg/server/dynamiccertificates/configmap_cafile_content.go:209" type="*v1.ConfigMap" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738364 1 reflector.go:568] "Warning: watch ended with error" reflector="github.com/openshift/client-go/config/informers/externalversions/factory.go:125" type="*v1.FeatureGate" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738367 1 reflector.go:568] "Warning: watch ended with error" reflector="github.com/openshift/client-go/console/informers/externalversions/factory.go:125" type="*v1.ConsoleCLIDownload" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738380 1 reflector.go:568] "Warning: watch ended with error" reflector="k8s.io/client-go/informers/factory.go:160" type="*v1.Deployment" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738395 1 reflector.go:568] "Warning: watch ended with error" reflector="github.com/openshift/client-go/operator/informers/externalversions/factory.go:125" type="*v1.IngressController" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738393 1 reflector.go:568] "Warning: watch ended with error" reflector="k8s.io/apiserver/pkg/authentication/request/headerrequest/requestheader_controller.go:183" type="*v1.ConfigMap" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738399 1 reflector.go:568] "Warning: watch ended with error" reflector="k8s.io/client-go/informers/factory.go:160" type="*v1.Deployment" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738425 1 reflector.go:568] "Warning: watch ended with error" reflector="github.com/openshift/client-go/config/informers/externalversions/factory.go:125" type="*v1.Authentication" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738429 1 reflector.go:568] "Warning: watch ended with error" reflector="github.com/openshift/console-operator/pkg/console/controllers/util/informers.go:106" type="*v1.OAuthClient" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738429 1 reflector.go:568] "Warning: watch ended with error" reflector="k8s.io/apiserver/pkg/server/dynamiccertificates/configmap_cafile_content.go:209" type="*v1.ConfigMap" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738434 1 reflector.go:568] "Warning: watch ended with error" reflector="github.com/openshift/client-go/config/informers/externalversions/factory.go:125" type="*v1.OAuth" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738454 1 reflector.go:568] "Warning: watch ended with error" reflector="github.com/openshift/client-go/config/informers/externalversions/factory.go:125" type="*v1.Ingress" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738454 1 reflector.go:568] "Warning: watch ended with error" reflector="k8s.io/client-go/informers/factory.go:160" type="*v1.ConfigMap" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" E0319 19:36:53.738462 1 status.go:130] ConsoleCustomRouteSyncDegraded FailedDeleteCustomRoutes Delete "https://172.30.0.1:443/apis/route.openshift.io/v1/namespaces/openshift-console/routes/console-custom": http2: client connection lost E0319 19:36:53.739000 1 status.go:130] ConsoleCustomRouteSyncUpgradeable FailedDeleteCustomRoutes Delete "https://172.30.0.1:443/apis/route.openshift.io/v1/namespaces/openshift-console/routes/console-custom": http2: client connection lost I0319 19:36:53.738465 1 reflector.go:568] "Warning: watch ended with error" reflector="github.com/openshift/client-go/operator/informers/externalversions/factory.go:125" type="*v1.Console" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738482 1 reflector.go:568] "Warning: watch ended with error" reflector="k8s.io/client-go/dynamic/dynamicinformer/informer.go:108" type="migration.k8s.io/v1alpha1, Resource=storageversionmigrations" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738486 1 reflector.go:568] "Warning: watch ended with error" reflector="github.com/openshift/client-go/config/informers/externalversions/factory.go:125" type="*v1.ClusterVersion" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738502 1 reflector.go:568] "Warning: watch ended with error" reflector="k8s.io/client-go/informers/factory.go:160" type="*v1.ConfigMap" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738513 1 reflector.go:568] "Warning: watch ended with error" reflector="github.com/openshift/client-go/config/informers/externalversions/factory.go:125" type="*v1.ClusterOperator" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738516 1 reflector.go:568] "Warning: watch ended with error" reflector="k8s.io/client-go/informers/factory.go:160" type="*v1.ConfigMap" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738522 1 reflector.go:568] "Warning: watch ended with error" reflector="github.com/openshift/client-go/config/informers/externalversions/factory.go:125" type="*v1.Console" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" I0319 19:36:53.738533 1 reflector.go:568] "Warning: watch ended with error" reflector="github.com/openshift/client-go/config/informers/externalversions/factory.go:125" type="*v1.Infrastructure" err="an error on the server (\"unable to decode an event from the watch stream: http2: client connection lost\") has prevented the request from succeeding" E0319 19:36:53.786981 1 base_controller.go:279] "Unhandled Error" err="DownloadsRouteController reconciliation failed: Delete \"https://172.30.0.1:443/apis/route.openshift.io/v1/namespaces/openshift-console/routes/downloads-custom\": http2: client connection lost" I0319 19:36:53.810002 1 helpers.go:188] lister was stale at resourceVersion=14318, live get showed resourceVersion=28429 I0319 19:36:53.812026 1 helpers.go:188] lister was stale at resourceVersion=14318, live get showed resourceVersion=28429 I0319 19:36:53.813760 1 helpers.go:188] lister was stale at resourceVersion=14318, live get showed resourceVersion=28429 E0319 19:36:53.841084 1 base_controller.go:279] "Unhandled Error" err="CLIOIDCClientStatusController reconciliation failed: Patch \"https://172.30.0.1:443/apis/config.openshift.io/v1/authentications/cluster/status?fieldManager=CLIOIDCClientStatusController&force=true\": http2: client connection lost" I0319 19:36:54.350098 1 helpers.go:188] lister was stale at resourceVersion=14318, live get showed resourceVersion=28431 I0319 19:36:54.564274 1 reflector.go:436] "Caches populated" type="*v1.ConsoleCLIDownload" reflector="github.com/openshift/client-go/console/informers/externalversions/factory.go:125" E0319 19:36:54.565800 1 base_controller.go:279] "Unhandled Error" err="ClusterUpgradeNotificationController reconciliation failed: Delete \"https://172.30.0.1:443/apis/console.openshift.io/v1/consolenotifications/cluster-upgrade\": http2: client connection lost" I0319 19:36:54.575559 1 reflector.go:436] "Caches populated" type="*v1.Secret" reflector="k8s.io/client-go/informers/factory.go:160" I0319 19:36:54.651812 1 reflector.go:436] "Caches populated" type="*v1.ConfigMap" reflector="k8s.io/client-go/informers/factory.go:160" I0319 19:36:54.675954 1 reflector.go:436] "Caches populated" type="*v1.Authentication" reflector="github.com/openshift/client-go/config/informers/externalversions/factory.go:125" I0319 19:36:54.676212 1 reflector.go:436] "Caches populated" type="*v1.ClusterVersion" reflector="github.com/openshift/client-go/config/informers/externalversions/factory.go:125" I0319 19:36:54.679601 1 reflector.go:436] "Caches populated" type="*v1.Console" reflector="github.com/openshift/client-go/operator/informers/externalversions/factory.go:125" I0319 19:36:54.700885 1 reflector.go:436] "Caches populated" type="*v1.ConfigMap" reflector="k8s.io/client-go/informers/factory.go:160" I0319 19:36:54.729616 1 reflector.go:436] "Caches populated" type="*v1.ClusterOperator" reflector="github.com/openshift/client-go/config/informers/externalversions/factory.go:125" I0319 19:36:54.751637 1 helpers.go:188] lister was stale at resourceVersion=14318, live get showed resourceVersion=28444 I0319 19:36:54.775478 1 reflector.go:436] "Caches populated" type="*v1.Ingress" reflector="github.com/openshift/client-go/config/informers/externalversions/factory.go:125" I0319 19:36:54.805539 1 reflector.go:436] "Caches populated" type="*v1.Deployment" reflector="k8s.io/client-go/informers/factory.go:160" I0319 19:36:54.808464 1 reflector.go:436] "Caches populated" type="*v1.OAuth" reflector="github.com/openshift/client-go/config/informers/externalversions/factory.go:125" I0319 19:36:54.831149 1 reflector.go:436] "Caches populated" type="*v1.ConsolePlugin" reflector="github.com/openshift/client-go/console/informers/externalversions/factory.go:125" I0319 19:36:54.839377 1 reflector.go:436] "Caches populated" type="*v1.ConfigMap" reflector="k8s.io/apiserver/pkg/authentication/request/headerrequest/requestheader_controller.go:183" I0319 19:36:54.908954 1 reflector.go:436] "Caches populated" type="*v1.Deployment" reflector="k8s.io/client-go/informers/factory.go:160" I0319 19:36:54.915937 1 reflector.go:436] "Caches populated" type="*v1.FeatureGate" reflector="github.com/openshift/client-go/config/informers/externalversions/factory.go:125" I0319 19:36:54.960274 1 reflector.go:436] "Caches populated" type="*v1.Route" reflector="github.com/openshift/client-go/route/informers/externalversions/factory.go:125" E0319 19:36:54.965021 1 base_controller.go:279] "Unhandled Error" err="ConsoleRouteController reconciliation failed: Delete \"https://172.30.0.1:443/apis/route.openshift.io/v1/namespaces/openshift-console/routes/console-custom\": http2: client connection lost" I0319 19:36:54.975555 1 reflector.go:436] "Caches populated" type="*v1.ConfigMap" reflector="k8s.io/client-go/informers/factory.go:160" I0319 19:36:55.051552 1 reflector.go:436] "Caches populated" type="*v1.ConfigMap" reflector="k8s.io/apiserver/pkg/server/dynamiccertificates/configmap_cafile_content.go:209" I0319 19:36:55.103638 1 reflector.go:436] "Caches populated" type="*v1.OAuthClient" reflector="github.com/openshift/console-operator/pkg/console/controllers/util/informers.go:106" I0319 19:36:55.145307 1 reflector.go:436] "Caches populated" type="operator.openshift.io/v1, Resource=consoles" reflector="k8s.io/client-go/dynamic/dynamicinformer/informer.go:108" I0319 19:36:55.152720 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"ConsoleNotificationSyncDegraded: Delete \"https://172.30.0.1:443/apis/console.openshift.io/v1/consolenotifications/cluster-upgrade\": http2: client connection lost\nDownloadsCustomRouteSyncDegraded: Delete \"https://172.30.0.1:443/apis/route.openshift.io/v1/namespaces/openshift-console/routes/downloads-custom\": http2: client connection lost\nCLIAuthStatusHandlerDegraded: Patch \"https://172.30.0.1:443/apis/config.openshift.io/v1/authentications/cluster/status?fieldManager=CLIOIDCClientStatusController\u0026force=true\": http2: client connection lost\nConsoleCustomRouteSyncDegraded: Delete \"https://172.30.0.1:443/apis/route.openshift.io/v1/namespaces/openshift-console/routes/console-custom\": http2: client connection lost","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:25:30Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:53Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-03-19T19:36:55Z","message":"ConsoleCustomRouteSyncUpgradeable: Delete \"https://172.30.0.1:443/apis/route.openshift.io/v1/namespaces/openshift-console/routes/console-custom\": http2: client connection lost\nDownloadsCustomRouteSyncUpgradeable: Delete \"https://172.30.0.1:443/apis/route.openshift.io/v1/namespaces/openshift-console/routes/downloads-custom\": http2: client connection lost","reason":"ConsoleCustomRouteSync_FailedDeleteCustomRoutes::DownloadsCustomRouteSync_FailedDeleteCustomRoutes","status":"False","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0319 19:36:55.194770 1 reflector.go:436] "Caches populated" type="*v1.PodDisruptionBudget" reflector="k8s.io/client-go/informers/factory.go:160" I0319 19:36:55.243688 1 reflector.go:436] "Caches populated" type="*v1.IngressController" reflector="github.com/openshift/client-go/operator/informers/externalversions/factory.go:125" I0319 19:36:55.315600 1 reflector.go:436] "Caches populated" type="*v1.ConfigMap" reflector="k8s.io/apiserver/pkg/server/dynamiccertificates/configmap_cafile_content.go:209" I0319 19:36:55.343487 1 reflector.go:436] "Caches populated" type="operators.coreos.com/v1, Resource=olmconfigs" reflector="k8s.io/client-go/dynamic/dynamicinformer/informer.go:108" I0319 19:36:55.543935 1 reflector.go:436] "Caches populated" type="migration.k8s.io/v1alpha1, Resource=storageversionmigrations" reflector="k8s.io/client-go/dynamic/dynamicinformer/informer.go:108" I0319 19:36:55.578601 1 reflector.go:436] "Caches populated" type="*v1.Infrastructure" reflector="github.com/openshift/client-go/config/informers/externalversions/factory.go:125" I0319 19:36:55.588350 1 reflector.go:436] "Caches populated" type="*v1.ConfigMap" reflector="k8s.io/client-go/informers/factory.go:160" I0319 19:36:55.789285 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Degraded message changed from "All is well" to "ConsoleNotificationSyncDegraded: Delete \"https://172.30.0.1:443/apis/console.openshift.io/v1/consolenotifications/cluster-upgrade\": http2: client connection lost\nDownloadsCustomRouteSyncDegraded: Delete \"https://172.30.0.1:443/apis/route.openshift.io/v1/namespaces/openshift-console/routes/downloads-custom\": http2: client connection lost\nCLIAuthStatusHandlerDegraded: Patch \"https://172.30.0.1:443/apis/config.openshift.io/v1/authentications/cluster/status?fieldManager=CLIOIDCClientStatusController&force=true\": http2: client connection lost\nConsoleCustomRouteSyncDegraded: Delete \"https://172.30.0.1:443/apis/route.openshift.io/v1/namespaces/openshift-console/routes/console-custom\": http2: client connection lost",Upgradeable changed from True to False ("ConsoleCustomRouteSyncUpgradeable: Delete \"https://172.30.0.1:443/apis/route.openshift.io/v1/namespaces/openshift-console/routes/console-custom\": http2: client connection lost\nDownloadsCustomRouteSyncUpgradeable: Delete \"https://172.30.0.1:443/apis/route.openshift.io/v1/namespaces/openshift-console/routes/downloads-custom\": http2: client connection lost") I0319 19:36:55.796272 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"ConsoleNotificationSyncDegraded: Delete \"https://172.30.0.1:443/apis/console.openshift.io/v1/consolenotifications/cluster-upgrade\": http2: client connection lost\nDownloadsCustomRouteSyncDegraded: Delete \"https://172.30.0.1:443/apis/route.openshift.io/v1/namespaces/openshift-console/routes/downloads-custom\": http2: client connection lost\nConsoleCustomRouteSyncDegraded: Delete \"https://172.30.0.1:443/apis/route.openshift.io/v1/namespaces/openshift-console/routes/console-custom\": http2: client connection lost","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:25:30Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:53Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-03-19T19:36:55Z","message":"ConsoleCustomRouteSyncUpgradeable: Delete \"https://172.30.0.1:443/apis/route.openshift.io/v1/namespaces/openshift-console/routes/console-custom\": http2: client connection lost\nDownloadsCustomRouteSyncUpgradeable: Delete \"https://172.30.0.1:443/apis/route.openshift.io/v1/namespaces/openshift-console/routes/downloads-custom\": http2: client connection lost","reason":"ConsoleCustomRouteSync_FailedDeleteCustomRoutes::DownloadsCustomRouteSync_FailedDeleteCustomRoutes","status":"False","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0319 19:36:55.972789 1 request.go:752] "Waited before sending request" delay="1.178357812s" reason="client-side throttling, not priority and fairness" verb="GET" URL="https://172.30.0.1:443/api/v1/namespaces/openshift-console/configmaps?resourceVersion=27258" I0319 19:36:55.981795 1 reflector.go:436] "Caches populated" type="*v1.Console" reflector="github.com/openshift/client-go/config/informers/externalversions/factory.go:125" I0319 19:36:55.983150 1 reflector.go:436] "Caches populated" type="*v1.ConfigMap" reflector="k8s.io/client-go/informers/factory.go:160" I0319 19:36:56.178587 1 reflector.go:436] "Caches populated" type="*v1.Proxy" reflector="github.com/openshift/client-go/config/informers/externalversions/factory.go:125" I0319 19:36:56.181162 1 reflector.go:436] "Caches populated" type="*v1.ConfigMap" reflector="k8s.io/client-go/informers/factory.go:160" I0319 19:36:56.376082 1 reflector.go:436] "Caches populated" type="*v1.ConfigMap" reflector="k8s.io/client-go/informers/factory.go:160" I0319 19:36:56.575983 1 reflector.go:436] "Caches populated" type="*v1.Secret" reflector="k8s.io/client-go/informers/factory.go:160" E0319 19:36:56.783731 1 base_controller.go:279] "Unhandled Error" err="StatusSyncer_console reconciliation failed: Operation cannot be fulfilled on clusteroperators.config.openshift.io \"console\": the object has been modified; please apply your changes to the latest version and try again" I0319 19:36:56.790374 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"ConsoleNotificationSyncDegraded: Delete \"https://172.30.0.1:443/apis/console.openshift.io/v1/consolenotifications/cluster-upgrade\": http2: client connection lost","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:25:30Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:53Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-03-19T19:36:56Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0319 19:36:56.979112 1 reflector.go:436] "Caches populated" type="*v1.Service" reflector="k8s.io/client-go/informers/factory.go:160" I0319 19:36:57.172925 1 request.go:752] "Waited before sending request" delay="1.846138245s" reason="client-side throttling, not priority and fairness" verb="GET" URL="https://172.30.0.1:443/api/v1/nodes?resourceVersion=27831" I0319 19:36:57.176221 1 reflector.go:436] "Caches populated" type="*v1.Node" reflector="k8s.io/client-go/informers/factory.go:160" I0319 19:36:57.389400 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Degraded message changed from "ConsoleNotificationSyncDegraded: Delete \"https://172.30.0.1:443/apis/console.openshift.io/v1/consolenotifications/cluster-upgrade\": http2: client connection lost\nDownloadsCustomRouteSyncDegraded: Delete \"https://172.30.0.1:443/apis/route.openshift.io/v1/namespaces/openshift-console/routes/downloads-custom\": http2: client connection lost\nCLIAuthStatusHandlerDegraded: Patch \"https://172.30.0.1:443/apis/config.openshift.io/v1/authentications/cluster/status?fieldManager=CLIOIDCClientStatusController&force=true\": http2: client connection lost\nConsoleCustomRouteSyncDegraded: Delete \"https://172.30.0.1:443/apis/route.openshift.io/v1/namespaces/openshift-console/routes/console-custom\": http2: client connection lost" to "ConsoleNotificationSyncDegraded: Delete \"https://172.30.0.1:443/apis/console.openshift.io/v1/consolenotifications/cluster-upgrade\": http2: client connection lost",Upgradeable changed from False to True ("All is well") I0319 19:36:57.396745 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"ConsoleNotificationSyncDegraded: Delete \"https://172.30.0.1:443/apis/console.openshift.io/v1/consolenotifications/cluster-upgrade\": http2: client connection lost","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:25:30Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:53Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-03-19T19:36:57Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} E0319 19:36:57.984737 1 base_controller.go:279] "Unhandled Error" err="StatusSyncer_console reconciliation failed: Operation cannot be fulfilled on clusteroperators.config.openshift.io \"console\": the object has been modified; please apply your changes to the latest version and try again" I0319 19:37:24.205277 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-03-19T19:20:24Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-03-19T19:25:30Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-03-19T19:20:53Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-03-19T19:36:56Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-03-19T19:20:24Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0319 19:37:24.218621 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"60a7e891-6c03-4a9d-ab0a-3d4290eeb5d8", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Degraded message changed from "ConsoleNotificationSyncDegraded: Delete \"https://172.30.0.1:443/apis/console.openshift.io/v1/consolenotifications/cluster-upgrade\": http2: client connection lost" to "All is well"