Red Hat Operator has version higher than the cluster version with the Kiali Operator
Environment
- Red Hat OpenShift Container Platform (RHOCP)
- 4.17 and earlier
- Kiali Operator
- Red Hat OpenShift on AWS (ROSA)
- 4.17 and earlier
- Kiali Operator
- OpenShift Dedicated (OSD)
- 4.17 and earlier
- Kiali Operator
- Azure Red Hat OpenShift (ARO)
- 4.17 and earlier
- Kiali Operator
Issue
- On 2026-02-03 a push to the catalogs of older OpenShift releases (v4.12 - v4.17) resulted in potentially incompatible packages being released for the Kiali Operator.
Related to Red Hat Operator has version higher than the cluster version. Please refer to that article for more information.
Resolution
The recommended solution is to downgrade the Kiali Operator for any installation that encountered this failure.
Downgrading the Kiali Operator
This document describes how to downgrade the Kiali Operator to an older version in OpenShift using the Operator Lifecycle Manager (OLM).
Overview
The downgrade process involves:
- Backing up and removing existing Kiali CRs
- Uninstalling the current Kiali Operator
- Cleanup and Verify
- Installing the older version of the Kiali Operator
- Restoring the Kiali CRs
Prerequisites
- OpenShift cluster with administrative access
ocCLI tool configured and authenticated- Existing Kiali Operator installation via OLM
Step 1: Backup and Remove Kiali CRs
Important Tip: Before deleting any Kiali CRs, save them to local YAML files so you can restore them after the operator downgrade. See step 1.2 below.
1.1 List all Kiali CRs in the cluster
oc get kialis -A
1.2 Backup each Kiali CR to a local file
For each Kiali CR found, export it to a clean YAML file that can be reapplied; e.g.:
# Replace the second 'kiali' argument with the actual # CR name and 'istio-system' with the actual namespace oc get kiali kiali -n istio-system -o yaml | \ yq eval 'del(.metadata.creationTimestamp, .metadata.generation, .metadata.resourceVersion, .metadata.uid, .metadata.finalizers, .metadata.annotations."kubectl.kubernetes.io/last-applied-configuration", .status)' - \ kiali-cr-backup.yaml
Note: This command removes server-generated metadata and status fields that would prevent the backup from being reapplied successfully. If you do not have
yq, the above command won't work and you will need to manually export the full yaml and remove that data from the yaml file manually.
1.3 Remove all Kiali CRs
Delete each Kiali CR; e.g.:
# Replace with actual CR name and namespace oc delete kiali kiali -n istio-system
Note: Wait for all Kiali CRs to be completely removed before proceeding.
Step 2: Uninstall the Current Kiali Operator
This step can be performed via the OpenShift console UI if preferred. The below instructions demonstrate the process via the
ocCLI. Though, if the UI is used, some steps still require the use of the CLI. Please see Step 3 for an example.
2.1 Remove the Operator Subscription
First, find the specific subscription name:
oc get subscription -n openshift-operators | grep kiali
Then delete it (using the returned subscription name from the above step):
oc delete subscription kiali-ossm-subscription -n openshift-operators
2.2 Remove the ClusterServiceVersion (CSV)
Find and delete the current CSV:
# Find the current CSV oc get csv -n openshift-operators | grep kiali # Delete it (replace with the actual CSV name) oc delete csv kiali-operator.v2.17.3 -n openshift-operators
Step 3: Cleanup and Verify
Note: The below steps must be performed via the CLI even if you used the OpenShift console UI to uninstall the operator in Step 2.
3.1 Remove the CRDs
Remove the Kiali and OSSMConsole CRDs:
oc delete crd kialis.kiali.io oc delete crd ossmconsoles.kiali.io
3.2 Verify operator removal
Ensure the operator pod is removed:
oc get pods -n openshift-operators | grep kiali
Step 4: Install the Older Kiali Operator Version
4.1 Create the new Subscription for the target version
Create the subscription for the older operator version:
oc apply -f - << 'EOF' apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: kiali-ossm-subscription namespace: openshift-operators spec: channel: stable name: kiali-ossm source: redhat-operators sourceNamespace: openshift-marketplace EOF
4.2 Approve the InstallPlan
Find and approve the pending InstallPlan:
# Find the pending InstallPlan oc get installplan -n openshift-operators | grep kiali # Approve it (replace with actual install plan name) oc patch installplan install-xxxxx -n openshift-operators --type merge --patch '{"spec":{"approved":true}}'
4.3 Verify the downgraded operator installation
Wait for the installation to complete, then verify:
# Check the CSV version oc get csv -n openshift-operators | grep kiali # Check the operator pod is running oc get pods -n openshift-operators | grep kiali
Step 5: Restore Kiali CRs
5.1 Apply the backed-up Kiali CRs
Apply each yaml backup file to re-create the Kiali CRs; e.g.:
oc apply -f kiali-cr-backup.yaml
5.2 Verify Kiali deployment
Check that Kiali is deployed with the older operator:
# Check Kiali pods in the namespaces you expect them to be oc get pods -n istio-system | grep kiali
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.