RasaHQ / rasa-x-helm

Rasa Enterprise Helm chart for deploying on Kubernetes (K8s) and OpenShift.
Apache License 2.0
75 stars 104 forks source link

Rasa Enterprise Helm Chart

Join the chat on our Rasa Community Forum PRs Welcome Artifact Hub

Rasa Enterprise is a platform for multidisciplinary teams to create AI assistants that drive business value. This Helm chart provides a quick, production-ready deployment of Rasa Enterprise in your cluster.

NOTE: Please see the Rasa Enterprise documentation for a detailed guide on usage and configuration of this chart.

Prerequisites

Installation

helm repo add rasa-x https://rasahq.github.io/rasa-x-helm
helm install <your release name> rasa-x/rasa-x

Upgrading the deployment

helm upgrade <your release name> rasa-x/rasa-x

Uninstalling

helm delete <your release name>

To 5.0.0

The rasa-x-helm chart in version 5.0.0 supports deployment of Rasa Pro version 3.8.0 and above only. Older version Rasa is no longer support with this version of the Rasa-x helm chart.

The redis lock store type is changed to concurrent_redis from rasa_plus.components.concurrent_lock_store.ConcurrentRedisLockStore as part of this release.

To 4.0.0

The rasa-x-helm chart in version 4.0.0 introduces the following breaking changes:

Update chart dependencies to the latest available version, below you can find listed a summary of major changes compared to the previous version used by the rasa-x-helm chart:

To 3.0.0

The rasa-x-helm chart in version 3.0.0 introduces the following breaking changes:

To 2.0.0

The rasa-x-helm chart in version 2.0.0 supports using an external Rasa OSS deployment.

Enabling an external Rasa OSS deployment

The rasa-x-helm chart >= 2.0.0 supports an option to use an external Rasa OSS deployment. Below you can find an example of configuration that uses the external deployment.

The following configuration disables the rasa-production deployment and uses an external deployment instead.

# versions of the Rasa container which are running
versions:
  # rasaProduction is the container which serves the production environment
  rasaProduction:
    # enable the rasa-production deployment
    # You can disable the rasa-production deployment to use external Rasa OSS deployment instead.
    enabled: false

    # Define if external Rasa OSS should be used.
    external:
      # enable external Rasa OSS
      enabled: true

      # URL address of external Rasa OSS deployment
      url: "https://rasa-bot.external.deployment.domain.com"

Now you can apply your changes by using the helm upgrade command.

NOTE: Any Rasa Open Source server can stream events to Rasa Enterprise using an event broker. Both Rasa and Rasa Enterprise will need to refer to the same event broker.

You can use the rasa-bot helm chart to deploy Rasa OSS. Visit the rasa chart docs to learn more.

Configuration

All configurable values are documented in values.yaml. For a quick installation we recommend to set at least these values:

Parameter Description Default
rasax.passwordSalt Password salt which Rasa Enterprise uses for the user passwords. passwordSalt
rasax.token Token which the Rasa Enterprise pod uses to authenticate requests from other pods. rasaXToken
rasax.command Override the default command to run in the container. []
rasax.args Override the default arguments to run in the container. []
rasax.jwtSecret Secret which is used to sign JWT tokens of Rasa Enterprise users. jwtSecret
rasax.initialUser.username Only for Rasa Enterprise. A name of the user that will be created immediately after the first launch (rasax.initialUser.password should be specified). admin
rasax.initialUser.password Password for the initial user. If you use Rasa Enterprise and leave it empty, no users will be created. If you use Rasa CE and leave it empty, the password will be generated automatically. ""
rasa.token Token which the Rasa pods use to authenticate requests from other pods. rasaToken
rasa.command Override the default command to run in the container. []
rasa.args Override the default arguments to run in the container. []
rasa.extraArgs Additional rasa arguments. []
rabbitmq.auth.password Password for RabbitMQ. test
global.postgresql.postgresqlPassword Password for the Postgresql database. password
global.redis.password Password for redis. password
rasax.tag Version of Rasa Enterprise which you want to use. 1.4.0
rasa.version Version of Rasa Open Source which you want to use. 3.8.0
rasa.tag Image tag which should be used for Rasa Open Source. Uses rasa.version if empty. ``
app.name Name of your action server image. rasa/rasa-x-demo
app.tag Tag of your action server image. 0.42.0
app.command Override the default command to run in the container. []
app.args Override the default arguments to run in the container. []
eventService.command Override the default command to run in the container. []
eventService.args Override the default arguments to run in the container. []
nginx.command Override the default command to run in the container. []
nginx.args Override the default arguments to run in the container. []
duckling.command Override the default command to run in the container. []
duckling.args Override the default arguments to run in the container. []
global.progressDeadlineSeconds Specifies the number of seconds you want to wait for your Deployment to progress before the system reports back that the Deployment has failed progressing. 600
networkPolicy.enabled If enabled, will generate NetworkPolicy configs for all combinations of internal ingress/egress false
postgresql.image.tag The PostgreSQL Image tag 12.8.0

Where to get help

How to contribute

We are very happy to receive and merge your contributions. You can find more information about how to contribute to Rasa (in lots of different ways!) here.

To contribute via pull request, follow these steps:

  1. Create an issue describing the feature you want to work on
  2. Create a pull request describing your changes

Development Internals

Releasing a new version of this chart

This repository automatically release a new version of the Helm chart once new changes are merged. The only required steps are:

  1. Make the changes to the chart
  2. Run helm lint --strict charts/rasa-x
  3. Increase the chart version in charts/rasa-x/Chart.yaml

Changelog

generate-changelog-action is used to capture changelogs from commit messages. This means there is a special format for commit messages if you want them to appear in release change logs.

The format is as following:

type: description [flags]

where type is the category of the change, description is a short sentence to describe the change, and flags is an optional comma-separated list of one or more of the following (must be surrounded in square brackets):

breaking: alters type to be a breaking change

type can be

For more information, please see here.

License

Licensed under the Apache License, Version 2.0. Copyright 2021 Rasa Technologies GmbH. Copy of the license.