Part 3: Installation of the platform#

This part of the guide describes the process of setting up a server environment and simplified platform installation instructions.

Note

Please contact your Intel® Geti™ account representative or technical support personnel if you have any questions.

Note

Use the workstation where the Intel® Geti™ platform is installed and hosted solely for the Intel® Geti™ platform. Do not run any other software in parallel on that same machine. To learn more, go to the Best Practices page.

Installing the Intel® Geti™ platform#

The platform can be installed either on an existing Kubernetes cluster, or, for smaller deployments, on a single node k3s instance that will be installed by the installer on the same machine where the installer is executed.

To start the installation, log in to your Ubuntu machine and make sure that all the hardware, software, network, and security prerequisites are met.

The first step is to download and extract the Intel® Geti™ installation package on your previously prepared server.

tar -xf <package>.tar.gz

Warning

Before extracting the package, ensure you do not have the previous platform_<VERSION> folder in the same location.

Go into the folder created by the previous command:

cd platform_<VERSION>

Now, you can choose between two modes of installation:

  • with wizard - where the installer asks a user for all data needed during the installation process

  • with configuration file - where a user must fill in all the data prior to running the installer

In the following, we will describe the two installation modes.

Installation with wizard#

To start installing the platform with wizard run the following command:

sudo ./platform_installer install

You will be asked to provide the password if you are not logged in as a passwordless sudo user.

When running in the wizard mode, the installer will prompt for the following data:

  1. Clean install or installation on existing Kubernetes

    Do you want to install the platform on an existing Kubernetes? (y/N)
    

    If the answer is ‘y’, the installer asks for the Kubernetes admin kubeconfig location:

    Path to kubeconfig file (example: /home/my-user/admin.conf):
    

    Only for a k3s installation if detected GPU is not on the list of supported cards, the installer asks for the confirmation of using unsupported cards.

    The following unsupported GPU cards have been detected:
    < list of cards >
    If you want to install on supported GPU cards only, remove unsupported cards from your machine.
    Do you want to configure the platform to use all the GPU cards? If you choose No, the installation will be aborted. (Y/n)
    
  2. Admin username and password

    The installer asks for the name of the administrator user that will be created on the platform.

    Login name (e.g. admin@my-company.com) of the user to be created during the installation:
    

    The installer verifies if the format of the entered value conforms to an email address. After that, it asks for the user’s password:

    Password (8 - 200 characters, at least one capital letter, lower letter, digit or symbol):
    Repeat for confirmation:
    

    The installer verifies if the entered passwords are the same and if they comply with the security constraints.

  3. Mail server configuration

    The installer asks for all the details required to configure the mail server, which is used to send email invitations to newly added users. It is assumed that this server supports TLS. If the user decides not to enter mail server data, the platform will allow to create users but will not send invitation mails.

    Do you want to configure mail server? (y/N)
    

    If the answer is ‘y’ the installer asks one by one for:

    SMTP address (example: smtp.your_server.com):
    SMTP port (default: 587):
    

    Then the installer asks for the authentication data that is to be passed when sending emails.

    SMTP username:
    SMTP password:
    

    Finally, the installer asks for sender information.

    Sender's email address: (example: admin@your_server.com):
    Sender's name: (example: Platform Admin):
    

    The installer verifies if the provided configuration is correct by trying to connect to the given SMTP server. If it fails, it displays the appropriate message and asks for the mail server details again.

  4. Cluster domain

    The installer asks for the domain name of the cluster.

    Do you want to setup domain name for the cluster? (y/N)
    

    If the user answers ‘yes’, the installer asks:

    Please, provide domain name of the cluster (e.g.: my-node.my-domain.com):
    

    The installer verifies if the provided domain name is a valid FQDN. If a domain is not provided, the installer will use IP address of the local machine for installation with k3s, or the IP of the Kubernetes master node for installation on an existing cluster.

  5. Custom SSL certificate

    Do you want to configure your custom SSL certificate? (y/N)
    

    If the answer is ‘y’ the installer asks one by one for:

    Path to the certificate file:
    Path to the key file:
    

    Only full chain certificates are supported. Key files cannot be encrypted.

    The installer verifies if the provided paths point to an existing file. If not, it displays an appropriate message and asks for the path again.

  6. Datasets location

    The installer asks for the path to a data storage folder

    Path to the data storage (e.g. /datasets):
    

    The installer verifies if the provided path points to an existing folder with proper permissions and if this folder is empty. If not, it displays an appropriate message and asks for the path again.

  7. Grafana stack configuration

    Grafana is a data visualization and monitoring tool. Based on collected platform logs and metrics, it helps to better understand in-app user behaviour and understand platforms usage thanks to customizable dashboards.

    Do you want to install the Grafana stack (not recommended on setups meeting only the minimum HW requirements)? [y/N]
    

    If the answer is ‘y’, the Grafana stack will be installed on the platform. If the answer is ‘N’, the Grafana stack will not be installed on the platform.

    Note

    Currently, the Grafana stack cannot be installed on the existing Kubernetes cluster.

  8. Final confirmation

    The installer displays the data it gathered and asks for confirmation. If it is given, it starts the installation process. If not, the installation is aborted.

  9. The installer creates all the configuration files based on the user’s input and starts the installation process.

  10. Watch for warnings or error messages displayed during the process and act accordingly.

  11. When installing k3s, remember to store the admin kubeconfig created for you. Look for the following line in the installer output:

Path to admin kubeconfig: /etc/rancher/k3s/k3s.yaml

Installation with configuration file#

If the –config-file parameter is provided the installation package starts the installation without the user interaction.

The configuration file is a yaml file with all configuration data specified in advance. The template for the file can be found in the installation package in the platform_<VERSION> folder and it has the following initial content:

# Path to the admin kubeconfig file for installation on existing Kubernetes
# If empty or entry missing k3s single node will be installed on the local machine
kube_config:

# Specifies if unsupported GPU cards should be configured to be used by the platform
# Allowed values: true or false
# If set to true, all GPU cards including unsupported ones will be configured
# If set to false or entry is missing, and if an unsupported GPU card is detected, the installation will be aborted
unsupported_gpu:

# Cluster hostname
cluster_name:
# Dns domain of the cluster master
# {dns_domain}.{cluster_domain} should be FQDN, by which the cluster is accessible.
# eg. cluster_domain: example, dns_domain: com
# If one of these fields is empty, the installer will use IP address of the local machine for
# installation with k3s, or the IP of the Kubernetes master node for installation on an existing cluster.
dns_domain:

# Name of the first user that will be created on the platform
# (email format, e.g. admin@my-company.com)
user_login:
# Password for the user specified by user_login
# (8 - 200 characters, at least one capital letter, lower letter, digit or symbol):
user_password:

# Mail server configuration
# If smtp_address is empty or the entry is missing the remaining mail server entries will be ignored
# and the mail server will not be configured
# Example entries:
# smtp_address: smtp.your_server.com
# smtp_port: 587
# smtp_username: admin@your_server.com
# smtp_password: ******
# sender_address: admin@your_server.com
# sender_name: Platform Admin
smtp_address:
smtp_port:
smtp_username:
smtp_password:
sender_address:
sender_name:

# Specifies whether the Grafana stack will be installed on the platform.
# Not recommended on setups meeting only the minimum HW requirements.
# Allowed values: true or false
# If set to true, the Grafana stack will be installed on the platform.
# If set to false or when value or entry is missing, the Grafana stack will not be installed on the platform.
grafana_enabled:

# Path to the custom SSL certificate file
# If empty or entry missing the custom SSL certificate will not be configured
cert_file:
# Full path to the custom private key file
# Ignored if cert_file empty or missing
key_file:

# Path to the data folder, empty prior to running the installation (e.g., /data)
data_folder:

Sample file for a one node installation with k3s:

cluster_name: myhost.my-company.com
user_login: admin@my-company.com
user_password: fancy-password
data_folder: /data
cert_file: /home/my-user/domain.crt
key_file: /home/my-user/domain.rsa

Sample file for the installation on an existing Kubernetes cluster:

kube_config: /home/my-user/admin.conf
cluster_name: myhost.my-company.com
user_login: admin@my-company.com
user_password: fancy-password
data_folder: /data
cert_file: /home/my-user/domain.crt
key_file: /home/my-user/domain.rsa

Changing platform’s IP address#

When installing the platform with k3s instance, and when not providing the domain name, the installer retrieves the IP address from one of the network interfaces on the local machine and uses this IP to configure the external access to the platform. When it guessed wrong e.g., when more than one network interface is present, or when the IP of the machine has been changed, the external IP, by which the platform can be accessed via the browser, must be changed.

Before changing the IP, ensure the new one can be accessed from the host machine, e.g. by running:

curl -I -k https://<NEW_IP>/oauth2/start

and observing if you get a redirect as the result (HTTP/2 302 in the first line of the response).

If the IP is accessible from the host machine, run the following script (It is assumed that kubectl is configured to access kubernetes that runs the platform.):

cd platform_<VERSION>/installer
sudo ./platform_change_ip.sh <NEW_IP>