I0417 18:44:07.427396 1 cmd.go:253] Using service-serving-cert provided certificates I0417 18:44:07.427512 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}. I0417 18:44:07.427829 1 observer_polling.go:159] Starting file observer I0417 18:44:07.450471 1 builder.go:304] console-operator version - I0417 18:44:07.678225 1 secure_serving.go:57] Forcing use of http/1.1 only W0417 18:44:07.678245 1 secure_serving.go:69] Use of insecure cipher 'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256' detected. W0417 18:44:07.678250 1 secure_serving.go:69] Use of insecure cipher 'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256' detected. W0417 18:44:07.678254 1 secure_serving.go:69] Use of insecure cipher 'TLS_RSA_WITH_AES_128_GCM_SHA256' detected. W0417 18:44:07.678258 1 secure_serving.go:69] Use of insecure cipher 'TLS_RSA_WITH_AES_256_GCM_SHA384' detected. W0417 18:44:07.678260 1 secure_serving.go:69] Use of insecure cipher 'TLS_RSA_WITH_AES_128_CBC_SHA' detected. W0417 18:44:07.678262 1 secure_serving.go:69] Use of insecure cipher 'TLS_RSA_WITH_AES_256_CBC_SHA' detected. I0417 18:44:07.683594 1 leaderelection.go:257] attempting to acquire leader lease openshift-console-operator/console-operator-lock... I0417 18:44:07.685819 1 requestheader_controller.go:180] Starting RequestHeaderAuthRequestController I0417 18:44:07.685872 1 shared_informer.go:350] "Waiting for caches to sync" controller="RequestHeaderAuthRequestController" I0417 18:44:07.685890 1 configmap_cafile_content.go:205] "Starting controller" name="client-ca::kube-system::extension-apiserver-authentication::client-ca-file" I0417 18:44:07.685909 1 shared_informer.go:350] "Waiting for caches to sync" controller="client-ca::kube-system::extension-apiserver-authentication::client-ca-file" I0417 18:44:07.685909 1 configmap_cafile_content.go:205] "Starting controller" name="client-ca::kube-system::extension-apiserver-authentication::requestheader-client-ca-file" I0417 18:44:07.685939 1 shared_informer.go:350] "Waiting for caches to sync" controller="client-ca::kube-system::extension-apiserver-authentication::requestheader-client-ca-file" I0417 18:44:07.686100 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" I0417 18:44:07.686497 1 secure_serving.go:211] Serving securely on [::]:8443 I0417 18:44:07.686560 1 tlsconfig.go:243] "Starting DynamicServingCertificateController" I0417 18:44:07.696198 1 leaderelection.go:271] successfully acquired lease openshift-console-operator/console-operator-lock I0417 18:44:07.696248 1 event.go:377] Event(v1.ObjectReference{Kind:"Lease", Namespace:"openshift-console-operator", Name:"console-operator-lock", UID:"86ea77e2-ef2e-4e7c-b232-72710d7451fe", APIVersion:"coordination.k8s.io/v1", ResourceVersion:"12552", FieldPath:""}): type: 'Normal' reason: 'LeaderElection' console-operator-575cd97545-zv7tw_a440b4f7-1053-4fef-ae9e-7342bbfa5500 became leader I0417 18:44:07.697134 1 simple_featuregate_reader.go:171] Starting feature-gate-detector I0417 18:44:07.700766 1 starter.go:213] FeatureGates initialized: knownFeatureGates=[AdditionalRoutingCapabilities AdminNetworkPolicy AlibabaPlatform AzureWorkloadIdentity BuildCSIVolumes CPMSMachineNamePrefix ConsolePluginContentSecurityPolicy ExternalOIDC ExternalOIDCWithUIDAndExtraClaimMappings GatewayAPI GatewayAPIController HighlyAvailableArbiter ImageVolume IngressControllerLBSubnetsAWS KMSv1 MachineConfigNodes ManagedBootImages ManagedBootImagesAWS MetricsCollectionProfiles NetworkDiagnosticsConfig NetworkLiveMigration NetworkSegmentation PinnedImages ProcMountType RouteAdvertisements RouteExternalCertificate ServiceAccountTokenNodeBinding SetEIPForNLBIngressController SigstoreImageVerification StoragePerformantSecurityPolicy UpgradeStatus UserNamespacesPodSecurityStandards UserNamespacesSupport VSphereMultiDisk VSphereMultiNetworks AWSClusterHostedDNS AWSClusterHostedDNSInstall AWSDedicatedHosts AWSServiceLBNetworkSecurityGroup AutomatedEtcdBackup AzureClusterHostedDNSInstall AzureDedicatedHosts AzureMultiDisk BootImageSkewEnforcement BootcNodeManagement ClusterAPIInstall ClusterAPIInstallIBMCloud ClusterMonitoringConfig ClusterVersionOperatorConfiguration DNSNameResolver DualReplica DyanmicServiceEndpointIBMCloud DynamicResourceAllocation EtcdBackendQuota EventedPLEG Example Example2 ExternalSnapshotMetadata GCPClusterHostedDNS GCPClusterHostedDNSInstall GCPCustomAPIEndpoints GCPCustomAPIEndpointsInstall ImageModeStatusReporting ImageStreamImportMode IngressControllerDynamicConfigurationManager InsightsConfig InsightsConfigAPI InsightsOnDemandDataGather IrreconcilableMachineConfig KMSEncryptionProvider MachineAPIMigration MachineAPIOperatorDisableMachineHealthCheckController ManagedBootImagesAzure ManagedBootImagesvSphere MaxUnavailableStatefulSet MinimumKubeletVersion MixedCPUsAllocation MultiArchInstallAzure MultiDiskSetup MutatingAdmissionPolicy NewOLM NewOLMCatalogdAPIV1Metas NewOLMOwnSingleNamespace NewOLMPreflightPermissionChecks NewOLMWebhookProviderOpenshiftServiceCA NoRegistryClusterOperations NodeSwap NutanixMultiSubnets OVNObservability OpenShiftPodSecurityAdmission PreconfiguredUDNAddresses SELinuxMount ShortCertRotation SignatureStores SigstoreImageVerificationPKI TranslateStreamCloseWebsocketRequests VSphereConfigurableMaxAllowedBlockVolumesPerNode VSphereHostVMGroupZonal VSphereMixedNodeEnv VolumeAttributesClass VolumeGroupSnapshot] I0417 18:44:07.700796 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", 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", "GatewayAPI", "GatewayAPIController", "HighlyAvailableArbiter", "ImageVolume", "IngressControllerLBSubnetsAWS", "KMSv1", "MachineConfigNodes", "ManagedBootImages", "ManagedBootImagesAWS", "MetricsCollectionProfiles", "NetworkDiagnosticsConfig", "NetworkLiveMigration", "NetworkSegmentation", "PinnedImages", "ProcMountType", "RouteAdvertisements", "RouteExternalCertificate", "ServiceAccountTokenNodeBinding", "SetEIPForNLBIngressController", "SigstoreImageVerification", "StoragePerformantSecurityPolicy", "UpgradeStatus", "UserNamespacesPodSecurityStandards", "UserNamespacesSupport", "VSphereMultiDisk", "VSphereMultiNetworks"}, Disabled:[]v1.FeatureGateName{"AWSClusterHostedDNS", "AWSClusterHostedDNSInstall", "AWSDedicatedHosts", "AWSServiceLBNetworkSecurityGroup", "AutomatedEtcdBackup", "AzureClusterHostedDNSInstall", "AzureDedicatedHosts", "AzureMultiDisk", "BootImageSkewEnforcement", "BootcNodeManagement", "ClusterAPIInstall", "ClusterAPIInstallIBMCloud", "ClusterMonitoringConfig", "ClusterVersionOperatorConfiguration", "DNSNameResolver", "DualReplica", "DyanmicServiceEndpointIBMCloud", "DynamicResourceAllocation", "EtcdBackendQuota", "EventedPLEG", "Example", "Example2", "ExternalSnapshotMetadata", "GCPClusterHostedDNS", "GCPClusterHostedDNSInstall", "GCPCustomAPIEndpoints", "GCPCustomAPIEndpointsInstall", "ImageModeStatusReporting", "ImageStreamImportMode", "IngressControllerDynamicConfigurationManager", "InsightsConfig", "InsightsConfigAPI", "InsightsOnDemandDataGather", "IrreconcilableMachineConfig", "KMSEncryptionProvider", "MachineAPIMigration", "MachineAPIOperatorDisableMachineHealthCheckController", "ManagedBootImagesAzure", "ManagedBootImagesvSphere", "MaxUnavailableStatefulSet", "MinimumKubeletVersion", "MixedCPUsAllocation", "MultiArchInstallAzure", "MultiDiskSetup", "MutatingAdmissionPolicy", "NewOLM", "NewOLMCatalogdAPIV1Metas", "NewOLMOwnSingleNamespace", "NewOLMPreflightPermissionChecks", "NewOLMWebhookProviderOpenshiftServiceCA", "NoRegistryClusterOperations", "NodeSwap", "NutanixMultiSubnets", "OVNObservability", "OpenShiftPodSecurityAdmission", "PreconfiguredUDNAddresses", "SELinuxMount", "ShortCertRotation", "SignatureStores", "SigstoreImageVerificationPKI", "TranslateStreamCloseWebsocketRequests", "VSphereConfigurableMaxAllowedBlockVolumesPerNode", "VSphereHostVMGroupZonal", "VSphereMixedNodeEnv", "VolumeAttributesClass", "VolumeGroupSnapshot"}} I0417 18:44:07.720110 1 base_controller.go:76] Waiting for caches to sync for InformerWithSwitchController I0417 18:44:07.720129 1 base_controller.go:82] Caches are synced for InformerWithSwitchController I0417 18:44:07.720136 1 base_controller.go:119] Starting #1 worker of InformerWithSwitchController controller ... I0417 18:44:07.720475 1 base_controller.go:76] Waiting for caches to sync for console I0417 18:44:07.720726 1 base_controller.go:76] Waiting for caches to sync for StatusSyncer_console I0417 18:44:07.721101 1 base_controller.go:76] Waiting for caches to sync for console-ManagementState I0417 18:44:07.721613 1 base_controller.go:76] Waiting for caches to sync for ConsoleCLIDownloadsController I0417 18:44:07.721639 1 base_controller.go:76] Waiting for caches to sync for PodDisruptionBudgetController I0417 18:44:07.721658 1 base_controller.go:76] Waiting for caches to sync for ConsoleDownloadsDeploymentSyncController I0417 18:44:07.721706 1 base_controller.go:76] Waiting for caches to sync for HealthCheckController I0417 18:44:07.721790 1 base_controller.go:76] Waiting for caches to sync for OAuthClientsController I0417 18:44:07.721804 1 base_controller.go:76] Waiting for caches to sync for PodDisruptionBudgetController I0417 18:44:07.721814 1 base_controller.go:76] Waiting for caches to sync for ConsoleRouteController I0417 18:44:07.721823 1 base_controller.go:76] Waiting for caches to sync for UnsupportedConfigOverridesController-UnsupportedConfigOverrides I0417 18:44:07.721870 1 base_controller.go:76] Waiting for caches to sync for ConsoleServiceController I0417 18:44:07.721895 1 base_controller.go:76] Waiting for caches to sync for DownloadsRouteController I0417 18:44:07.721918 1 base_controller.go:76] Waiting for caches to sync for ConsoleServiceController I0417 18:44:07.721931 1 base_controller.go:76] Waiting for caches to sync for ConsoleOperator I0417 18:44:07.721957 1 base_controller.go:76] Waiting for caches to sync for StorageVersionMigrationController I0417 18:44:07.721983 1 base_controller.go:76] Waiting for caches to sync for OIDCSetupController I0417 18:44:07.722012 1 base_controller.go:76] Waiting for caches to sync for CLIOIDCClientStatusController I0417 18:44:07.722026 1 base_controller.go:76] Waiting for caches to sync for ClusterUpgradeNotificationController I0417 18:44:07.722032 1 base_controller.go:82] Caches are synced for ClusterUpgradeNotificationController I0417 18:44:07.722040 1 base_controller.go:119] Starting #1 worker of ClusterUpgradeNotificationController controller ... I0417 18:44:07.722040 1 base_controller.go:76] Waiting for caches to sync for OAuthClientSecretController I0417 18:44:07.722048 1 base_controller.go:76] Waiting for caches to sync for RemoveStaleConditionsController-RemoveStaleConditions I0417 18:44:07.722088 1 base_controller.go:76] Waiting for caches to sync for LoggingSyncer E0417 18:44:07.722145 1 base_controller.go:279] "Unhandled Error" err="ClusterUpgradeNotificationController reconciliation failed: console.operator.openshift.io \"cluster\" not found" E0417 18:44:07.729670 1 base_controller.go:279] "Unhandled Error" err="ClusterUpgradeNotificationController reconciliation failed: console.operator.openshift.io \"cluster\" not found" I0417 18:44:07.786630 1 shared_informer.go:357] "Caches are synced" controller="RequestHeaderAuthRequestController" I0417 18:44:07.786653 1 shared_informer.go:357] "Caches are synced" controller="client-ca::kube-system::extension-apiserver-authentication::client-ca-file" I0417 18:44:07.786630 1 shared_informer.go:357] "Caches are synced" controller="client-ca::kube-system::extension-apiserver-authentication::requestheader-client-ca-file" I0417 18:44:07.820878 1 base_controller.go:82] Caches are synced for StatusSyncer_console I0417 18:44:07.820898 1 base_controller.go:119] Starting #1 worker of StatusSyncer_console controller ... I0417 18:44:07.821194 1 base_controller.go:82] Caches are synced for console-ManagementState I0417 18:44:07.821207 1 base_controller.go:119] Starting #1 worker of console-ManagementState controller ... I0417 18:44:07.822033 1 base_controller.go:82] Caches are synced for HealthCheckController I0417 18:44:07.822044 1 base_controller.go:119] Starting #1 worker of HealthCheckController controller ... I0417 18:44:07.822053 1 base_controller.go:82] Caches are synced for ConsoleDownloadsDeploymentSyncController I0417 18:44:07.822080 1 base_controller.go:82] Caches are synced for PodDisruptionBudgetController I0417 18:44:07.822091 1 base_controller.go:119] Starting #1 worker of PodDisruptionBudgetController controller ... I0417 18:44:07.822082 1 base_controller.go:119] Starting #1 worker of ConsoleDownloadsDeploymentSyncController controller ... I0417 18:44:07.822107 1 base_controller.go:82] Caches are synced for UnsupportedConfigOverridesController-UnsupportedConfigOverrides I0417 18:44:07.822113 1 base_controller.go:119] Starting #1 worker of UnsupportedConfigOverridesController-UnsupportedConfigOverrides controller ... I0417 18:44:07.822112 1 base_controller.go:82] Caches are synced for StorageVersionMigrationController I0417 18:44:07.822128 1 base_controller.go:119] Starting #1 worker of StorageVersionMigrationController controller ... I0417 18:44:07.822139 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Warning' reason: 'FastControllerResync' Controller "HealthCheckController" resync interval is set to 30s which might lead to client request throttling I0417 18:44:07.822113 1 base_controller.go:82] Caches are synced for PodDisruptionBudgetController I0417 18:44:07.822175 1 base_controller.go:119] Starting #1 worker of PodDisruptionBudgetController controller ... I0417 18:44:07.822238 1 base_controller.go:82] Caches are synced for ConsoleCLIDownloadsController I0417 18:44:07.822257 1 base_controller.go:119] Starting #1 worker of ConsoleCLIDownloadsController controller ... I0417 18:44:07.822288 1 base_controller.go:82] Caches are synced for OAuthClientSecretController I0417 18:44:07.822302 1 base_controller.go:119] Starting #1 worker of OAuthClientSecretController controller ... E0417 18:44:07.822335 1 base_controller.go:279] "Unhandled Error" err="ConsoleCLIDownloadsController reconciliation failed: route.route.openshift.io \"downloads\" not found" I0417 18:44:07.822396 1 base_controller.go:82] Caches are synced for CLIOIDCClientStatusController I0417 18:44:07.822440 1 base_controller.go:82] Caches are synced for DownloadsRouteController I0417 18:44:07.822446 1 base_controller.go:119] Starting #1 worker of CLIOIDCClientStatusController controller ... I0417 18:44:07.822404 1 base_controller.go:82] Caches are synced for OIDCSetupController I0417 18:44:07.822465 1 base_controller.go:119] Starting #1 worker of OIDCSetupController controller ... I0417 18:44:07.822444 1 base_controller.go:82] Caches are synced for ConsoleOperator I0417 18:44:07.822482 1 base_controller.go:119] Starting #1 worker of ConsoleOperator controller ... I0417 18:44:07.822415 1 base_controller.go:82] Caches are synced for RemoveStaleConditionsController-RemoveStaleConditions I0417 18:44:07.822495 1 base_controller.go:119] Starting #1 worker of RemoveStaleConditionsController-RemoveStaleConditions controller ... I0417 18:44:07.822417 1 base_controller.go:82] Caches are synced for ConsoleRouteController I0417 18:44:07.822506 1 base_controller.go:119] Starting #1 worker of ConsoleRouteController controller ... I0417 18:44:07.822425 1 base_controller.go:82] Caches are synced for OAuthClientsController I0417 18:44:07.822550 1 base_controller.go:119] Starting #1 worker of OAuthClientsController controller ... I0417 18:44:07.822425 1 base_controller.go:82] Caches are synced for ConsoleServiceController I0417 18:44:07.822568 1 base_controller.go:119] Starting #1 worker of ConsoleServiceController controller ... I0417 18:44:07.822445 1 base_controller.go:82] Caches are synced for LoggingSyncer I0417 18:44:07.823025 1 base_controller.go:119] Starting #1 worker of LoggingSyncer controller ... I0417 18:44:07.822454 1 base_controller.go:119] Starting #1 worker of DownloadsRouteController controller ... I0417 18:44:07.822457 1 base_controller.go:82] Caches are synced for ConsoleServiceController I0417 18:44:07.823454 1 base_controller.go:119] Starting #1 worker of ConsoleServiceController controller ... E0417 18:44:07.824096 1 status.go:130] SyncLoopRefreshDegraded FailedGet route.route.openshift.io "console" not found E0417 18:44:07.829366 1 base_controller.go:279] "Unhandled Error" err="ConsoleCLIDownloadsController reconciliation failed: route.route.openshift.io \"downloads\" not found" I0417 18:44:07.831926 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorVersionChanged' clusteroperator/console version "operator" changed from "" to "4.20.8" I0417 18:44:07.832296 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-04-17T18:44:07Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-04-17T18:44:07Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"Available"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"Upgradeable"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}],"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":"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":"oauth.openshift.io","name":"console","resource":"oauthclients"},{"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.20.8"}]}} E0417 18:44:07.840943 1 base_controller.go:279] "Unhandled Error" err="ConsoleCLIDownloadsController reconciliation failed: route.route.openshift.io \"downloads\" not found" I0417 18:44:07.841097 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'PodDisruptionBudgetCreated' Created PodDisruptionBudget.policy/console -n openshift-console because it was missing E0417 18:44:07.844869 1 base_controller.go:279] "Unhandled Error" err="ConsoleOperator reconciliation failed: route.route.openshift.io \"console\" not found" E0417 18:44:07.845251 1 base_controller.go:279] "Unhandled Error" err="ConsoleCLIDownloadsController reconciliation failed: route.route.openshift.io \"downloads\" not found" E0417 18:44:07.846054 1 status.go:130] SyncLoopRefreshDegraded FailedGet route.route.openshift.io "console" not found E0417 18:44:07.846179 1 base_controller.go:279] "Unhandled Error" err="ConsoleOperator reconciliation failed: route.route.openshift.io \"console\" not found" I0417 18:44:07.848105 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'PodDisruptionBudgetCreated' Created PodDisruptionBudget.policy/downloads -n openshift-console because it was missing E0417 18:44:07.851974 1 status.go:130] SyncLoopRefreshDegraded FailedGet route.route.openshift.io "console" not found E0417 18:44:07.852039 1 base_controller.go:279] "Unhandled Error" err="ConsoleOperator reconciliation failed: route.route.openshift.io \"console\" not found" I0417 18:44:07.852791 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", 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" "" "monitoring-plugin"} {"" "namespaces" "" "openshift-monitoring"} {"console.openshift.io" "consoleplugins" "" "networking-console-plugin"} {"" "namespaces" "" "openshift-network-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"} {"oauth.openshift.io" "oauthclients" "" "console"} {"" "namespaces" "" "openshift-console-operator"} {"" "namespaces" "" "openshift-console"} {"" "configmaps" "openshift-config-managed" "console-public"}],status.versions changed from [] to [{"operator" "4.20.8"}] I0417 18:44:07.854171 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentCreated' Created Deployment.apps/downloads -n openshift-console because it was missing E0417 18:44:07.862845 1 base_controller.go:279] "Unhandled Error" err="ConsoleCLIDownloadsController reconciliation failed: route.route.openshift.io \"downloads\" not found" E0417 18:44:07.871840 1 base_controller.go:279] "Unhandled Error" err="ConsoleCLIDownloadsController reconciliation failed: route.route.openshift.io \"downloads\" not found" E0417 18:44:07.871921 1 status.go:130] SyncLoopRefreshDegraded FailedGet route.route.openshift.io "console" not found E0417 18:44:07.872021 1 base_controller.go:279] "Unhandled Error" err="ConsoleOperator reconciliation failed: route.route.openshift.io \"console\" not found" E0417 18:44:07.874648 1 status.go:130] SyncLoopRefreshDegraded FailedGet route.route.openshift.io "console" not found E0417 18:44:07.874723 1 base_controller.go:279] "Unhandled Error" err="ConsoleOperator reconciliation failed: route.route.openshift.io \"console\" not found" E0417 18:44:07.882729 1 status.go:130] SyncLoopRefreshDegraded FailedIngress no ingress for host console-openshift-console.apps.rosa.kx-d9647d433d.34fv.p3.openshiftapps.com in route console in namespace openshift-console E0417 18:44:07.883226 1 status.go:130] ConsoleDefaultRouteSyncDegraded FailedAdmitDefaultRoute no ingress for host console-openshift-console.apps.rosa.kx-d9647d433d.34fv.p3.openshiftapps.com in route console in namespace openshift-console E0417 18:44:07.883242 1 status.go:130] ConsoleDefaultRouteSyncUpgradeable FailedAdmitDefaultRoute no ingress for host console-openshift-console.apps.rosa.kx-d9647d433d.34fv.p3.openshiftapps.com in route console in namespace openshift-console E0417 18:44:07.888816 1 base_controller.go:279] "Unhandled Error" err="ConsoleCLIDownloadsController reconciliation failed: no ingress for host downloads-openshift-console.apps.rosa.kx-d9647d433d.34fv.p3.openshiftapps.com in route downloads in namespace openshift-console" E0417 18:44:07.891179 1 status.go:130] DownloadsDefaultRouteSyncDegraded FailedAdmitDefaultRoute no ingress for host downloads-openshift-console.apps.rosa.kx-d9647d433d.34fv.p3.openshiftapps.com in route downloads in namespace openshift-console E0417 18:44:07.891191 1 status.go:130] DownloadsDefaultRouteSyncUpgradeable FailedAdmitDefaultRoute no ingress for host downloads-openshift-console.apps.rosa.kx-d9647d433d.34fv.p3.openshiftapps.com in route downloads in namespace openshift-console E0417 18:44:07.905188 1 base_controller.go:279] "Unhandled Error" err="ConsoleCLIDownloadsController reconciliation failed: no ingress for host downloads-openshift-console.apps.rosa.kx-d9647d433d.34fv.p3.openshiftapps.com in route downloads in namespace openshift-console" E0417 18:44:07.921348 1 base_controller.go:279] "Unhandled Error" err="OAuthClientsController reconciliation failed: route.route.openshift.io \"console\" not found" E0417 18:44:07.924176 1 base_controller.go:279] "Unhandled Error" err="ConsoleCLIDownloadsController reconciliation failed: no ingress for host downloads-openshift-console.apps.rosa.kx-d9647d433d.34fv.p3.openshiftapps.com in route downloads in namespace openshift-console" I0417 18:44:07.927084 1 reflector.go:430] "Caches populated" type="*v1.ConfigMap" reflector="k8s.io/client-go/informers/factory.go:160" I0417 18:44:07.929190 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-04-17T18:44:07Z","message":"SyncLoopRefreshDegraded: route.route.openshift.io \"console\" not found","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-04-17T18:44:07Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"Available"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"Upgradeable"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0417 18:44:08.020703 1 base_controller.go:82] Caches are synced for console I0417 18:44:08.020719 1 base_controller.go:119] Starting #1 worker of console controller ... I0417 18:44:08.311902 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", 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" I0417 18:44:08.320719 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-04-17T18:44:07Z","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-04-17T18:44:07Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"Available"},{"lastTransitionTime":"2026-04-17T18:44:08Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0417 18:44:08.510506 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", 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 "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") I0417 18:44:08.516866 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-04-17T18:44:07Z","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-04-17T18:44:07Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"Available"},{"lastTransitionTime":"2026-04-17T18:44:08Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} E0417 18:44:08.707307 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" I0417 18:44:08.730220 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'ConfigMapCreated' Created ConfigMap/default-ingress-cert -n openshift-console because it was missing I0417 18:44:08.920731 1 request.go:752] "Waited before sending request" delay="1.007402105s" 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" I0417 18:44:08.930241 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'SecretCreated' Created Secret/console-oauth-config -n openshift-console because it was missing E0417 18:44:09.138638 1 base_controller.go:279] "Unhandled Error" err="OAuthClientsController reconciliation failed: secret \"console-oauth-config\" not found" I0417 18:44:09.145981 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'ServiceCreated' Created Service/downloads -n openshift-console because it was missing I0417 18:44:09.173589 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-04-17T18:44:07Z","message":"SyncLoopRefreshDegraded: route.route.openshift.io \"console\" not found\nOAuthClientsControllerDegraded: secret \"console-oauth-config\" not found","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-04-17T18:44:07Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"Available"},{"lastTransitionTime":"2026-04-17T18:44:08Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0417 18:44:09.188771 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", 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" I0417 18:44:09.274347 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-04-17T18:44:07Z","message":"SyncLoopRefreshDegraded: route.route.openshift.io \"console\" not found\nOAuthClientsControllerDegraded: secret \"console-oauth-config\" not found","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-04-17T18:44:07Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"Available"},{"lastTransitionTime":"2026-04-17T18:44:08Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} E0417 18:44:09.281459 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" I0417 18:44:09.342735 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'ServiceCreated' Created Service/console -n openshift-console because it was missing I0417 18:44:09.532599 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'ConfigMapCreated' Created ConfigMap/oauth-serving-cert -n openshift-console because it was missing I0417 18:44:10.120521 1 request.go:752] "Waited before sending request" delay="1.538724926s" 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" I0417 18:44:11.120955 1 request.go:752] "Waited before sending request" delay="1.954060498s" 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" I0417 18:44:12.121020 1 request.go:752] "Waited before sending request" delay="2.336926307s" 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" E0417 18:44:12.731213 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" I0417 18:44:12.738492 1 apps.go:155] Deployment "openshift-console/downloads" changes: {"spec":{"progressDeadlineSeconds":null,"revisionHistoryLimit":null,"template":{"spec":{"containers":[{"args":["-c","cat \u003c\u003cEOF \u003e\u003e/tmp/serve.py\nimport errno, http.server, os, re, signal, socket, sys, tarfile, tempfile, threading, time, zipfile\n\nsignal.signal(signal.SIGTERM, lambda signum, frame: sys.exit(0))\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\ntemp_dir = tempfile.mkdtemp()\nprint('serving from {}'.format(temp_dir))\nos.chdir(temp_dir)\nfor arch in ['amd64', 'arm64', 'ppc64le', 's390x']:\n os.mkdir(arch)\ncontent = ['\u003ca href=\"oc-license\"\u003elicense\u003c/a\u003e']\nos.symlink('/usr/share/openshift/LICENSE', 'oc-license')\n\nfor arch, operating_system, path in [\n ('amd64', 'linux', '/usr/share/openshift/linux_amd64/oc'),\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', 'mac', '/usr/share/openshift/mac_arm64/oc'),\n ('ppc64le', 'linux', '/usr/share/openshift/linux_ppc64le/oc'),\n ('s390x', 'linux', '/usr/share/openshift/linux_s390x/oc'),\n ]:\n basename = os.path.basename(path)\n target_path = os.path.join(arch, operating_system, basename)\n os.mkdir(os.path.join(arch, operating_system))\n os.symlink(path, target_path)\n base_root, _ = os.path.splitext(basename)\n archive_path_root = os.path.join(arch, operating_system, base_root)\n with tarfile.open('{}.tar'.format(archive_path_root), 'w') as tar:\n tar.add(path, basename)\n with zipfile.ZipFile('{}.zip'.format(archive_path_root), 'w') as zip:\n zip.write(path, basename)\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\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 ['\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)\nsock.bind(addr)\nsock.listen(5)\n\n[Thread(i, socket=sock) for i in range(100)]\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:32d4561d4bf1b3c4e3a7878f918f9c1422bab85bdf8711fbdf905d59692fee81","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}}}} I0417 18:44:12.746831 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentUpdated' Updated Deployment.apps/downloads -n openshift-console because it changed I0417 18:44:13.121182 1 request.go:752] "Waited before sending request" delay="2.338305955s" 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" I0417 18:44:14.320952 1 request.go:752] "Waited before sending request" delay="1.915887002s" 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" E0417 18:44:14.328949 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" I0417 18:44:14.349056 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'ConfigMapCreated' Created ConfigMap/console-config -n openshift-console because it was missing E0417 18:44:14.389426 1 status.go:130] SyncLoopRefreshProgressing InProgress changes made during sync updates, additional sync expected E0417 18:44:14.389438 1 status.go:130] DeploymentAvailable InsufficientReplicas 0 replicas available for console deployment I0417 18:44:14.389503 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentCreated' Created Deployment.apps/console -n openshift-console because it was missing I0417 18:44:14.419269 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'ConfigMapCreated' Created ConfigMap/console-public -n openshift-config-managed because it was missing E0417 18:44:14.530921 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" E0417 18:44:14.929870 1 base_controller.go:279] "Unhandled Error" err="DownloadsRouteController 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" I0417 18:44:15.321112 1 request.go:752] "Waited before sending request" delay="1.938557272s" 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" E0417 18:44:15.529457 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" E0417 18:44:16.134512 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" I0417 18:44:16.520766 1 request.go:752] "Waited before sending request" delay="1.972054938s" 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" E0417 18:44:17.130542 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" I0417 18:44:17.521590 1 request.go:752] "Waited before sending request" delay="1.937251437s" 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" E0417 18:44:17.931258 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" I0417 18:44:18.720949 1 request.go:752] "Waited before sending request" delay="1.779892965s" 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" E0417 18:44:19.337439 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" I0417 18:44:19.347111 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-04-17T18:44:07Z","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-04-17T18:44:07Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"Available"},{"lastTransitionTime":"2026-04-17T18:44:08Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0417 18:44:19.365982 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", 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" I0417 18:44:19.920194 1 request.go:752] "Waited before sending request" delay="1.535541004s" 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" E0417 18:44:20.330818 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" I0417 18:44:20.337908 1 apps.go:155] Deployment "openshift-console/downloads" changes: {"spec":{"progressDeadlineSeconds":null,"revisionHistoryLimit":null,"template":{"spec":{"containers":[{"args":["-c","cat \u003c\u003cEOF \u003e\u003e/tmp/serve.py\nimport errno, http.server, os, re, signal, socket, sys, tarfile, tempfile, threading, time, zipfile\n\nsignal.signal(signal.SIGTERM, lambda signum, frame: sys.exit(0))\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\ntemp_dir = tempfile.mkdtemp()\nprint('serving from {}'.format(temp_dir))\nos.chdir(temp_dir)\nfor arch in ['amd64', 'arm64', 'ppc64le', 's390x']:\n os.mkdir(arch)\ncontent = ['\u003ca href=\"oc-license\"\u003elicense\u003c/a\u003e']\nos.symlink('/usr/share/openshift/LICENSE', 'oc-license')\n\nfor arch, operating_system, path in [\n ('amd64', 'linux', '/usr/share/openshift/linux_amd64/oc'),\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', 'mac', '/usr/share/openshift/mac_arm64/oc'),\n ('ppc64le', 'linux', '/usr/share/openshift/linux_ppc64le/oc'),\n ('s390x', 'linux', '/usr/share/openshift/linux_s390x/oc'),\n ]:\n basename = os.path.basename(path)\n target_path = os.path.join(arch, operating_system, basename)\n os.mkdir(os.path.join(arch, operating_system))\n os.symlink(path, target_path)\n base_root, _ = os.path.splitext(basename)\n archive_path_root = os.path.join(arch, operating_system, base_root)\n with tarfile.open('{}.tar'.format(archive_path_root), 'w') as tar:\n tar.add(path, basename)\n with zipfile.ZipFile('{}.zip'.format(archive_path_root), 'w') as zip:\n zip.write(path, basename)\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\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 ['\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)\nsock.bind(addr)\nsock.listen(5)\n\n[Thread(i, socket=sock) for i in range(100)]\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:32d4561d4bf1b3c4e3a7878f918f9c1422bab85bdf8711fbdf905d59692fee81","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}}}} I0417 18:44:20.346227 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentUpdated' Updated Deployment.apps/downloads -n openshift-console because it changed I0417 18:44:20.920218 1 request.go:752] "Waited before sending request" delay="1.567693232s" 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" E0417 18:44:21.330606 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" I0417 18:44:21.351542 1 apps.go:155] Deployment "openshift-console/console" changes: {"metadata":{"annotations":{"console.openshift.io/service-ca-config-version":"12971","console.openshift.io/trusted-ca-config-version":"13010","operator.openshift.io/spec-hash":"684e2a09407ad6974403e74f712303948687df1adec6f6e23d8fc64c23c41872"}},"spec":{"progressDeadlineSeconds":null,"revisionHistoryLimit":null,"template":{"metadata":{"annotations":{"console.openshift.io/service-ca-config-version":"12971","console.openshift.io/trusted-ca-config-version":"13010"}},"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:3d6ea9e1633f38070718a1357fcb80e6cb3932aafcc4d65e659795b186c5da15","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"}]}}}} E0417 18:44:21.364333 1 status.go:130] SyncLoopRefreshProgressing InProgress changes made during sync updates, additional sync expected E0417 18:44:21.364347 1 status.go:130] DeploymentAvailable InsufficientReplicas 0 replicas available for console deployment I0417 18:44:21.364418 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentUpdated' Updated Deployment.apps/console -n openshift-console because it changed E0417 18:44:21.534594 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" I0417 18:44:21.920907 1 request.go:752] "Waited before sending request" delay="1.516097532s" 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" E0417 18:44:21.931780 1 base_controller.go:279] "Unhandled Error" err="DownloadsRouteController 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" I0417 18:44:22.344348 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-04-17T18:44:07Z","message":"SyncLoopRefreshDegraded: route.route.openshift.io \"console\" not found","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-04-17T18:44:07Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"Available"},{"lastTransitionTime":"2026-04-17T18:44:08Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0417 18:44:22.356736 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", 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" E0417 18:44:22.530459 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" I0417 18:44:23.120987 1 request.go:752] "Waited before sending request" delay="1.564160287s" 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" I0417 18:44:24.121035 1 request.go:752] "Waited before sending request" delay="1.179087569s" 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" E0417 18:44:24.329927 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" I0417 18:44:25.321109 1 request.go:752] "Waited before sending request" delay="1.378823862s" 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" E0417 18:44:26.330711 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" I0417 18:44:26.337308 1 apps.go:155] Deployment "openshift-console/downloads" changes: {"spec":{"progressDeadlineSeconds":null,"revisionHistoryLimit":null,"template":{"spec":{"containers":[{"args":["-c","cat \u003c\u003cEOF \u003e\u003e/tmp/serve.py\nimport errno, http.server, os, re, signal, socket, sys, tarfile, tempfile, threading, time, zipfile\n\nsignal.signal(signal.SIGTERM, lambda signum, frame: sys.exit(0))\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\ntemp_dir = tempfile.mkdtemp()\nprint('serving from {}'.format(temp_dir))\nos.chdir(temp_dir)\nfor arch in ['amd64', 'arm64', 'ppc64le', 's390x']:\n os.mkdir(arch)\ncontent = ['\u003ca href=\"oc-license\"\u003elicense\u003c/a\u003e']\nos.symlink('/usr/share/openshift/LICENSE', 'oc-license')\n\nfor arch, operating_system, path in [\n ('amd64', 'linux', '/usr/share/openshift/linux_amd64/oc'),\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', 'mac', '/usr/share/openshift/mac_arm64/oc'),\n ('ppc64le', 'linux', '/usr/share/openshift/linux_ppc64le/oc'),\n ('s390x', 'linux', '/usr/share/openshift/linux_s390x/oc'),\n ]:\n basename = os.path.basename(path)\n target_path = os.path.join(arch, operating_system, basename)\n os.mkdir(os.path.join(arch, operating_system))\n os.symlink(path, target_path)\n base_root, _ = os.path.splitext(basename)\n archive_path_root = os.path.join(arch, operating_system, base_root)\n with tarfile.open('{}.tar'.format(archive_path_root), 'w') as tar:\n tar.add(path, basename)\n with zipfile.ZipFile('{}.zip'.format(archive_path_root), 'w') as zip:\n zip.write(path, basename)\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\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 ['\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)\nsock.bind(addr)\nsock.listen(5)\n\n[Thread(i, socket=sock) for i in range(100)]\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:32d4561d4bf1b3c4e3a7878f918f9c1422bab85bdf8711fbdf905d59692fee81","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}}}} I0417 18:44:26.345245 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentUpdated' Updated Deployment.apps/downloads -n openshift-console because it changed E0417 18:44:26.732057 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" I0417 18:44:26.752723 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:3d6ea9e1633f38070718a1357fcb80e6cb3932aafcc4d65e659795b186c5da15","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"}]}}}} E0417 18:44:26.762454 1 status.go:130] SyncLoopRefreshProgressing InProgress changes made during sync updates, additional sync expected I0417 18:44:26.762536 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentUpdated' Updated Deployment.apps/console -n openshift-console because it changed E0417 18:44:26.930908 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" E0417 18:44:27.330531 1 base_controller.go:279] "Unhandled Error" err="DownloadsRouteController 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" I0417 18:44:27.548362 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-04-17T18:44:07Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-04-17T18:44:27Z","message":"SyncLoopRefreshProgressing: changes made during sync updates, additional sync expected","reason":"SyncLoopRefresh_InProgress","status":"True","type":"Progressing"},{"lastTransitionTime":"2026-04-17T18:44:27Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-04-17T18:44:08Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0417 18:44:27.560130 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", 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: changes made during sync updates, additional sync expected"),Available changed from Unknown to True ("All is well") I0417 18:44:27.565651 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:3d6ea9e1633f38070718a1357fcb80e6cb3932aafcc4d65e659795b186c5da15","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"}]}}}} E0417 18:44:27.574215 1 status.go:130] SyncLoopRefreshProgressing InProgress changes made during sync updates, additional sync expected I0417 18:44:27.574283 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentUpdated' Updated Deployment.apps/console -n openshift-console because it changed E0417 18:44:27.600626 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.20.8, 1 replicas available I0417 18:44:28.348218 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-04-17T18:44:07Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-04-17T18:44:27Z","message":"SyncLoopRefreshProgressing: working toward version 4.20.8, 1 replicas available","reason":"SyncLoopRefresh_InProgress","status":"True","type":"Progressing"},{"lastTransitionTime":"2026-04-17T18:44:27Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-04-17T18:44:08Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0417 18:44:28.360296 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Progressing message changed from "SyncLoopRefreshProgressing: changes made during sync updates, additional sync expected" to "SyncLoopRefreshProgressing: working toward version 4.20.8, 1 replicas available" E0417 18:44:28.364238 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.20.8, 1 replicas available E0417 18:44:29.167686 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.20.8, 1 replicas available E0417 18:44:29.532833 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" I0417 18:44:29.539967 1 apps.go:155] Deployment "openshift-console/downloads" changes: {"spec":{"progressDeadlineSeconds":null,"revisionHistoryLimit":null,"template":{"spec":{"containers":[{"args":["-c","cat \u003c\u003cEOF \u003e\u003e/tmp/serve.py\nimport errno, http.server, os, re, signal, socket, sys, tarfile, tempfile, threading, time, zipfile\n\nsignal.signal(signal.SIGTERM, lambda signum, frame: sys.exit(0))\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\ntemp_dir = tempfile.mkdtemp()\nprint('serving from {}'.format(temp_dir))\nos.chdir(temp_dir)\nfor arch in ['amd64', 'arm64', 'ppc64le', 's390x']:\n os.mkdir(arch)\ncontent = ['\u003ca href=\"oc-license\"\u003elicense\u003c/a\u003e']\nos.symlink('/usr/share/openshift/LICENSE', 'oc-license')\n\nfor arch, operating_system, path in [\n ('amd64', 'linux', '/usr/share/openshift/linux_amd64/oc'),\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', 'mac', '/usr/share/openshift/mac_arm64/oc'),\n ('ppc64le', 'linux', '/usr/share/openshift/linux_ppc64le/oc'),\n ('s390x', 'linux', '/usr/share/openshift/linux_s390x/oc'),\n ]:\n basename = os.path.basename(path)\n target_path = os.path.join(arch, operating_system, basename)\n os.mkdir(os.path.join(arch, operating_system))\n os.symlink(path, target_path)\n base_root, _ = os.path.splitext(basename)\n archive_path_root = os.path.join(arch, operating_system, base_root)\n with tarfile.open('{}.tar'.format(archive_path_root), 'w') as tar:\n tar.add(path, basename)\n with zipfile.ZipFile('{}.zip'.format(archive_path_root), 'w') as zip:\n zip.write(path, basename)\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\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 ['\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)\nsock.bind(addr)\nsock.listen(5)\n\n[Thread(i, socket=sock) for i in range(100)]\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:32d4561d4bf1b3c4e3a7878f918f9c1422bab85bdf8711fbdf905d59692fee81","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}}}} I0417 18:44:29.547530 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentUpdated' Updated Deployment.apps/downloads -n openshift-console because it changed I0417 18:44:29.759150 1 apps.go:155] Deployment "openshift-console/downloads" changes: {"spec":{"progressDeadlineSeconds":null,"revisionHistoryLimit":null,"template":{"spec":{"containers":[{"args":["-c","cat \u003c\u003cEOF \u003e\u003e/tmp/serve.py\nimport errno, http.server, os, re, signal, socket, sys, tarfile, tempfile, threading, time, zipfile\n\nsignal.signal(signal.SIGTERM, lambda signum, frame: sys.exit(0))\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\ntemp_dir = tempfile.mkdtemp()\nprint('serving from {}'.format(temp_dir))\nos.chdir(temp_dir)\nfor arch in ['amd64', 'arm64', 'ppc64le', 's390x']:\n os.mkdir(arch)\ncontent = ['\u003ca href=\"oc-license\"\u003elicense\u003c/a\u003e']\nos.symlink('/usr/share/openshift/LICENSE', 'oc-license')\n\nfor arch, operating_system, path in [\n ('amd64', 'linux', '/usr/share/openshift/linux_amd64/oc'),\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', 'mac', '/usr/share/openshift/mac_arm64/oc'),\n ('ppc64le', 'linux', '/usr/share/openshift/linux_ppc64le/oc'),\n ('s390x', 'linux', '/usr/share/openshift/linux_s390x/oc'),\n ]:\n basename = os.path.basename(path)\n target_path = os.path.join(arch, operating_system, basename)\n os.mkdir(os.path.join(arch, operating_system))\n os.symlink(path, target_path)\n base_root, _ = os.path.splitext(basename)\n archive_path_root = os.path.join(arch, operating_system, base_root)\n with tarfile.open('{}.tar'.format(archive_path_root), 'w') as tar:\n tar.add(path, basename)\n with zipfile.ZipFile('{}.zip'.format(archive_path_root), 'w') as zip:\n zip.write(path, basename)\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\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 ['\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)\nsock.bind(addr)\nsock.listen(5)\n\n[Thread(i, socket=sock) for i in range(100)]\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:32d4561d4bf1b3c4e3a7878f918f9c1422bab85bdf8711fbdf905d59692fee81","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}}}} I0417 18:44:29.770784 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentUpdated' Updated Deployment.apps/downloads -n openshift-console because it changed E0417 18:44:29.943599 1 base_controller.go:279] "Unhandled Error" err="DownloadsRouteController 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" E0417 18:44:30.156309 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.20.8, 1 replicas available E0417 18:44:31.153748 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.20.8, 1 replicas available E0417 18:44:31.950455 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.20.8, 2 replicas available I0417 18:44:31.990814 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-04-17T18:44:07Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-04-17T18:44:27Z","message":"SyncLoopRefreshProgressing: working toward version 4.20.8, 2 replicas available","reason":"SyncLoopRefresh_InProgress","status":"True","type":"Progressing"},{"lastTransitionTime":"2026-04-17T18:44:27Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-04-17T18:44:08Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0417 18:44:32.002659 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Progressing message changed from "SyncLoopRefreshProgressing: working toward version 4.20.8, 1 replicas available" to "SyncLoopRefreshProgressing: working toward version 4.20.8, 2 replicas available" I0417 18:44:32.774766 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-04-17T18:44:07Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-04-17T18:44:32Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-04-17T18:44:27Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-04-17T18:44:08Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0417 18:44:32.794557 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Progressing changed from True to False ("All is well") I0417 18:45:27.610779 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-d9647d433d.34fv.p3.openshiftapps.com\n controlPlaneTopology: External\n masterPublicURL: https://api.kx-d9647d433d.34fv.p3.openshiftapps.com:443\n nodeArchitectures:\n - amd64\n nodeOperatingSystems:\n - linux\n releaseVersion: 4.20.8\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: dbfc0670-4d95-4d8d-bd4b-868f9faba639\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}} I0417 18:45:27.610932 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'ConfigMapUpdated' Updated ConfigMap/console-config -n openshift-console: cause by changes in data.console-config.yaml I0417 18:45:27.624662 1 apps.go:155] Deployment "openshift-console/console" changes: {"metadata":{"annotations":{"console.openshift.io/console-config-version":"14054","operator.openshift.io/spec-hash":"92e0d5f61ab302ebf567803f8d51cfc6dcb7c8a3a63120a0b1ff58cbe2d3d115"}},"spec":{"progressDeadlineSeconds":null,"revisionHistoryLimit":null,"template":{"metadata":{"annotations":{"console.openshift.io/console-config-version":"14054"}},"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:3d6ea9e1633f38070718a1357fcb80e6cb3932aafcc4d65e659795b186c5da15","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"}]}}}} E0417 18:45:27.637378 1 status.go:130] SyncLoopRefreshProgressing InProgress changes made during sync updates, additional sync expected I0417 18:45:27.637459 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentUpdated' Updated Deployment.apps/console -n openshift-console because it changed I0417 18:45:27.679087 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-04-17T18:44:07Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-04-17T18:45:27Z","message":"SyncLoopRefreshProgressing: changes made during sync updates, additional sync expected","reason":"SyncLoopRefresh_InProgress","status":"True","type":"Progressing"},{"lastTransitionTime":"2026-04-17T18:44:27Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-04-17T18:44:08Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0417 18:45:27.697545 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Progressing changed from False to True ("SyncLoopRefreshProgressing: changes made during sync updates, additional sync expected") I0417 18:45:27.746593 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:3d6ea9e1633f38070718a1357fcb80e6cb3932aafcc4d65e659795b186c5da15","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"}]}}}} E0417 18:45:27.763837 1 status.go:130] SyncLoopRefreshProgressing InProgress changes made during sync updates, additional sync expected I0417 18:45:27.763918 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentUpdated' Updated Deployment.apps/console -n openshift-console because it changed E0417 18:45:27.820952 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.20.8, 1 replicas available I0417 18:45:27.878643 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-04-17T18:44:07Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-04-17T18:45:27Z","message":"SyncLoopRefreshProgressing: working toward version 4.20.8, 1 replicas available","reason":"SyncLoopRefresh_InProgress","status":"True","type":"Progressing"},{"lastTransitionTime":"2026-04-17T18:44:27Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-04-17T18:44:08Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0417 18:45:28.027046 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Progressing message changed from "SyncLoopRefreshProgressing: changes made during sync updates, additional sync expected" to "SyncLoopRefreshProgressing: working toward version 4.20.8, 1 replicas available" E0417 18:45:28.209538 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.20.8, 1 replicas available E0417 18:45:28.810973 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.20.8, 1 replicas available E0417 18:45:39.087442 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.20.8, 2 replicas available I0417 18:45:39.128415 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-04-17T18:44:07Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-04-17T18:45:27Z","message":"SyncLoopRefreshProgressing: working toward version 4.20.8, 2 replicas available","reason":"SyncLoopRefresh_InProgress","status":"True","type":"Progressing"},{"lastTransitionTime":"2026-04-17T18:44:27Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-04-17T18:44:08Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0417 18:45:39.141265 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Progressing message changed from "SyncLoopRefreshProgressing: working toward version 4.20.8, 1 replicas available" to "SyncLoopRefreshProgressing: working toward version 4.20.8, 2 replicas available" I0417 18:45:39.239199 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-04-17T18:44:07Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-04-17T18:45:39Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-04-17T18:44:27Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-04-17T18:44:08Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0417 18:45:39.253410 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Progressing changed from True to False ("All is well") I0417 18:47:40.238511 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-d9647d433d.34fv.p3.openshiftapps.com\n controlPlaneTopology: External\n masterPublicURL: https://api.kx-d9647d433d.34fv.p3.openshiftapps.com:443\n nodeArchitectures:\n - amd64\n nodeOperatingSystems:\n - linux\n releaseVersion: 4.20.8\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: dbfc0670-4d95-4d8d-bd4b-868f9faba639\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}} I0417 18:47:40.238659 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'ConfigMapUpdated' Updated ConfigMap/console-config -n openshift-console: cause by changes in data.console-config.yaml I0417 18:47:40.249579 1 apps.go:155] Deployment "openshift-console/console" changes: {"metadata":{"annotations":{"console.openshift.io/console-config-version":"14935","operator.openshift.io/spec-hash":"563b1d7f9a23a9cbd5596d0645cf2592fd29b47717ddd8160f6ad4520da80e85"}},"spec":{"progressDeadlineSeconds":null,"revisionHistoryLimit":null,"template":{"metadata":{"annotations":{"console.openshift.io/console-config-version":"14935"}},"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:3d6ea9e1633f38070718a1357fcb80e6cb3932aafcc4d65e659795b186c5da15","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"}]}}}} E0417 18:47:40.265617 1 status.go:130] SyncLoopRefreshProgressing InProgress changes made during sync updates, additional sync expected I0417 18:47:40.265695 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentUpdated' Updated Deployment.apps/console -n openshift-console because it changed I0417 18:47:40.313210 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-04-17T18:44:07Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-04-17T18:47:40Z","message":"SyncLoopRefreshProgressing: changes made during sync updates, additional sync expected","reason":"SyncLoopRefresh_InProgress","status":"True","type":"Progressing"},{"lastTransitionTime":"2026-04-17T18:44:27Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-04-17T18:44:08Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0417 18:47:40.337255 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Progressing changed from False to True ("SyncLoopRefreshProgressing: changes made during sync updates, additional sync expected") I0417 18:47:40.361599 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:3d6ea9e1633f38070718a1357fcb80e6cb3932aafcc4d65e659795b186c5da15","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"}]}}}} E0417 18:47:40.378558 1 status.go:130] SyncLoopRefreshProgressing InProgress changes made during sync updates, additional sync expected I0417 18:47:40.378636 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'DeploymentUpdated' Updated Deployment.apps/console -n openshift-console because it changed E0417 18:47:40.414140 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.20.8, 1 replicas available I0417 18:47:40.508785 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-04-17T18:44:07Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-04-17T18:47:40Z","message":"SyncLoopRefreshProgressing: working toward version 4.20.8, 1 replicas available","reason":"SyncLoopRefresh_InProgress","status":"True","type":"Progressing"},{"lastTransitionTime":"2026-04-17T18:44:27Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-04-17T18:44:08Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0417 18:47:40.650479 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Progressing message changed from "SyncLoopRefreshProgressing: changes made during sync updates, additional sync expected" to "SyncLoopRefreshProgressing: working toward version 4.20.8, 1 replicas available" E0417 18:47:40.837627 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.20.8, 1 replicas available E0417 18:47:46.155727 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.20.8, 1 replicas available E0417 18:47:51.539338 1 status.go:130] SyncLoopRefreshProgressing InProgress working toward version 4.20.8, 2 replicas available I0417 18:47:51.583641 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-04-17T18:44:07Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-04-17T18:47:40Z","message":"SyncLoopRefreshProgressing: working toward version 4.20.8, 2 replicas available","reason":"SyncLoopRefresh_InProgress","status":"True","type":"Progressing"},{"lastTransitionTime":"2026-04-17T18:44:27Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-04-17T18:44:08Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0417 18:47:51.598747 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Progressing message changed from "SyncLoopRefreshProgressing: working toward version 4.20.8, 1 replicas available" to "SyncLoopRefreshProgressing: working toward version 4.20.8, 2 replicas available" I0417 18:47:51.688156 1 status_controller.go:230] clusteroperator/console diff {"status":{"conditions":[{"lastTransitionTime":"2026-04-17T18:44:07Z","message":"All is well","reason":"AsExpected","status":"False","type":"Degraded"},{"lastTransitionTime":"2026-04-17T18:47:51Z","message":"All is well","reason":"AsExpected","status":"False","type":"Progressing"},{"lastTransitionTime":"2026-04-17T18:44:27Z","message":"All is well","reason":"AsExpected","status":"True","type":"Available"},{"lastTransitionTime":"2026-04-17T18:44:08Z","message":"All is well","reason":"AsExpected","status":"True","type":"Upgradeable"},{"lastTransitionTime":"2026-04-17T18:44:07Z","reason":"NoData","status":"Unknown","type":"EvaluationConditionsDetected"}]}} I0417 18:47:51.700389 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", APIVersion:"apps/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'OperatorStatusChanged' Status for clusteroperator/console changed: Progressing changed from True to False ("All is well") I0417 18:55:07.835226 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":"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":"oauth.openshift.io","name":"console","resource":"oauthclients"},{"group":"","name":"openshift-console-operator","resource":"namespaces"},{"group":"","name":"openshift-console","resource":"namespaces"},{"group":"","name":"console-public","namespace":"openshift-config-managed","resource":"configmaps"}]}} I0417 18:55:07.846575 1 event.go:377] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"openshift-console-operator", Name:"console-operator", UID:"8f3f7572-6d05-44a6-841b-df47312d40e1", 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"} {"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"} {"oauth.openshift.io" "oauthclients" "" "console"} {"" "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"} {"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"} {"oauth.openshift.io" "oauthclients" "" "console"} {"" "namespaces" "" "openshift-console-operator"} {"" "namespaces" "" "openshift-console"} {"" "configmaps" "openshift-config-managed" "console-public"}]