Chapter 6. Upgrading Service Telemetry Framework to version 1.4

To migrate from Service Telemetry Framework (STF) v1.3 to STF v1.4, you must replace the ClusterServiceVersion and Subscription objects in the service-telemetry namespace on your Red Hat OpenShift Container Platform environment.

Prerequisites

  • You have upgraded your Red Hat OpenShift Container Platform environment to v4.8. STF v1.4 does not run on Red Hat OpenShift Container Platform versions less than v4.8.
  • You have backed up your data. Upgrading STF v1.3 to v1.4 results in a brief outage while the Smart Gateways and other components are updated. Additionally, changes to the ServiceTelemetry and SmartGateway objects do not have any effect while the Operators are being replaced.

To upgrade from STF v1.3 to v1.4, complete the following procedures:

6.1. Removing STF 1.3 Smart Gateway Operator

Remove the Smart Gateway Operator from STF 1.3.

Procedure

  1. Log in to Red Hat OpenShift Container Platform.
  2. Change to the service-telemetry namespace:

    $ oc project service-telemetry
  3. Retrieve the Subscription name of the Smart Gateway Operator. Replace service-telemetry in the selector with the namespace that hosts your STF instance if it is different from the default namespace. Verify that only one subscription is returned:

    $ oc get sub --selector=operators.coreos.com/smart-gateway-operator.service-telemetry
    
    NAME                                                                       PACKAGE                  SOURCE             CHANNEL
    smart-gateway-operator-stable-1.3-redhat-operators-openshift-marketplace   smart-gateway-operator   redhat-operators   stable-1.3
  4. Delete the Smart Gateway Operator subscription:

    $ oc delete sub --selector=operators.coreos.com/smart-gateway-operator.service-telemetry
    
    subscription.operators.coreos.com "smart-gateway-operator-stable-1.3-redhat-operators-openshift-marketplace" deleted
  5. Retrieve the Smart Gateway Operator ClusterServiceVersion and verify that only one ClusterServiceVersion is returned:

    $ oc get csv --selector=operators.coreos.com/smart-gateway-operator.service-telemetry
    
    NAME                                     DISPLAY                  VERSION          REPLACES   PHASE
    smart-gateway-operator.v3.0.1635451893   Smart Gateway Operator   3.0.1635451893              Succeeded
  6. Delete the Smart Gateway Operator ClusterServiceVersion:

    $ oc delete csv --selector=operators.coreos.com/smart-gateway-operator.service-telemetry
    
    clusterserviceversion.operators.coreos.com "smart-gateway-operator.v3.0.1635451893" deleted
  7. Delete the SmartGateway Custom Resource Definition (CRD). After removal of the CRD, no data flows to STF until the upgrade is completed and the Smart Gateway instances are reinstantiated:

    $ oc delete crd smartgateways.smartgateway.infra.watch
    
    customresourcedefinition.apiextensions.k8s.io "smartgateways.smartgateway.infra.watch" deleted

6.2. Updating the Service Telemetry Operator to 1.4

You must change the subscription channel of the Service Telemetry Operator which manages the STF instances to the stable-1.4 channel.

Procedure

  1. Log in to Red Hat OpenShift Container Platform.
  2. Change to the service-telemetry namespace:

    $ oc project service-telemetry
  3. Patch the Service Telemetry Operator Subscription to use the stable-1.4 channel. Replace the service-telemetry in the selector with the namespace that hosts your STF instance if it is different from the default namespace:

    $ oc patch $(oc get sub --selector=operators.coreos.com/service-telemetry-operator.service-telemetry -oname) --patch $'spec:\n  channel: stable-1.4' --type=merge
    
    subscription.operators.coreos.com/service-telemetry-operator patched
  4. Monitor the output of the oc get csv command until the Smart Gateway Operator is installed and Service Telemetry Operator moves through the update phases. When the phase changes to Succeeded, the Service Telemetry Operator has completed the update:

    $ watch -n5 oc get csv
    
    NAME                                         DISPLAY                                         VERSION          REPLACES                                     PHASE
    amq7-cert-manager.v1.0.3                     Red Hat Integration - AMQ Certificate Manager   1.0.3            amq7-cert-manager.v1.0.2                     Succeeded
    amq7-interconnect-operator.v1.10.5           Red Hat Integration - AMQ Interconnect          1.10.5           amq7-interconnect-operator.v1.10.4           Succeeded
    elasticsearch-eck-operator-certified.1.9.1   Elasticsearch (ECK) Operator                    1.9.1                                                         Succeeded
    prometheusoperator.0.47.0                    Prometheus Operator                             0.47.0           prometheusoperator.0.37.0                    Succeeded
    service-telemetry-operator.v1.4.1641504218   Service Telemetry Operator                      1.4.1641504218   service-telemetry-operator.v1.3.1635451892   Succeeded
    smart-gateway-operator.v4.0.1641504216       Smart Gateway Operator                          4.0.1641504216                                                Succeeded
  5. Validate that all pods are ready and running. Your environment might differ from the following example output:

    $ oc get pods
    
    NAME                                                      READY   STATUS    RESTARTS   AGE
    alertmanager-default-0                                    3/3     Running   0          162m
    default-cloud1-ceil-event-smartgateway-5599bcfc9d-wp48n   2/2     Running   1          160m
    default-cloud1-ceil-meter-smartgateway-c8fdf579c-955kt    3/3     Running   0          160m
    default-cloud1-coll-event-smartgateway-97b54b7dc-5zz2v    2/2     Running   0          159m
    default-cloud1-coll-meter-smartgateway-774b9988b8-wb5vd   3/3     Running   0          160m
    default-cloud1-sens-meter-smartgateway-b98966fbf-rnqwf    3/3     Running   0          159m
    default-interconnect-675dd97bc4-dcrzk                     1/1     Running   0          171m
    default-snmp-webhook-7854d4889d-wgmgg                     1/1     Running   0          171m
    elastic-operator-c54ff8cc-jcg8d                           1/1     Running   6          3h55m
    elasticsearch-es-default-0                                1/1     Running   0          160m
    interconnect-operator-6bf74c4ffb-hkmbq                    1/1     Running   0          3h54m
    prometheus-default-0                                      3/3     Running   1          160m
    prometheus-operator-fc64987d-f7gx4                        1/1     Running   0          3h54m
    service-telemetry-operator-68d888f767-s5kzh               1/1     Running   0          163m
    smart-gateway-operator-584df7959-llxgl                    1/1     Running   0          163m