Installing Siebel Monthly Update in a Siebel CRM on OKE Environment Deployed by SCM

You can use these steps to install latest monthly updates in a Siebel CRM on OKE environment deployed by SCM. These steps do not include repository upgrade steps, which are optional and identical to those relevant for on-premises Siebel CRM deployments.

Note: When moving Siebel environments from versions older than CM_23.8.1 to the latest, by following steps below, the sourcing of python virtual environment is required in addition to sourcing of the k8sprofile to access the OKE Cluster. Otherwise, for example, kubectl commands such as kubectl get pods may throw error. Sourcing of virtual environment and k8sprofile can be done by running the following commands:
sudo podman exec -it cloudmanager bash
bash-4.4$ source /home/opc/venv/bin/activate 
source /home/opc/siebel/<env_id>/k8sprofile
  1. Back up the database

    You must perform a backup of the database; preferably, a full backup.

  2. Upgrade SCM

    You must upgrade your SCM instance to match the target Siebel CRM version to which you wish to upgrade. For more information, see Updating Siebel Cloud Manager with a New Container Image.

  3. Back up the SCM provided files for the Siebel CRM environment

    You must back up the files in the current environment to ensure that you have a working version of the required set of files in case of any issues with the new upgrade or if you want to roll back to the previous version.

    To create a backup, do the following:

    1. Create a backup directory:
      ssh -i <private_key> opc@<cm_instance>
      mkdir /home/opc/siebel/<ENV_ID>/<backup_dir_name>
    2. Exec in to the SCM container:
      sudo podman exec -it cloudmanager bash
    3. Copy the SCM Helm charts, SCM Git repositories, environment configurations (for example, CGW and SES) , Siebel server (for example, quantum) and AI configurations (for example, quantum) to the backup directory (<backup_dir_name>):
      cd /home/opc/siebel/<env_id>/<backup_dir_name>
      cp -R /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/ /home/opc/siebel/<ENV_ID>/<env_namespace>-cloud-manager/ /home/opc/siebel/<ENV_ID>/<env_namespace>-siebfs0/<ENV_NAMESPACE>/CGW/ /home/opc/siebel/<ENV_ID>/<env_namespace>-siebfs0/<ENV_NAMESPACE>/SES/ /home/opc/siebel/<ENV_ID>/<env_namespace>-siebfs0/<ENV_NAMESPACE>/edge/ /home/opc/siebel/<ENV_ID>/<env_namespace>-siebfs0/<ENV_NAMESPACE>/quantum/ /home/opc/siebel/<ENV_ID>/<backup_dir_name>
      exit
      Note: The variables in the example have the following values:
      • <private_key>: The key used in SCM stack creation.
      • <cm_instance>: The SCM instance IP address.
      • <backup_dir_name>: The name of the backup directory.
      • <env_id>: The six characters long environment ID.
      • <env_namespace>: The name of the environment given in the payload.
      • <ENV_NAMESPACE>: The name of the environment given in the payload, in uppercase.
      • edge: The Siebel CRM server name.
      • quantum: The ai server name.
  4. Tag git repositories
    1. Create a tag in the SCM Git repository as follows:
      sudo podman exec -it cloudmanager bash 
      cd /home/opc/siebel/<ENV_ID>/<env_namespace>-cloud-manager/
      git pull
      git tag <tag_name> 
      git push origin --tags 

      In the example, <tag_name> is the source Siebel version. For example, 25.7.

    2. Create a tag in the Helm charts Git repository as follows:
      sudo podman exec -it cloudmanager bash 
      cd /home/opc/siebel/<ENV_ID>/ <env_namespace>-helmcharts/ 
      git pull
      git tag <Tag_Name> 
      git push origin --tags 
      exit

      In the example, <Tag_Name> is the source Siebel version. For example, 25.7.

  5. Update infrastructure Helm chart

    You must update the infrastructure Helm chart to the latest version. To update the infrastructure Helm chart, do the following:

    1. Suspend flux kustomization for infrastructure as follows:
      1. Verify the deployment state of ingress:
        helm list -n <env_namespace>

        The name of the ingress in the command response is <env_namespace>-ingress-nginx.

      2. Suspend flux kustomization for infrastructure to rollout infrastructure changes in the Helm chart repository:
        flux suspend kustomization infrastructure -n <env_namepsace>
    2. Update the Helm chart repository:
      1. Copy the infrastructure Helm chart from the SCM charts directory:
        cd /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/
        rm -Rf ingress-nginx
        cp -R /home/opc/siebel-cloud-manager/charts/ingress-nginx /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/
      2. Go to the ingress-nginx directory:
        cd /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/ingress-nginx
      3. Open Chart.yaml and increment the chart version to roll out the infrastructure changes.
      4. Commit the changes to the Git repository:
        git add .
        git commit -m "infrastructure latest helmchart changes"
        git push
      5. Verify that the working tree is clean:
        git status
        Note: Flux reconciliation does not happen at this time as flux is in suspended mode.
    3. Resume flux kustomization for infrastructure:
      cd /home/opc/siebel/<ENV_ID>/
      source k8sprofile
      flux resume kustomization infrastructure -n <env_namepsace>
      flux reconcile -n <env_namepsace> source git siebel-repo <env_namepsace_repository>
      flux reconcile -n <env_namepsace> kustomization infrastructure

      In the example above, <env_namespace> is the repository name.

    4. Verify and confirm the infrastructure updates, ensure that the value of the field SUSPENDED is False and READY is True for the following commands:
      flux get kustomization infrastructure -n <env_namespace>
      flux get helmrelease nginx -n <env_namespace>
    5. Ensure that APP VERSION points to the latest version and is incremented from the previous version:
      helm list -n <env_namespace>
  6. Update metacontroller Helm chart

    You must update the metacontroller Helm chart to the latest version. To update the metacontroller Helm chart, do the following:

    1. Suspend flux kustomization for metacontroller as follows:
      1. Verify the deployment state of metacontroller:
        helm list -n <env_namespace>

        The name of the metacontroller in the command response is <env_namespace>-metacontroller.

      2. Suspend flux kustomization for metacontroller to rollout the latest metacontroller changes in the Helm repository:
        flux suspend kustomization metacontroller -n <env_namepsace>
    2. Update the Helm chart repository:
      1. Copy the metacontroller Helm chart from the SCM charts directory:
        cd /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/
        rm -Rf metacontroller
        cp -R /home/opc/siebel-cloud-manager/charts/metacontroller /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/
      2. Go to the metacontroller directory:
        cd /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/metacontroller
      3. Open Chart.yaml and increment the chart version to roll out the metacontroller changes.
      4. Commit the changes to the Git repository:
        git add .
        git commit -m "metacontroller latest helmchart changes"
        git push
      5. Verify the status of the working tree to confirm that the status is "nothing to commit, working tree clean":
        git status
        Note: Flux reconciliation does not happen at this time as flux is in suspended mode.
    3. Resume flux kustomization for metacontroller:
      cd /home/opc/siebel/<ENV_ID>/
      source k8sprofile
      flux resume kustomization metacontroller -n <env_namepsace>
      flux reconcile -n <env_namepsace> source git siebel-repo <env_namepsace_repository>
      flux reconcile -n <env_namepsace> kustomization metacontroller
    4. Verify and confirm the metacontroller updates, ensure that the value of the field SUSPENDED is False and READY is True for the following commands:
      flux get kustomization metacontroller -n <env_namespace>
      flux get helmrelease metacontroller -n <env_namespace>
    5. Ensure that APP VERSION points to the latest version and is incremented from the previous version:
      helm list -n <env_namespace>
  7. Update Siebel operator Helm chart

    You must update the Siebel operator Helm chart to the latest version. To update the Siebel operator Helm chart, do the following:

    1. Suspend flux kustomization for Siebel operator as follows:
      1. Verify the deployment state of the Siebel operator:
        helm list -n <env_namespace>

        The name of the Siebel operator in the command response is siebel-controller-xxx; here, xxx is the random number generated and assigned to the Siebel-operator.

      2. Suspend flux kustomization for siebel-operator to rollout latest Siebel-operator changes in SCM and Helm repositories:
        flux suspend kustomization siebel-operator -n <env_namepsace>
    2. Update the Helm charts repository:
      1. Copy the Siebel operator Helm charts from the SCM siebel-operator directory:
        cd /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/
        rm -Rf siebel-operator
        cp -R /home/opc/siebel-cloud-manager/operators/siebel-operator /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/
      2. Go to the siebel-operator Helm chart directory:
        cd /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/siebel-operator/manifest
      3. Open kustomization.yaml and add the image details under the values section as follows.
        images:
        - name: siebel-operator-base
          newName: <user_registry_url>/<registry_prefix>/cm/siebel-operator-base
      4. Commit the changes to the Git repository:
        git add .
        git commit -m "Siebel operator latest helmchart changes"
        git push
      5. Verify that the working tree is clean:
        git status
        Note: Flux reconciliation does not happen at this time as flux is in suspended mode.
    3. Resume flux kustomization for Siebel operator:
      cd /home/opc/siebel/<ENV_ID>/
      source k8sprofile
      flux resume kustomization siebel-operator -n <env_namepsace>
      flux reconcile -n <env_namepsace> source git siebel-repo <env_namepsace_repository>
      flux reconcile -n <env_namepsace> kustomization apps
    4. Verify and confirm the Siebel operator updates, ensure that the value of the field SUSPENDED is False and READY is True:
      flux get kustomization siebel-operator -n <env_namespace>
    5. Confirm that the config map is reloaded:
      kubectl -n <env_namespace> get cm 
      kubectl -n <env_namespace> get cm siebel-controller-xxx
  8. Build and push the new Siebel CRM custom image for the target version

    You must re-tag the copied Siebel CRM base image to the user’s environment registry and push it to the registry specific to the user’s environment.

    1. Re-tag the copied Siebel CRM base image to the user's environment registry:
      1. Set the target Siebel CRM version:
        sudo podman exec -it cloudmanager bash
        export target_version=<target_siebel_version>
      2. Set the source_base_image variable to the destination registry repository obtained from the mirror:
        export source_base_image="<user_registry_url>/<user_registry_prefix>/cm/siebel:$target_version-full"
      3. Verify that the source_base_image variable is set properly:
        echo $source_base_image
        export target_base_image="<user_registry_url>/<user_registry_namespace>/<env_namespace>/siebel:$target_version-full"
      4. Verify that the target_base_image variable is set properly:
        echo $target_base_image
      5. Re-tag the target Siebel CRM base image to the user's environment registry:
        podman tag $source_base_image $target_base_image
    2. Log in to the docker registry to push the target Siebel CRM base image to the user's registry:
      podman login <user_region>.ocir.io
      podman push $target_base_image
    3. Sync the local environment ID's Helm charts Git repository with the remote repository for the custom artifacts changes.
      cd /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/
      git clean -d -x -f
      git pull
    4. Build a new custom image for the Siebel CRM web artifacts and push it to the customer registry:
      cd /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/siebel-artifacts/build/
      export target_image=<registry_url>/<registry_namespace>/<env_namespace>/siebel:$target_version.CUSTOM.1
      podman build --build-arg BASE_IMAGE=${target_base_image} -t ${target_image} ./ -f dockerfile
      podman push $target_image
      exit
  9. Update Siebel Gateway Helm chart and Helm release

    You must update the Siebel Gateway Helm chart to the latest version and Helm release to point to user registry. To update the Siebel Gateway Helm chart and Helm release:

    1. Suspend flux Helm release for Siebel Gateway as follows:
      1. Verify the deployment state of Siebel Gateway:
        helm list -n <env_namespace>
      2. Suspend flux Helm release for Siebel Gateway to roll out the latest changes:
        flux suspend image update cm-siebel-image-update1 -n <env_namespace>
        flux suspend image update cm-siebel-image-update2 -n <env_namespace>
        flux suspend helmrelease siebel-gateway -n <env_namespace>
    2. Update Helm charts repository:
      1. Copy the latest Siebel Gateway Helm chart from SCM the charts directory:
        cd /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/
        rm -Rf siebel-gateway 
        cp -R /home/opc/siebel-cloud-manager/charts/crm/siebel-gateway /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/
      2. Go to the siebel-gateway Helm chart directory:
        cd /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/siebel-gateway
      3. Open Charts.yaml and increment the chart version to roll out the Siebel Gateway changes.
      4. Commit the changes to the Git repository:
        git add .
        git commit -m "siebel-gateway latest helmchart changes"
        git push
      5. Verify that the working tree is clean:
        git status
        Note: Flux reconciliation does not happen at this time as flux is in suspended mode.
    3. Update the SCM repository with the Siebel Gateway changes:
      1. Go to the siebel directory in the SCM repository:
        cd /home/opc/siebel/<ENV_ID>/<env_namespace>-cloud-manager/flux-crm/apps/base/siebel/
      2. Add the custom image details under the values section in the siebel-gateway.yaml file as follows:
        values:
            image:
              siebel:
                imagePullPolicy: IfNotPresent
                registry: <user_registry_url> 
                repository: <registry_prefix/object_namespace>/<env_namespace>/siebel
                tag: <target_image built in step 8.d, for example 25.5.CUSTOM.1> 
      3. Commit the changes to the repository:
        git add .
        git commit -m "Updating siebel-gateway helmrelease container images repository to user registry"
        git push
    4. Resume flux Helm release for Siebel Gateway:
      cd /home/opc/siebel/<ENV_ID>/
      source k8sprofile
      flux resume helmrelease siebel-gateway -n <env_namepsace>
      flux reconcile -n <env_namepsace> source git siebel-repo <env_namepsace_repository>
      flux reconcile -n <env_namepsace> kustomization apps
    5. Verify and confirm the Siebel Gateway updates, ensure that the value of the field SUSPENDED is False and READY is True:
      flux get kustomization siebel-gateway-n <env_namespace>
      flux get helmrelease -n <env_namespace>
    6. Ensure that APP VERSION points to the latest version and is incremented from previous version:
      helm list -n <env_namespace>
  10. Update Siebel Config Helm chart

    You must update the siebel-config Helm chart to the latest version. To update the siebel-config Helm chart:

    1. Suspend flux Helm release for siebel-config as follows:
      1. Verify the deployment state of siebel-config:
        helm list -n <env_namespace>
      2. Suspend Helm release to rollout siebel-config changes in SCM and Helm repositories:
        flux suspend helmrelease siebel-config -n <env_namespace>
    2. Update the Helm chart repository:
      1. Copy the siebel-config Helm chart from the SCM charts directory:
        cd /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/siebel-config
        rm -Rf templates/ values.yaml Chart.yaml
        cp -R /home/opc/siebel-cloud-manager/charts/crm/siebel-config/templates/ /home/opc/siebel-cloud-manager/charts/crm/siebel-config/values.yaml /home/opc/siebel-cloud-manager/charts/crm/siebel-config/Chart.yaml /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/siebel-config/
      2. Go to the Helm chart siebel-config directory:
        cd /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/siebel-config
      3. Open Chart.yaml and increment the chart version to roll out the infrastructure changes.
      4. Commit the changes to the Git repository:
        git add .
        git commit -m "siebel-configlatest helmchart changes"
        git push
      5. Verify that the working tree is clean:
        git status
        Note: Flux reconciliation does not happen at this time as flux is in suspended mode.
    3. Resume flux Helm release for siebel-config:
      cd /home/opc/siebel/<ENV_ID>/
      source k8sprofile
      flux resume helmrelease siebel-config -n <env_namepsace>
      flux reconcile -n <env_namepsace> source git siebel-repo <env_namepsace_repository>
      flux reconcile -n <env_namepsace> kustomization apps
    4. Verify and confirm the siebel-config updates, ensure that the value of the field SUSPENDED is False and READY is True for the following commands:
      flux get kustomization siebel-config -n <env_namespace>
      flux get helmrelease -n <env_namespace>
    5. Ensure that APP VERSION points to the latest version and is incremented from previous version:
      helm list -n <env_namespace>
  11. Update Siebel Helm chart and Helm release

    You must update the siebel Helm chart to the latest version and Helm release to point to user registry. To update the siebel Helm chart and Helm release, do the following:

    1. Suspend flux Helm release for siebel as follows:
      1. Verify the deployment state of the siebel:
        helm list -n <env_namespace>
      2. Suspend Helm release for siebel to roll out the latest changes:
        flux suspend helmrelease siebel -n <env_namespace>
    2. Update the Helm chart repository:
      1. Copy the siebel Helm charts from SCM charts directory:
        cd /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/
        rm -Rf siebel
        cp -R /home/opc/siebel-cloud-manager/charts/crm/siebel /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/
      2. Go to the siebel Helm chart directory:
        cd /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/siebel
      3. Open Chart.yaml and increment the chart version to roll out the Siebel changes.
      4. Commit the changes to the Git repository:
        git add .
        git commit -m "siebel latest helmchart changes"
        git push
      5. Verify that the working tree is clean:
        git status
        Note: Flux reconciliation does not happen at this time as flux is in suspended mode.
    3. Update the SCM repository with the siebel changes
      1. Go to the siebel directory:
        cd /home/opc/siebel/<ENV_ID>/<env_namespace>-cloud-manager/flux-crm/apps/base/siebel/
      2. Update the siebel.yaml file as follows:
        values:
          image:
             siebel:
                  imagePullPolicy: IfNotPresent
                   registry: <user_registry_url> 
                   repository: <registry_prefix/object_namespace>/<env_namespace>/siebel
                   tag: <target_image built in step 8.d, for example 25.5.CUSTOM.1> 
          
        git add .
        git commit -m "Updating siebel helmrelease container images repo to my registry"
        git push
    4. Resume flux Helm release for siebel:
      cd /home/opc/siebel/<ENV_ID>/
      source k8sprofile
      flux resume helmrelease siebel -n <env_namepsace>
      flux reconcile -n <env_namepsace> source git siebel-repo <env_namepsace_repository>
      flux reconcile -n <env_namepsace> kustomization apps
    5. Verify and confirm the Siebel updates, ensure that the value of the field SUSPENDED is False and READY is True for the following commands:
      flux get kustomization apps -n <env_namespace>
      flux get helmrelease siebel -n <env_namespace>
    6. Ensure that APP VERSION points to the latest version and is incremented from previous version:
      helm list -n <env_namespace>
  12. Update Siebel artifacts Helm chart

    You must update the Siebel artifacts Helm chart to the latest version and Helm release to point to user registry. To update the Siebel artifacts Helm chart and Helm release:

    1. Suspend flux Helm release for siebel-artifacts as follows:
      1. Verify the deployment state of the siebel-artifacts:
        helm list -n <env_namespace>
      2. Suspend Helm release for siebel-artifacts to roll out the latest changes:
        flux suspend helmrelease siebel-artifacts -n <env_namespace>
    2. Update the Helm chart repository:
      1. Copy the siebel-artifacts Helm charts from SCM charts directory:
        cd /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/
        rm -Rf siebel-artifacts/ 
        cp -R /home/opc/siebel-cloud-manager/charts/crm/siebel-artifacts /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/
      2. Restore the siebel-artifacts/build folder from the backup:
        cp -R /home/opc/siebel/<ENV_ID>/backup/<env_namespace>-helmcharts/siebel-artifacts/build/ /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/siebel-artifacts/
      3. Go to the siebel-artifacts directory:
        cd /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/siebel-artifacts
      4. Open Chart.yaml and increment the chart version to roll out the siebel-artifacts changes.
      5. Commit the changes to the Git repository:
        git add .
        git commit -m “Siebel-artifacts latest helmchart changes"
        git push
      6. Verify that the working tree is clean:
        git status
        Note: Flux reconciliation does not happen at this time as flux is in suspended mode.
    3. Update the SCM repository with the siebel-artifacts changes:
      1. Go to the siebel directory:
        cd /home/opc/siebel/<ENV_ID>/<env_namespace>-cloud-manager/flux-crm/apps/base/siebel
      2. Update the image details in the siebel-artifacts.yaml file as follows:
        values:
          image:
            siebel: 
              base_image: <user_registry_url>/<registry_prefix/object_namespace>/cm/siebel:  $target_version-full
              registry: <user_registry_url> 
              repository: <registry_prefix/object_namespace>/<env_namespace>/siebel
              tag: < target_image built in step 8.d, for example 25.5.CUSTOM.1> 
      3. Commit the changes to the Git repository:
        git add .
        git commit -m "Updating siebel-artifacts helmrelease container images repo to user registry"
        git push
    4. Update version in Chart.yaml as follows:
      1. Go to the siebel-artifacts directory:
        cd /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/siebel-artifacts
      2. Update the Chart.yaml file as follows:
        name: siebel-artifacts
        version: 0.1.1
        appVersion: "25.5"
      3. Commit the changes to the Git repository:
        git add .
        git commit -m "Updating new siebel version"
        git push
    5. Resume flux Helm release for siebel-artifacts:
      1. Resume siebel-artifacts helmrelease:
        cd /home/opc/siebel/<ENV_ID>/
        source k8sprofile
        flux resume helmrelease siebel-artifacts -n <env_namepsace>
      2. Trigger manual reconciliation:
        flux resume image update cm-siebel-image-update1 -n <env_namespace>
        flux resume image update cm-siebel-image-update2 -n <env_namespace>
        flux reconcile source git siebel-repo <env_namepsace> -n <env_namepsace> 
        flux reconcile kustomization apps -n <env_namepsace> 
    6. Verify and confirm the siebel-artifacts updates, ensure that the value of the field SUSPENDED is False and READY is True for the following commands:
      flux get kustomization apps -n <env_namespace>
      flux get helmrelease siebel-artifacts -n <env_namespace>
    7. Ensure that APP VERSION points to the latest version:
      helm list -n <env_namespace>
  13. Update Siebel observability Helm chart

    You must update the Siebel observability Helm chart to the latest version. To update the Siebel-observability Helm chart, do the following:

    1. Verify the deployment state of monitoring Helm charts (kube-state-metrics, node-exporter, prometheus, prometheus-adapter, prometheus-alert-manager):
      helm list -n <env_namespace>
      Note: prometheus-alert-manager is deployed only if send_alerts is set to true.
    2. Suspend flux Helm release for Siebel observability to roll out the latest changes as follows:
      flux suspend helmrelease kube-state-metrics -n <env_namespace>
      flux suspend helmrelease node-exporter -n <env_namespace>
      flux suspend helmrelease prometheus -n <env_namespace>
      flux suspend helmrelease prometheus-adapter -n <env_namespace>
      flux suspend helmrelease prometheus-alert-manager -n <env_namespace>
    3. Update the Helm chart repository:
      1. Copy the Siebel observability Helm charts from the SCM charts directory:
        cd /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/
        rm -Rf node-exporter/ kube-state-metrics/ prometheus/ prometheus-adapter/ prometheus-alert-manager/
        cp -R /home/opc/siebel-cloud-manager/charts/siebel_observability/ /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/
      2. Increment the chart version in the Chart.yaml file to roll out the changes, in the following directories:
        /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/kube-state-metrics/
        /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/node-exporter/
        /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/prometheus/
        /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/prometheus-adapter/
        /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/prometheus-alert-manager/
      3. Commit the changes to the Git repository:
        git add .
        git commit -m " infrastructure latest helmchart changes"
        git push
      4. Verify that the working tree is clean:
        git status
        Note: Flux reconciliation does not happen at this time as flux is in suspended mode.
    4. Resume flux Helm release for Siebel observability:
      flux resume helmrelease kube-state-metrics -n <env_namespace>
      flux resume helmrelease node-exporter -n <env_namespace>
      flux resume helmrelease prometheus -n <env_namespace>
      flux resume helmrelease prometheus-adapter -n <env_namespace>
      flux resume helmrelease prometheus-alert-manager -n <env_namespace> #this can be given only if send_alerts = true in payload.
      flux reconcile -n <env_namepsace> source git siebel-repo <env_namepsace_repository>
      flux reconcile -n <env_namepsace> kustomization apps
    5. Verify and confirm the Siebel observability updates, ensure that the value of the field SUSPENDED is False and READY is True for kube-state-metrics, node-exporter, prometheus, prometheus-adapter, prometheus-alert-manager:
      flux get kustomization apps -n <env_namespace>
      flux get helmrelease -n <env_namespace>
    6. Ensure that APP VERSION points to the latest version and is incremented from previous version for kube-state-metrics, node-exporter, prometheus, prometheus-adapter, prometheus-alert-manager:
      helm list -n <env_namespace>
  14. Update Siebel logging Helm chart

    You must update Siebel logging Helm chart to the latest version. To update the Siebel logging Helm chart:

    1. Suspend flux Helm release for Siebel logging as follows:
      1. Verify the deployment state of Siebel logging Helm charts (oracle-opensearch, oracle-opensearch-dashboards, and siebel-logging):
        helm list -n <env_namespace>
      2. Suspend flux Helm release to rollout Siebel logging changes in Helm repositories:
        flux suspend helmrelease oracle-opensearch -n <env_namespace>
        flux suspend helmrelease oracle-opensearch-dashboards -n <env_namespace>
        flux suspend helmrelease siebel-logging  -n <env_namespace>
    2. Update the Helm chart repository:
      1. Copy the Siebel logging Helm charts from the SCM charts directory:
        cd /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/
        rm -Rf siebel-logging/ oracle-opensearch/ oracle-opensearch-dashboards/
        cp -R /home/opc/siebel-cloud-manager/charts/siebel-logging/ /home/opc/siebel-cloud-manager/charts/oracle-opensearch/ /home/opc/siebel-cloud-manager/charts/oracle-opensearch-dashboards/ /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/
      2. Increment the chart version, to roll out the changes, in the Chart.yaml file in the following directories:
        /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/siebel-logging/
        /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/oracle-opensearch/
        /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/oracle-opensearch-dashboards/
      3. Commit the changes to the Git repository:
        cd /home/opc/siebel/<ENV_ID>/<env_namespace>-helmcharts/
        git add .
        git commit -m " siebel-logging latest helmchart changes"
        git push
      4. Verify that the working tree is clean:
        git status
        Note: Flux reconciliation does not happen at this time as flux is in suspended mode .
    3. Resume flux Helm release for Siebel logging:
      cd /home/opc/siebel/<ENV_ID>/
      source k8sprofile
      flux resume helmrelease oracle-opensearch -n <env_namespace>
      flux resume helmrelease oracle-opensearch-dashboards -n <env_namespace>
      flux resume helmrelease siebel-logging -n <env_namespace>
      flux reconcile -n <env_namepsace> source git siebel-repo <env_namepsace_repository>
      flux reconcile -n <env_namepsace> kustomization apps
    4. Verify and confirm the Siebel logging updates, ensure that the value of the field SUSPENDED is False and READY is True for oracle-opensearch, oracle-opensearch-dashboard, and siebel-logging:
      flux get kustomization apps -n <env_namespace>
      flux get helmrelease -n <env_namespace>
    5. Ensure that APP VERSION points to the latest version and is incremented from previous version for oracle-opensearch, oracle-opensearch-dashboard, and siebel-logging:
      helm list -n <env_namespace>
  15. Check the status of the flux components after upgrade:
    flux get all -n <env_namespace>
  16. Watch out for the successful completion of postinstalldb Kubernetes job

    For more information, see Reviewing the PostInstallDBSetup Execution Status.

    • The new image updates will trigger postinstalldb update through flux-crm sync up.
    • Wait for the Kubernetes job completion.
    • Manually verify the postinstalldb job reports and exit code from the logs.
    • In case of errors, take corrective actions and rerun postinstalldb Kubernetes job by updating the version in chart.yaml file as required for an incremental run.

    For more information, see Making Incremental Changes.

    sudo podman exec -it cloudmanager bash source /home/opc/siebel/<env_id>/k8sprofile kubectl -n <env_namespace> get pods
  17. Configuration instructions specific to a release
    • For any configuration instructions specific to a release, refer to Siebel Upgrade Guide and Siebel Release Notes.
    • Migrate the persistent volume content. Refer to the "Migrating Persistent Volume Content" section in the Deploying Siebel CRM Containers Guide.
  18. Upgrading the repository

    During the upgrade process if any new features require repository upgrade, then upgrade the repository. Refer to Using Siebel Tools Guide.

  19. Troubleshooting
    • In any of the above steps during the Siebel new image rollout and flux sync-up, verify the Helm Release deployment status.
    • If HelmRelease is in failed state, rollback is required and increment the version in Chart.yaml for the helm upgrade.

    To verify the helm release status:

    kubectl get helmrelease -n <env_namespace> 
    Note: In the command response, the value in the READY column should be "True" for all the helm releases

    To verify the deployment status of helm charts:

    helm ls -n <env_namespace>
    Note: In the command response, the value in the STATUS column should be "deployed" for all the helm charts.
  20. Rollback steps for Helm Charts

    In case of any failures noticed in the above two commands, find out the stable helmchart revision and do a rollback of helm charts by running the following commands:

    1. To find out the previous stable REVISION deployed:
      helm history siebel -n <env_namespace>
    2. Rollback to the previous stable REVISION identified by the previous command, that is, helm history:
      helm rollback siebel -n <env_namespace> 1

      For example:

      W0505 10:56:23.450209 3296 warnings.go:70] would violate PodSecurity "restricted:latest": allowPrivilegeEscalation != false (containers "persist-folders", "sai" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (containers "persist-folders", "sai" must set securityContext.capabilities.drop=["ALL"]), runAsNonRoot != true (pod or containers "persist-folders", "sai" must set securityContext.runAsNonRoot=true), seccompProfile (pod or containers "persist-folders", "sai" must set securityContext.seccompProfile.type to "RuntimeDefault" or "Localhost")
      W0505 10:56:23.511704 3296 warnings.go:70] would violate PodSecurity "restricted:latest": allowPrivilegeEscalation != false (containers "persist-fix", "ses" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities
      (containers "persist-fix", "ses" must set securityContext.capabilities.drop=["ALL"]), runAsNonRoot != true (pod or containers "persist-fix", "ses" must set securityContext.runAsNonRoot=true), seccompProfile (pod or containers "persist-fix", "ses" must set securityContext.seccompProfile.type to "RuntimeDefault" or "Localhost")
      Rollback was a success! Happy Helming!
      
  21. Verify the application URLs once the environment comes up.