notice
This is documentation for Rasa X/Enterprise Documentation v1.1.x, which is no longer actively maintained.
For up-to-date documentation, see the latest version (1.4.x).
Configuration
This page contains information about configuring a Rasa Enterprise deployment installed using
rasactl
.
Configuring Values in a Deployment
You can start a deployment with a predefined configuration by using
the --values-file
flag to pass a file with configuration, e.g. rasactl start --values-file values.yaml
.
Configurable Values
rasactl
uses the Rasa Enterprise Helm chart to deploy Rasa Enterprise.
Therefore the same values that apply to a Helm chart installation apply to a rasactl
installation.
Applying Changes
To change values for an existing Rasa Enterprise deployment:
Set the relevant values in
values.yml
.Upgrade the deployment:
rasactl upgrade --values-file values.ymlIf you have multiple deployments, specify the deployment that you want to customize:
rasactl upgrade deployment-name --values-file values.yml
To list all available deployments use the rasactl list
command.
Common Customizations
Use a Specific Rasa Enterprise Version
You can configure a Rasa Enterprise deployment to use a specific Rasa Enterprise version.
Create a
values.yaml
file with the following content:rasax:tag: "1.1.0"eventService:tag: "1.1.0"dbMigrationService:tag: "1.1.0"Apply the values to the deployment:
rasactl upgrade --values-file values.yml
Deploy Rasa Enterprise with a Defined Password
By default, the password for a Rasa Enterprise user (the admin
user) is rasaxlocal
.
You can use the --rasa-x-password
flag to defined the user password while creating a new deployment.
You can use the --rasa-x-password-stdin
flag if you want to read the password from STDIN
.
Enable TLS
Requirements
- Your deployment must be available at a hostname (not a bare IP address). If you started your deployment using
rasactl start
on your local machine, you can use theURL
returned byrasactl status
. If you use a VM with a dynamic external IP address, use a static one to avoid IP addresses rotation and assign a hostname to it. - You deployment must be accessible on ports
80
and443
.
Steps
Install cert-manager via helm.
helm repo add jetstack https://charts.jetstack.iohelm repo updatehelm install \cert-manager jetstack/cert-manager \--namespace cert-manager \--create-namespace \--version v1.5.3 \--set installCRDs=trueCreate a Basic ACME Issuer.
You will need to create a
cluster-issuer.yaml
file that contains a specification for the cluster issuer. In the example below Let's Encrypt is used as the certificate issuer.apiVersion: cert-manager.io/v1kind: ClusterIssuermetadata:name: letsencryptspec:acme:# You must replace this email address with your own.# Let's Encrypt will use this to contact you about expiring# certificates, and issues related to your account.email: user@example.comserver: https://acme-v02.api.letsencrypt.org/directoryprivateKeySecretRef:# Secret resource that will be used to store the account's private key.name: example-issuer-account-key# Add a single challenge solver, HTTP01 using nginxsolvers:- http01:ingress:class: nginxThen create the
ClusterIssuer
resource:kubectl create -f cluster-issuer.yamlConfigure your Rasa Enterprise deployment
You will need to upgrade your deployment so that a new TLS certificate can be issued for your domain.
First, update your deployments values to include configuration for an
Ingress
resource.ingress:enabled: trueannotations:# add an annotation indicating the issuer to use.cert-manager.io/cluster-issuer: letsencrypthosts:- host: your-domain.compaths:- /tls:# a secret name that is created automatically by cert-manager- secretName: rasa-x-tlshosts:- your-domain.com# Disable NGINX which is not needed longer.nginx:enabled: falseThen apply the changes by upgrading your deployment:
rasactl upgrade --values-file values.yaml
After the configuration is applied, you should be able to access your deployment over HTTPS.
You can execute the rasactl status
command to check a URL and if HTTPS is enabled.
Share your bot running locally
To share your bot you’ll need to make your locally running Rasa Enterprise server available to external traffic. You can do this using ngrok.
You can download and install ngrok for free. Once it is installed, open a new terminal window and run:
- Determine URL for your deployment by executing the
rasactl status
command.
- Run
ngrok
.
This will create a public HTTPS url for your locally running Rasa Enterprise server, given that it is running at the default port (if not, change the command above).
note
You can use the -region
flag along with the ngrok http
command to set region, default is us
.
You should see something like this:
To share your bot, replace the http://inspiring-albattani.rasactl.localhost
portion of your Share your Bot link with
the https forwarding address from ngrok. Your link should then look something like this:
https://3c3f-2a02-2454-25a-d700-5147-7d98-d4c4-e178.eu.ngrok.io/guest/conversations/production/29fbd34c2a06481f
.
From there you can follow the instructions for sharing your bot
as usual.
Keep in mind that ngrok has limits on free usage and this is not a production set up.
Accessing Secrets
This section describes how to retrieve secrets from your running deployment. The following secrets are created by default
description | default secret name |
---|---|
PostgreSQL database password | postgresql |
Redis lock store and cache password | redis |
RabbitMQ event broker password | rabbit |
To view the plaintext value of a secret, run the following, replacing <your deployment name>
and <your release name>
with your deployment and the name of your release:
For example, if you want to see the value of the redis
secret for a release called rasa-x
in the local
namespace:
note
If you’re not sure what deployment name or release name your deployment runs under, you can use the following commands to find out. To list the available deployments, run:
And to list the releases under a particular deployment, run:
The release name can be found in the Helm release
field.