Online upgrade to IBM Concert Operate (GitOps method)

Use these instructions to upgrade an online deployment of IBM Cloud Pak for AIOps 4.13.0 or later to IBM Concert Operate 5.1.0 with GitOps.

Important: Starting with this version, the product is rebranded from IBM Cloud Pak for AIOps to IBM Concert Operate . This procedure upgrades IBM Cloud Pak for AIOps 4.13.0 or 4.13.1 to IBM Concert Operate 5.1.0.

Overview

If you used GitOps to install a production deployment of IBM Cloud Pak for AIOps on a Red Hat OpenShift cluster, then you can use GitOps to upgrade your deployment by a maximum of one release at a time, and you can also upgrade directly from the final release of one version to the first release of the next version. For more information, see Upgrade paths.

If you did not use GitOps to install your deployment, then use the upgrade method that matches your deployment type from the following list:

Before you begin

  • Ensure that you are on a version of Red Hat OpenShift that your current and target versions of both support. If you already have a qualifying version of Red Hat OpenShift but you want to upgrade it, then complete the IBM Cloud Pak for AIOps upgrade first. For more information, see Guidance for upgrades that require an Red Hat OpenShift upgrade.
  • Backup and restore with IBM Fusion is not supported on Red Hat OpenShift 4.22 and later.
  • Ensure that you are logged in to your Red Hat OpenShift cluster with oc login for any steps that use the Red Hat OpenShift command-line interface (CLI).
  • The upgrade cannot be removed or rolled back.
Important:
  • Custom patches, labels, and manual adjustments to IBM Cloud Pak for AIOps resources (such as increased CPU and memory values) are lost when IBM Cloud Pak for AIOps is upgraded, and must be manually reapplied after upgrade. Upgrade triggers a reconciliation which causes manually implemented adjustments to be reverted to their original default values.
  • If you previously increased the size of a PVC directly, then you must follow the correct procedure that is supplied in Scaling up storage to ensure that the size is updated by the operator. Failure to do so before upgrading causes the operator to attempt to restore a lower default value for the PVC, and causes an error in your deployment.
  • If IBM Netcool Operations Insight is deployed on the same cluster as IBM Cloud Pak for AIOps, ensure that Netcool Operations Insight is at version 1.6.13 or later before you upgrade IBM Cloud Pak for AIOps. Failure to do so may result in a broken Netcool Operations Insight deployment, as the upgrade process updates a shared component that is used by both applications.
  • If you use Instana to monitor IBM Cloud Pak for AIOps, ensure that Instana AutoTrace is disabled for the IBM Concert Operate namespace. Failure to do so can cause operational issues, and installation or upgrade failures. For more information, see Instana AutoTrace causes pod eviction and prevents install and upgrade.

Upgrade considerations

The following table gives an indication of the duration of the v5.1.0 upgrade relative to previous upgrades, and whether more resources are needed.

Upgrade path Upgrade duration and downtime Resources required for upgrade
4.13.0 -> 5.1.0 Longer More
4.13.1 -> 5.1.0 Longer More

This upgrade includes major component updates that extend the upgrade duration beyond typical releases. The upgrade includes a major version upgrade of IBM Cloud Pak foundational services and a switch to a new Postgres operator, both of which require more time to complete.

Important: Ensure that your cluster has sufficient capacity before you upgrade. If your cluster does not have sufficient resources, the upgrade might fail or cause a degraded performance. For more information about the resource requirements for upgrades to 5.1.0, see

1. Ensure cluster readiness

Recommended: Take a backup before upgrading. Follow the backup instructions for your current version, not the version you are upgrading to.
  1. Ensure that your cluster still meets all of the prerequisites for deployment. For more information, see Planning.

  2. Export an environment variable for your namespace.
    export PROJECT_CP4AIOPS=<namespace>

    Where <namespace> is the project (namespace) that your IBM Cloud Pak for AIOps installation is deployed in.

  3. Verify whether your environment is correctly configured for the upgrade.

    1. Download and install v5.1.0 of the aiopsctl command line interface tool.

      AIOPSCTL_TAR=<aiopsctl_tar>
      AIOPSCTL_INSTALL_URL="https://github.com/IBM/aiopsctl/releases/download/v5.1.0/${AIOPSCTL_TAR}"
      curl -LO "${AIOPSCTL_INSTALL_URL}"
      tar xf "${AIOPSCTL_TAR}"
      mv aiopsctl /usr/local/bin/aiopsctl
      

      Where <aiopsctl_tar> is the operating system specific file that you require from the following set: aiopsctl-linux_s390x.tar.gz, aiopsctl-linux_arm64.tar.gz,aiopsctl-linux_amd64.tar.gz, aiopsctl-darwin_amd64.tar.gz, aiopsctl-darwin_arm64.tar.gz.

    2. Run the following command to run the precheck:
      aiopsctl server precheck -n ${PROJECT_CP4AIOPS}
      • If you have a multi-zone cluster, then also specify the -m flag. This flag enables extra checks to help ensure that the cluster has sufficient resources to withstand a zone outage, and that the zones are well balanced for memory and CPU. For example, aiopsctl server precheck -n cp4aiops -m.
      • If you are using hybrid storage, then also specify the --hybrid-storage flag. This flag enables extra checks to help ensure that sufficient local storage is configured. For example, aiopsctl server precheck -n cp4aiops --hybrid-storage
      Example output:
      # aiopsctl server precheck -n concert-operate
      o- [12 Jun 26 15:10 IST] Running precheck tool
        o- [12 Jun 26 15:10 IST] Checking hardware resources...
        Total Node Count (Available Schedulable / Required): 6/6
        Production (HA) Base CPU (vCPU): 93 / 146
        Production (HA) Base Memory (GB): 191 / 336
      
        Production (HA) Extended CPU (vCPU): 93 / 173
        Production (HA) Extended Memory (GB): 191 / 396
      
        Total Node Count (Available Schedulable / Required): 6/3
        Starter (Non-HA) Base CPU (vCPU): 93 / 47
        Starter (Non-HA) Base Memory (GB): 191 / 123
      
        Starter (Non-HA) Extended CPU (vCPU): 93 / 55
        Starter (Non-HA) Extended Memory (GB): 191 / 136
      
        You have enough resources for 1 instance(s) of small Base install
        You have enough resources for 1 instance(s) of small Extended install
      
        minimum hardware requirements met for starter size, but not production size
      
        o- [12 Jun 26 15:10 IST] Checking storage...
        Required StorageClasses found for provider Red Hat OpenShift Data Foundation: ocs-storagecluster-cephfs, ocs-storagecluster-ceph-rbd
        Checking if PVC can bind to supported storage class
      
        Verifying storage provider functionality: elapsed time [2s], estimated time [1m0s]
        Verifying storage provider functionality: elapsed time [5s], estimated time [1m0s]
        Storage check passed
      
        o- [12 Jun 26 15:10 IST] Checking OCP Version...
        Cluster meets OCP version requirements
      
        o- [12 Jun 26 15:10 IST] Checking if Cert Manager is present...
        Certificate CustomResourceDefinition Found
      
        o- [12 Jun 26 15:10 IST] Checking if certs will expire within 4 days...
      
        o- [12 Jun 26 15:10 IST] Precheck Summary Results
        Check                          Result
        Meets OCP Version Requirement  Passed
        Cert Mgr Operator Exists       Passed
        Certificates Valid             Passed
        Meets Hardware Requirements    Passed
        No Storage Issues              Passed
      Note:
      • The "You have enough resources for <...>" statements denote the number of instances that the cluster can support, and include any existing instances. The number that is given is for the number of base instances or extended instances. It does not mean that the cluster can support the stated number of base instances and the stated number of extended instances.
      • The tool might show inadequate resources in the Resource Summary because the script does not account for resources already being in use by the upgrading deployment. This can be ignored, as can the following message: [ FAIL ] Small or Large Profile Install Resources.

      The aiopsctl tool checks for expired and soon to expire certificates. If any certificates are identified as expired or expiring soon, they must be renewed. After the certificates are renewed, run aiopsctl precheck again to check the certificates. If you are using IBM Cloud Pak foundational services Cert Manager, you can use the cert-manager command line tool to renew the necessary certificates. Otherwise, follow the instructions for your chosen certificate manager.

  4. Delete any evicted connector-orchestrator pods.

    1. Run the following command to check if there are any evicted connector-orchestrator pods.

      oc get pods -n ${PROJECT_CP4AIOPS} | grep connector-orchestrator
      
    2. Cleanup any evicted connector-orchestrator pods.

      If the previous command returned any pods with a STATUS of Evicted, then run the following command to delete each of them.

      oc delete pod -n ${PROJECT_CP4AIOPS} <connector_orchestrator>
      

      Where <connector_orchestrator> is a pod returned in the previous step.

2. Suspend automatic synchronization

If automatic synchronization is enabled for the Argo CD applications, then disable it.

  1. In the Argo CD user interface (UI), select the Red Hat OpenShift application.
  2. Click Application Settings for all of the IBM Cloud Pak for AIOps Argo CD applications
  3. Disable Auto-Sync to prevent automatic reconciliation during the upgrade process.

3. Update the target revision

  1. Remove any stale PostgreSQL binding secret references. The commands are conditional and have no effect if the field is already absent.

    oc get issueresolutioncore aiops -n "${PROJECT_CP4AIOPS}" \
     -o jsonpath='{.spec.postgresql.bindingSecret}' | grep -q . && \
    oc patch issueresolutioncore aiops -n "${PROJECT_CP4AIOPS}" --type=json \
     -p '[{"op":"remove","path":"/spec/postgresql/bindingSecret"}]'
    
    oc get asm aiops-topology -n "${PROJECT_CP4AIOPS}" \
     -o jsonpath='{.spec.helmValuesASM.global\.postgres\.bindingSecret}' | grep -q . && \
    oc patch asm aiops-topology -n "${PROJECT_CP4AIOPS}" --type=json \
     -p '[{"op":"remove","path":"/spec/helmValuesASM/global.postgres.bindingSecret"}]'
  2. Edit the Argo CD custom health check application manifest to update the spec.source.targetRevision to 5.1.0, and then save and apply your changes.

    Example excerpt (truncated):
    cat <<EOF | oc apply -f -
    apiVersion: argoproj.io/v1alpha1
    kind: Application
    metadata:
      name: argocd
      namespace: openshift-gitops
      labels:
        app.kubernetes.io/instance: argocd
      annotations:
        argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
    spec:
      destination:
        namespace: cp4aiops
        server: 'https://kubernetes.default.svc'
      source:
        repoURL: https://github.com/IBM/cp4aiops-gitops
        path: argocd
        targetRevision: 5.1.0
    <...>
    
  3. Edit the Argo CD IBM Cert Manager application manifest to update the spec.source.targetRevision to 5.1.0, and then save and apply your changes.
    cat <<EOF | oc apply -f -
    apiVersion: argoproj.io/v1alpha1
    kind: Application
    metadata:
      name: ibm-cert-manager
      namespace: openshift-gitops
      labels:
        app.kubernetes.io/instance: ibm-cert-manager
      annotations:
        argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
    spec:
      destination:
        namespace: ibm-cert-manager
        server: 'https://kubernetes.default.svc'
      source:
        repoURL: https://github.com/IBM/cp4aiops-gitops
        path: cert-manager
        targetRevision: 5.1.0
    
  4. Edit the Argo CD IBM Cloud Pak for AIOps application manifest to update the spec.source.targetRevision to 5.1.0, and then save and apply your changes.

    Example excerpt (truncated):
    apiVersion: argoproj.io/v1alpha1
    kind: Application
    metadata:
      name: ibm-cp4aiops
      namespace: openshift-gitops
      labels:
        app.kubernetes.io/instance: ibm-cp4aiops
      annotations:
        argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
    spec:
      destination:
        namespace: cp4aiops
        server: 'https://kubernetes.default.svc'
      source:
        repoURL: https://github.com/IBM/cp4aiops-gitops
        path: cp4aiops
        targetRevision: 5.1.0
    <...>
    

Argo CD detects the change to the application manifests, and marks the applications as OutOfSync.

4. Synchronize applications

  1. In the Argo CD UI, review the diff to verify the changes that are to be applied when the IBM Cloud Pak for AIOps application is synchronized.

  2. Click SYNC in the Argo CD UI to apply the changes and initiate the upgrade process.

    Initiate synchronization of the Argo CD applications in the following order: argocd, ibm-cert-manager, ibm-cp4aiops.

5. Verify the deployment

When all components are successfully deployed, the final state for each application in ArgoCD is Healthy and Synced. It takes around 60-90 minutes for the upgrade to complete (subject to the speed with which images can be pulled). You can monitor the ArgoCD app sync to see how the upgrade is progressing.

If you want to monitor the rollout of components more closely, use the following procedures.

5.1 Check the deployment

Run the following command to check that the PHASE of your deployment is Updating.
oc get installations.orchestrator.aiops.ibm.com -n ${PROJECT_CP4AIOPS}
Example output:
NAME           PHASE     LICENSE    STORAGECLASS   STORAGECLASSLARGEBLOCK   AGE
ibm-cp-aiops   Updating  Accepted   rook-cephfs    rook-ceph-block          3m
When installation is complete and successful, the PHASE of your installation changes to Running. If your installation phase does not change to Running, then use the following command to find out which components are not ready:
oc get installation.orchestrator.aiops.ibm.com -o yaml -n ${PROJECT_CP4AIOPS} | grep 'Not Ready'
Example output:
lifecycleservice: Not Ready
zenservice: Not Ready
To see details about why a component is Not Ready run the following command, where <component> is the component that is not ready, for example zenservice.
oc get <component> -o yaml -n ${PROJECT_CP4AIOPS}

(Optional) You can also download and run a status checker script to see information about the status of your deployment. For more information about how to download and run the script, see github.com/IBMOpens in a new tab .

If the upgrade fails, or is not complete and is not progressing, then see Troubleshooting installation and upgrade and Known Issues to help you identify any problems.

Important: Wait for the deployment to enter a Running phase before continuing to the next step.

5.2 Check the version

Run the following command and check that the VERSION that is returned is 5.1.0.
oc get csv -l operators.coreos.com/ibm-aiops-orchestrator.${INSTALL_MODE_NAMESPACE} -n ${INSTALL_MODE_NAMESPACE}
Example output:
oc get csv -l operators.coreos.com/ibm-aiops-orchestrator.cp4aiops -n cp4aiops

NAME                           DISPLAY                  VERSION  REPLACES                       PHASE
ibm-aiops-orchestrator.v5.1.0  IBM Concert Operate      5.1.0    ibm-aiops-orchestrator.v4.13.1  Succeeded

6. (Optional) Re-enable automatic synchronization

If you disabled automatic synchronization, then you can update the sync policy to Automated in the Argo CD App Details view for the IBM Concert Operate application. In this mode, changes to the installation manifests in the source Git repository are automatically applied to the cluster. Any values that are defined by the valuesObject section are preserved and continue to override the values file.

7. Post upgrade actions

  1. If you previously set up backup or restore on your deployment, then you must follow the instructions in Upgrading backup and restore artifacts.

  2. If the EXPIRY_SECONDS environment variable was set for configuring log anomaly alerts, the environment variable was not retained in the upgrade. After the upgrade is completed, set the environment variable again. For more information about setting the variable, see Configuring expiry time for log anomaly alerts.

Important:
  • During the upgrade, the system removes all existing metric data and starts collecting new data. You can see the only newly collected data after the upgrade.
  • For 8 days after the upgrade, metric anomaly detection training runs but produces blank entries in the AI model management: Training page. This issue occurs because the data storage is being migrated from Cassandra (4.13.x) to PostgreSQL in 5.1.0. Training is blocked during this period to preserve existing models while data rebuilds in PostgreSQL. After 8 days, training resumes on the newly collected data.