Preparing for upgrade


The following tasks describe how to prepare for an upgrade of BMC Helix Service Management:

Related topics

Task 1: To download the upgrade artifacts

  1. Download the upgrade artifacts; see Downloading-the-installation-files.
  2. Confirm access to the container images; see Setting-up-a-Harbor-repository-to-synchronize-container-images.

Back to top

Task 2: To upgrade Helm

Upgrade Helm to the following version based on your orchestration platform version:

Kubernetes

Helm

1.32

3.17

1.31

3.16

1.30

3.15

1.29

3.14

1.283.14

Back to top

Task 3: To update the Git repositories

  1. Log in to the BMC Deployment Engine as a Git user.
  2. In your local Git repository, back up of the following existing repositories:
    • CUSTOMER_CONFIGS
    • HELM_REPO
    • ITSM_REPO
    • PLAYBOOKS_REPO
    • SMARTAPPS_HELM_REPO
      For example, create a backup of the ITSM_REPO, PLAYBOOKS_REPO, HELM_REPO, SMARTAPPS_HELM_REPO, CUSTOMER_CONFIGS, and DB_REFRESH_REPO repositories located at ssh://<Jenkins server host name>/home/git/Git_Repo.
  3. Copy the BMC_Remedy_Deployment_Manager_Configuration_Release_25.2.01.zip file that you downloaded from EPD to your existing local Git repository.
    For example, copy the BMC_Remedy_Deployment_Manager_Configuration_Release_25.2.01.zip file to the local Git repository located at ssh://<Jenkins server host name>/home/git/Git_Repo.
  4. In the file system where the Git repository is located, unzip the BMC_Remedy_Deployment_Manager_Configuration_Release_25.2.01.zip file.
    For example, in the Git_Repo repository located at ssh://<Jenkins server host name>/home/git/Git_Repo, unzip the BMC_Remedy_Deployment_Manager_Configuration_Release_25.2.01.zip file.The BMC_Remedy_Deployment_Manager_Configuration_Release_25.2.01.zip file contains the following artifacts:
    • CUSTOMER_CONFIGS
    • HELM_REPO
    • ITSM_REPO
    • PLAYBOOKS_REPO
    • SMARTAPPS_HELM_REPO
    • DB_REFRESH_REPO
    • RLS_REPO

Back to top

Task 4: To add deployment pipelines

  1. Verify that the following deployment pipelines already exist in your Jenkins server:

    Pipeline

    Repository URL

    Branches to build

    Script path

    HELIX_ONPREM_DEPLOYMENT

    ssh://git@<jenkins_server>/GIT_REPO_DIR/ITSM_REPO/itsm-on-premise-installer.git 

    */master

    pipeline/jenkinsfile/HELIX_ONPREM_DEPLOYMENT.jenkinsfile

    HELIX_RESTART

    ssh://git@<jenkins_server>/GIT_REPO_DIR/ITSM_REPO/itsm-on-premise-installer.git 

    */master

    pipeline/jenkinsfile/HELIX_RESTART.jenkinsfile

    HELIX_FULL_STACK_UPGRADE

    ssh://git@<jenkins_server>/GIT_REPO_DIR/ITSM_REPO/itsm-on-premise-installer.git 

    */master

    pipeline/jenkinsfile/HELIX_FULL_STACK_UPGRADE.jenkinsfile

    HELIX_DB_REFRESH

    ssh://git@<jenkins server>/GIT_REPO_DIR/DB_REFRESH_REPO/itsm-on-premise-db-refresh.git

    */master

    jenkinsfile/helix_db_refresh.jenkinsfile

    HELIX_RLS_IMPLEMENTATION

    ssh://git@<jenkins server>/GIT_REPO_DIR/ITSM_REPO/itsm-on-premise-installer.git 

    */master

    pipeline/jenkinsfile/HELIX_RLS_IMPLEMENTATION.jenkinsfile

    HELIX_PLATFORM_UPDATE

    ssh://git@<jenkins server>/GIT_REPO_DIR/ITSM_REPO/itsm-on-premise-installer.git 

    */master

    pipeline/jenkinsfile/HELIX_PLATFORM_UPDATE.jenkinsfile

    HELIX_NON_PLATFORM_UPDATE

    ssh://git@<jenkins server>/GIT_REPO_DIR/ITSM_REPO/itsm-on-premise-installer.git 

    */master

    pipeline/jenkinsfile/HELIX_NON_PLATFORM_UPDATE.jenkinsfile

  2. Perform the following steps to add the pipeline:

    1. Log in to the Jenkins server by using the following URL:
      http://<Jenkins server host name>:8080
    2. On the Jenkins home page, click New Item.
    3. In the Enter an item name field, enter the pipeline name.
      Example: HELIX_FULL_STACK_UPGRADE.
    4. Select Pipeline and click OK.
    5. Click the Pipeline tab.
    6. Enter the following information:

      Field

      Description

      Definition

      From the Definition list, select Pipeline script from SCM.

      SCM

      From the SCM list, select Git.

      Repository URL

      Enter the Repository URL as the path of your local Git repository in the format ssh://git@<jenkins_server>/<path to itsm-on-premise-installer.git>.
      Example: ssh://git@<Jenkins server host name>/home/git/Git_Repo/ITSM_REPO/itsm-on-premise-installer.git.

      Credentials

      Enter the Git server credentials.

      Additional Behaviours

      Specify the script path.
      Example: pipeline/jenkinsfile/HELIX_FULL_STACK_UPGRADE.jenkinsfile.

      The following image shows an example:
      HELIX_FULL_STACK_UPGRADE.png

    7. Click Apply and then click Save.
    8. From the Jenkins home page, select the pipeline and click Build Now.
      The first build job fails because it needs to run the first time to load all the parameters of the pipeline script. 
    9. After the build job fails, select the pipeline name again from the Jenkins home page.
      The Build Now option changes to Build With Parameters.

Task 5: To upgrade the Kubernetes platform and Ingress controller

If you are using Kubernetes platform earlier than version 1.28, upgrade your Kubernetes platform to version 1.28, 1.29, 1.30, 1.31, or 1.32.

Upgrade the Ingress version based on the Kubernetes platform version that you want to use. Supported Ingress controller versions are as follows:

Kubernetes

Ingress

1.32

1.12.1

1.31

1.11.5

1.30

1.11.5

1.29

1.11.5

1.281.11.5

Back to top

Task 6: To delete the Helm revision secrets of the Kubernetes Cronjob

Important

Before upgrading BMC Helix Service Management, make sure that your Kubernetes platform is at least version 1.28. Also, if you are upgrading Kubernetes from a version lower than 1.25 to a higher version, delete the Helm revision secrets of the Kubernetes Cronjob.

  1. Run the following commands to export the kubectl and Helm binary:

    export KUBECTL_BIN=<path of KUBECTL_BIN>

    export HELM_BIN=<path of HELM_BIN>

    Copy the path of KUBECTL_BIN and HELM_BIN from the infra.config file. 

  2. Download the Cronjob_helm_revision_delete.sh script.
  3. Run the Cronjob_helm_revision_delete.sh script to delete the helm revision secrets of the Cronjob in the BMC Helix Platform namespace.

    ./Cronjob_helm_revision_delete.sh <BMC Helix Platform namespace>
  4. Run the Cronjob_helm_revision_delete.sh script to delete the helm revision secrets of the Cronjob in the BMC Helix Service Management namespace.

    ./Cronjob_helm_revision_delete.sh <BMC Helix IT Service Management namespace>

Task 7: To create a service account, role, and role binding

Important

Perform this task only if you are using a non-administrator Kubernetes user.

If you want to run the BMC Helix Service Management upgrade pipelines by using a non-administrator Kubernetes user who does not have permission to create role, role bindings, and service account, the service account, role, and role binding are not created by default.

You must create a new service account, role, and role binding to use the following features:

  • Support Assistant tool
  • Key encryption key (KEK)
  • Elasticsearch index user utility

Run the following command for the YAML files:

run oc create -f <yaml file>

Example:

oc create -f kek_role.yaml

 

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*