Installing the server software on Azure Kubernetes Service

You can install Rational® Test Automation Server on Azure Kubernetes Service (AKS) that has a Kubernetes environment to run functional, integration, and performance tests. Rational® Test Automation Server combines all the capabilities into a single web-based browser for testers and non-testers. The capabilities include test runs, test data, test environment, or test reports.

Before you begin

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

  • You must have performed the following tasks:

    • Completed the tasks provided in the Prerequisites section. See Prerequisites for installing the server software on Azure Kubernetes Service.

    • Optional: Enabled the autoscaler feature if you want a new container to be used only to run test assets. See Cluster autoscaler on Azure Kubernetes Service.

    • Copied the Entitlement key from the Container software library.

    • 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.
    • Configured the location of your AKS cluster.

      Note: You can run the az configure --defaults location={location_name} command to set the location of your AKS cluster.
      Tip: You can run the following command to get the list of all the available locations:
      az account list-locations --query "[].{DisplayName:displayName, Name:name}" -o table

About this task

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 rationaltest, myorg.nonprod, then {my-ingress-dns-name} value must be rationaltest.myorg.nonprod.

{your_entitlement_key}

The key that you copied from the Container software library.

{my-rtas}
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.
{rlks-ip-address}

The IP address of License Key Server, if you want to set the license value for the first time.

Important: When you upgrade the product from the previous version, you must configure the value of License Key Server in the Team Space License Configuration window when the installation of the server is complete.
{my-jaeger-dashboard-url}

The URL of the Jaeger server.

{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 the server software 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 the server software.
{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 test-system is the name of the namespace. If you created a namespace by using a different value, then you must use that value in place of test-system in all the instances in this procedure.

Procedure

  1. Add the entitlement registry to Helm by running the following command:
    helm repo add ibm-helm https://raw.githubusercontent.com/IBM/charts/master/repo/ibm-helm
  2. Run the following command to get the latest updates from the repository:
    helm repo update
  3. Run the following commands to fetch the scripts that are used to install Rational® Test Automation Server:
    helm pull --untar ibm-helm/ibm-rtas-prod --version 8.1023.0
  4. Run the following command to configure kubectl to connect to the AKS cluster:
    az aks get-credentials -g {resource_group} -n {azure_cluster}
    Note: You can verify the connection to the AKS cluster by running the kubectl get nodes command that displays a list of the cluster nodes.
  5. Run the following script from the ibm-rtas-prod/files directory to pull the images of Rational® Test Automation Server from the entitlement registry to ACR:
    PULL_ARGUMENTS="-u cp -p {your_entitlement_key}" \
      bash ibm-rtas-prod/files/move-images.sh $REGISTRY.azurecr.io/ibm-rtas cp.icr.io/cp
    Tip: You can verify that multiple manifests are associated with the image in the ACR by running the following commands:
    az acr repository list -n {azure_container_registry} -otsv
    az acr repository show-manifests -n {azure_container_registry} --repository \
    $(az acr repository list -n {azure_container_registry} -otsv --query [0])
  6. Create a namespace in which you want to install the server software by running the following command:
    kubectl create namespace test-system
  7. Perform one of the following steps to enable Certificate Authority (CA) as trusted certificates and to create an ingress Secret:
    1. Run the following script from the ibm-rtas-prod/files directory if your endpoints can resolve Azure private DNS zones:
      ibm-rtas-prod/files/certificate.sh -n test-system -s ingress {my-ingress-dns-name}
    2. Run the following script from the ibm-rtas-prod/files directory if your endpoints cannot resolve Azure private DNS zones:
      ibm-rtas-prod/files/certificate.sh -n test-system -s ingress {ip_address}.nip.io
  8. Perform one of the steps described in the following table to install the server software based on your requirement:
    Task description Step number

    To install the server software

    Perform 8.a

    To install the server software and enable Jaeger for performance and Web UI tests logs

    Perform 8.b

    The following command installs the server software by referencing the images from ACR. Thereby, Rational® Test Automation Server can provide better performance.

    Note: If you enabled the autoscaler feature to use a new container only to run test assets, then you must add -f rtas-prod/values-dedicated-nodes.yaml in any of the following helm install commands.
    1. Run the following command to install the server software:
      helm install {my-rtas} ./ibm-rtas-prod -n test-system \
      --set license=true \
      -f ibm-rtas-prod/values-k8s.yaml \
      --set global.persistence.rwxStorageClass=azurefile \
      --set global.ibmRtasIngressDomain={my-ingress-dns-name} \
      --set global.ibmRtasRegistry=<azure_container_registry>.azurecr.io/ibm-rtas \
      --set global.ibmRtasPasswordAutoGenSeed={password-seed} \
      --set global.rationalLicenseKeyServer=@{rlks-ip-address}
    2. Run the following command to install the server software and to enable Jaeger for performance and Web UI tests logs:
      helm install {my-rtas} ./ibm-rtas-prod -n test-system \
      --set license=true \
      -f ibm-rtas-prod/values-k8s.yaml \
      --set global.persistence.rwxStorageClass=azurefile \
      --set global.ibmRtasIngressDomain={my-ingress-dns-name} \
      --set global.ibmRtasRegistry=<azure_container_registry>.azurecr.io/ibm-rtas \
      --set global.ibmRtasPasswordAutoGenSeed={password-seed} \
      --set global.rationalLicenseKeyServer=@{rlks-ip-address}
      --set-string execution.annotations.sidecar\\.jaegertracing\\.io/inject=true \
      --set global.jaegerAgent.internalHostName=localhost \
      --set global.jaegerDashboard.externalURL={my-jaeger-dashboard-url}
  9. Run the following script from the ibm-rtas-prod/files directory to verify and test the installed server software:
    ibm-rtas-prod/files/helm-test-diag.sh {my-rtas} -n test-system

Results

You have installed the server software. The terminal displays the following information:
  • The URL to access Keycloak to manage and authenticate users.

    The user name can be keycloak and the password can be retrieved by running the following command:
    kubectl get secret -n test-system {my-rtas}-keycloak-postgresql -o jsonpath="{.data.password}" | base64 --decode; echo 
    Where:
    • {my-rtas} is the name of the release that was provided during the installation of the server software.

    • test-system is the name of the namespace that you created during the installation of the server software.

  • The URL to access the Rational® Test Automation Server UI.

What to do next

You can perform the following tasks: