Studios: Kubernetes
This guide describes how to deploy Studios for Seqera Platform Enterprise on Kubernetes.
Prerequisites
Before you begin, you need:
- A running Seqera Platform Enterprise Kubernetes deployment
- A wildcard TLS certificate for your domain (e.g.,
*.example.com) - A wildcard DNS record (e.g.,
*.example.com)
Procedure
-
Download the Kubernetes manifests for the Studios service:
-
Change your Kubernetes context to the namespace where your Platform instance runs:
kubectl config set-context --current --namespace=<namespace> -
Edit the
server.ymlfile and set theCONNECT_REDIS_ADDRESSenvironment variable to the hostname or IP address of the Redis server configured for Platform. -
Create an initial OIDC registration token:
oidc_registration_token=$(openssl rand -base64 32 | tr -d /=+ | cut -c -32) -
Edit the
proxy.ymlfile and set the following variables:CONNECT_REDIS_ADDRESS: The hostname or IP address of the Redis server configured for Seqera.CONNECT_PROXY_URL: A URL for the connect proxy subdomain (e.g.,https://connect.example.com).PLATFORM_URL: The base URL for your installation (e.g.,https://example.com/).CONNECT_OIDC_CLIENT_REGISTRATION_TOKEN: The same value as theoidc_registration_tokenvalue created previously.
-
Edit your
ingress.eks.ymlfile:- Uncomment the
hostsection at the bottom of the file. - Replace
<YOUR-TOWER-HOST-NAME>with the base domain of your installation.
- Uncomment the
-
Generate an RSA public/private key pair:
openssl genrsa -out private.pem 2048
openssl rsa -pubout -in private.pem -out public.pem -
Download the data-studios-rsa.pem file and replace its contents with the content of your private and public key files (private key on top, public key directly beneath it).
-
Apply a base64 encoding to the PEM file:
base64_pem=$(cat data-studios-rsa.pem | base64 -w0) -
Create a secret file named
secret.yml:apiVersion: v1
kind: Secret
metadata:
name: platform-oidc-certs
namespace: platform-stage
data:
oidc.pem: <BASE64_ENCODED_PEM_FILE> -
Create the secret:
kubectl apply -f secret.yml -
Edit the
tower-svc.ymlfile and uncomment thevolumes.cert-volume,volumeMounts.cert-volume, andenv.TOWER_OIDC_PEM_PATHfields. -
Edit the ConfigMap named
platform-backend-cfgin theconfigmap.yml:TOWER_DATA_STUDIO_CONNECT_URL: The URL of the Studios connect proxy (e.g.,https://connect.example.com/).TOWER_OIDC_REGISTRATION_INITIAL_ACCESS_TOKEN: The same value as theoidc_registration_tokenvalue created previously.
-
Edit the ConfigMap named
tower-ymlin theconfigmap.yml:data:
tower.yml: |-
tower:
data-studio:
allowed-workspaces: null -
Apply the updated configuration:
kubectl apply -f configmap.yml
kubectl apply -f tower-svc.yml -
Restart the cron and backend services:
kubectl rollout restart deployment/backend deployment/cron -
Apply the Studios manifests:
kubectl apply -f ingress.aks.yml proxy.yml server.yml -
Verify Studios is available by logging into Seqera and navigating to an organizational workspace. The Studios tab should be displayed.
Configuration
See Studios deployment for DNS configuration, workspace availability, and environment image options.