Setting up a Kubernetes environment (k3s) on Ubuntu

You must set up a Kubernetes environment (k3s) so that you can install the server software on an Ubuntu server. You can use the script that is provided with HCL OneTest Server to set up a Kubernetes environment (k3s).

Before you begin

You must have completed the following tasks:

  • Installed the following software:

    • OpenSSH server

    • Helm

  • Ensured that your computer has a Domain Name Server (DNS) resolvable host name to resolve the host name into a machine-readable IP address.

  • Copied a Secret key from the Harbor repository.

About this task

As part of the Kubernetes environment (k3s) set up, you can install the following software:

  • Jaeger: By using this software, you can trace test logs and Jaeger-based reports when you run tests.

  • Prometheus server: By using this software, you can monitor your system resources by using metrics data that are collected by a Prometheus server.

Procedure

  1. Log in to the Ubuntu server using an SSH session.
  2. Add the software registry to Helm by running the following command:
    helm repo add hclsoftware https://hclcr.io/chartrepo/ot --username {okta-email-address} --password {harbor-cli-secret}
    Note: You must replace {okta-email-address} with the user name of the Harbor repository and replace {harbor-cli-secret} with the secret key that you copied from the Harbor repository.

    If the user name contains any special characters, such as $, you must enclose it within single quotes.

  3. Run the following command to get the latest updates from the repository:
    helm repo update
  4. Run the following commands to fetch the scripts that are used to install Kubernetes:
    helm pull --untar hclsoftware/hcl-onetest-base --version 5.1020.0
    chmod +x hcl-onetest-base/*.sh
  5. Perform one of the steps described in the following table to install the k3s Kubernetes environment based on your requirement:
    Step description Step no

    To install the Kubernetes environment (k3s)

    Perform 5.a

    To install the Kubernetes environment (k3s) by overriding the default name

    Perform 5.b

    To install the Kubernetes environment (k3s) and enable the service virtualization through Istio, a Tech Preview feature

    Perform 5.c

    To install the Kubernetes environment (k3s) by overriding the default name and enable the service virtualization through Istio, a Tech Preview feature

    Perform 5.d
    1. Run the following commands to install the Kubernetes with a default domain name that is either based on IP address or fully qualified hostname:
      #Run the following commands if you are on Ubuntu 18.04
      $ cd hcl-onetest-base
      $ sudo ./ubuntu-init.sh
      
      #Run the following commands if you are on Ubuntu 20.04
      $ cd hcl-onetest-base
      $ sudo HOME=$HOME ./ubuntu-init.sh
    2. Run the following commands to install the Kubernetes environment (k3s) by overriding the default name:
      $ cd hcl-onetest-base
      $ sudo INGRESS_DOMAIN={onetest.}myorg.com HOME=$HOME ./ubuntu-init.sh
    3. Run the following command to install the Kubernetes environment (k3s) and to enable the service virtualization through Istio, a Tech Preview feature:
      #Run the following commands if you are on Ubuntu 18.04
      $ cd hcl-onetest-base
      $ sudo ./ubuntu-init.sh --demo
      
      #Run the following commands if you are on Ubuntu 20.04
      $ cd hcl-onetest-base
      $ sudo HOME=$HOME ./ubuntu-init.sh --demo
    4. Run the following command to install the Kubernetes environment (k3s) by overriding the default name and to enable the service virtualization through Istio, a Tech Preview feature:
      $ cd hcl-onetest-base
      $ sudo INGRESS_DOMAIN={onetest.}myorg.com HOME=$HOME ./ubuntu-init.sh --demo
    where:
    • {onetest.} is a sub-domain name that you specified for the server. For example, testenv.
      Note: The sub-domain must consist of lowercase alphanumeric characters, -(hyphen) or .(period). Also, the value must start and end with an alphanumeric character.
    • myorg.com is the domain name of your organization. For example, hcl.com

    You can access the product through a web browser by using any of the following methods:
    • Fully Qualified Hostname: When the server is configured, you can use hostname -f command to get the fully qualified host name defined in the DNS to access HCL OneTest Server. For example, {onetest}.myorg.com

    • IP address: You can use the IP address to access HCL OneTest Server when you cannot create a specific DNS record for the server. For example, ip-address.nip.io

    On completion of the ubuntu-init.sh script, a namespace with the name test-system is created to install the server software and the output displays the following information on the command-line interface:

    • The INGRESS_DOMAIN that is in use. This is the URL from where you can access HCL OneTest Server. You must use this value for the global.hclOneTestIngressDomain parameter in step 4 in the server installation topic.

    • The DNS information that the Kubernetes cluster uses to resolve names.

    • Certificate Authority (CA) that you must import into the browser to prevent certificate errors.

      You can run the following command to get the certificate from the system:
      kubectl get secret ingress -n test-system -o jsonpath={.data.ca\\.crt} | base64 -d
    • Instructions to confirm whether the Kubernetes environment has started.

      You can refer to the Results section for more details on how to verify that the Kubernetes environment has started.

  6. Perform one of the following options to configure a firewall:
    • Run the following script to configure the firewall that allows traffic on cni0 and port 443:
      #Run the following command if you are on Ubuntu 18.04
      $ sudo ./ubuntu-firewall.sh
      
      #Run the following command if you are on Ubuntu 20.04
      $ sudo HOME=$HOME ./ubuntu-firewall.sh
      Note: You must consult your network administrator before you run this script, and confirm whether the firewall is compatible with your corporate policy.
    • Update the firewall that allows traffic on cni0 and port 443, if your Ubuntu server is already configured with the firewall.

  7. Optional: Run the following command to enable the Jaeger traces for performance and Web UI tests:
    ./service.sh expose jaeger
    Note: If you do not enable Jaeger, HCL OneTest Server produces text output in a microservice log file instead of the Jaeger traces when you run performance and Web UI test assets.
    Important: The Jaeger traces are not protected, thus, any information logged into the Jaeger server might be accessible by anyone who has or discovers the <server-url>/jaeger URL.
  8. Optional: Run the following command to enable the Prometheus server to monitor your system resources by using metrics data:
    ./service.sh expose prometheus
    Important: The Prometheus metrics are not protected, thus, any information logged into the Prometheus server might be accessible by anyone who has or discovers the <server-url>/prometheus URL.

Results

You have set up the Kubernetes environment on Ubuntu.

What to do next

  • You must log in to the server host system again after the installation process is completed so that changes to the group membership are applied.

    Note: You can run the kubectl get pods -A command to verify that the Kubernetes environment is working. After a while, the status of the pods display a Running or Complete state.
  • You can install the server software. See Installing the server software on Ubuntu by using k3s.