Edit on GitHub

K8s Installation using Helm

Prerequisites

Studio Images

Access to the Studio Docker images need to be provided by the Iterative team to enable the installation.

Software

You can deploy Studio Self-hosted on any Kubernetes cluster (version => 1.20) that has an ingress controller configured and installed.

The choice of ingress controller is up to you. We recommend the ingress-nginx controller, but Studio will work on other ingress controllers as well.

You'll also need to have the following CLI tools configured and installed:

  • Helm
  • Kubectl

DNS

Create a DNS record pointing to the external IP address of your ingress controller. This hostname will be used for Studio.

1. Create a namespace

We'll install Studio and related components in a dedicated studio namespace. Let's create it now:

$ kubectl create namespace studio

If you want to install Studio in any other namespace, modify the --namespace flag in the following commands accordingly

2. Create a Docker registry secret

Configure Docker credentials for pulling images from our private registry:

$ kubectl create secret docker-registry iterativeai \
    --namespace studio \
    --docker-server=docker.iterative.ai \
    --docker-username=<username> \
    --docker-password=<password>

Replace <username> and <password> with the credentials you've received.

3. Add the Iterative Helm repository

$ helm repo add iterative https://helm.iterative.ai

3. Install the Studio Helm chart

In this example, we'll configure Studio to integrate with GitLab and use the built in Postgres, Redis, and Minio.

For a comprehensive list on Studio's configuration options, please see the Configuration section in the sidebar.

Let's start by creating a YAML configuration file, values.yaml, with the following contents:

imagePullSecrets:
  - name: iterativeai

global:
  host: '<Studio hostname>'
  scmProviders:
    gitlab:
      enabled: true
      url: '<GitLab URL>'
      clientId: '<GitLab OAuth App Client ID>'
      secretKey: '<GitLab OAuth App Secret Key>'
      webhookSecret: '<GitLab Webhook Secret>'

Now let's deploy Studio with the command:

$ helm install studio iterative/studio \
    --namespace studio \
    -f values.yaml

🎉 You can now access Studio in your browser on the domain that you've configured.