Preparing for upgrade
Task 1: To download the upgrade artifacts
- Download the upgrade artifacts; see Downloading-the-installation-files.
- Confirm access to the container images; see Setting-up-a-Harbor-repository-to-synchronize-container-images.
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.28 | 3.14 |
Task 3: To update the Git repositories
- Log in to the BMC Deployment Engine as a Git user.
- 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.
- 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. - 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
Task 4: To add deployment pipelines
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
- Perform the following steps to add the pipeline:
- Log in to the Jenkins server by using the following URL:
http://<Jenkins server host name>:8080 - On the Jenkins home page, click New Item.
- In the Enter an item name field, enter the pipeline name.
Example: HELIX_FULL_STACK_UPGRADE. - Select Pipeline and click OK.
- Click the Pipeline tab.
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:
- Click Apply and then click Save.
- 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. - After the build job fails, select the pipeline name again from the Jenkins home page.
The Build Now option changes to Build With Parameters.
- Log in to the Jenkins server by using the following URL:
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.28 | 1.11.5 |
Task 6: To delete the Helm revision secrets of the Kubernetes Cronjob
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.
- Download the script.
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>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
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:
Example:
Where to go from here