Setting up a Kubernetes environment (k3s) on Ubuntu

You can use the script that is provided with HCL OneTest Server to set up a k3s Kubernetes environment.

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 k3s Kubernetes environment set up, you can enable 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. Use an SSH session to log in to the Ubuntu server.
  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 4.1013.0
    chmod +x hcl-onetest-base/*.sh
  5. Run any of the following commands to install the k3s Kubernetes environment:
    Note: The second option allows you to override the name of the Kubernetes domain that is created.
    • Run the following commands to install with the default name that is either based on IP address or fully qualified host name:

      #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
    • Run the following commands to install k3s Kubernetes environment by overriding the default name:

      $ cd hcl-onetest-base
      $ sudo INGRESS_DOMAIN={onetest.}myorg.com HOME=$HOME ./ubuntu-init.sh
      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 ways:
    • Fully Qualified Hostname: When the server is configured, you can use hostname -f command to get the fully qualified hostname 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 must be 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 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 that 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 Istio service virtualization, a Tech Preview feature:
    #Run the following command if you are on Ubuntu 18.04
    $ sudo ./ubuntu-init.sh --demo
    
    #Run the following command if you are on Ubuntu 20.04
    $ sudo HOME=$HOME ./ubuntu-init.sh --demo
  8. 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 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 easily accessible by anyone who has or discovers the <server-url>/jaeger URL.
  9. 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 easily accessible by anyone who has or discovers the <server-url>/prometheus URL.

Results

You have set up the Kubernetes environment on Ubuntu.
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 must be Running or Complete state.

What to do next