Upgrading

Upgrade your Event Endpoint Management installation as follows. The Event Endpoint Management operator handles the upgrade of your Event Endpoint Management and Event Gateway instances.

Note: You will experience some downtime during the Event Endpoint Management upgrade while the pods for the relevant components are recycled.

Upgrading on the OpenShift Container Platform

You can upgrade Event Endpoint Management to the latest 11.0.x version directly from any earlier 11.0.x version by using operator version v11.0.

Note: If your operator upgrades are set to automatic, minor version upgrades are completed automatically. This means that the Event Endpoint Management operator will be upgraded to 11.0.x when it is available in the catalog, and your Event Endpoint Management instance is then also automatically upgraded.

Prerequisites

  • If you installed as part of IBM Cloud Pak for Integration, ensure that you have followed the upgrade steps for IBM Cloud Pak for Integration before you upgrade Event Endpoint Management.

  • To upgrade successfully, your Event Endpoint Management instance must have persistent storage enabled. If you upgrade an Event Endpoint Management instance with ephemeral storage, all data will be lost.

Upgrading by using the OpenShift CLI

If you are using the OpenShift command-line interface (CLI), the oc command, complete the steps in the following sections to upgrade your Event Endpoint Management installation.

  1. Log in to your Red Hat OpenShift Container Platform as a cluster administrator by using the oc CLI (oc login).
  2. Ensure the required Event Endpoint Management Operator Upgrade Channel is available:

    oc get packagemanifest ibm-eventendpointmanagement -o=jsonpath='{.status.channels[*].name}'
    
  3. Change the subscription to move to the required update channel, where vX.Y is the required update channel (for example, v11.1):

    oc patch subscription -n <namespace> ibm-eventendpointmanagement --patch '{"spec":{"channel":"vX.Y"}}' --type=merge
    

All Event Endpoint Management pods that need to be updated as part of the upgrade will be rolled.

Upgrading by using the OpenShift web console

If you are using the web console, complete the steps in the following sections to upgrade your Event Endpoint Management installation.

  1. Log in to the OpenShift Container Platform web console using your login credentials.
  2. Expand Operators in the navigation on the left, and click Installed Operators.

    Operators > Installed Operators

  3. From the Project list, select the namespace (project) the instance is installed in.
  4. Locate the operator that manages your Event Endpoint Management instance in the namespace. It is called Event Endpoint Management in the Name column. Click the Event Endpoint Management link in the row.
  5. Click the Subscription tab to display the Subscription details for the Event Endpoint Management operator.
  6. Select the version number link in the Update channel section (for example, v11.0). The Change Subscription update channel dialog is displayed, showing the channels that are available to upgrade to.
  7. Select the required channel, for example v11.1, and click the Save button on the Change Subscription update channel dialog.

All Event Endpoint Management pods that need to be updated as part of the upgrade will be rolled.

Upgrading on other Kubernetes platforms

If you are running Event Endpoint Management on Kubernetes platforms that support the Red Hat Universal Base Images (UBI) containers, you can upgrade Event Endpoint Management by using the Helm chart.

Prerequisites

To upgrade successfully, your Event Endpoint Management instance must have persistent storage enabled. If you upgrade an Event Endpoint Management instance with ephemeral storage, all data will be lost.

Upgrading by using Helm

Complete the steps in the following sections to upgrade your Event Endpoint Management installation.

  1. Log in to your Kubernetes cluster as a cluster administrator by setting your kubectl context.
  2. Identify the namespace where the installation is located and the Helm release managing the CRDs by looking at the annotations on the CRDs:

    kubectl get crd eventendpointmanagements.events.ibm.com -o jsonpath='{.metadata.annotations}'
    

    The following is an example output showing CRDs managed by Helm release eem-crds in namespace my-eem:

    {"meta.helm.sh/release-name": "eem-crds", "meta.helm.sh/release-namespace": "eem"}
    
  3. Ensure you are using the namespace where your Event Endpoint Management CRD Helm release is located (see previous step):

    kubectl config set-context --current --namespace=<namespace>
    
  4. Add the IBM Helm repository if you have not already done so:

    helm repo add ibm-helm https://raw.githubusercontent.com/IBM/charts/master/repo/ibm-helm
    
  5. Update the Helm repository:

    helm repo update ibm-helm
    
  6. Run the following command to upgrade the Helm release that manages your Event Endpoint Management CRDs (as identified in step 2):

    helm upgrade <crd_release_name> ibm-helm/ibm-eem-operator-crd
    
  7. Run the following command to upgrade the Helm release of your operator installation. Switch to the right namespace if your CRD Helm release is in a different namespace to your operator.

    helm upgrade <eem_release_name> ibm-helm/ibm-eem-operator <install_flags>
    

In the earlier commands:

  • <crd_release_name> is the Helm release name of the Helm installation that manages the Event Endpoint Management CRDs.
  • <eem_release_name is the Helm release name of the Helm installation of the operator.
  • <install_flags are any optional installation property settings, such as --set watchAnyNamespace=true

Verifying the upgrade

  1. Wait for all Event Endpoint Management pods to reconcile. This is indicated by the Running state.
  2. Log in to your Kubernetes cluster as a cluster administrator by setting your kubectl context.
  3. To retrieve a list of Event Endpoint Management instances, run the following command:

    kubectl get eem -n <namespace>
    
  4. For the instance of Event Endpoint Management that you upgraded, check that the status returned by the following command is Running.

    kubectl get eem -n <namespace> <name-of-the-eem-instance> -o jsonpath="{.status.phase}"
    
  5. To check the version of your Event Endpoint Management instance, run the following command:

    kubectl get eem -n <namespace> <name-of-the-eem-instance> -o jsonpath="{.status.versions.reconciled}"