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.
- Log in to your Red Hat OpenShift Container Platform as a cluster administrator by using the
oc
CLI (oc login
). -
Ensure the required Event Endpoint Management Operator Upgrade Channel is available:
oc get packagemanifest ibm-eventendpointmanagement -o=jsonpath='{.status.channels[*].name}'
-
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.
- Log in to the OpenShift Container Platform web console using your login credentials.
-
Expand Operators in the navigation on the left, and click Installed Operators.
- From the Project list, select the namespace (project) the instance is installed in.
- 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.
- Click the Subscription tab to display the Subscription details for the Event Endpoint Management operator.
- 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.
- 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.
- Log in to your Kubernetes cluster as a cluster administrator by setting your
kubectl
context. -
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 namespacemy-eem
:{"meta.helm.sh/release-name": "eem-crds", "meta.helm.sh/release-namespace": "eem"}
-
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>
-
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
-
Update the Helm repository:
helm repo update ibm-helm
-
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
-
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
- Wait for all Event Endpoint Management pods to reconcile. This is indicated by the
Running
state. - Log in to your Kubernetes cluster as a cluster administrator by setting your
kubectl
context. -
To retrieve a list of Event Endpoint Management instances, run the following command:
kubectl get eem -n <namespace>
-
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}"
-
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}"