Skip to content

Rasa Enterprise Helm chart for deploying on Kubernetes (K8s) and OpenShift.

License

Notifications You must be signed in to change notification settings

Atadzhan/rasa-x-helm

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

  • Kubernetes 1.12+
  • Helm 2.11+ or 3
  • Persistent Volume provisioner support in the underlying infrastructure

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 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:

  • Redis - the chart for Redis is updated to version 15.

    • Credentials parameter are reorganized under the auth parameter.
    • The cluster.enabled parameter is deprecated in favor of architecture parameter that accepts two values: standalone and replication.
    • securityContext.* is deprecated in favor of XXX.podSecurityContext and XXX.containerSecurityContext (XXX can be replaces with master or replica).
    • redis.redisPort is deprecated in favor of master.service.port and replica.service.port.

    A full list of changes between 10.5.14 and 15.7.4 versions for the Bitnami Redis chart can be found in the changelog.

  • RabbitMQ - the chart for RabbitMQ is updated to version 8.

    • securityContext.* is deprecated in favor of podSecurityContext and containerSecurityContext.
    • Authentication parameters were reorganized under the auth.* parameter:
      • rabbitmq.username, rabbitmq.password, and rabbitmq.erlangCookie are now auth.username, auth.password, and auth.erlangCookie respectively.

    A full list of changes between 6.19.2 and 8.26.0 versions for the Bitnami RabbitMQ chart can be found in the changelog.

  • PostgreSQL - the chart for PostgreSQL is updated to version 10.

    • Default PostgresSQL version is updated from 12.8.0 to 12.9.0 (a dump/restore is not required for those running 12.X)
    • The term master has been replaced with primary and slave with readReplicas throughout the chart. Role names have changed from master and slave to primary and read.

    A full list of changes between 6.19.2 and 8.26.0 versions for the Bitnami RabbitMQ chart can be found in the changelog.

To 3.0.0

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

  • Default version for PostgreSQL is 12.8.0.

    PostgreSQL deployment for < 3.0.0 version of chart used PostgreSQL 11. In this document you can find guide on how to migrate from PostgreSQL 11 to 12.

  • Ingress is disabled by default.

    ingress:
      enabled: false
  • Default username for Rasa Enterprise is admin.

  • The Rasa production deployment is disabled by default and will be removed in the future.

    rasa:
      versions:
        rasaProduction:
          # the rasa production deployment is disabled by default.
          enabled: false

    It's recommended to use tha rasa helm chart to deploy Rasa OSS. Visit the rasa chart docs to learn more.

    Before you upgrade the helm chart check the migration guide.

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.0.1
rasa.version Version of Rasa Open Source which you want to use. 2.8.1
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

  • If you encounter bugs or have suggestions for this Helm chart, please create an issue in this repository.
  • If you have general questions about usage, please create a thread in the Rasa Forum.

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

  • feature
  • fix
  • build
  • other
  • perf
  • refactor
  • style
  • test
  • doc

For more information, please see here.

License

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

About

Rasa Enterprise Helm chart for deploying on Kubernetes (K8s) and OpenShift.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 43.8%
  • Mustache 29.8%
  • Smarty 26.4%