Deploy Syntho using Helm
To deploy the Syntho Application, we will use the Helm chart in the same repository as mentioned before. The chart can be found in the Releases of the deployment-tools
repo or it can be cloned directly from the Github repo, which will make the path to the chart helm/syntho-ui
To configure the UI, the values.yaml
file in helm/syntho-ui
can be used. The following sections will describe the different fields that can be set.
Configuring the UI
For the UI, we will need to set the image repository and tag first:
We will also need to set the domain name for the UI.
An ingress is required for the UI and is part of the Helm chart, we can set the ingress configuration as follows for the UI:
This will create an Ingress definition for both the UI and backend application. Part of the traffic will be routed to the backend, in order to be able to serve all traffic from the same domain name.
Configuring the Backend
The backend is responsible for user management and workspace management. We need to set a few variables correctly. To start off, we need to set the image:
Backend Database and Backend Redis
We then need to set the database credentials and Redis credentials. If the instances defined in the Helm chart are being used, no changes are needed. Otherwise, the following need to be changed:
The Redis section can be set as defined above if the Redis instance is being used from the Helm chart. The default behavior will deploy the Redis instance defined in the chart. If a different Redis instance is being used, host
, port
and db
might need to be changed.
The database section needs to be changed if a different database is being used. The default behavior will deploy the database instance defined in the chart. If a different database outside the Helm chart is being used, the host, port, user, password, and database name need to be changed. To disable the usage and deployment of the database instance defined in the chart, the following can be set:
If the database is being used from the Helm chart, the value host
can be set to database
and port
to 5432
. The other values can be changed in case a different username, password, or database name is preferred. This will automatically adjust the database instance defined in the Helm chart.
Backend Ingress
The backend ingress is implemented as part of the ingress defined for the UI. We use path-based routing in the ingress in order to route part of the traffic to the backend (specifically everything going to /api/*
). There's no additional ingress necessary for the backend.
Admin user credentials
Setting up the credentials for the first administrative user is also necessary. We can define this user in the following way:
This user can be used to log into the UI and create other users.
Secret key
Lastly, we need to set an additional variable, as defined in the block below:
Configuring the Core API
To configure the Core API, we will need to first set the correct image. To set the image we will use the image
field in the core
section.
Furthermore, we need to set the database hostname and credentials:
The deployment can possibly create the database instance itself. In that case, the database_enabled
field should be set to true
:
This will create a database with the specified username, password, and database name. The host for this database is backend
and the port will be 5432
as this is a Postgres database.
Lastly, we need to set a secret key for encryption purposes, the credentials for a Redis instance and the Ray head IP or hostname to connect to. The Ray head hostname is the one mentioned in the section Deploy Ray using Helm.
The fernet key can be generated using the cryptography
library in Python. Running the following command will result in a randomly generated fernet key in your CLI:
The Redis instance can be set by adjusting the redis:
section. The default values will point it towards the Redis instance deployed as part of the Helm chart.
Deploy
To deploy the Syntho Application, we will use the Helm chart provided by the Syntho team. The chart can be found in the helm/syntho
folder.
Last updated