Deploying Galileo - Exoscale

The Galileo applications run on managed Kubernetes-like environments, but this document will specifically cover the configuration and deployment of an Exoscale Cloud SKS environment.
⏱ Total time for deployment: 30-45 minutes
This deployment requires the use of Exoscale CLI commands. Before you start install the Exo CLI following the official documentation.
Recommended Value
Nodes in the cluster’s core nodegroup
CPU per core node
RAM per core node
16 GiB RAM
Minimum volume size per node
400 GiB
Number of nodes in the cluster’s runners nodegroup
CPU per runner node
RAM per runner node
32 GiB RAM
Minimum volume size per node
200 GiB
Required Kubernetes API version

Deploying the SKS Cluster

  1. 1.
    Create security groups
exo compute security-group create sks-security-group
exo compute security-group rule add sks-security-group \
--description "NodePort services" \
--protocol tcp \
--network \
--port 30000-32767
exo compute security-group rule add sks-security-group \
--description "SKS kubelet" \
--protocol tcp \
--port 10250 \
--security-group sks-security-group
exo compute security-group rule add sks-security-group \
--description "Calico traffic" \
--protocol udp \
--port 4789 \
--security-group sks-security-group
  1. 2.
    Create SKS cluster
exo compute sks create galileo \
--kubernetes-version "1.24"
--zone ch-gva-2 \
--nodepool-name galileo-core \
--nodepool-size 6 \
--nodepool-disk-size 400 \
--nodepool-instance-prefix "galileo-core" \
--nodepool-instance-type "extra-large" \
--nodepool-label "galileo-node-type=galileo-core" \
--nodepool-security-group sks-security-group
exo compute sks nodepool add galileo galileo-runner \
--zone ch-gva-2 \
--size 2 \
--size 400 \
--instance-prefix "galileo-runner" \
--instance-type "extra-large" \
--label "galileo-node-type=galileo-runner" \
--security-group sks-security-group

Deploy distributed block storage

Longhorn is Open-Source Software that you can install inside your SKS cluster. Installation of Longhorn takes a few minutes, you need a SKS Cluster and access to this cluster via kubectl.
kubectl apply -f

Required Configuration Values

Customer specific cluster values (e.g. domain name, slack channel for notifications etc) will be placed in a base64 encoded string, stored as a secret in GitHub that Galileo’s deployment automation will read in and use when templating a cluster’s resource files.
Mandatory Field
SKS Cluster Name
The SKS cluster name
Galileo runner instance pool ID
SKS galileo-runner instance pool ID
Exoscale API keys
Exoscale EXOSCALE_API_KEY and EXOSCALE_API_SECRET with Object Storage Buckets permissions: - create - get - list
Exoscale storage host
Domain Name
The customer wishes to deploy the cluster under e.g.
Root subdomain
e.g. "galileo" as in
Trusted SSL Certificates (Optional)
By default, Galileo provisions Let’s Encrypt certificates. But if you wish to use your own trusted SSL certificates, you should submit a base64 encoded string of
  1. 1.
    the full certificate chain, and
  2. 2.
    another, separate base64 encoded string of the signing key.

Access to Deployment Logs

As a customer, you have full access to the deployment logs in Google Cloud Storage. You (customer) are able to view all configurations there. A customer email address must be provided to have access to this log.

Customer DNS Configuration

Galileo has 4 main URLs (shown below). In order to make the URLs accessible across the company, you have to set the following DNS addresses in your DNS provider after the platform is deployed.