notice
This is documentation for Rasa X Documentation v0.41.x, which is no longer actively maintained.
For up-to-date documentation, see the latest version (1.1.x).
Helm Chart Installation
License Terms
For the use of Rasa X the Rasa X License Terms apply. For the use of Rasa Enterprise the Rasa Enterprise License Terms apply.
This page contains detailed instructions for installing Rasa X in a scalable cluster environment using OpenShift or Kubernetes (K8S).
Rasa X is available as a Helm Chart for a cluster setup. If you are not using Helm in your cluster, you can still use the following instructions to generate the Kubernetes or OpenShift object configurations via the Helm command-line interface, and install those configurations manually.
note
The Rasa X Helm chart is open-source and available in the rasa-x-helm repository. Please create an issue in this repository if you discover bugs or have suggestions for improvements.
Requirements
Note: Rasa X is intended to be installed on a server and not to a personal/local machine. Installing on a server is recommended because Rasa X is designed to stay up continuously, and not to be frequently stopped or restarted.
Cluster Requirements
To install the Rasa X Helm chart, you need an existing Kubernetes cluster or OpenShift cluster. Setting up a Kubernetes / OpenShift cluster can be tedious, hence we recommend to get a managed cluster from a cloud provider like Google Cloud, DigitalOcean, Microsoft Azure, or Amazon EKS.
The requirements of the single pods can vary, especially those of the
rasa-production
and rasa-worker
pods, dependent on the model size and what
pipeline is used and the number of users. We recommend providing at least the
following resources:
Deployment | CPU | Memory |
rasa-x | 1 | 1 GiB |
event-service | 2 | 1 GiB |
rasa-production | 2 | 2 GiB |
rasa-worker | 4 | 4 GiB |
nginx | 0.2 | 200 MiB |
app | 0.5 | 200 MiB |
duckling | 0.5 | 200 MiB |
postgresql | 1 | 250 MiB |
rabbit | 0.2 | 250 MiB |
redis | 0.2 | 250 MiB |
We recommend a size of 10 GiB for the Rasa X volume claim and at least 30 GiB for the database volume claim.
Installation Requirements
Please check that you installed the Kubernetes or OpenShift command line interface (CLI). You can check this using the following command:
- Kubernetes
- OpenShift
kubectl version --short --client# The output should be similar to this# Client Version: v1.16.3If this command resulted in an error, please install the Kubernetes CLI or the OpenShift CLI depending on the cluster you’re using.
Make sure that the Kubernetes / OpenShift CLI is correctly connected to your cluster. You can do so by using the following commands:
- Kubernetes
- OpenShift
kubectl version --short# The output should be similar to this# Client Version: v1.16.3# Server Version: v1.14.8-gke.12If you get an error when executing the command, you are not connected to your cluster. To get the command to connect to the cluster please consult your cluster’s admin or the documentation of your cloud provider.
If you are using K3s for an embedded Kubernetes installation, please make sure that you exported the path to the Kubernetes config:
export KUBECONFIG=/etc/rancher/k3s/k3s.yamlPlease make sure you have the Helm CLI installed. To check this, run:
helm version --short# The output should be similar to this# v3.0.0+ge29ce2aIf this command leads to an error, please install the Helm CLI.
In case you are using a version
<3
of Helm, please update to Helm version3
.
Supported Browsers
The web interface aims to support browsers that meet the following criteria:
0.2% market share
not Internet Explorer
not Opera Mini
Subchart Versions
The Rasa X Helm charts by default make use of three Bitnami subcharts, which pull the images in the table below. These are the versions of the subcharts and images we test against:
Subchart | Chart Version | Image | Image Version |
---|---|---|---|
redis | 10.5.14 | bitnami/redis | 5.0.8 |
rabbit | 6.19.2 | bitnami/rabbitmq | 3.8.3 |
postgresql | 8.6.13 | bitnami/postgresql | 11.7.0 |
If you choose to override the subchart defaults, or use external instances of them, you should verify in the relevant changelogs whether the versions you are using take different values than the ones listed below or on the Helm chart repo.
Installation
note
If you’re installing Rasa Enterprise, please follow the Rasa Enterprise instructions where given. If a step does not have separate instructions, the step applies to both Rasa X and Rasa Enterprise.
1. Create Namespace
We recommend installing Rasa X in a separate namespace to avoid interfering with existing cluster deployments. To create a new namespace run the following command:
- Kubernetes
- OpenShift
2. Create Values File
Prepare an empty file called values.yml
which will include all your custom
configuration for the installation with Helm.
3. Configure Credentials
To configure the credentials, copy the section below into the values.yml
file and replace each <safe credential>
marker with a different alphanumeric
string. Please use safe credentials to avoid data breaches.
- Rasa X
- Rasa Enterprise
4. Specify Rasa X and Rasa Open Source Versions
- Rasa X
- Rasa Enterprise
You can install the latest stable Rasa X version and the latest Rasa Open
Source version by specifying the following in your values.yml
:
To install the latest edge release of Rasa X instead, set the latest
tag for Rasa X:
You can also choose any compatible Rasa X and Rasa Open source versions according to the Compatibility Matrix.
5. Configure Rasa X Image
- Rasa X
- Rasa Enterprise
6. Optional: Configure Custom Action Server
See these instructions to configure a custom action server.
note
If you are following the Using Helm to Generate Object Configurations guide, stop here and continue with the latter.
7. Deploy Rasa X
Run the following commands:
note
OpenShift only: If the deployment fails and oc get events
returns
1001 is not an allowed group spec.containers[0].securityContext.securityContext.runAsUser
,
re-run the installation command with an added --set securityContext.fsGroup=null
flag.
Then wait until the deployment is ready. If you want to check on its status, the following command will block until the Rasa X deployment is ready:
- Kubernetes
- OpenShift
Alternatively you can also monitor the pods directly. Note that the deployment process can involve containers restarting until everything is ready (e.g. if the database container is not ready yet).
8. Access Rasa X
By default the Rasa X deployment is exposed via the nginx
service. You can get
the IP address using this command:
- Kubernetes
- OpenShift
You can then access the deployment on http://<ip>:8000
- Rasa X
- Rasa Enterprise
Note: Depending on the used cluster / cloud provider this might not work. Please refer
to the cloud provider’s documentation / administrator what the recommended way
for exposing the nginx
service is. We are also happy to help you with any
issues in the Rasa Forum.
Reference
Accessing Secrets
This section describes how to retrieve secrets from your running deployment. You have the option to retrieve the following secrets:
description | default secret name |
---|---|
PostgreSQL database password | postgresql |
Redis lock store and cache password | redis |
RabbitMQ event broker password | rabbit |
Run the following command, replacing <secret name>
with one of the values in the
table, and <your namespace>
and <your release name>
with your namespace and
the name of your release:
- Kubernetes
- OpenShift
note
If you’re not sure what namespace or release name your deployment runs under, you can use the following commands to find out. To list the available namespaces, run:
And to list the releases under a particular namespace namespace, run:
Accessing Logs
This section describes how to get logs from the running containers.
Get the name of the pod which you want to get the logs of.
- Kubernetes
- OpenShift
kubectl --namespace <your namespace> \get pods# The output should be similar to this:# NAME READY STATUS RESTARTS AGE# rasa-app-58d476497-ktkqn 1/1 Running 0 45m# rasa-duckling-7696b7f474-km6dx 1/1 Running 0 45m# rasa-event-service-7657b6b489-96drn 1/1 Running 1 45m# rasa-nginx-64b6b464f6-p9bmb 1/1 Running 0 45m# rasa-postgresql-0 1/1 Running 0 45m# rasa-rabbit-0 1/1 Running 0 45m# rasa-rasa-production-c86fbf7f7-q9pp5 1/1 Running 0 45m# rasa-rasa-worker-5d49485976-6z2kj 1/1 Running 0 45m# rasa-rasa-x-5788cddbb7-5zf86 1/1 Running 0 45m# rasa-redis-master-0 1/1 Running 0 45mrasa-rasa-x-5788cddbb7-5zf86
is for example the name of the Rasa X container.To get the logs of the container run:
- Kubernetes
- OpenShift
kubectl --namespace <your namespace> \logs <name of the pod>
Using Helm to Generate Object Configurations
If you don’t want or cannot use Helm to install Rasa X in your cluster, you can still use Helm to generate the Kubernetes / OpenShift resource files.
Follow the installation instructions until the deployment part.
Run the following command to generate the Kubernetes / OpenShift resource files and write them in a file
rasa-x-deployment.yml
:- Locally
- Using Docker
helm repo add rasa-x https://rasahq.github.io/rasa-x-helmhelm repo updatehelm template \--namespace <your namespace> \--values values.yml \<your release name> \rasa-x/rasa-x > rasa-x-deployment.ymlYou can then deploy these manually by running:
- Kubernetes
- OpenShift
kubectl --namespace <your namespace> \create -f rasa-x-deployment.yml
Next Steps
Connect a Custom Action Server if you are using custom actions.
Set up Integrated Version Control to connect your Rasa X instance to a remote Git repository.
Deploy your assistant using Rasa X.
Configure SSL if you’d like to run your Rasa X server on HTTPS.