Coder Social home page Coder Social logo

rasahq / helm-charts Goto Github PK

View Code? Open in Web Editor NEW
32.0 5.0 28.0 531 KB

Helm charts for Rasa products

Home Page: https://rasa.com

License: Apache License 2.0

Go 49.36% Smarty 50.64%
helm kubernetes rasa rasa-bot rasa-action-server rasa-x rasa-enterprise enterprise deployment helm-chart

helm-charts's Introduction

Rasa Helm Charts

Artifact Hub

Official Helm charts for Rasa products:

Helm charts for components used by Rasa:

Prerequisites

  • Helm 3 (>= 3.5 )
  • Kubernetes 1.14+

How to use Rasa Helm repository?

You need to add this repository to your Helm repositories:

helm repo add rasa https://helm.rasa.com
helm repo update

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

Remember that your PR should include:

  1. Details about the changes introduced by a given chart version (use the artifacthub.io/changes annotation in the Chart.yaml file)
  2. Update the chart version
  3. Add additional annotations that indicate your changes (see: https://artifacthub.io/docs/topics/annotations/helm/#supported-annotations)

License

Licensed under the Apache License, Version 2.0. Copyright 2021 Rasa Technologies GmbH. LICENSE.

helm-charts's People

Contributors

camattin avatar ceefour avatar erost avatar github-actions[bot] avatar hongbo-miao avatar hotthoughts avatar indam23 avatar kaiogu avatar miraai avatar rasa-aadlv avatar rasabot avatar rgstephens avatar tczekajlo avatar virtualroot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

helm-charts's Issues

Seemingly randomly getting an error of function "lookup" not defined

I'm running into this strange error, when it actually previously worked a few days ago.

I initially got this error with helm upgrade ..., and then get it now with the normal install.

Whats confusing to me is I don't see this path in the repo?

helm install --namespace rasa-initial rasa-initial  rasa/rasa --debug            
install.go:149: [debug] Original chart version: ""
install.go:166: [debug] CHART PATH: /home/chris/.cache/helm/repository/rasa-1.17.7.tgz

Error: parse error at (rasa/charts/postgresql/charts/common/templates/_secrets.tpl:84): function "lookup" not defined
helm.go:75: [debug] parse error at (rasa/charts/postgresql/charts/common/templates/_secrets.tpl:84): function "lookup" not defined

Cannot set rasaXToken, rasaToken and JWT_SECRET from custom secret

Hi,

The helm chart doesn't seem to allow setting custom secrets for these values outside of the values file like the Rasa X Helm chart allows.

It would also help to have the naming between the different charts aligned, as it is very confusing dealing with multiple names referring to the same thing, across the charts.

Thanks,
Jonathan

404 error connecting to socket channel on K8S cluster

hello we used this HELM Chart to deploy our RASA BOT image with credentials.yaml configured for socket channel.
Of course we are able to get it all working before K8S deployment

Now we deployed the bot in K8S cluster using this helm chart and the bot is responding with "Hello from Rasa: 3.3.1" when we visit https://my-bot.domain.com.. But we are getting the below error when we are connecting to socket.io channel.

https://my-bot.domain.com./socket.io/?EIO=4&transport=polling&t=OUz5vHV 404
Error: xhr poll error
    at n.value (index.js:99:957)
    at n.<anonymous> (index.js:193:227277)
    at r.emit (index.js:84:263874)
    at n.value (index.js:193:225378)
    at index.js:193:224880

we followed the configuration here and tried below combinations and still the same above error

We didn't deploy RasaX /Enterprise HELM chart. SO its just RASA Opensource and Action server Helm Charts we deployed.

  1. set applicationSettings.credentials=false ( the idea here is to let the RASA use the credentials.yaml from our image)
  2. Then changed the rasa-values.yaml as follows...
credentials:
      # -- Enable credentials configuration for channel connectors
      enabled: true

      # -- Additional channel credentials which should be used by Rasa to connect to various
      # input channels
      ## See: https://rasa.com/docs/rasa/messaging-and-voice-channels
      additionalChannelCredentials: {}
      #rest:
      #  facebook:
      #    verify: "rasa"
      #    secret: "<SECRET>"
      #    page-access-token: "<PAGE-ACCESS-TOKEN>"
   
      socketio:
        user_message_evt: user_uttered 
        bot_message_evt: bot_uttered 
        session_persistence: true

can you help where / what we are missing

Network policy for redis points to postgres port

Hi,

The network policy for redis points to the postgres port:

{{- if and (not .Values.redis.external.enabled) (eq (include "rasa-common.redis.available" .) "true") }}
- to:
- podSelector:
matchLabels:
app.kubernetes.io/name: redis
ports:
- protocol: TCP
port: {{ template "rasa-common.psql.port" . }}
{{- else }}
- ports:
- protocol: TCP
port: {{ template "rasa-common.psql.port" . }}
{{- end }}

Can you please fix this to use the redis port value from the values file.

Rasa Chart currently requires Bitnami Charts that are no longer available

Currently the Rasa Chart uses the following dependencies

Repository Name Version
https://charts.bitnami.com/bitnami postgresql ~10.16.2
https://charts.bitnami.com/bitnami rabbitmq ~8.32.2
https://charts.bitnami.com/bitnami redis ~15.7.6

All those are no longer available, so a helm dependency update fails with unmatchable requirements.

Updating the Charts to the versions below works, but requires tweaking the postgresql configuration a bit, since the name and defaults for keys in the secrets have changed with the new bitnami charts:

postgresql:
  ...
  # used to be "postgresql-password" in older versions of the bitnami charts
  existingSecretKey: postgres-password
  auth:
    username: "postgres"
    database: "rasa"
Repository Name Version
https://charts.bitnami.com/bitnami postgresql ~12.2.1
https://charts.bitnami.com/bitnami rabbitmq ~11.10.0
https://charts.bitnami.com/bitnami redis ~17.8.0

Event broker config supports only Pika

I want the following event broker config in endpoints.yml but the helm chart doesn't allow this:

event_broker:
  type: file
  path: rasa_events.json

The template is configured to always emit the Rabbit related event broker values which will be rejected by the file broker and rasa will not start.

Can't train an inital model with files downloaded from github

Hello ,
I am trying to deploy using helm and i want an inital model to be trained. i have downloaded my bot files and placed it into a directory under "app" name with the rasa-values.yml . i saw on the documentation that we can download and train an initial model
here is my configuration

initContainers:

  • name: init
    image: "busybox"
    command: ["/bin/sh", "-c"]
    args:
    • "cd ./app && touch app.txt" #just for testing
      volumeMounts:
    • mountPath: /app
      name: models

-- Specify additional volumes to mount in the rasa-oss container

Ref: https://kubernetes.io/docs/concepts/storage/volumes/

volumes:
- name: models
emptyDir: {}

-- Specify additional volumes to mount in the rasa-oss container

volumeMounts:

  • name: models
    mountPath: /app

readOnly: true

could you help me please ? the model is not trained despite i can reach my bot and i think its the starting project of rasa that is loaded (tested with curl)

am not using rasa x yet (they said it will be remove so..)

Deployment no longer works with OpenShift

Have been testing against Openshift 4.11 and the pods won't spin up citing

create Pod test-postgresql-0 in StatefulSet test-postgresql failed error: pods "test-postgresql-0" is forbidden: unable to validate against any security context constraint: [provider "anyuid": Forbidden: not usable by user or serviceaccount, spec.containers[0].securityContext.runAsUser: Invalid value: 1001: must be in the ranges: [1001300000, 1001309999], provider "nonroot-v2": Forbidden: not usable by user or serviceaccount, provider "nonroot": Forbidden: not usable by user or serviceaccount, provider "pcap-dedicated-admins": Forbidden: not usable by user or serviceaccount, provider "hostmount-anyuid": Forbidden: not usable by user or serviceaccount, provider "machine-api-termination-handler": Forbidden: not usable by user or serviceaccount, provider "hostnetwork-v2": Forbidden: not usable by user or serviceaccount, provider "hostnetwork": Forbidden: not usable by user or serviceaccount, provider "hostaccess": Forbidden: not usable by user or serviceaccount, provider "splunkforwarder": Forbidden: not usable by user or serviceaccount, provider "node-exporter": Forbidden: not usable by user or serviceaccount, provider "privileged": Forbidden: not usable by user or serviceaccount]

I had tried a values file looking like the following

applicationSettings:
  initialModel: "https://github.com/RasaHQ/rasa-x-demo/blob/master/models/model.tar.gz?raw=true"
postgresql:
  volumePermissions:
    securityContext:
      runAsUser: "auto"
  securityContext:
    enabled: false
  shmVolume:
    chmod:
      enabled: false
nginx:
  image:
    name: nginxinc/nginx-unprivileged
    port: 8080

Deleted my namespace and re-ran the installation - but the same error persists. Looking in the stateful set, it does appear as though uid 1001 is used for the user, which is not allowed in OpenShift.

In JSON schema `fullnameOverride` is defined as type: null - means it cannot be overwritten with string

When I try to deploy the Rasa Helm chart and set the fullnameOverride in my values file, I get an error:

helm -n mynamespace install --dry-run --generate-name rasa/rasa --set fullnameOverride=test1

gives

Error: INSTALLATION FAILED: values don't meet the specifications of the schema(s) in the following chart(s):
rasa:
- fullnameOverride: Invalid type. Expected: null, given: string

It seeps Helm 3 applies the JSON Schema to validate the values.yaml, and because this attribute is marked as type: null in the values.schema.json, it does not seem to be possible to override it with a string value.

Please let me know if you have any workaround

mongo Custom Tracker store

Hello,
can i request how to configure custom Tracker store ( we use Mongo DB) in Rasa helm chart

Before HELM, we have configured our custom tracker store in endpoints.yaml as follows

tracker_store: type: myTracker.MongoTrackerStore url: mongodb+srv://mongodb-URL db: admin username: admin password: mypassword

But not sure how can we make use of our custom tracker store when we deploy using K8S

We did give a try by configuring endpoints.trackerstore in values.yaml, but as per the comment i think it needs to enable postgresql.install = true, but we want to use MongoDB.

any suggestions pls?

nil pointer evaluating interface when upper level doesn't exist in .Values

I get the following error when enabling rabbitmq without having a .Values.rabbitmq.service section in values.yaml:

Error: UPGRADE FAILED: template: rasa/templates/deployment.yaml:107:14: executing "rasa/templates/deployment.yaml" at <include "rasa.containers.env" .>: error calling include: template: rasa/templates/_containers-env.yaml:16:3: executing "rasa.containers.env" at <include "rasa-common.rabbitmq.envs" .>: error calling include: template: rasa/charts/rasa-common/templates/_rabbitmq.tpl:30:24: executing "rasa-common.rabbitmq.port" at <.Values.rabbitmq.service.port>: nil pointer evaluating interface {}.port

This is a known helm issue.

The offending lines in this case:

{{/*
Return the rabbitmq port.
*/}}
{{- define "rasa-common.rabbitmq.port" -}}
{{- coalesce .Values.rabbitmq.service.port 5672 -}}
{{- end -}}

As it is implemented now, the coalesce is all but useless. This can be worked around in the user side, if an empty .Values.rabbitmq.service is defined, but that almost defeats the purpose of a coalesce/default.

On the side of the Chart, the following line would fix the problem:

{{- default 5672 ((.Values.rabbitmq).service).port -}}

Duckling container won't start (Helm Chart v4.5.6)

Context:

Openshift v4.9
Rasa-x Helm Chart v4.5.6
Duckling Image: rasa/duckling:0.2.0.2

Due security constraints of OpenShift is the global securityContext set to false

The duckling container throws the following error in the log:

duckling-example-exe: log: createDirectory: permission denied (Permission denied)

This has probably something to do with the context of openshift. With Rasa-x Helm Chart v4.5.4 (and Duckling image "0.1.6.3") we didn't had this issue.

Duckling endpoint not passed to pod when external is True and an external URL is provided

{{- if or .Values.duckling.install (and .Values.duckling.external.enabled (not .Values.duckling.external.url)) -}}

This results in the following:
if false or (true and (not true)) resulting in false. We need this to be true when external = true and external url = true.

{{- if or .Values.duckling.install (and .Values.duckling.external.enabled .Values.duckling.external.url) -}} would be better.

This means the duckling endpoint is not provided to the pod here:

{{- if eq (include "rasa.endpoints.duckling" .) "true" }}
{{ include "rasa.duckling.envs" . }}
{{- end }}

Revisit structure of deployment docs

We need to revisit how we recommend deploying Rasa Open Source, Rasa X, and Rasa Action Server in the docs.

New production recommendation: deploy with new Rasa Open Source helm chart and forward events to Rasa X (using helm chart that is coming soon)

Open questions

  • When do we nudge people to set up Rasa X?
  • How do we structure the documentation with the separate deployments?
  • What do we do with local mode?

@tmbo and I discussed removing the Rasa X installation from here, making the helm charts the default deployment method for the production use case. However, it's not clear where we nudge people to set up Rasa X.

For Rasa X / Enterprise, we also discussed structuring the documentation on deployment similar to gitlab with the two installation methods we'll have there:

  • helm charts
  • single line install

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.