Version: Latest

Installation Guide (Replicated)

Installing With Replicated

Installing with Replicated is a deployment method that allows you to deploy Rasa Studio with an embedded Kubernetes cluster into a virtual machine. You may bring your own external dependencies like Postgres and Kafka, or you can use embedded versions that we provide with the installation.

To use this installation method, please speak to your Customer Success Manager.

Requirements

Before you begin, you'll need the following:

Infrastructure Requirements

  • A Virtual Machine with at least 4 vCPUs, 16GB RAM and 100GB of disk space. We require an x86 CPU - ARM CPUs such as Apple Silicon or AWS Graviton instances will not work at this time.
  • We support Ubuntu 22.04 or Red Hat Enterprise Linux 9 for installation, and similar distros may also work.
  • A DNS record pointing at your VM - it cannot just have an IP address.
  • A cloud object storage bucket - we support Google Cloud Storage and AWS S3. You can also use MinIO if you don't have access to GCS or S3, which is discussed below.
  • Credentials for your object storage provider in the form of a GCP Service Account JSON key, an AWS Access Key and Secret Key or MinIO credentials. These credentials must have the ability to read and write objects in your bucket, and create new buckets.
  • An OpenAI API key or credential for another LLM if you're using a different provider.

Security Requirements

  • The ability to use sudo on your VM.
  • The following ports must be open on your VM:
    • 22 (TCP) for SSH access to perform the initial setup.
    • 443 (TCP) for HTTPS access to the Studio application.
    • 30000 (TCP) for access to the Replicated Admin Console.
    • 30002 (TCP) if you wish to expose the embedded Kafka installation for connecting a bot to.
Your VM must be able to access the following domains on the internet. These domains are required to install the embedded Kubernetes cluster inside your VM and then deploy Rasa Studio artifacts onto that cluster.
*.amazonaws.com
*.docker.com
*.docker.io
europe-west2-docker.pkg.dev
gcr.io
github.com
install.rasa.com
kurl.sh
kubernetes.github.io
objects.githubusercontent.com
openebs.github.io
quay.io
raw.githubusercontent.com
registry-data.replicated.com
registry.k8s.io
registry.rasa.com
registry.replicated.com
replicated.app
replicated.rasa.com
storage.googleapis.com
vmware-tanzu.github.io

Installation

The installation is in two parts: firstly you will install the embedded Kubernetes cluster onto your VM and then you will deploy Rasa Studio on top.

Embedded Cluster Installation

To install the embedded cluster in your VM, your Rasa account team will provide you with a URL and password to download an installation bundle. You can either download this bundle directly onto your VM or transfer it across using a tool such as SCP.

  1. Create a directory on the VM that we will use to host our embedded NFS data. In this example, we name the directory data. You will need the full path to this directory later.

    mkdir data
  2. Give your directory sufficient permissions so that we can write to and read from it:

    sudo chmod -R 777 data/
  3. Extract the installation bundle

    tar -xvzf studio-dragon-stable.tgz
  4. Install the embedded cluster. If you are performing an online install, use:

    sudo ./studio-dragon install --license license.yaml

    If you are performing an airgap install, use:

    sudo ./studio-dragon install --license license.yaml --airgap-bundle studio-dragon.airgap
  5. You'll be prompted for an Admin Console password. This will allow you to access the Replicated Admin Console to deploy Studio. You must remember this password as you proceed with the installation.

  6. Wait for the install to complete. You'll be told when it is ready:

    image

    You can now visit the Admin Console on https://<external-ip-or-hostname>:30000 and proceed past any browser TLS warnings you receive. Login with the password you just set. Note that depending on the network architecture of where you deployed the VM, you may have to use a public or private IP.

  7. After logging in, you'll be presented with the Nodes page where you'll see the node you've just installed the embedded cluster on. Click Continue.

    image

Rasa Studio Configuration

We can now proceed to the install of Studio itself. You will be presented with a configuration screen where the sections are described below.

Container Images & API Keys

Here you will supply the versions of products that you wish to deploy and add the OpenAI API key that is required for building CALM bots in Studio. We recommend that you stick to the default versions set on this page to ensure good compatibility.

tip

You can also choose here to use a Private Registry for if you're using an on-prem Docker image registry such as Artifactory. To do this, you'll need to first create a Kubernetes ImagePullSecret object on the embedded cluster to authenticate with your private registry. On your VM, run the following command to get a shell into the embedded Kubernetes cluster:

sudo ./studio-dragon shell

Create an ImagePullSecret following the official Kubernetes documentation:

kubectl create secret docker-registry regcred --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>

Model Service Replicas

Here you will configure the number of Model Service replicas, as well as whether or not to enable debug logging for the Model Training Service & Model Running Service. Aim to deploy n+1 replicas where n is the number of bots you intend to develop in Studio.

Keycloak

Set administrator credentials for Keycloak, which is the authentication provider for Studio that allows you to connect it to your own SSO provider.

Object Storage

Configure either the GCP Cloud Storage or AWS S3 bucket used for storage. If you are using an S3-compatible storage provider like MinIO, select AWS S3 Bucket and then select "Use custom S3 Endpoint" to provide the URL for your service.

tip

If you don't have access to GCP or AWS, you can deploy MinIO on your VM to emulate an object storage service using their Quickstart instructions.

  • The values for AWS Access Key ID and AWS Secret Access Key should be set to the corresponding values for an Access Key you create in the MinIO administration console which you should be able to access by default at http://<private-ip-of-vm>:9000.
  • The value for AWS Region Name can be set to us-east-1 as it doesn't actually matter for a MinIO connection.
  • You must check the "Use custom S3 Endpoint" box in the Studio installer to allow you to supply a custom URL.
  • The value for Endpoint URL should then be set to http://<private-ip-of-vm>:9000.

NFS Server

Choose to use an embedded NFS server or connect to an existing external NFS server.

If you choose to use embedded NFS, ensure the Host Path is the folder you created earlier - if you created it in the default user directory on Ubuntu for example, this would be /home/ubuntu/data. For Local Node Name, use the hostname of your VM.

tip

Get the hostname of your VM to set this value by running hostname in your terminal.

Database

Choose to use an embedded PostgreSQL server or connect to an existing external PostgreSQL database.

If you choose to use embedded PostgreSQL, all of the setup will be handled for you.

If you choose to use an external PostgreSQL database, you must configure the hostname and authentication credentials.

Kafka

Choose to use an embedded Kafka deployment or connect to an existing external Kafka deployment.

If you choose to use embedded Kafka, no further configuration is required.

If you choose to use an external Kafka deployment, you must configure the hostname, authentication, security settings and pre-create topics on your Kafka deployment yourself before connecting it.

You may optionally choose to expose the embedded Kafka deployment to be accessible from outside of your VM so that you can connect a deployed bot to your Studio instance. If you enable this, Kafka will be exposed on the VM on port 30002 and you must ensure that appropriate security group or firewall rules are configured to be able to access this port.

Accessing Rasa Studio

For a VM based deployment, ensure that you select Virtual Machine for the deployment. You must also provide an Ingress DNS Hostname for Studio to be accessible after the installation. This should be the domain you have pointing to your VM that was a prerequisite.

tip

If you're deploying on AWS and accessing the machine over the internet, you can use the instance's default public DNS name eg ec2-[IP-ADDRESS].[REGION].compute.amazonaws.com.

Resource Management

Optionally configure Kubernetes resource limits and requests for Studio components. This is advanced configuration to allow people who are familiar with Kubernetes to manually set resource usage requirements. If you're not sure what this is, you can safely ignore this section.

Rasa Studio Installation

  1. When you've supplied all of the configuration values, click Continue.

  2. You'll move on to the Preflight Checks screen, which will identify any issues with your infrastructure that may prevent you from successfully deploying Studio. Be sure to resolve any issues that are found before going further.

    image
  3. When all checks have passed, click Deploy.

  4. Wait for the installation to complete. This will take about 20 minutes. When the deployment is complete, the status on the dashboard will say Ready and you'll be able to use the Access Studio link to use Rasa Studio.

    image
    • You can access the Rasa Studio UI by visiting https://HOSTNAME in your browser where HOSTNAME is the DNS name you provided in the configuration..
    • You can access the Rasa Studio User Management UI (Keycloak) by visiting the URL https://HOSTNAME/auth. The credentials to login to the Keycloak administration console are the values you set in the Keycloak section of the Studio Configuration above.
  5. You can now proceed to user management and license activation.