Customize Your Deployment

You are viewing documentation for a legacy Rasa product. If you want to get started building assistants with Rasa please check out our latest documentation here.

This page contains information about customizing Rasa X.

Making Changes to the Deployment

If you want to change values for an installed Rasa X deployment, please follow these steps.

  1. To modify the parameters of an existing deployment, set the relevant values in your values.yml.

  2. Get the release name which Helm used during the installation. If are unsure which release name was used, use the following command to find out the release name:

   helm list --namespace <your namespace>
  1. Upgrade the deployment:
   helm repo update

helm upgrade \
       --values values.yml \
       --namespace <your namespace> \
       --reuse-values \
       <your release name> rasa-x/rasa-x

Adding a Custom Action Server

  1. To use a custom action server you need to build a Docker image for your action server. Please see Building an Action Server Image for more information on how to build an image and deploy it to a registry.

  2. Add the image and tag you want to use to the values.yml. If your image is stored in a private registry, please refer to this guide in order to see how to add image pull secrets to your deployment.

   # app (custom action server) specific settings
   app:
     # name of the custom action server image to use
     name:"<name of your action server image>"
     # tag refers to the custom action server image tag
     tag:"<tag of your image>"

Configuring Rasa Open Source Channels

To configure the messaging and voice channels which the Rasa container should use, put the content of your credentials.yml in the values.yml as done in this example:

   # rasa: Settings common for all Rasa containers
   rasa:
     # additionalChannelCredentials which should be used by Rasa to connect to various
     # input channels
     additionalChannelCredentials:
       socketio:
         user_message_evt: user_uttered
         bot_message_evt: bot_uttered
         session_persistence: true/false

Adding Environment Variables

To add extra environment variables to your containers, add the environment variable to an extraEnvs array on the service in your values.yml. These values can be provided directly or refer to secrets.

   # rasa: Settings common for all Rasa containers
   rasa:
     # other configured parameters
     # ...
     extraEnvs:
       - name: "SANIC_RESPONSE_TIMEOUT"
         value: "7200"

Adding Image Pull Secrets for Private Registries

  1. Create a secret for your private registry...

  2. Add the name of the created secret to your values.yml file:

    # images: Settings for the images
    images:
      # imagePullSecrets which are required to pull images for private registries
      imagePullSecrets:
        - name: <name of your pull secret>
    

Create / Update Rasa X Users

  1. Get the name of the Rasa X pod:

    kubectl --namespace <your namespace> get pod -l app.kubernetes.io/component=rasa-x
    
  2. Connect to the shell of this pod:

    kubectl --namespace <your namespace> exec -it <name of the Rasa X pod> bash
    
  3. Rasa Enterprise only: Run the following command to create a new user. Please see Role-Based Access Control for available default roles:

    python scripts/manage_users.py create <username><password><role>
    
  4. To update the password of an existing user:

    python scripts/manage_users.py create --update <username><password><role>
    

Debug Mode

To activate the debug mode for all Rasa Open Source and Rasa X related pods, use the following configuration in your values.yml:

debugMode: "true"

Specifying Volume Sizes

Rasa X requires two volume claims: one for Rasa X, and one for the database. You can define the claim sizes by setting the size of these services in your override file:

rasax:
  persistence:
    size: "10Gi"
postgresql:
  persistence:
    size: "100Gi"

Configuring Databases

Rasa X is officially compatible with the following databases:

By default, Rasa X uses PostgreSQL as a database. It can be configured to use an on-premise database or your own cloud provided database. Using Oracle as your Rasa X database instead of PostgreSQL also requires some additional setup.

PostgreSQL

Please check out the Environment Variables for how to configure Rasa X to use a non-default PostgreSQL database.

Oracle

Using Oracle as your Rasa X database requires database setup and configuration.

# Connect to Oracle
docker build . -t rasa/rasa-x:1.0.4-oracle

Environment Variables

Global Environment Variables

Variable Description
RASA_X_VERSION The version of Rasa X used by the Rasa X docker container.
RASA_VERSION The version of Rasa used by the Rasa docker containers.

RabbitMQ Variables

Variables defining the behavior of RabbitMQ:

Variable Default Value Description
RABBITMQ_HOST "rabbit" Hostname of the container hosting RabbitMQ.

DB Variables

Variables that define the credentials for the PostgreSQL database:

Variable Default Value Description
DB_HOST "db" Hostname of the container hosting the PostgreSQL database.