Upgrading Watson Query from Version 4.7 to Version 4.8
Upgrade to IBM Software Hub Version 5.1 before IBM Cloud Pak for Data Version 4.8 reaches end of support. For more information, see Upgrading from IBM Cloud Pak for Data Version 4.8 to IBM Software Hub Version 5.1.
An instance administrator can upgrade Watson Query from Cloud Pak for Data Version 4.7 to Version 4.8.
- Who needs to complete this task?
-
Instance administrator To upgrade Watson Query, you must be an instance administrator. An instance administrator has permission to manage software in the following projects:
- The operators project for the instance
-
The operators for this instance of Cloud Pak for Data are installed in the operators project. In the upgrade commands, the
${PROJECT_CPD_INST_OPERATORS}environment variable refers to the operators project. - The operands project for the instance
-
The Cloud Pak for Data control plane and the services for this instance of Cloud Pak for Data are installed in the operands project. In the upgrade commands, the
${PROJECT_CPD_INST_OPERANDS}environment variable refers to the operands project. - The tethered projects for the instance
- If any projects are tethered to the operands project, you have permission to manage the software in the tethered projects.
- When do you need to complete this task?
-
Review the following options to determine whether you need to complete this task:
- If you want to upgrade the Cloud Pak for Data control plane and one or more services at the same time, follow the process in Upgrading an instance of Cloud Pak for Data instead.
- If you didn't upgrade Watson
Query when you upgraded the Cloud Pak for Data control plane, complete this task to upgrade Watson
Query.
Repeat as needed If you are responsible for multiple instances of Cloud Pak for Data, you can repeat this task to upgrade more instances of Watson Query on the cluster.
Information you need to complete this task
Review the following information before you upgrade Watson Query:
- Version requirements
-
All the components that are associated with an instance of Cloud Pak for Data must be installed at the same release. For example, if the Cloud Pak for Data control plane is at Version 4.8.9, you must upgrade Watson Query to Version 4.8.9.
- Environment variables
- The commands in this task use environment variables so that you can run the commands exactly as
written.
- If you don't have the script that defines the environment variables, see Setting up installation environment variables.
- To use the environment variables from the script, you must source the environment variables
before you run the commands in this task. For example,
run:
source ./cpd_vars.sh
- Common core services
- Watson
Query requires the Cloud Pak for Data
common core services.
If the common core services are not at the correct version in the operands project for the instance, the common core services are automatically upgraded when you upgrade Watson Query. The common core services upgrade increases the amount of time the upgrade takes to complete.
- Storage requirements
- You don't need to specify storage when you upgrade Watson Query.
Before you begin
If you are upgrading Watson Query from a version older than Cloud Pak for Data 4.8.2 to a version newer than 4.8.2, you must temporarily update the Duplicate asset handling settings of your catalogs to Allow duplicates. After the upgrade, you can revert the Duplicate asset handling configuration. For steps on updating this setting, see Changing catalog settings.
- Watson Query version numbers and upgrade paths
- Verify the Watson Query version numbers that you are upgrading from and to. See Supported upgrade paths in Watson Query.
This task assumes that the following prerequisites are met:
| Prerequisite | Where to find more information |
|---|---|
| The cluster meets the minimum requirements for Watson Query. | If this task is not complete, see System requirements. |
The workstation from which you will run the upgrade is set up as a client workstation and
the following command-line interfaces:
|
If this task is not complete, see Updating client workstations. |
| The Cloud Pak for Data control plane is upgraded. | If this task is not complete, see Upgrading an instance of Cloud Pak for Data. |
| For environments that use a private container registry, such as air-gapped environments, the Watson Query software images are mirrored to the private container registry. | If this task is not complete, see Mirroring images to a private container registry. |
For environments that use a private container registry, such as air-gapped environments,
the cpd-cli is configured to pull the olm-utils-v2 image from the private container registry. |
If this task is not complete, see Pulling the olm-utils-v2 image from the private container registry. |
Prerequisite services
Before you upgrade Watson Query, ensure that the following services are upgraded and running:
- Db2® Data Management Console: If you do not manually upgrade Db2 Data Management Console, Watson Query upgrades it for you. If you have already upgraded Db2 Data Management Console, make sure that a Db2 Data Management Console instance has been provisioned. For more information, see Upgrading Db2 Data Management Console.
Procedure
Complete the following tasks to upgrade Watson Query:
Upgrading the service
cpd-cli
manage
apply-olm updates all of the OLM objects in the operators project
at the same time.To upgrade Watson Query:
-
Log the
cpd-cliin to the Red Hat® OpenShift Container Platform cluster:${CPDM_OC_LOGIN}Remember:CPDM_OC_LOGINis an alias for thecpd-cli manage login-to-ocpcommand. - Update the custom resource for Watson
Query.
cpd-cli manage apply-cr \ --components=dv \ --release=${VERSION} \ --cpd_instance_ns=${PROJECT_CPD_INST_OPERANDS} \ --license_acceptance=true \ --upgrade=true
Validating the upgrade
apply-cr command
returns:[SUCCESS]... The apply-cr command ran successfully
If you want to confirm that the custom resource status is
Completed, you can run the cpd-cli
manage
get-cr-status command:
cpd-cli manage get-cr-status \
--cpd_instance_ns=${PROJECT_CPD_INST_OPERANDS} \
--components=dv
Upgrading existing service instances
After you upgrade Watson Query, you must upgrade any service instances that are associated with Watson Query.
- Before you begin
-
Create a profile on the workstation from which you will upgrade the service instances.
The profile must be associated with a Cloud Pak for Data user who has either the following permissions:
- Create service instances (
can_provision) - Manage service instances (
manage_service_instances)
For more information, see Creating a profile to use the cpd-cli management commands.
- Create service instances (
-
Log the
cpd-cliin to the Red Hat OpenShift Container Platform cluster:${CPDM_OC_LOGIN}Remember:CPDM_OC_LOGINis an alias for thecpd-cli manage login-to-ocpcommand. - Change to the project where Watson
Query pods are
installed.
oc project ${PROJECT_CPD_INST_OPERANDS} - Get the names of the Watson
Query service
instances:
For more information about thecpd-cli service-instance list --service-type=dv \ --profile=${CPD_PROFILE_NAME}service-instance listcommand, seeservice-instance listin the Cloud Pak for Data command-line interface reference. - Upgrade one instance at a time. For each instance that you want to upgrade, complete the
following steps:
- Set the
WQ_INSTANCE_NAMEenvironment variable to the name of the instance that you want to upgrade:export WQ_INSTANCE_NAME=<instance-name> - Set the
AUDIT_PVC_SIZEenvironment variable:export AUDIT_PVC_SIZE=30Gi - Verify that the
STG_CLASS_FILEandCPD_PROFILE_NAMEenvironment variables are set. -
Create an instance override file for the instance that you are upgrading. Use the file name dv_override_${WQ_INSTANCE_NAME}.yaml and include the following parameters:
cat <<EOF > dv_override_${WQ_INSTANCE_NAME}.yaml parameters: workerCount: $(cpd-cli service-instance get ${WQ_INSTANCE_NAME} --service-type dv --profile=${CPD_PROFILE_NAME} | grep workerCount | cut -d':' -f2 | cut -d'"' -f2) resources.dv.requests.cpu: $(cpd-cli service-instance get ${WQ_INSTANCE_NAME} --service-type dv --profile=${CPD_PROFILE_NAME} | grep resources.dv.requests.cpu | cut -d':' -f2 | cut -d'"' -f2) resources.dv.requests.memory: $(cpd-cli service-instance get ${WQ_INSTANCE_NAME} --service-type dv --profile=${CPD_PROFILE_NAME} | grep resources.dv.requests.memory | cut -d':' -f2 | cut -d'"' -f2) persistence.storageClass: $(cpd-cli service-instance get ${WQ_INSTANCE_NAME} --service-type dv --profile=${CPD_PROFILE_NAME} | grep persistence.storageClass | cut -d':' -f2 | cut -d'"' -f2) persistence.size: $(cpd-cli service-instance get ${WQ_INSTANCE_NAME} --service-type dv --profile=${CPD_PROFILE_NAME} | grep persistence.size | cut -d':' -f2 | cut -d'"' -f2) persistence.cachingpv.storageClass: $(cpd-cli service-instance get ${WQ_INSTANCE_NAME} --service-type dv --profile=${CPD_PROFILE_NAME} | grep persistence.cachingpv.storageClass | cut -d':' -f2 | cut -d'"' -f2) persistence.cachingpv.size: $(cpd-cli service-instance get ${WQ_INSTANCE_NAME} --service-type dv --profile=${CPD_PROFILE_NAME} | grep persistence.cachingpv.size | cut -d':' -f2 | cut -d'"' -f2) persistence.auditpv.storageClass: ${STG_CLASS_FILE} persistence.auditpv.size: ${AUDIT_PVC_SIZE} EOFImportant: A separate override file is required for each instance that you upgrade. The file contains instance-specific settings. You must upgrade one instance at a time to ensure that override file for each instance is applied correctly. -
Open the override file and verify that it is complete.Warning: The upgrade fails if the override file does not contain values for all of the parameters.The following example shows an override file with the parameter values set:
parameters: workerCount: 1 resources.dv.requests.cpu: 4 resources.dv.requests.memory: 16Gi persistence.storageClass: nfs-client persistence.size: 50Gi persistence.cachingpv.storageClass: nfs-client persistence.cachingpv.size: 50Gi persistence.auditpv.storageClass: nfs-client persistence.auditpv.size: 30Gi - Run the following command to upgrade the
instance:
cpd-cli service-instance upgrade \ --instance-name=${WQ_INSTANCE_NAME} \ --service-type=dv \ --profile=${CPD_PROFILE_NAME} \ --override dv_override_${WQ_INSTANCE_NAME}.yamlImportant:The upgrade fails if one or more of the following scenarios is true:- You do not include the override file when you run the upgrade command.
- The override file has sections without values.
- You do not specify a file storage class that supports ReadWriteMany (RWX) for
${STG_CLASS_FILE}in thepersistence.auditpv.storageClass: ${STG_CLASS_FILE}part of the override file.
- Run one of the following commands to verify that the version now reads 2.2.8 for the upgraded instances:
-
cpd-cli service-instance list \ --profile=${CPD_PROFILE_NAME} -
oc get bigsql db2u-dv -o jsonpath='{.status.version}{"\n"}'
-
- Set the
CrashLoop state. This is expected behavior because
Big SQL stops at the beginning of the upgrade
process. The caching pod remains in this state until the Watson
Query pods restart and load
the new docker images. If you suspect that the Watson
Query upgrade has stalled, then check
the Watson
Query head pod logs. - Shut down the Watson Query pods
- Manually start or stop Big SQL or Db2
Wait until the instance upgrades are complete before you proceed to the next step.
Upgrading remote connectors
- Download the script files by running the following commands:
Operating system Download command Windows oc cp c-db2u-dv-db2u-0:/opt/ibm/qpserver/install/DATAVIRTUALIZATION_INSTALL/dv_remoteupgrade_windows.bat dv_remoteupgrade_windows.batLinux® or Mac oc cp c-db2u-dv-db2u-0:/opt/ibm/qpserver/install/DATAVIRTUALIZATION_INSTALL/dv_remoteupgrade_linux.sh dv_remoteupgrade_linux.sh - In the dv_remoteupgrade_linux.sh or dv_remoteupgrade_windows.bat upgrade script file, change the download URL from https://${_ADMIN_HOST}:${_ADMIN_PORT}/dv/v1/endpoint/installTar to https://${_ADMIN_HOST}:${_ADMIN_PORT}/dv/<namespace>/v1/endpoint/installTar. Replace <namespace> with the namespace where the Watson Query pod is located.
- Copy the downloaded script in to your dvendpoint directory. Ensure that you see datavirtualization.env file in the dvendpoint directory.
- Set the script as an executable file:
Operating system Action Windows - Ensure that you have the required permissions to run the batch file.
- Close the command prompt of remote connector which is currently running, and on which you want to run upgrade.
Linux or Mac Run the following command: chmod +x dv_remoteupgrade_linux.sh - Run the script or batch file.Note: In Linux or Mac operating systems, if you have more than one remote connector endpoints on the same machine, the upgrade script stops the other endpoints from running.Once the upgrade is complete, you must start these endpoints manually:
sh <DVENDPOINT_DIRECTORY>/sysroot/launchGaianServer.sh
What to do next
-
After you upgrade, all active or inactive caches with refresh schedules are reset. You must edit the active caches and set the refresh rate again. For more information, see Adding data caches in Watson Query.
Watson Query is ready to use. For more information, see Virtualizing data with Watson Query.