Platform Installation

Modified on Mon, 04 Mar 2024 at 01:32 PM

This article explains the two options for setting up a Kubernetes cluster to install a Labforward platform:

  • Install a new cluster on bare-metal or a Linux Virtual Machine.
  • Use an existing Kubernetes cluster.

The client's admin can execute the installation process alone or ask for an Installation Meeting with Labforward's team.

If you ask for support, Labforward's team will perform the same steps described in this document during your meeting.

Note: To avoid difficulties during installation or operation of the platform, it is strongly recommended to familiarize with the installation requirements first.

Warning: It is recommended to snapshot/backup the installation VM before starting the process below.


New On-premise Installation

Labforward will provide a customer-installation-script script and password. The installation consists of executing two shell commands provided by Labforward in the machine on which the Kubernetes cluster should be installed.

It is highly recommended to make the new installation in a fresh VM without any custom dependency previously installed, as Labforward will install all the required components for you. Otherwise, it is possible to have conflicts during the installation.

  1. Download the installation script.
    curl -o -sL<customer-installation-script>
  2. Run the installation script.
    sudo bash
    Note: The script will prompt for a password provided by Labforward. Type the password to start the installation. The entire process should take around 20 minutes, depending on your internet connection. After the installation, the admin dashboard will be available at http://<machine_ip>:8800.
  1. Continue with Products Installation with Replicated.

Existing Kubernetes Cluster

To install Labforward into an existing cluster, you will need the kubectl utility with access to a cluster namespace.

Please make sure your cluster meets the requirements outlined above.

You will need to install the kubectl KOTS plugin version 1.107.5 or higher. Check KOTS documentation at Installing the kots CLI | Replicated Docs  for installation instructions or executing the following command.

curl | bash

Now run the following command to install KOTS inside the namespace with access to the whole cluster:

sudo kubectl kots install labforward/customer-channel --shared-password "Labforward001" -n labforward

Optionally, you can install labforward, restricting its scope to the installation namespace. See the section below.

After completion of the installation, kots will port forward to the admin console, which will be accessible at http://localhost:8800.  Or, the admin can manually do it by executing the following command:

kubectl kots admin-console -n <your-namespace-name>

Or, by port-forwarding the kotsadm service:

kubectl port-forward services/kotsadm 8800:3000 --namespace labforward

Namespace-scoped Installation in Existing Kubernetes Cluster

Labforward permits limiting the platform access only to the installed namespace. In this case, run the command:

sudo kubectl kots install labforward/customer-channel --use-minimal-rbac true --shared-password "Labforward001" -n labforward

Using the Namespace-scoped option will have the following effects:

  • The preflight checks will be disabled. Preflights are validations to check if the current cluster state can run the applications;
  • Labforward will create only resources in the installation namespace, including custom resources and roles;
  • The embedded monitoring application (Prometheus) will be unavailable. The customer can still connect to their own monitoring tools;
  • The client must provide their own TLS certificate. The Let’s Encrypt and Self-signed options will be disabled.

This mode will create the kotsadm-role with * (wildcard) permission to all resources in the Labforward namespace. For more details, check Installation Requirements | Replicated Docs.

Outcomes of Kubernetes Cluster Preparation

The expected outcomes after any cluster installation are:

  • Accessible Kubernetes cluster with Replicated running inside it;
  • Access to the admin dashboard.

Products Installation with Replicated

During the installation, the admin’s console default password is displayed in the terminal. It is strongly recommended to update the password in your first login.

To update the password using the terminal, type:

sudo kubectl kots reset-password

After the first deployment, the admin console will be available at https://admin-console.{domain}.{tlp}.

Install Labforward’s products

  1. Log in to the admin console at http://localhost:8800 or http://<cluster-ip>:8800.
  2. The license is added via the installation script.
    Note: You might be asked to add the license via the dashboard. In this case, drag and drop your license file into the respective field or click “Upload” and choose the license file from your computer.
  1. The admin console will now download the latest Labforward platform from Labforward’s ECR;
  2. Replicated presents the initial configuration screen. Only the email provider, domain name, and TLS certificate fields are mandatory. All other fields have reasonable defaults. After configuring, press the save button;
  3. Replicated will trigger the pre-flight checks;
  4. Replicated will trigger the deployment of the applications. You can follow up on the deployment status on the admin console page;
  5. After the deployment, the products should be available in your specific domain, as defined in the Networking section.

Pre-flight Checks

Replicated checks if the Kubernetes cluster meets the requirements to deploy the new version. Before each deployment, Replicated will run all the pre-flight checks considering the current cluster conditions. If they succeed, the deployment will be enabled. Otherwise, Replicated will block the deployment and inform which requirements are missing. The requirements are described in the article Installation Requirements.

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select atleast one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article