# Rasa & Dashbot & Kubernetes

**URL:** <https://forum.rasa.com/t/rasa-dashbot-kubernetes/49049>\
**Category:** \[Deprecated\] Rasa X Community Edition\
**Created:** [November 7, 2021, 12:16pm UTC](https://forum.rasa.com/t/rasa-dashbot-kubernetes/49049 "2021-11-07T12:16:45Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![stephens](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/stephens/32/1632_2.png) [@stephens](https://forum.rasa.com/u/stephens)\
**Post date:** [November 9, 2021, 3:22pm UTC](https://forum.rasa.com/t/rasa-dashbot-kubernetes/49049/21 "2021-11-09T15:22:25Z")

</div>

You’re `values.yml` example is close but isn’t formatted correctly:

```auto
  additionalEndpoints:
    event_broker:
      type: dashbot.rasa.rasa
      apiKey: "PLACEHOLDER"

```

I’m not familiar with the dashbot type event broker. If that is a python module that needs to be mounted into the pod, you’ll need to also do that.

---

<div class="post-metadata">

**Author:** ![aymane258](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/aymane258/32/17249_2.png) [@aymane258](https://forum.rasa.com/u/aymane258)\
**Post date:** [November 9, 2021, 4:07pm UTC](https://forum.rasa.com/t/rasa-dashbot-kubernetes/49049/22 "2021-11-09T16:07:08Z")

</div>

How do u mount the python module in the pod?

---

<div class="post-metadata">

**Author:** ![stephens](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/stephens/32/1632_2.png) [@stephens](https://forum.rasa.com/u/stephens)\
**Post date:** [November 9, 2021, 4:39pm UTC](https://forum.rasa.com/t/rasa-dashbot-kubernetes/49049/23 "2021-11-09T16:39:47Z")

</div>

Here’s the values.yml [setting](https://github.com/RasaHQ/rasa-x-helm/blob/1738033ca596cb09c5034559bdec727ec34796a3/charts/rasa-x/values.yaml#L76). You’ll want to read more about how this works in the Kubernetes docs.

---

<div class="post-metadata">

**Author:** ![aymane258](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/aymane258/32/17249_2.png) [@aymane258](https://forum.rasa.com/u/aymane258)\
**Post date:** [November 10, 2021, 2:24pm UTC](https://forum.rasa.com/t/rasa-dashbot-kubernetes/49049/25 "2021-11-10T14:24:10Z")

</div>

Do i install the module in the worker pod?

---

<div class="post-metadata">

**Author:** ![aymane258](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/aymane258/32/17249_2.png) [@aymane258](https://forum.rasa.com/u/aymane258)\
**Post date:** [November 10, 2021, 2:26pm UTC](https://forum.rasa.com/t/rasa-dashbot-kubernetes/49049/26 "2021-11-10T14:26:48Z")

</div>

Or inside Rabbit pod

 ![image](https://europe1.discourse-cdn.com/flex013/uploads/rasa/original/3X/5/3/531f852acee525d5bd186c7e16a53d9afc24b235.jpeg)

I probably have to configure the docker image correct?

---

<div class="post-metadata">

**Author:** ![stephens](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/stephens/32/1632_2.png) [@stephens](https://forum.rasa.com/u/stephens)\
**Post date:** [November 10, 2021, 3:23pm UTC](https://forum.rasa.com/t/rasa-dashbot-kubernetes/49049/27 "2021-11-10T15:23:42Z")

</div>

`rasa-production` needs to have it mounted. You can do the mount with `values.yml` as I indicated above. You could also create your own docker image that includes the dashbot code but you’d be better off mounting it at runtime.

---

<div class="post-metadata">

**Author:** ![aymane258](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/aymane258/32/17249_2.png) [@aymane258](https://forum.rasa.com/u/aymane258)\
**Post date:** [November 14, 2021, 11:17pm UTC](https://forum.rasa.com/t/rasa-dashbot-kubernetes/49049/28 "2021-11-14T23:17:30Z")

</div>

![image](https://europe1.discourse-cdn.com/flex013/uploads/rasa/original/3X/f/1/f1d44f2a5a1adfda11a8a44f7ca9b05856ede693.png)

---

<div class="post-metadata">

**Author:** ![aymane258](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/aymane258/32/17249_2.png) [@aymane258](https://forum.rasa.com/u/aymane258)\
**Post date:** [November 15, 2021, 1:57pm UTC](https://forum.rasa.com/t/rasa-dashbot-kubernetes/49049/29 "2021-11-15T13:57:18Z")

</div>

Seems like the implementation on the values file is wrong?

---

<div class="post-metadata">

**Author:** ![stephens](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/stephens/32/1632_2.png) [@stephens](https://forum.rasa.com/u/stephens)\
**Post date:** [November 15, 2021, 4:50pm UTC](https://forum.rasa.com/t/rasa-dashbot-kubernetes/49049/30 "2021-11-15T16:50:22Z")

</div>

It’s probably the indentation in your yml file. These settings have been working in the `values.yml` for over a year. Paste your full `values.yml`.

---

<div class="post-metadata">

**Author:** ![aymane258](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/aymane258/32/17249_2.png) [@aymane258](https://forum.rasa.com/u/aymane258)\
**Post date:** [November 15, 2021, 4:54pm UTC](https://forum.rasa.com/t/rasa-dashbot-kubernetes/49049/32 "2021-11-15T16:54:50Z")

</div>

```auto
# Default values for rasa-x.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

# rasax specific settings
rasax:
  # override the default command to run in the container
  command: []
  # override the default arguments to run in the container
  args: []
  # name of the Rasa X image to use
  name: "rasa/rasa-x" # gcr.io/rasa-platform/rasa-x-ee
  # tag refers to the Rasa X image tag (uses `appVersion` by default)
  tag: ""
  # port on which Rasa X runs
  port: 5002
  # scheme by which Rasa X is accessible
  scheme: http
  # passwordSalt Rasa X uses to salt the user passwords
  passwordSalt: "passwordSalt"
  # token Rasa X accepts as authentication token from other Rasa services
  token: "rasaXToken"
  # jwtSecret which is used to sign the jwtTokens of the users
  jwtSecret: "jwtSecret"
  # databaseName Rasa X uses to store data
  # (uses the value of global.postgresql.postgresqlDatabase by default)
  databaseName: ""
  # disableTelemetry permanently disables telemetry
  disableTelemetry: false
  # Jaeger Sidecar
  jaegerSidecar: "false"
  # initialUser is the user which is created upon the initial start of Rasa X
  initialUser:
    # username specifies a name of this user
    username: "me"
    # password for this user (leave it empty to skip the user creation)
    password: "$CrvMe3i&ye3FdfvJR$t4KJ2"
  ## Enable persistence using Persistent Volume Claims
  ## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
  ##
  persistence:
    # access Modes of the pvc
    accessModes:
    - ReadWriteOnce
    # size of the Rasa X volume claim
    size: 10Gi
    # annotations for the Rasa X pvc
    annotations: {}
    # finalizers for the pvc
    finalizers:
    - kubernetes.io/pvc-protection
    # existingClaim which should be used instead of a new one
    existingClaim: ""
  # livenessProbe checks whether rasa x needs to be restarted
  livenessProbe:
    enabled: true
    # initialProbeDelay for the `livenessProbe`
    initialProbeDelay: 10
    # scheme to be used by the `livenessProbe`
    scheme: "HTTP"
  # readinessProbe checks whether rasa x can receive traffic
  readinessProbe:
    enabled: true
    # initialProbeDelay for the `readinessProbe`
    initialProbeDelay: 10
    # scheme to be used by the `readinessProbe`
    scheme: "HTTP"
  # resources which Rasa X is required / allowed to use
  resources: {}
  # extraEnvs are environment variables which can be added to the Rasa X deployment
  extraEnvs: []
  # - name: SOME_CUSTOM_ENV_VAR
  # value: "custom value"

  # additional volumeMounts to the main container
  extraVolumeMounts: []
  # - name: tmpdir
  # mountPath: /var/lib/mypath

  # additional volumes to the pod
  extraVolumes: []
  # - name: tmpdir
  # emptyDir: {}

  # tolerations can be used to control the pod to node assignment
  # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  tolerations: []
    # - key: "nvidia.com/gpu"
    # operator: "Exists"

  # nodeSelector to specify which node the pods should run on
  # https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
  nodeSelector: {}
    # "beta.kubernetes.io/instance-type": "g3.8xlarge"

  # automountServiceAccountToken specifies whether the Kubernetes service account
  # credentials should be automatically mounted into the pods. See more about it in
  # https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
  automountServiceAccountToken: false

  # service specifies settings for exposing rasa x to other services
  service:
    # annotations for the service
    annotations: {}

  # podLabels adds additional pod labels
  # https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  podLabels: {}

  # hostNetwork controls whether the pod may use the node network namespace
  hostNetwork: false

  # dnsPolicy specifies Pod's DNS policy
  # ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy
  dnsPolicy: ""

# rasa: Settings common for all Rasa containers
rasa:
  # version is the Rasa Open Source version which should be used.
  # Used to ensure backward compatibility with older Rasa Open Source versions.
  version: "2.8.12" # Please update the default value in the Readme when updating this
  # disableTelemetry permanently disables telemetry
  disableTelemetry: false
  # override the default command to run in the container
  command: []
  # override the default arguments to run in the container
  args: []
  # add extra arguments to the command in the container
  extraArgs: []
  # name of the Rasa image to use
  name: "rasa/rasa"
  # tag refers to the Rasa image tag. If empty `.Values.rasa.version-full` is used.
  tag: ""
  # port on which Rasa runs
  port: 5005
  # scheme by which Rasa services are accessible
  scheme: http
  # token Rasa accepts as authentication token from other Rasa services
  token: "rasaToken"
  # rabbitQueue it should use to dispatch events to Rasa X
  rabbitQueue: "rasa_production_events"
  # Optional additional rabbit queues for e.g. connecting to an analytics stack
  additionalRabbitQueues: [
  ]
  # additionalChannelCredentials which should be used by Rasa to connect to various

  # input channels
  additionalChannelCredentials: {}
    # rest:
    # facebook:
    # verify: "rasa-bot"
    # secret: "3e34709d01ea89032asdebfe5a74518"
    # page-access-token: "EAAbHPa7H9rEBAAuFk4Q3gPKbDedQnx4djJJ1JmQ7CAqO4iJKrQcNT0wtD"
  # input channels
  additionalEndpoints:
    event_broker:
      type: dashbot.rasa.rasa
      apiKey: HL8BaPzYNMW2A9bkcXl64bxKmAbwwbyinLK2Joos
  # Jaeger Sidecar
  jaegerSidecar: "false"
  livenessProbe:
    enabled: true
    # initialProbeDelay for the `livenessProbe`
    initialProbeDelay: 10
    # scheme to be used by the `livenessProbe`
    scheme: "HTTP"
  # useLoginDatabase will use the Rasa X database to log in and create the database
  # for the tracker store. If `false` the tracker store database must have been created
  # previously.
  useLoginDatabase: true
  # lockStoreDatabase is the database in redis which Rasa uses to store the conversation locks
  lockStoreDatabase: "1"
  # cacheDatabase is the database in redis which Rasa X uses to store cached values
  cacheDatabase: "2"
  # extraEnvs are environment variables which can be added to the Rasa deployment
  extraEnvs: []
    # example which sets env variables in each Rasa Open Source service from a separate k8s secret
    # - name: "TWILIO_ACCOUNT_SID"
    # valueFrom:
    # secretKeyRef:
    # name: twilio-auth
    # key: twilio_account_sid
    # - name: TWILIO_AUTH_TOKEN
    # valueFrom:
    # secretKeyRef:
    # name: twilio-auth
    # key: twilio_auth_token

  # tolerations can be used to control the pod to node assignment
  # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  tolerations: []
    # - key: "nvidia.com/gpu"
    # operator: "Exists"

  # automountServiceAccountToken specifies whether the Kubernetes service account
  # credentials should be automatically mounted into the pods. See more about it in
  # https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
  automountServiceAccountToken: false

  # podLabels adds additional pod labels
  # https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  podLabels: {}

  # 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 in order to use external Rasa OSS deployment instead.
      enabled: true

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

        # host of external Rasa OSS deployment
        host: "http://rasa-bot"

      # nodeSelector to specify which node the pods should run on
      # https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
      nodeSelector: {}
        # "beta.kubernetes.io/instance-type": "g3.8xlarge"
      # replicaCount of the Rasa Production container
      replicaCount: 1 
      # serviceName with which the Rasa production deployment is exposed to other containers
      serviceName: "rasa-production"
      # service specifies settings for exposing rasa production to other services
      service:
        # annotations for the service
        annotations: {}
      # modelTag of the model Rasa should pull from the the model server
      modelTag: "production"
      # trackerDatabase it should use to to store conversation trackers
      trackerDatabase: "tracker"
      # rasaEnvironment it used to indicate the origin of events published to RabbitMQ (App ID message property)
      rasaEnvironment: "production"
      # resources which rasaProduction is required / allowed to use
      resources: {}
      # additional volumeMounts to the main container
      extraVolumeMounts: []
      # - name: tmpdir
      # mountPath: /var/lib/mypath

      # additional volumes to the pod
      extraVolumes: []
      # - name: tmpdir
      # emptyDir: {}
    # rasaWorker is the container which does computational heavy tasks such as training
    rasaWorker:
      # enable the rasa-worker deployment
      # You can disable the rasa-worker deployment in order to use external Rasa OSS deployment instead.
      enabled: true

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

        # host of external Rasa OSS deployment
        host: "http://rasa-worker"

      # nodeSelector to specify which node the pods should run on
      # https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
      nodeSelector: {}
        # "beta.kubernetes.io/instance-type": "g3.8xlarge"
      # replicaCount of the Rasa worker container
      replicaCount: 1
      # serviceName with which the Rasa worker deployment is exposed to other containers
      serviceName: "rasa-worker"
      # service specifies settings for exposing rasa worker to other services
      service:
        # annotations for the service
        annotations: {}
      # modelTag of the model Rasa should pull from the the model server
      modelTag: "production"
      # trackerDatabase it should use to to store conversation trackers
      trackerDatabase: "worker_tracker"
      # rasaEnvironment it used to indicate the origin of events published to RabbitMQ (App ID message property)
      rasaEnvironment: "worker"
      # resources which rasaWorker is required / allowed to use
      resources: {}
      # additional volumeMounts to the main container
      extraVolumeMounts: []
      # - name: tmpdir
      # mountPath: /var/lib/mypath

      # additional volumes to the pod
      extraVolumes: []
      # - name: tmpdir
      # emptyDir: {}

# dbMigrationService specifies settings for the database migration service
# The database migration service requires Rasa X >= 0.33.0
dbMigrationService:
  # initContainer describes settings related to the init-db container used as a init container for deployments
  initContainer:
    # image is the Docker image which is used by the init container
    image: alpine:3.12.3
    # command overrides the default command to run in the init container
    command: []
  # command overrides the default command to run in the container
  command: []
  # args overrides the default arguments to run in the container
  args: []
  # name is the Docker image name which is used by the migration service (uses `rasax.name` by default)
  name: "" # gcr.io/rasa-platform/rasa-x-ee
  # tag refers to the Rasa X image tag (uses `appVersion` by default)
  tag: ""
  # ignoreVersionCheck defines if check required minimum Rasa X version that is required to run the service
  ignoreVersionCheck: false
  # port on which which to run the readiness endpoint
  port: 8000

  # tolerations can be used to control the pod to node assignment
  # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  tolerations: []
    # - key: "nvidia.com/gpu"
    # operator: "Exists"

  # nodeSelector to specify which node the pods should run on
  # https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
  nodeSelector: {}
    # "beta.kubernetes.io/instance-type": "g3.8xlarge"

  # resources which the event service is required / allowed to use
  resources: {}
  # extraEnvs are environment variables which can be added to the dbMigrationService deployment
  extraEnvs: []
  # - name: SOME_CUSTOM_ENV_VAR
  # value: "custom value"

  # extraVolumeMounts defines additional volumeMounts to the main container
  extraVolumeMounts: []
  # - name: tmpdir
  # mountPath: /var/lib/mypath

  # extraVolumes defines additional volumes to the pod
  extraVolumes: []
  # - name: tmpdir
  # emptyDir: {}

  # automountServiceAccountToken specifies whether the Kubernetes service account
  # credentials should be automatically mounted into the pods. See more about it in
  # https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
  automountServiceAccountToken: false

  # service specifies settings for exposing the db migration service to other services
  service:
    # annotations for the service
    annotations: {}

  livenessProbe:
    enabled: true
    # initialProbeDelay for the `livenessProbe`
    initialProbeDelay: 10
    # scheme to be used by the `livenessProbe`
    scheme: "HTTP"
  # readinessProbe checks whether rasa x can receive traffic
  readinessProbe:
    enabled: true
    # initialProbeDelay for the `readinessProbe`
    initialProbeDelay: 10
    # scheme to be used by the `readinessProbe`
    scheme: "HTTP"

  # podLabels adds additional pod labels
  # https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  podLabels: {}

# event-service specific settings
eventService:
  # override the default command to run in the container
  command: []
  # override the default arguments to run in the container
  args: []
  # event service just uses the Rasa X image
  name: "rasa/rasa-x" # gcr.io/rasa-platform/rasa-x-ee
  # tag refers to the Rasa X image tag (uses `appVersion` by default)
  tag: ""
  # port on which which to run the readiness endpoint
  port: 5673
  # replicaCount of the event-service container
  replicaCount: 1
  # databaseName the event service uses to store data
  databaseName: "rasa"

  # tolerations can be used to control the pod to node assignment
  # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  tolerations: []
    # - key: "nvidia.com/gpu"
    # operator: "Exists"

  # nodeSelector to specify which node the pods should run on
  # https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
  nodeSelector: {}
    # "beta.kubernetes.io/instance-type": "g3.8xlarge"

  # resources which the event service is required / allowed to use
  resources: {}
  # extraEnvs are environment variables which can be added to the eventService deployment
  extraEnvs: []
  # - name: SOME_CUSTOM_ENV_VAR
  # value: "custom value"

  # additional volumeMounts to the main container
  extraVolumeMounts: []
  # - name: tmpdir
  # mountPath: /var/lib/mypath

  # additional volumes to the pod
  extraVolumes: []
  # - name: tmpdir
  # emptyDir: {}

  # livenessProbe checks whether the event service needs to be restarted
  livenessProbe:
    enabled: true
    # initialProbeDelay for the `livenessProbe`
    initialProbeDelay: 10
    scheme: "HTTP"
  # readinessProbe checks whether the event service can receive traffic
  readinessProbe:
    enabled: true
    # initialProbeDelay for the `readinessProbe`
    initialProbeDelay: 10
    scheme: "HTTP"
  # automountServiceAccountToken specifies whether the Kubernetes service account
  # credentials should be automatically mounted into the pods. See more about it in
  # https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
  automountServiceAccountToken: false

  # podLabels adds additional pod labels
  # https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  podLabels: {}

# app (custom action server) specific settings
app:
  # default is to install action server from image.
  install: true
  # if install is set to false, the url to the existing action server can be configured by setting existingUrl.
  # #existingUrl: http://myactionserver:5055/webhook
  #
  # override the default command to run in the container
  command: []
  # override the default arguments to run in the container
  args: []
  # name of the custom action server image to use
  name: "aymane258/customactionserver"
  # tag refers to the custom action server image tag
  tag: "1"
  # replicaCount of the custom action server container
  replicaCount: 1
  # port on which the custom action server runs
  port: 5055
  # scheme by which custom action server is accessible
  scheme: http
  # resources which app is required / allowed to use
  resources: {}
  # Jaeger Sidecar
  jaegerSidecar: "false"
  # extraEnvs are environment variables which can be added to the app deployment
  extraEnvs: []
  # - name: DATABASE_URL
  # valueFrom:
  # secretKeyRef:
  # name: app-secret
  # key: database_url

  # tolerations can be used to control the pod to node assignment
  # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  tolerations: []
    # - key: "nvidia.com/gpu"
    # operator: "Exists"

  # nodeSelector to specify which node the pods should run on
  # https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
  nodeSelector: {}
    # "beta.kubernetes.io/instance-type": "g3.8xlarge"

  # endpoints specifies the webhook and health check url paths of the action server app
  endpoints:
    # actionEndpointUrl is the URL which Rasa Open Source calls to execute custom actions
    actionEndpointUrl: /webhook
    # healthCheckURL is the URL which is used to check the pod health status
    healthCheckUrl: /health

  # additional volumeMounts to the main container
  extraVolumeMounts: []
  # - name: tmpdir
  # mountPath: /var/lib/mypath

  # additional volumes to the pod
  extraVolumes: []
  # - name: tmpdir
  # emptyDir: {}

  # automountServiceAccountToken specifies whether the Kubernetes service account
  # credentials should be automatically mounted into the pods. See more about it in
  # https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
  automountServiceAccountToken: true

  # service specifies settings for exposing app to other services
  service:
    # annotations for the service
    annotations: {}

  # livenessProbe checks whether app needs to be restarted
  livenessProbe:
    enabled: true
    # initialProbeDelay for the `livenessProbe`
    initialProbeDelay: 10
    # scheme to be used by the `livenessProbe`
    scheme: "HTTP"
  # readinessProbe checks whether app can receive traffic
  readinessProbe:
    enabled: true
    # initialProbeDelay for the `readinessProbe`
    initialProbeDelay: 10
    # scheme to be used by the `readinessProbe`
    scheme: "HTTP"

  # podLabels adds additional pod labels
  # https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  podLabels: {}

# nginx specific settings
nginx:
  # enabled should be `true` if you want to use nginx
  # if you set false, you will need to set up some other method of routing (VirtualService/Ingress controller)
  enabled: true
  # subPath defines the subpath used by Rasa X (ROOT_URL), e.g /rasa-x
  subPath: ""
  # override the default command to run in the container
  command: []
  # override the default arguments to run in the container
  args: []
  # name of the nginx image to use
  name: "nginx"
  # tag refers to the nginx image tag (uses `appVersion` by default)
  tag: "1.19"
  # custom config map containing nginx.conf, ssl.conf.template, rasax.nginx.template
  customConfConfigMap: ""
  # replicaCount of nginx containers to run
  replicaCount: 1
  # certificateSecret which nginx uses to mount the certificate files
  certificateSecret: ""
  # service which is to expose nginx
  service:
    # annotations for the service
    annotations: {}
    # type of the service (https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)
    type: LoadBalancer
    # loadBalancerSourceRange for AWS deployments (https://kubernetes.io/docs/concepts/services-networking/service/#aws-nlb-support)
    loadBalancerSourceRanges: []
    # port is the port which the nginx service exposes for HTTP connections
    port: 8000
    # nodePort can be used with a service of type `NodePort` to expose the service on a certain port of the node (https://kubernetes.io/docs/concepts/services-networking/service/#nodeport)
    nodePort: ""
    # externalIPs can be used to expose the service to certain IPs (https://kubernetes.io/docs/concepts/services-networking/service/#external-ips)
    externalIPs: []
  livenessProbe:
    enabled: true
    # command for the `livenessProbe`
    command: []
    # initialProbeDelay for the `livenessProbe`
    initialProbeDelay: 10
  # readinessProbe checks whether rasa x can receive traffic
  readinessProbe:
    enabled: true
    # command for the `readinessProbe`
    command: []
    # initialProbeDelay for the `readinessProbe`
    initialProbeDelay: 10

  # tolerations can be used to control the pod to node assignment
  # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  tolerations: []
    # - key: "nvidia.com/gpu"
    # operator: "Exists"

  # nodeSelector to specify which node the pods should run on
  # https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
  nodeSelector: {}
    # "beta.kubernetes.io/instance-type": "g3.8xlarge"

  # resources which nginx is required / allowed to use
  resources: {}

  # additional volumeMounts to the main container
  extraVolumeMounts: []
  # - name: tmpdir
  # mountPath: /var/lib/mypath

  # additional volumes to the pod
  extraVolumes: []
  # - name: tmpdir
  # emptyDir: {}

  # automountServiceAccountToken specifies whether the Kubernetes service account
  # credentials should be automatically mounted into the pods. See more about it in
  # https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
  automountServiceAccountToken: false

  # podLabels adds additional pod labels
  # https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  podLabels: {}

# Duckling specific settings
duckling:
  # override the default command to run in the container
  command: []
  # override the default arguments to run in the container
  args: []
  # Enable or disable duckling
  enabled: true
  # name of the Duckling image to use
  name: "rasa/duckling"
  # tag refers to the duckling image tag
  tag: "0.1.6.3"
  # replicaCount of duckling containers to run
  replicaCount: 1
  # port on which duckling should run
  port: 8000
  # scheme by which duckling is accessible
  scheme: http
  extraEnvs: []
  # tolerations can be used to control the pod to node assignment
  # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  tolerations: []
    # - key: "nvidia.com/gpu"
    # operator: "Exists"

  # nodeSelector to specify which node the pods should run on
  # https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
  nodeSelector: {}
    # "beta.kubernetes.io/instance-type": "g3.8xlarge"

  # resources which duckling is required / allowed to use
  resources: {}

  readinessProbe:
    enabled: true
    # initialProbeDelay for the `readinessProbe`
    initialProbeDelay: 10
    # scheme to be used by the `readinessProbe`
    scheme: "HTTP"
  livenessProbe:
    enabled: true
    # initialProbeDelay for the `livenessProbe`
    initialProbeDelay: 10
    # scheme to be used by the `livenessProbe`
    scheme: "HTTP"
  # additional volumeMounts to the main container
  extraVolumeMounts: []
  # - name: tmpdir
  # mountPath: /var/lib/mypath

  # additional volumes to the pod
  extraVolumes: []
  # - name: tmpdir
  # emptyDir: {}

  # automountServiceAccountToken specifies whether the Kubernetes service account
  # credentials should be automatically mounted into the pods. See more about it in
  # https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
  automountServiceAccountToken: false

  # service specifies settings for exposing duckling to other services
  service:
    # annotations for the service
    annotations: {}

  # podLabels adds additional pod labels
  # https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  podLabels: {}

# rasaSecret object which supplies passwords, tokens, etc. See
# https://rasa.com/docs/rasa-x/openshift-kubernetes/#providing-access-credentials-using-an-external-secret
# to see which values are required in the secret in case you want to provide your own.
# If no secret is provided, a secret will be generated.
rasaSecret: ""

# debugMode enables / disables the debug mode for Rasa and Rasa X
debugMode: false

# separateEventService value determines whether the eventService will be run as a separate service.
# If set to 'false', Rasa X will run an event service as a subprocess (not recommended
# high-load setups).
separateEventService: "true"

# separateDBMigrationService value determines whether the dbMigrationService will be run as a separate service.
# If set to 'false', Rasa X will run a database migration service as a subprocess.
separateDBMigrationService: true

# postgresql specific settings (https://hub.helm.sh/charts/bitnami/postgresql/8.6.13)
postgresql:
  # Install should be `true` if the postgres subchart should be used
  install: true
  # postgresqlPostgresPassword is the password when .Values.global.postgresql.postgresqlUsername	does not equal "postgres"
  postgresqlPostgresPassword: ""
  # existingHost is the host which is used when an external postgresql instance is provided (`install: false`)
  existingHost: ""
  # existingSecretKey is the key to get the password when an external postgresql instance is provided (`install: false`)
  existingSecretKey: ""

  # Configure security context for the postgresql init container
  # volumePermissions:
      ## Init container Security Context
  # securityContext:
  # runAsUser: 0

  ## Configure security context for the rabbitmq container
  # securityContext:
  # enabled: true
  # fsGroup: 1001
  # runAsUser: 1001

# RabbitMQ specific settings (https://hub.helm.sh/charts/bitnami/rabbitmq/6.19.2)
rabbitmq:
  # Install should be `true` if the rabbitmq subchart should be used
  install: true
  # Enabled should be `true` if any version of rabbit is used
  enabled: true
  # rabbitmq settings of the subchart
  rabbitmq:
    # username which is used for the authentication
    username: "user"
    # password which is used for the authentication
    password: "password"
    # existingPasswordSecret which should be used for the password instead of putting it in the values file
    existingPasswordSecret: ""
  # service specifies settings for exposing rabbit to other services
  service:
    # port on which rabbitmq is exposed to Rasa
    port: 5672
   # existingHost is the host which is used when an external rabbitmq instance is provided (`install: false`)
  existingHost: ""
  # existingPasswordSecretKey is the key to get the password when an external rabbitmq instance is provided (`install: false`)
  existingPasswordSecretKey: ""
  # # security context for the rabbitmq container (please see the documentation of the subchart)
  # securityContext:
  # enabled: true
  # fsGroup: 1001
  # runAsUser: 1001

# redis specific settings (https://hub.helm.sh/charts/bitnami/redis/10.5.14)
redis:
  # Install should be `true` if the redis subchart should be used
  install: true
  # cluster settings for redis (Rasa does currently not support redis sentinels)
  cluster:
    # set up a single Redis instance, as `redis-py` does not support clusters (https://github.com/andymccurdy/redis-py#cluster-mode)
    enabled: false
  # redisPort: port which should be used to expose redis to the other components
  redisPort: 6379
  # existingSecret which should be used for the password instead of putting it in the values file
  existingSecret: ""
  # existingSecretPasswordKey is the key to get the password when an external redis instance is provided
  existingSecretPasswordKey: ""
  # existingHost is the host which is used when an external redis instance is provided (`install: false`)
  existingHost: ""
  # # security context for the redis container (please see the documentation of the subchart)
  # securityContext:
  # enabled: true
  # fsGroup: 1001
  # runAsUser: 1001

# ingress settings
ingress:
  # enabled should be `true` if you want to use this ingress.
  # Note that if `nginx.enabled` is `true` the `nginx` image is used as reverse proxy.
  # In order to use nginx ingress you have to set `nginx.enabled=false`.
  enabled: true
  # annotations for the ingress - annotations are applied for the rasa and rasax ingresses
  annotations: {}
    # kubernetes.io/ingress.class: nginx
    # kubernetes.io/tls-acme: "true"
  # annotationsRasa is extra annotations for the rasa nginx ingress
  annotationsRasa: {}
  # annotationsRasaX is extra annotations for the rasa x nginx ingress
  annotationsRasaX:
    nginx.ingress.kubernetes.io/proxy-body-size: "0"
    nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
  # hosts for this ingress
  hosts:
    - host: rasa-x.example.com
      paths:
      - /
  # tls: Secrets for the certificates
  tls: []
  # - secretName: rasa-x-tls
  # hosts:
  # - rasa-x.example.com

networkPolicy:
  # Enable creation of NetworkPolicy resources. When set to true, explicit ingress & egress
  # network policies will be generated for the required inter-pod connections
  enabled: false

  # Allow for traffic from a given CIDR - it's required in order to make kubelet able to run live and readiness probes
  nodeCIDR: {}
  # - ipBlock:
  # cidr: 0.0.0.0/0

# images: Settings for the images
images:
  # pullPolicy to use when deploying images
  pullPolicy: "Always"
  # imagePullSecrets which are required to pull images for private registries
  imagePullSecrets: []

# securityContext to use
securityContext:
  # runAsUser: 1000
  fsGroup: 1000

# nameOverride replaces the Chart's name
nameOverride: ""

# fullNameOverride replace the Chart's fullname
fullnameOverride: ""

# global settings of the used subcharts
global:
  # 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 - surfaced as a condition
  # with Type=Progressing, Status=False. and Reason=ProgressDeadlineExceeded in the status of the resource
  # source: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#progress-deadline-seconds
  progressDeadlineSeconds: 600
  # storageClass the volume claims should use
  storageClass: ""
  # postgresql: global settings of the postgresql subchart
  postgresql:
    # postgresqlUsername which should be used by Rasa to connect to Postgres
    postgresqlUsername: "postgres"
    # postgresqlPassword is the password which is used when the postgresqlUsername equals "postgres"
    postgresqlPassword: "password"
    # existingSecret which should be used for the password instead of putting it in the values file
    existingSecret: ""
    # postgresDatabase which should be used by Rasa X
    postgresqlDatabase: "rasa"
    # servicePort which is used to expose postgres to the other components
    servicePort: 5432
    # host: postgresql.hostedsomewhere.else
  # redis: global settings of the postgresql subchart
  redis:
    # password to use in case there no external secret was provided
    password: "redis-password"

  # additionalDeploymentLabels can be used to map organizational structures onto system objects
  # https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  additionalDeploymentLabels: {}

```

---

<div class="post-metadata">

**Author:** ![aymane258](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/aymane258/32/17249_2.png) [@aymane258](https://forum.rasa.com/u/aymane258)\
**Post date:** [November 16, 2021, 12:42pm UTC](https://forum.rasa.com/t/rasa-dashbot-kubernetes/49049/33 "2021-11-16T12:42:41Z")

</div>

@stephens

---

<div class="post-metadata">

**Author:** ![stephens](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/stephens/32/1632_2.png) [@stephens](https://forum.rasa.com/u/stephens)\
**Post date:** [November 16, 2021, 7:30pm UTC](https://forum.rasa.com/t/rasa-dashbot-kubernetes/49049/34 "2021-11-16T19:30:03Z")

</div>

Thanks for the values.yml file. It looks like there’s an open issue [here](https://github.com/RasaHQ/rasa-x-helm/issues/207) and workaround [here](https://github.com/RasaHQ/rasa-x-helm/issues/207#issuecomment-934400749)

---

<div class="post-metadata">

**Author:** ![aymane258](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/aymane258/32/17249_2.png) [@aymane258](https://forum.rasa.com/u/aymane258)\
**Post date:** [November 16, 2021, 8:00pm UTC](https://forum.rasa.com/t/rasa-dashbot-kubernetes/49049/35 "2021-11-16T20:00:01Z")

</div>

will try it out in a bit , fingers crossed. Absolutely appreciate you helping out, you have no idea how much this means to me.

---

<div class="post-metadata">

**Author:** ![aymane258](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/aymane258/32/17249_2.png) [@aymane258](https://forum.rasa.com/u/aymane258)\
**Post date:** [November 16, 2021, 8:00pm UTC](https://forum.rasa.com/t/rasa-dashbot-kubernetes/49049/36 "2021-11-16T20:00:55Z")

</div>

im quite sure dashbot uses rabbitmq , so would i have to disable kafka?

---

<div class="post-metadata">

**Author:** ![aymane258](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/aymane258/32/17249_2.png) [@aymane258](https://forum.rasa.com/u/aymane258)\
**Post date:** [December 6, 2021, 4:02pm UTC](https://forum.rasa.com/t/rasa-dashbot-kubernetes/49049/37 "2021-12-06T16:02:24Z")

</div>

Stephens the workaround doesn’t really work, disabling rabbitmq causes the following pods to crash

 ![image](https://europe1.discourse-cdn.com/flex013/uploads/rasa/original/3X/9/6/96e824ee9482680806f8f9edbcbcfd5c52ec6d26.png)

```auto
C:\Users\ayman\OneDrive\Bureaublad\VisualQuran\iChoosr-Rasa-chatbot>kubectl -n rasax logs rasa-x-1638803505-rasa-production-b7784bfd8-n89vr
←(0lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk←(B
←(0x←(B Rasa Open Source reports anonymous usage telemetry to help improve the product ←(0x←(B
←(0x←(B for all its users. ←(0x←(B
←(0x←(B ←(0x←(B
←(0x←(B If you'd like to opt-out, you can use `rasa telemetry disable`. ←(0x←(B
←(0x←(B To learn more, check out https://rasa.com/docs/rasa/telemetry/telemetry. ←(0x←(B
←(0mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj←(B
←[92mStarting Rasa X in production mode... 🚀←[0m
Traceback (most recent call last):
  File "/opt/venv/bin/rasa", line 8, in <module>
    sys.exit(main())
  File "/opt/venv/lib/python3.8/site-packages/rasa/ __main__.py", line 121, in main
    cmdline_arguments.func(cmdline_arguments)
  File "/opt/venv/lib/python3.8/site-packages/rasa/cli/x.py", line 355, in rasa_x
    run_in_production(args)
  File "/opt/venv/lib/python3.8/site-packages/rasa/cli/x.py", line 414, in run_in_production
    _rasa_service(args, endpoints, None, credentials_path)
  File "/opt/venv/lib/python3.8/site-packages/rasa/cli/x.py", line 89, in _rasa_service
    serve_application(
  File "/opt/venv/lib/python3.8/site-packages/rasa/core/run.py", line 178, in serve_application
    app = configure_app(
  File "/opt/venv/lib/python3.8/site-packages/rasa/core/run.py", line 103, in configure_app
    app = server.create_app(
  File "/opt/venv/lib/python3.8/site-packages/rasa/server.py", line 650, in create_app
    Initialize(
  File "/opt/venv/lib/python3.8/site-packages/sanic_jwt/initialization.py", line 133, in __init__
    self.__load_configuration()
  File "/opt/venv/lib/python3.8/site-packages/sanic_jwt/initialization.py", line 306, in __load_configuration
    self.config = self.configuration_class(self.app.config, **self.kwargs)
  File "/opt/venv/lib/python3.8/site-packages/sanic_jwt/configuration.py", line 283, in __init__
    self._validate_secret()
  File "/opt/venv/lib/python3.8/site-packages/sanic_jwt/configuration.py", line 308, in _validate_secret
    if self.secret() is None or (
  File "/opt/venv/lib/python3.8/site-packages/sanic_jwt/configuration.py", line 134, in __call__
    if asyncio.get_event_loop().is_running():
  File "/usr/lib/python3.8/asyncio/events.py", line 639, in get_event_loop
    raise RuntimeError('There is no current event loop in thread %r.'
RuntimeError: There is no current event loop in thread 'MainThread'.

```

The production pod gives the following error

---

<div class="post-metadata">

**Author:** ![aymane258](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/aymane258/32/17249_2.png) [@aymane258](https://forum.rasa.com/u/aymane258)\
**Post date:** [December 6, 2021, 4:02pm UTC](https://forum.rasa.com/t/rasa-dashbot-kubernetes/49049/38 "2021-12-06T16:02:53Z")

</div>

Hope you can help me out. Thank you

---

<div class="post-metadata">

**Author:** ![stephens](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/stephens/32/1632_2.png) [@stephens](https://forum.rasa.com/u/stephens)\
**Post date:** [December 6, 2021, 7:16pm UTC](https://forum.rasa.com/t/rasa-dashbot-kubernetes/49049/39 "2021-12-06T19:16:42Z")

</div>

Sorry for the confusion but I wasn’t suggesting you replace `rabbit` with `kafka`. The example was intended to show how you can configure a different event broker. In your case, you need to replace `rabbit` with the dashbot broker.

Rasa doesn’t not support multple event brokers. Based on your config, you are using the `rabbit` broker to send events to `Rasa X`. You could replace rabbit with the dashbot config but your Rasa X instance will no longer receive the conversations.

Rabbit does allow you to create multiple queues, so it’s possible you could create a second queue that would be forwarded to Dashbot but then you would need to re-write the `dashbot.rasa.rasa` code to read from the rabbit queue directly. Otherwise you could disconnect Rasa X and just use Dashbot.

---

<div class="post-metadata">

**Author:** ![aymane258](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/aymane258/32/17249_2.png) [@aymane258](https://forum.rasa.com/u/aymane258)\
**Post date:** [December 6, 2021, 8:13pm UTC](https://forum.rasa.com/t/rasa-dashbot-kubernetes/49049/41 "2021-12-06T20:13:51Z")

</div>

How come this does work locally though, rasaX and dashbot

---

<div class="post-metadata">

**Author:** ![aymane258](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/aymane258/32/17249_2.png) [@aymane258](https://forum.rasa.com/u/aymane258)\
**Post date:** [December 6, 2021, 8:30pm UTC](https://forum.rasa.com/t/rasa-dashbot-kubernetes/49049/42 "2021-12-06T20:30:17Z")

</div>

Also disconnecting Rasa X and using dashbot only is not an option as they serve two different purposes.

---

<div class="post-metadata">

**Author:** ![stephens](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/stephens/32/1632_2.png) [@stephens](https://forum.rasa.com/u/stephens)\
**Post date:** [December 7, 2021, 5:52pm UTC](https://forum.rasa.com/t/rasa-dashbot-kubernetes/49049/43 "2021-12-07T17:52:40Z")

</div>

What’s your `endpoints.yml` file look like when running locally?

[Previous page](https://forum.rasa.com/t/rasa-dashbot-kubernetes/49049.md?page=1)

[Next page](https://forum.rasa.com/t/rasa-dashbot-kubernetes/49049.md?page=3)
