Google Cloud
This page describes the infrastructure and other prerequisites for deploying Seqera Platform Enterprise on Google Cloud Platform (GCP).
Run the Seqera container with Docker on a GCP VM instance or with Kubernetes on a Google GKE cluster. You must satisfy the requirements for your installation target:
-
SMTP server: If you don't have an email server, Google Cloud provides several ways to send emails, such as SendGrid, Mailgun, and Mailjet. Work with your IT team to select the best solution for your organization.
-
MySQL database: An external database such as Google CloudSQL is highly recommended for production environments.
-
SSL certificate: An SSL certificate is required for your Seqera instance to handle HTTPS traffic.
HTTP-only implementations must set the
TOWER_ENABLE_UNSAFE_MODE=true
environment variable in the Seqera hosting infrastructure to enable user login. HTTP must not be used in production environments. -
Public IP address: (Optional) A public IP address can be reserved for the Seqera ingress to keep the IP address constant across restarts.
Reserve a public IP address
- Go to VPC network > External IP addresses and select Reserve Static Address.
- Assign a name (such as
tower-ip
). This name will be used later to configure the ingress. - Select the region where your GKE cluster is deployed.
- Select Reserve.
Prerequisites for Docker
A Google Compute Engine (GCE) instance is required to deploy Seqera Enterprise via Docker Compose. See Google Compute Engine to provision a VM instance for this purpose.
Prerequisites for GKE
A Google Kubernetes Engine (GKE) cluster is required to deploy Seqera Enterprise via Kubernetes. See the GKE documentation to provision your own cluster.
Seqera doesn't currently support GKE Autopilot due to a privilege issue with the Redis deployment. However, you can achieve most of the same behavior with a Standard cluster by enabling autoscaling and node auto-provisioning.
GCP setup
This section provides step-by-step instructions for some commonly used GCP services for Seqera deployment. See the GCP documentation for up-to-date instructions and contact GCP support if you have any issues with provisioning GCP resources.
Google CloudSQL
Create a Google CloudSQL instance with the following attributes:
- MySQL 8.0
- At least 2 vCPUs, 8 GB memory, and 30 GB SSD storage
- Private IP
The recommended machine type and storage requirements depend on the number of parallel pipelines you expect to run.
- GCP console
- gcloud CLI
- See Create a MySQL instance for Cloud console instructions.
- After the instance has been created, select the instance, then Databases. Create a new database named
tower
. - Note the Private IP address of the instance as it must be supplied to the
TOWER_DB_URL
environment variable.
See Create a MySQL instance for gcloud CLI instructions.
- Create your MySQL instance with the following command:
gcloud sql instances create INSTANCE_NAME \
--database-version=MYSQL_8_0 \
--cpu=2 \
--memory=8GB \
--storage-size=30GB \
--region=us-central1 - Note the private IP address as it must be supplied to the
TOWER_DB_URL
environment variable during Seqera configuration. - Set the password for the root MySQL user:
gcloud sql users set-password root \
--host=% \
--instance INSTANCE_NAME \
--password PASSWORD - Create a database named
tower
on the instance:gcloud sql databases create tower \
--instance=INSTANCE_NAME \
Google Compute Engine
Create a VM instance with these attributes:
- At least 2 vCPUs and 8 GB memory
- HTTP traffic enabled. By default, the frontend is exposed to port 8000, so you must add a firewall rule to the underlying VPC network to allow traffic on port 8000 after VM creation.
- SSH enabled (to allow connection to the VM). If you experience issues with SSH, or would like to set up IAP SSH, see TCP forward to IAP.
- GCP console
- gcloud CLI
See Create a VM instance from a public image for Cloud console instructions.
- Run
gcloud compute images list
to view a list of available public OS images. Note the name of the image you wish to use and the name of the project that contains it. - Create your VM with the following command (you can use either
--image
or--image-family
, only one is required):Replacegcloud compute instances create VM_NAME \
[--image=IMAGE | --image-family=IMAGE_FAMILY] \
--image-project=IMAGE_PROJECT
--machine-type=MACHINE_TYPEVM_NAME
,IMAGE
,IMAGE_FAMILY
,IMAGE_PROJECT
, andMACHINE_TYPE
with your VM details. - Run
gcloud compute instances describe VM_NAME
to verify that Compute Engine created the VM.
After you have created your VM instance:
- Connect to the machine using SSH.
- Install Docker.
- Confirm that Docker Compose is installed:
docker compose version
Docker Compose version v2.24.1
Seqera container images
Seqera Platform Enterprise is distributed as a collection of Docker containers available through the Seqera
container registry cr.seqera.io
. Contact support to get your container access credentials. After you receive your credentials, retrieve the Seqera container images on your VM instance:
- Retrieve the username and password you received from Seqera support.
- Authenticate to the registry:
docker login -u '/\<USERNAME\>/' -p '/\PASSWORD\>/' cr.seqera.io
- Pull the Seqera container images:
docker pull cr.seqera.io/private/nf-tower-enterprise/backend:v24.1.5
docker pull cr.seqera.io/private/nf-tower-enterprise/frontend:v24.1.5
Next steps
See Configuration.