- Orchestrate multiple Rasa Pro services (e.g., Rasa core container, Action Server, Rasa Pro Services) on any cloud or on-prem setup.
- Easily scale up or down by adding more replicas.
- Seamlessly manage rolling updates, networking, and load balancing.
- Simplify the deployment of new versions of your assistant.
Deployment Requirements
Before deploying Rasa Pro on Kubernetes, make sure you have:- A Kubernetes or OpenShift cluster
- Many providers (AWS EKS, Azure AKS, GCP, DigitalOcean) offer managed clusters.
- Ensure you have
kubectl(for Kubernetes) oroc(for OpenShift) installed and connected to your cluster.
- Helm CLI (v3.5 or newer)
- You’ll need it to install the Rasa Pro Helm chart.
- A valid Rasa License
- You will pass it as a secret or an environment variable in your deployment.
- (Optional) A Model Storage Bucket
- If you plan to store or mount your trained models from cloud storage (AWS S3, GCP Storage, or Azure Blob), set this up in advance.
- (Optional) A Kafka cluster and Data Warehouse
- Required if you plan to deploy Rasa Pro Services for analytics and logging.
How to Deploy Rasa
1. Kubernetes/OpenShift Cluster
- Confirm connectivity:
oc version).
- Create a dedicated namespace (recommended):
2. Rasa Pro Helm Chart
Rasa provides a Helm chart to simplify deployment. The chart is hosted on a public Artifact Registry.- Download the Helm chart:
rasa-<version>.tgz.
2. Check your Helm version:
3. Deploy Rasa Pro
Below is the minimal workflow for deploying Rasa Pro on Kubernetes or OpenShift using the Helm chart.a) Prepare Secrets
- Create a
secrets.ymlfile (or name it as you wish) with the Rasa license and any other secret values you may need (authentication tokens, etc.). Base64-encode your secret values.
secrets.yml
- Apply the secrets:
b) Create a values.yml for your deployment
- Minimal
values.ymlexample:
values.yml
- Deploy with Helm:
4. Model Storage Bucket
To load a trained model from cloud storage:- Set up a bucket on AWS S3, Azure Blob, or Google Cloud Storage, and upload your trained model.
- Mount or configure the bucket for your Rasa container.
values.yml
5. Deploy Action Server
If your assistant uses Custom Actions, you can build and deploy a separate Action Server container alongside your Rasa Pro container.-
Build your custom action image:
- Place your Python code in
actions/actions.py. - Optionally specify any dependencies in
requirements-actions.txt. - Create a
Dockerfileextending the officialrasa/rasa-sdkimage:
- Place your Python code in
- Build & push the image to your container registry (e.g., DockerHub, GCR, ECR).
- Reference your Action Server in
values.yml:
values.yml
- Upgrade the Helm release:
6. Deploy Rasa Pro Services
Rasa Pro Services is an optional container providing analytics, data collection, and other enterprise features. It must connect to:- A Kafka cluster (production-ready)
- A data warehouse (e.g., PostgreSQL)
New in rasa-1.3.0 Helm ChartWe have simplified how Rasa Pro Services handle database and Kafka configurations.
Previously, these settings were passed as individual environment variables.
They are now defined directly in
values.yaml under structured configuration blocks (database and kafka).- Configure Kafka for your Rasa Pro container. In your
values.yml, make sure:
values.yml
- Enable Rasa Pro Services:
values.yml
- Upgrade via Helm:
/healthcheck endpoint to verify status.
7. Adding Environment Variables
You can pass extra environment variables to any container by adding them tovalues.yml. For example, to add environment variables to the Rasa Pro container:
values.yml
values.yml. For example, to add environment variables from a ConfigMap or Secret:
values.yml