How To
Summary
After you upgrade watsonx.governance, you need to load the corresponding solution loader files manually into OpenPages to ensure that the latest solution changes are applied. These solution changes are not loaded automatically during the upgrade process.
This document provides the steps to load the updated OpenPages solution loader files for Cloud Pak for Data versions 5.2.0, 5.2.1, and 5.3.1.
Steps
Post-upgrade steps to load solution loader files
Log in to your Red Hat® OpenShift® cluster as an instance administrator:
oc login OpenShift_URL:portChange to the project where OpenPages is installed:
oc project <Project>Patch the OpenPages instance CR to enable the debug container. Wait for the operator reconciliation to complete.
oc patch OpenPagesInstance <OpenPages Instance Name> --type=merge --patch '{ "spec": { "run_debug_provisioner": true } }'A new pod is deployed in the specified namespace. The pod has the following name:
op-<OpenPages Instance ID>-db-debug-deploy-xxxxxxx-xxxxSwitch to the OpenPages debug pod:
oc exec -it op-<OpenPages Instance ID>-db-debug-deploy-xxxxxxx-xxxx -- bashDefine the upgrade source and destination versions. For example:
export SOURCE_VERSION=5.1.3 export DESTINATION_VERSION=5.2.1The solution loader phases (phase6,phase7,phase8) to be loaded during the process depend on the source version (the version you're upgrading from) and the destination version (the version you're upgrading to).- If you're upgrading from a version earlier than 5.2.0 to a version greater than 5.2.0 and earlier than 5.3.1, both
phase6andphase7must be loaded. - If you're upgrading from a version earlier than 5.2.0 to exactly 5.2.0, only
phase6needs to be loaded. - If you're upgrading from version 5.2.0 to a version earlier than 5.3.1, only
phase7is required. - If you're upgrading from a version earlier than 5.2.0 to version 5.3.1,
phase6,phase7, andphase8must be loaded. If you're upgrading from version 5.2.0 to version 5.3.1, only
phase8needs to be loaded.Source Version Destination Version Phases to load < 5.2.0 < 5.3.1 phase6,phase7< 5.2.0 = 5.2.0 phase6= 5.2.0 < 5.3.1 phase7< 5.2.0 = 5.3.1 phase6,phase7,phase8= 5.2.0 = 5.3.1 phase8
- If you're upgrading from a version earlier than 5.2.0 to a version greater than 5.2.0 and earlier than 5.3.1, both
Create the script file in the /tmp directory, Set Execute permissions on the script file, and then run it:
#!/usr/bin/env bash source /app-root/bin/logging-utils.sh source /app-root/bin/unset_proxy.sh declare -r sharedsecret="$(cat /var/run/sharedsecrets/token)" declare -r apibase="https://internal-nginx-svc.${ZEN_CONTROL_PLANE_NS}.svc.cluster.local:12443/zen-data" declare -r optoken="$(curl -k -H "secret: ${sharedsecret}" -H 'cache-control: no-cache' -X GET "${apibase}/internal/v1/service_token?username=OpenPagesAdministrator&expiration_time=120" | jq -r '.token')" declare -r OP_EXT_HOST="${OP_EXT_HOST}" declare -r OP_EXT_PORT="${OP_EXT_PORT}" # Function to set loader_phases version_gt() { test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1"; } version_eq() { [ "$1" = "$2" ]; } set_loader_phases() { if version_gt "5.2.0" "$SOURCE_VERSION" && version_eq "$DESTINATION_VERSION" "5.2.0"; then loader_phases=("phase6") elif version_gt "5.2.0" "$SOURCE_VERSION" && version_gt "5.3.1" "$DESTINATION_VERSION"; then loader_phases=("phase6" "phase7") elif version_eq "$SOURCE_VERSION" "5.2.0" && version_gt "5.3.1" "$DESTINATION_VERSION"; then loader_phases=("phase7") elif version_gt "5.2.0" "$SOURCE_VERSION" && version_eq "$DESTINATION_VERSION" "5.3.1"; then loader_phases=("phase6" "phase7" "phase8") elif version_eq "$SOURCE_VERSION" "5.2.0" && version_eq "$DESTINATION_VERSION" "5.3.1"; then loader_phases=("phase8") else loader_phases=() logInfo "No matching loader phases for source: $SOURCE_VERSION and destination: $DESTINATION_VERSION" fi } set_loader_phases # update ObjectManager properties logInfo "Updating ObjectManager properties" sed -i "s|rest.url.path\s*=.*|rest.url.path = https://${OP_EXT_HOST}:${OP_EXT_PORT}/${OP_CONTEXT_ROOT}-grc/api|g" /opt/ibm/OpenPages/bin/openpages-tools-client.properties sed -i "s|configuration.manager.force.update.object.strings\s*=.*|configuration.manager.force.update.object.strings = true|g" /opt/ibm/OpenPages/bin/ObjectManager.properties sed -i "s|configuration.manager.force.update.application.strings\s*=.*|configuration.manager.force.update.application.strings = true|g" /opt/ibm/OpenPages/bin/ObjectManager.properties sed -i "s|configuration.manager.vendor.mode\s*=.*|configuration.manager.vendor.mode = true|g" /opt/ibm/OpenPages/bin/ObjectManager.properties if [[ $? != 0 ]]; then logError "Failed to update properties." exit 1 fi cat /opt/ibm/OpenPages/bin/openpages-tools-client.properties main() { load_watsonx_modules } wait_for_app() { # wait for OpenPages to become available logInfo "Waiting for application startup at https://${OP_EXT_HOST}:${OP_EXT_PORT}/${OP_CONTEXT_ROOT}" while true; do curl -s -k -X GET -H "Authorization: Bearer ${optoken}" https://${OP_EXT_HOST}:${OP_EXT_PORT}/${OP_CONTEXT_ROOT}-grc/api/types | grep -q "sox" if [[ $? == 0 ]]; then break fi sleep 30s done } load_watsonx_modules(){ wait_for_app for phase in "${loader_phases[@]}"; do logInfo "Loading Watsonx.Gov $phase solution loader files" && cd /opt/ibm/OpenPages/bin && ./ObjectManager.sh b c jwt "${optoken}" \ "/opt/ibm/OpenPages/loaderdata/OP.watsonx.governance.${phase}.modules" \ "/opt/ibm/OpenPages/loaderdata/OP.watsonx.governance.${phase}.modules/_wxgov.loader.${phase}.txt" if [[ $? != 0 ]]; then logError "Error occurred while loading Watsonx.Gov $phase solution" fi done logInfo "Loading AI Factsheet Webhooks" && cd /opt/ibm/OpenPages/bin && ./ObjectManager.sh l c jwt "${optoken}" \ "/opt/ibm/OpenPages/loaderdata/OP.watsonx.governance.phase7.modules" \ "/opt/ibm/OpenPages/loaderdata/OP.watsonx.governance.phase7.modules/wxgov.phase7.webhooks" if [[ $? != 0 ]]; then logError "Error occurred while loading AI Factsheet Webhooks" fi } cd "$(dirname "${BASH_SOURCE[0]}")" main "$@"
[04/08/2025 12:54:14 UTC] bb.sh INFO: Loading Watsonx.Gov phase6 solution loader files
2025-08-04T12:54:18,091+0000 INFO [objectmanager.App] - Starting ObjectManager in command mode: batch
2025-08-04T12:54:18,629+0000 INFO [util.RestUtils] - sending 105059 bytes to endpoint load/CP4D_Token-1754312058136
...
...
[04/08/2025 12:56:06 UTC] bb.sh INFO: Loading Watsonx.Gov phase7 solution loader files
2025-08-04T12:56:10,023+0000 INFO [objectmanager.App] - Starting ObjectManager in command mode: batch
2025-08-04T12:56:10,933+0000 INFO [util.RestUtils] - sending 420021 bytes to endpoint load/CP4D_Token-1754312170189
2025-08-04T12:56:12,974+0000 INFO [util.Utils] - Starting to poll process 3331 for updates...
2025-08-04T12:56:13,137+0000 INFO [util.Utils] - ObjectManager Import Process (wxgov.phase7.schema): started
2025-08-04T12:56:13,137+0000 INFO [util.Utils] - ObjectManager Import Process (wxgov.phase7.schema): [wxgov.phase7.schema] : Preparing to start import...
...
...
[04/08/2025 13:05:06 UTC] bb.sh INFO: Loading Watsonx.Gov phase8 solution loader files
2025-08-04T13:05:10,023+0000 INFO [objectmanager.App] - Starting ObjectManager in command mode: batch
2025-08-04T13:05:10,933+0000 INFO [util.RestUtils] - sending 520021 bytes to endpoint load/CP4D_Token-1754312710189
2025-08-04T13:05:12,974+0000 INFO [util.Utils] - Starting to poll process 3332 for updates...
2025-08-04T13:05:13,137+0000 INFO [util.Utils] - ObjectManager Import Process (wxgov.phase8.schema): started
2025-08-04T13:05:13,137+0000 INFO [util.Utils] - ObjectManager Import Process (wxgov.phase8.schema): [wxgov.phase8.schema] : Preparing to start import...
...
...
2025-08-04T13:05:11,327+0000 INFO [objectmanager.App] - Exiting after 6894ms with status code 0
Document Location
Worldwide
Was this topic helpful?
Document Information
Modified date:
07 August 2025
UID
ibm17241676