Installation Workflow

Modified on Mon, 28 Aug 2023 at 05:38 PM

TABLE OF CONTENTS

Below you can find a step-by-step description of the platform installation process. The video below demonstrates the real execution of each step proposed in this document.




Preparing for the Installation


Check the requirements of the installation environment


$> curl -sL -o requirements-check.sh https://raw.githubusercontent.com/labforward/installation/main/requirements-check.sh
$> sudo bash ./requirements-check.sh


Fill out this Questionnaire to obtain the installation package.


It is recommended to use a fresh VM for the platform installation. If the VM is already used for other applications or has a previous version of any Labforward product, then:


  • Make sure ports 80 and 443 are available
  • Uninstall docker. The installation script will try to do it for you, but it is safer if you remove it manually before starting the process
  • In the /etc/resolv.conf file:

    It can have at most three nameservers

    Each nameserver can have at most three search queries, and one of them must be your DNS domain


Checkpoints: Checkpoints are verification steps executed after each part of the installation. 
You should be able to verify the checkpoint output before proceeding to the next step.


Checkpoint 1


Receive an e-mail with the installation package and follow-up instructions.


Installation Process


Update the package manager of the operational system. This example uses an Ubuntu 20.04:


sudo apt-get upgrade

Download the installation package script:


$> curl -o installation-script.sh -sL https://use.the.url.from.the.email

Execute the installation package and provide the PASSWORD received in the email:


$> sudo bash installation-script.sh
Downloading labforward-installer-package bundle
Type the pasword provided for installation:

Checkpoint 2

Check if the Kubernetes PODs are running:

$> sudo kubectl get pods
NAMEREADYSTATUSRESTARTSAGE
kotsadm-587dd565c8-2j4wm1/1Running04m2s
kotsadm-rqlite-01/1Running04m1s
kurl-proxy-kotsadm-65ddb6fb4f-n42bd1/1Running06m7s


Access the admin console in the browser:


$> curl ifconfig.me # This command will tell what is this machine public IP. We will call it {{my-public-ip}} in the following sections


Open in your browser: http://{{my-public-ip}}:8800


You will have reached this checkpoint if you have a kotsadm service installed, running and reachable from your browser. This is what your browser should look like:



The password is shown during the installation. You can reset the admin password at anytime using the following command:


$> sudo kubectl kots reset-password

Application Configuration


After logging into the Admin Console, proceed with the minimum required configuration fields:


Domain: Include the DNS domain pointing out to the machine IP running the Kubernetes cluster in the Domain field


TLS Certificate Configuration:

(Option 1): Customer Provided - Include your company’s TLS certificate


(Option 2): Use Let’s Encrypt - Labforward will use the Let’s Encrypt certificate


(Option 3): Self-Signed - Labforward will create and use a self-signed certificate


Email Server - SMTP:


  • SMTP Hostname
  • SMTP From Email - E-mail used to send Labforward e-mails, such as reset password


Click on the Continue button at the bottom of the page:



Click on the Deploy button on the pre-flights page



*Checkmarks and warnings are acceptable, but errors will block the deployment.



Checkpoint 3


Open the Account login page in the browser at https://account.{{domain}}




What you accomplished so far:


  • Labforward’s applications are ready for use
  • The next releases and configurations will be available via the admin console - https://admin-console.{{domain}}
  • All data is being stored in embedded data sources deployed inside Kubernetes
  • Self-sign-up is available using the e-mail provided in the configurations to create new accounts


What’s next:


The following steps are optional and depend on each customer's needs:


Connect to External Data Source (Optional)


Go to Config in the admin console and look for the data source options. The current possibilities are Labfolder Database, Laboperator Database, and Object Storage:



  • Select the External option and insert the URL (the query parameters are optional, Labforward recommends keeping the same as before), username, and password
  • At the bottom of the screen, click on Save Config
  • Go back to the dashboard and deploy the new version.


It is normal for databases to restrict access via IP. If the database was running in the same VM as the application, it has a chance to permit connections only from localhost.

The DBA must grant permission to the Kubernetes cluster IP to permit access from the Kubernetes cluster.

For example, in the MySQL database, execute the following query for labfolder:


grant all privileges on labfolder.* to 'labfolder'@'{{IP}}' identified by 'password' with grant option;

Where IP is the Kubernetes cluster {{IP}}



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