Upgrading DevOps Test Hub on Azure Kubernetes Service

When you want to use the latest version of Test Hub on Azure Kubernetes Service (AKS), you must upgrade HCL DevOps Test Hub (Test Hub) from a previous version of Test Hub.

Before you begin

  • You must have read and been familiar with additional Helm parameters. See Additional Helm parameters.

  • You must have completed the following tasks:

    • Completed the tasks provided in the Prerequisites section. See Prerequisites for installing DevOps Test Hub on Azure Kubernetes Service.

    • Uninstalled NGINX Ingress controller by using the following helm command:
      helm uninstall ingress-nginx -n ingress-nginx
      For more information refer to the NGINX Ingress Controller documentation.
      Note: To install Test Hub 10.2.2 or earlier on AKS, you installed the NGINX as Ingress controller. From 10.2.3 the Ingress controller has been changed to Emissary-ingress. Therefore, you must uninstall the NGINX Ingress controller and install the Emissary-ingress, see Installing Emissary-ingress.
    • Installed Emissary-ingress.

    • Informed users that Test Hub is offline temporarily during the upgrade process.

    • Completed all test executions that are running on the existing version of Test Hub.

    • Stopped all stub executions that are running on the existing version of Test Hub.

    • Canceled any scheduled test runs that have a future date or time.

    • Logged in to the AKS cluster.

      Note: You can run the az login command to log in to AKS interactively.
    • Subscribed to active Azure subscription.

      Note: You can run the az account set --subscription {subscription_name} command to set your active subscription.

Optional. You can back up the user data from the earlier version of the product. If the upgrade fails, then you can use that backup file to restore it to the latest version of Test Hub. See Backing up the DevOps Test Hub data on Azure Kubernetes Service.

Note: For more information about specific versions of software requirements, see System Requirements for DevOps Test Hub 2023.12 (11.0.0).

About this task

You can upgrade to Test Hub from HCL OneTest Server 10.5.4 or 10.5.3 by using the helm update command. If you want to upgrade from versions previous to 10.5.3, you must first upgrade to 10.5.3 or 10.5.4.

When you want to install the latest version of Test Hub in the same location that contained the 10.2.0 or later, then you can upgrade Test Hub to 10.5.3 by using the helm upgrade command.

The following table lists the variables that you must replace with the actual value in the command.

Variables Description
{RESOURCE_GROUP}

The name of the resource group that you created during the creation of the AKS cluster.

{azure_cluster}

The name of the Azure cluster that you created during the creation of the AKS cluster.

{azure_container_registry}

The name of the ACR that you created during the AKS setup.

{my-ingress-dns-name}

The Ingress name and DNS zone value that you provided during the setting up of the AKS cluster.

For example, if the Ingress name and DNS zone value that you provided are devops, myorg.nonprod, then {my-ingress-dns-name} value must be devops.myorg.nonprod.

{main}
The release name of your choice.
Note: The release name must consist of alphanumeric characters that are in lowercase or - (hyphen). The release name must also start with an alphabetic character and end with an alphanumeric character. For example, my-org or abc-123.
{HCL_LICENSING_ID}

The ID of the License Server for the initial team space, if you want to set the license for the first time.

Important: When you want to upgrade the product from the previous version, you must configure the value of License Server ID from the Team Space License Configuration page when the installation of the server is complete.
{PASSWORD_SEED}

A value of your choice for the password.

Important: This password seed is used to create several default passwords for the server. You must store the password seed securely. When you install Test Hub by using the backup of the user data, you can reuse the password seed. You can use this seed to restore the backed-up files either on the current or later versions of Test Hub.
{ip_address}.nip.io

The IP address that is assigned to Emissary-ingress.

You can run the following command to obtain the IP address of Emissary-ingress:
kubectl get ingress -A
Remember: The devops-system is the name of the namespace that you created during the installation of Test Hub. If you created a namespace by using a different value, then you must use that value in place of devops-system in all the instances in this procedure.
Tip: You can run the following command to know the value of the variables that you used during the installation of the previous version of Test Hub:
helm get values {release_name} -n {namespace}

For example, if your name of the release is {main} and the name of the namespace is devops-system, then you must run the command as follows:

helm get values {main} -n devops-system

Procedure

  1. Run the following command before you start the upgrade:
    kubectl delete deployments,statefulsets -lapp.kubernetes.io/managed-by=Helm,app.kubernetes.io/instance=$HELM_NAME -n $NAMESPACE
    
  2. Run the following command:
    helm pull --untar oci://hclcr.io/ot/hcl-devops --version 11.0.0
    cd hcl-devops
    
  3. Run the following command to upgrade Test Hub:
    Notes:
    • If you enabled the autoscaler feature to use a new container only to run test assets and to open the test editor, then you must add -f hcl-onetest-server/values-dedicated-nodes.yaml in the following helm install command.

    • If you enabled the autoscaler feature to use a new container only to run test assets, then you must add -f hcl-devops/values-dedicated-nodes.yaml in the following helm install command.

    • When the ingress domain is accessible to untrusted parties, then you must set the signup parameter to false in the following command.

    helm update --install $HELM_NAME . -n $NAMESPACE \
      --create-namespace \
      --set global.domain=$INGRESS_DOMAIN \
      -f values-k8s.yaml \
      -f hcl-devops/values-dedicated-nodes.yaml \
      --set global.persistence.rwxStorageClass=azurefile \
      --set imageRegistry=$IMAGE_REGISTRY \
      --set-literal passwordSeed=$PASSWORD_SEED \
      --set signup=true \
      --set hclFlexnetURL=https://hclsoftware.compliance.flexnetoperations.com \
      --set hclFlexnetID=$HCL_LICENSING_ID
    
  4. Run the following script from the hcl-devops/files directory to verify and test the installed instance:
    hcl-devops/files/helm-test-diag.sh {main} -n devops-system

Results

On the successful upgrade of Test Hub, the output displays the following information:
  • Keycloak URL to manage and authenticate users.

  • A URL to access the Test Hub UI.

What to do next