Rolling back within the same channel helps to roll back the Engineering Lifecycle Management
instance to a previous Engineering Lifecycle Management instance version that is available in the same
channel by using the Red Hat® OpenShift® CLI method.
Before you begin
- Ensure that the Engineering Lifecycle Management operator is upgraded. For more information, see
Upgrading Engineering Lifecycle Management Operator.
- You must require the appropriate permissions to upgrade the Engineering Lifecycle Management
instance. For more information about the user roles in the Red Hat OpenShift, see User roles mapping in Engineering Lifecycle Management on Hybrid Cloud.
- Back up the database. For more information, see Backing up and restoring other supported databases.
Important:
- The Engineering Lifecycle Management applications are not accessible during the database backup.
You must plan the activity considering the downtime.
- After the database backup is completed, you must minimize the usage of Engineering Lifecycle Management applications until the upgrade process is complete. If you continue to use the
Engineering Lifecycle Management applications after the database backup, the data in the current and
backed up database does not match. In a rollback, you can restore the backed-up database only.
- You can define the custom upgrade groups for the Engineering Lifecycle Management applications rather than the default upgrade groups. For more information, see
Defining the custom upgrade groups for Engineering Lifecycle Management instance.
- Complete the following steps to verify the availability of the Engineering Lifecycle Management
version for the upgrade.
oc get elm -n <namespace-name>
oc get elm <elm-instance-name> -o jsonpath='Installed ELM Version : {.spec.version} {"\n"}Available ELM Versions : {.status.versions.available.versions} {"\n"}{.status.upgradeStatus.conditions[].message}' -n <namespace-name>
Replace
the elm-instance-name and namespace-name. For
example
oc get elm -n example
oc get elm example-elm <elm-instance-name> -o jsonpath='Installed ELM Version : {.spec.version} {"\n"}Available ELM Versions : {.status.versions.available.versions} {"\n"}{.status.upgradeStatus.conditions[].message}' -n example
Procedure
- Log in to the Red Hat OpenShift and connect to your project.
- Patch the Engineering Lifecycle Management instance. Cluster administrator or user with the
necessary permissions needs to patch the Engineering Lifecycle Management instance version to the
available upgrade version.
- Get Engineering Lifecycle Management instance.
oc get elm -n <namespace-name>
Replace the
namespace-nameoc get elm -n example
- Rollback Engineering Lifecycle Management instance
oc patch elm <elm-instance-name> --patch '{"spec":{"version":"<available-elm-version>"}}' --type=merge -n <namespace-name>
Replace the elm-instance-name and namespace-name. For
example
oc patch elm example-elm --patch '{"spec":{"version":"7.1.0_iFix002"}}' --type=merge -n example
The
Engineering Lifecycle Management operator starts the rollback process. The following stages are
completed during the process.
- Rollback validations
- Rollback
- Engineering Lifecycle Management instance post rollback validations
- Application Diagnostics
- Monitor the rollback progress in the Upgrade Events table and
Application Events table. Once the rollback process completes, you can see
the Completed status for all four stages in the Upgrade
Events table. If any error message appears, resolve the error by following the
troubleshooting information that is provided in Troubleshooting of upgrade errors
oc get elm <elm-instance-name> -o jsonpath='Application Events : {"\n\n"}{range .status.applicationsStatus.conditions[*]}Application - {.type}{"\t"}Status - {.status}{"\t"}Message - {.message}{"\n"}{end}{"\n\n"}Upgrade Events : {"\n\n"}{range .status.upgradeStatus.conditions[*]}Status - {.status}{"\t"}Message - {.message}{"\n"}{end}' -n <namespace>
Replace the elm-instance-name and namespace-name in the
following command. For example
oc get elm/example-elm -o jsonpath='Application Events : {"\n\n"}{range .status.applicationsStatus.conditions[*]}Application - {.type}{"\t"}Status - {.status}{"\t"}Message - {.message}{"\n"}{end}{"\n\n"}Upgrade Events : {"\n\n"}{range .status.upgradeStatus.conditions[*]}Status - {.status}{"\t"}Message - {.message}{"\n"}{end}' -n example
- Verify that the Engineering Lifecycle Management instance after the rollback process
completes. On the successful rollback, you see the installed Engineering Lifecycle Management version
is older then the latest available.
oc get elm <elm-instance-name> -o jsonpath='Installed ELM Version : {.spec.version} {"\n"}{.status.upgradeStatus.conditions[].message}' -n <namespace-name>
Replace the elm-instance-name and namespace-name in the
following command. For example
oc get elm example-elm -o jsonpath='Installed ELM Version : {.spec.version} {"\n"}{.status.upgradeStatus.conditions[].message}' -n example
- Get the JTS URL and open in browser. The JAS login page opens
oc get elm <elm-instance-name> -o jsonpath='{.spec.hostName}/{.spec.applications.JTS.contextRoot}' -n <namespace-name>
Replace the elm-instance-name and namespace-name in the
following command. For example
oc get elm example-elm -o jsonpath='{.spec.hostName}/{.spec.applications.JTS.contextRoot}' -n <namespace-name>
Important: Use the login credentials that have administrative privileges in the
application.
- Click . On the Status Summary page, verify that the
Engineering Lifecycle Management version appears in the Build Information section.
In the left page, click Diagnostics. Ensure that no error is listed on the
page.