Installing the server software on Red Hat OpenShift

You can install Rational® Test Automation Server on the Red Hat OpenShift server that has the Kubernetes Engine environment to run functional, integration, and performance tests. Rational® Test Automation Server combines test data, test environments, and test runs and reports into a single web-based browser for testers and non-testers.

Before you begin

You must have performed the following tasks:

About this task

As part of the installation process, you might optionally migrate user data from a previous version (V10.0.2, Fix Pack 1 or earlier) the product, or restore a backup of user data from the current version (V10.1.0 or later) of the product. You must perform different steps, depending on which version of the user data backup file you are applying during the installation process. For more details, see the following table:

When you backed up user data from... Then to restore...
Rational® Test Automation Server V10.0.2, Fix Pack 1 or earlier Perform step 6.
Rational® Test Automation Server V10.1.0 or later Perform step 9.

Procedure

  1. Open and log in to the terminal.
  2. Create a namespace to install the server software by running the following command:
    oc new-project test-system
  3. Add the repository to Helm to access the server install charts by running the following command:
    Note: You must replace {okta-email-address} with the username of the Harbor repository and replace {harbor-cli-secret} with the secret key that you have copied from the Harbor repository.
    helm repo add hclsoftware https://hclcr.io/chartrepo/ot --username {okta-email-address} --password {harbor-cli-secret}
  4. Run the following command to get the latest updates from the repository:
    helm repo update
  5. Create a Secret to pull images that are used by Rational® Test Automation Server by running the following commands:
    Notes:
    • You must replace {okta-email-address} with the username of the Harbor repository and replace {harbor-cli-secret} with the secret key that you have copied from the Harbor repository.

    • You can replace example@abc.com with the administrator email address, if required.

    oc create secret docker-registry hclcr.io \
      -n test-system \
      --docker-server=hclcr.io \
      --docker-username={okta-email-address} \
      --docker-password={harbor-cli-secret} \
      --docker-email=example@abc.com
  6. Optional: Perform the following steps to migrate user data from the previous version (V10.0.2, Fix Pack 1 or earlier):
    1. Run the following commands to start a pod and to migrate the user data:
      #Retrieve the backup yaml file
      helm repo update
      helm pull --untar hclsoftware/hcl-onetest-server --version 3.1012.0
      
      #Modify the backup yaml file with the release name for your server by replacing {my-ots}
      sed -i 's/{{ \.Release\.Name }}/{my-ots}/g' hcl-onetest-server/files/import-prek8s-backup.yaml
      
      #Update the runAsUser to match scc policy
      sed -i -e "s/1001/$(oc get project test-system -oyaml \
        | sed -r -n 's# *openshift.io/sa.scc.uid-range: *([0-9]*)/.*#\1#p')/g" hcl-onetest-server/files/import-prek8s-backup.yaml
      
      #Add the fsGroup settings
      sed -i 's/\(.*\)\(runAsUser:\)\(.*\)/\1\2\3\n\1fsGroup:\3/' hcl-onetest-server/files/import-prek8s-backup.yaml
      
      #To fix slow network issues
      sed -i 's/sleep 5/sleep 30/' hcl-onetest-server/files/import-prek8s-backup.yaml
      
      #Apply the backup yaml file to start the import-prek8s-backup pod
      oc apply -f hcl-onetest-server/files/import-prek8s-backup.yaml -n test-system
    2. Run the following command to display the import-prek8s-backup pod log.
      oc logs import-prek8s-backup -n test-system
    3. Follow the instructions in the log file to copy your backup file to a location where the pod is waiting to process it.

      When the user data backup is migrated, the import-prek8s-backup pod changes from Running to Completed state.

      Note: You can run the oc get pod import-prek8s-backup -n test-system command to view the pod state.
    4. Add the additional Helm parameters that the log file displays when the state of the pod is Completed, to step 8.
      The following is an example that shows the additional Helm parameters:
      --set keycloak.keycloak.username=admin \
       --set execution.existingPostgresqlPassword=SwztX9JRO/yL9jtgioUiKMGjlsWfM7Ok \
       --set existingKeycloakPassword=jqdV7aveCa3WShkdSF/Z8hAasBupsvp6 \
       --set existingKeycloakPostgresqlPassword=pKVFQUQWRU7BJC6sKeOZIm8zCzLkbXM7 \
       --set existingOauthClientSecret=EMRpHBRurFIMB9X+nfwApnLBBpkvn8+z \
       --set existingPostgresqlPassword=8HY3nADjTZBC2lLj0i7Y7v6wHeEji9ds \
       --set existingSecretsMasterPassword=ibIPh6wGAv0IjsveOrYX1TRwo3ChvxWx \
       --set results.existingPostgresqlPassword=7X3aaAVeHxdzJ+BlFTG7G7rypzsbhd6D \
       --set rm.existingPostgresqlPassword=3uaEx5wTja+PSzvG64O1+cpO3glGAaVt \
       --set tam.existingPostgresqlPassword=7JO95keyZ/F9w5rBcXj2YZFKFf/aAK1F \
  7. Optional: Perform the following actions described in the following table to enable the additional features on Rational® Test Automation Server:
    Features Descriptions Action to be perform

    Service virtualization

    To enable the running of stubs that virtualize services in the RedHat OpenShift Service Mesh

    Perform the following steps:
    1. Add the following parameter to the helm install command:
      --set execution.istio.enabled=true
    2. Run the following command to create the role bindings required for Istio:
      oc create rolebinding istio-virtualization-enabled -n {namespace} \
      --clusterrole={my-ots}-execution-istio-test-system --serviceaccount=test-system:{my-ots}-execution 
      Note: When you uninstall the chart, the manually created role bindings are not deleted from the namespace.

    To enable the running of stubs that virtualize services in namespaces

    Add the following parameter to the helm install command:
    --set execution.istio.namespaces='{namespaceA,namespaceB}' \
    Alternatively, you can add the parameter to the helm install command by using an array index notation as follows:
    --set execution.istio.namespaces[0]=namespaceA \
    --set execution.istio.namespaces[1]=namespaceB 
    

    Jaeger

    To use Jaeger for performance and Web UI tests logs

    Add the following parameter to the helm install command:
    Note: You must substitute {my-jaeger-dashboard-url} with the URL of the Jaeger server.
    --set-string execution.annotations.sidecar\\.jaegertracing\\.io/inject=true
    --set global.jaegerAgent.enabled=true
    --set global.jaegerAgent.internalHostName=localhost
    --set global.jaegerDashboard.enabled=true
    --set global.jaegerDashboard.externalURL={my-jaeger-dashboard-url}

    Postman

    To run Postman test assets that you created in the Postman application

    Add the following parameter to the helm install command:
    --set global.hclOneTestPostmanEnabled=true

    JMeter

    To run JMeter test assets and their associated variables and environments that you created in the desktop clients

    Add the following parameter to the helm install command:
    --set global.hclOneTestJmeterEnabled=true
  8. Run the following commands to install the server software:

    You must substitute the value of the following variables with the actual value in the command:

    • {my-ots} with the release name of your choice.

      Note: If you migrated user data from a previous release (V10.0.2, Fix Pack 1), then you must use the same {my-ots} name that you used in step 7a.
    • {openshift-cluster-dns-name} with the ingress DNS name that you selected for the server.
      Note: You can run the following command to obtain the default value of openshift-cluster-dns-name:
      oc get --namespace=openshift-ingress-operator ingresscontroller/default -ojsonpath='{.status.domain}'
      Remember: You must provide the value that consists of lowercase alphanumeric characters, -(hyphen) or .(period). Also, the value must start and end with an alphanumeric character.
    • Optional: {cloud-license-server-url} and {cloud-license-server-id} with the URL and ID of the license server.

      Alternatively, you can configure the OneTest License Server ID and OneTest Server URL values from the Configure License window when the installation of the server is complete.

    • {my-super-secret} with a value of your choice.

      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 backup files either on the current or later versions of the server software.
    Note: The default storage class must support both the ReadWriteOnce (RWO) and ReadWriteMany (RWX) access modes. If the default storage class does not support ReadWriteMany (RWX), you must add the following parameter to the helm install command:
    --set global.persistence.rwxStorageClass=rook-ceph-file
    #Make sure the repository is current and retrieve the charts required to install the server
    #You can skip the following two commands if you have migrated from the previous version (V10.0.2, Fix Pack 1 or earlier)
    helm repo update
    helm pull --untar hclsoftware/hcl-onetest-server --version 3.1012.0
    
    #Update the runAsUser and fsGroup to match scc policy
    sed -i -e "s/runAsUser: 1001/runAsUser: $(oc get project test-system -oyaml \
      | sed -r -n 's# *openshift.io/sa.scc.uid-range: *([0-9]*)/.*#\1#p')/g;
               s/fsGroup: 1001/fsGroup: $(oc get project test-system -oyaml \
      | sed -r -n 's# *openshift.io/sa.scc.supplemental-groups: *([0-9]*)/.*#\1#p')/g" hcl-onetest-server/values-openshift.yaml
    
    #Install the server
    helm install {my-ots} ./hcl-onetest-server -n test-system \
    -f hcl-onetest-server/values-openshift.yaml \
    --set global.hclOneTestIngressDomain=onetest.{openshift-cluster-dns-name} \
    --set global.hclFlexnetURL={cloud-license-server-url} \
    --set global.hclFlexnetID={cloud-license-server-id} \
    --set global.hclOneTestPasswordAutoGenSeed={my-super-secret} \
    --set global.hclImagePullSecret=hclcr.io
    Tip: After you installed the server software, anytime if you want to enable or disable any specific features on Rational® Test Automation Server you can do so by using the helm upgrade command.
    For example, if you want to enable Postman feature to run Postman test assets that you created in the Postman application, you can run the following commands:
    helm upgrade {my-ots} -n test-system ./hcl-onetest-server \
    --reuse-values \
    --set global.hclOneTestPostmanEnabled=true
  9. Optional: Run the following command to restore the backed up user data from the current version:
    velero restore create --from-backup=<backup-file-name> --restore-volumes
    Note: You must replace <backup-file-name> with the name of the back up file that you saved.
  10. Run the following command to verify and test the installed server software:
    $ helm test {my-ots} -n {namespace}
    where:
    • {my-ots} is the release name that you provide during the installation of the server software.
    • {namespace} is the name of the namespace that you created during the server installation process.

Results

On successful installation of Rational® Test Automation Server, the output displays the URL to access the Rational® Test Automation Server UI.

What to do next