Using Helm to Install Rasa X
Let's go through all the commands needed to install Rasa X on Kubernetes by using Helm.
So let's go over all the steps you need to run to get Rasa X up and running on a VM using kind to run kubernetes on our behalf.
kind create cluster
kubectl create namespace rasax
Next we need to create a
values.yml file that will hold all of our
settings for the
helm installation. Note that in our example below
we're using the same password for everything. For a demo this is fine
but for a real-life deployment you'll want to use a different password
for each service.
# rasax specific settingsrasax:# initialUser is the user which is created upon the initial start of Rasa XinitialUser:# password for the Rasa X userpassword: "merely-for-demo-purposes"# passwordSalt Rasa X uses to salt the user passwordspasswordSalt: "merely-for-demo-purposes"# token Rasa X accepts as authentication token from other Rasa servicestoken: "merely-for-demo-purposes"# jwtSecret which is used to sign the jwtTokens of the usersjwtSecret: "merely-for-demo-purposes"tag: "0.42.0"# rasa: Settings common for all Rasa containersrasa:# token Rasa accepts as authentication token from other Rasa servicestoken: "merely-for-demo-purposes"tag: "2.8.0-full"# RabbitMQ specific settingsrabbitmq:# rabbitmq settings of the subchartrabbitmq:# password which is used for the authenticationpassword: "merely-for-demo-purposes"# global settings of the used subchartsglobal:# postgresql: global settings of the postgresql subchartpostgresql:# postgresqlPassword is the password which is used when the postgresqlUsername equals "postgres"postgresqlPassword: "merely-for-demo-purposes"# redis: global settings of the redis subchartredis:# password to use in case there no external secret was providedpassword: "merely-for-demo-purposes"
helm repo add rasa-x https://rasahq.github.io/rasa-x-helm helm install --generate-name --namespace rasax --values values.yml rasa-x/rasa-x
If you want to connect Rasa X to the outside world, you need to open the ports
to the Kubernetes cluster. The main port you'll want to connect to is the port
connected to the
nginx pod. You'll first need to find out what the name
of the corresponding pod is. You can use
kubectl get pods to find out.
> kubectl --namespace rasax get pods NAME READY STATUS RESTARTS AGE rasa-x-1627907752-app-699f86d8db-kb7nd 1/1 Running 0 11m rasa-x-1627907752-db-migration-service-0 1/1 Running 1 11m rasa-x-1627907752-duckling-6c5686c848-j9ctl 1/1 Running 0 11m rasa-x-1627907752-event-service-78696d7df7-l2k8n 1/1 Running 0 11m rasa-x-1627907752-nginx-7f6fc46df6-gcnlz 1/1 Running 0 11m rasa-x-1627907752-postgresql-0 1/1 Running 0 11m rasa-x-1627907752-rabbit-0 1/1 Running 0 11m rasa-x-1627907752-rasa-production-5f5bbd4ff-g6wdb 1/1 Running 0 11m rasa-x-1627907752-rasa-worker-5f8cfdf766-wmjrd 1/1 Running 0 11m rasa-x-1627907752-rasa-x-96b74b7bd-zkkbd 1/1 Running 0 11m rasa-x-1627907752-redis-master-0 1/1 Running 0 11m
We observere the name
rasa-x-1627907752-nginx-7f6fc46df6-gcnlz here. The
name that you observe is likely different from the one shown in this tutorial
so make sure you double check. Given that we know where to connect to, we
can now open the ports by port-forwarding.
kubectl --namespace rasax port-forward svc/rasa-x-1629279392-rasa-x 5002:5002
You should now be able to connect to Rasa X at
Note that the command you'll need to use is likely going to be different
because your deployment may have a different name for the
Try to answer the following questions to test your knowledge.
- Is it possible to customise a Helm deployment of Rasa X?
- If you're using
helmto deploy pods, why might you still want to use
kubectlfrom time to time?