Deploy Rasa Plus in Production

You are viewing documentation for our open source project which is maintained by the community. If you want to get started building assistants with Rasa please check out our latest documentation here.

Rasa Pro License

You'll need a license to get started with Rasa Pro. Get it here

To use the Rasa Plus image in a Helm deployment, you will need to substitute rasa with rasa-plus as the image name. You will also need to pass your license in an env var and specify a pull secret for the image.

Step 1: image pull secret

You will need to create a pull secret to access the rasa-plus image. You should have been provided with a JSON credentials file to access the registry. The file content should look similar to this:

{
  "type": "service_account",
  "project_id": "rasa-platform",
  "private_key_id": "somerandomcharacters",
  "private_key": "-----BEGIN PRIVATE KEY-----\n\nPBTu1lAJDLo136ZGTdMKi+/TuRqrIMg/..................................................................................................................................\nsjAsuAH4Iz1XdfdenzGnyBZH\n-----END PRIVATE KEY-----\n",
  "client_email": "company@rasa-platform.iam.gserviceaccount.com",
  "client_id": "12345678910123",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://accounts.google.com/o/oauth2/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/company%40rasa-platform.iam.gserviceaccount.com"
}

Create the pull secret by running the corresponding command for your cluster environment:

# kubernetes
kubectl --namespace <your namespace> \
create secret docker-registry rasa-plus-pull-secret \
 --docker-server=gcr.io \
 --docker-email=company@rasa-platform.iam.gserviceaccount.com \# this value needs to be updated with correct client email
 --docker-username=_json_key \
 --docker-password="$(cat<your-json-registry-creds-file>.json)"
# openshift
oc --namespace <your namespace> \
create secret docker-registry rasa-plus-pull-secret \
 --docker-server=gcr.io \
 --docker-email=company@rasa-platform.iam.gserviceaccount.com \# this value needs to be updated with correct client email
 --docker-username=_json_key \
 --docker-password="$(cat<your-json-registry-creds-file>.json)"

Step 2: store license in a secret

Step a: Save the license string to a file, for example:

echo "<rasaplus-license-key-you-were-emailed>" > license.txt

Step b: Create a secret to hold the license key:

kubectl -n <your-namespace> create secret generic rasapro-license --from-file=licensekey=./license.txt

Step c: Remove the file on disk, for example:

/bin/rm license.txt

Step 3: update values.yml

For the Rasa Helm Chart, update as follows:

registry: europe-west3-docker.pkg.dev/rasa-releases/rasa-plus/rasa-plus

command:
  - rasa

image:
  name: rasa-plus
  tag: 3.6.20

pullSecrets:
  - name: rasa-plus-pull-secret

extraEnv:
  - name: RASA_PRO_LICENSE
    valueFrom:
      secretKeyRef:
        name: rasapro-license
        key: licensekey

For the Rasa X/Enterprise Helm Chart, update as follows:

images:
  imagePullSecrets:
    - name: rasa-plus-pull-secret

rasa:
  command:
    - rasa
  name: europe-west3-docker.pkg.dev/rasa-releases/rasa-plus/rasa-plus
  tag: 3.6.20

extraEnv:
  - name: RASA_PRO_LICENSE
    valueFrom:
      secretKeyRef:
        name: rasapro-license
        key: licensekey