Red Hat Operator has version higher than the cluster version with Service Telemetry Framework
Environment
- Red Hat OpenShift Container Platform (RHOCP)
- 4.17 and earlier
- Service Telemetry Framework (STF)
- Red Hat OpenShift on AWS (ROSA)
- 4.17 and earlier
- Service Telemetry Framework (STF)
- OpenShift Dedicated (OSD)
- 4.17 and earlier
- Service Telemetry Framework (STF)
- Azure Red Hat OpenShift (ARO)
- 4.17 and earlier
- Service Telemetry Framework (STF)
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 Service Telemetry Framework.
Related to Red Hat Operator has version higher than the cluster version. Please refer to that article for more information.
Resolution
Upon evaluation, we identified that environments should not have major issues. If an issue is identified, the course of action is to downgrade Service Telemetry Framework (STF)
Downgrading STF
This document describes how to downgrade STF to an older version in OpenShift using the Operator Lifecycle Manager (OLM).
Overview
The downgrade process involves:
- Backing up and removing existing STF
- Uninstalling the current STF and Smart Gateway Operator
- Cleanup and verify
- Installing the older version of the STF and Smart Gateway Operator
- Restoring STF
Prerequisites
- OpenShift cluster with administrative access
ocCLI tool configured and authenticated- Existing STF installation via OLM
Step 1: Backup and remove STF CRs
NOTE: Before deleting STF, save it to a local YAML files so it can be restored after the operator downgrade. See step 1.2 below.
1.1 List all STF CRs in the cluster
oc get stf -A
1.2 Backup each STF CR to a local file
Export the STF manifest to a clean YAML file that can be reapplied; e.g.:
# Replace the 'default' argument with the actual # CR name and 'service-telemetry' with the actual namespace oc get stf default -n service-telemetry -o yaml | \ yq eval 'del(.metadata.creationTimestamp, .metadata.generation, .metadata.resourceVersion, .metadata.uid, > .metadata.finalizers, .metadata.annotations."kubectl.kubernetes.io/last-applied-configuration", .status)' - \ stf-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.
Step 2: Uninstall the current STO and SGO
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.
Delete the service-telemetry project (and with it, all STF operational components):
oc delete project service-telemetry
NOTE: It is expected that installation instructions in the official guides have been followed. If STF was deployed using a different namespace, then extra steps would be needed: precisely, removing STO/SGO subscriptions and removing STO/SGO CSVs.
Step 3: Cleanup and verify
Remove the STO and SGO CRDs:
oc delete crd servicetelemetrys.infra.watch oc delete crd smartgateways.smartgateway.infra.watch
NOTE: These steps must be performed via the CLI even if you used the OpenShift Console UI to uninstall the operator in Step 2.
Step 4: Install the older STF
4.1 Create a namespace to contain the STF components, e.g. service-telemetry
oc new-project service-telemetry
4.2 Create an OperatorGroup in the namespace so that you can schedule the Operator pods:
oc create -f - <<EOF apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: service-telemetry-operator-group namespace: service-telemetry spec: targetNamespaces: - service-telemetry EOF
4.3 Create the new Subscription for the target version
Create the subscription for the older operator version:
oc create -f - <<EOF apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: service-telemetry-operator namespace: service-telemetry spec: channel: stable-1.5 installPlanApproval: Automatic name: service-telemetry-operator source: redhat-operators sourceNamespace: openshift-marketplace EOF
NOTE: This subscription will get the latest available version in the stable-1.5 channel (which corresponds to the recommended versions).
4.4 Verify the downgraded operator installation
Wait for the installation to complete, then verify:
# Check the CSV version oc get csv -n service-telemetry | grep service-telemetry-operator service-telemetry-operator.v1.5.1723536534 Service Telemetry Operator 1.5.1723536534 service-telemetry-operator.v1.5.1721288166 Succeeded # Check the operator pod is running oc get pods -n service-telemetry | grep service-telemetry-operator service-telemetry-operator-c5dfd545b-prmww 1/1 Running 0 10m
Step 5: Restore STF
5.1 Apply the backed-up STF
Apply the yaml backup file to re-create the STF:
oc apply -f stf-cr-backup.yaml
5.2 Verify STF deployment
Check that STF is deployed with the older operator:
# Check STF pods in the namespaces you expect them to be oc get pods -n service-telemetry
5.3 Connect STF to OSP
Follow steps in Chapter 4. Configuring Red Hat OpenStack Platform director for Service Telemetry Framework to connect your new STF instance with OSP.
Diagnostic Steps
Check the currentCSV for STO and SGO on OCP 4.12 - OCP 4.17 deployments with the following commands
$ oc get packagemanifest service-telemetry-operator -o jsonpath='{.status.channels[*].currentCSV}'
service-telemetry-operator.v1.5.1757650583
$ oc get packagemanifest smart-gateway-operator -o jsonpath='{.status.channels[*].currentCSV}'
smart-gateway-operator.v5.0.1757650606
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.