Version: 1.1.x

Ingress/Nginx

Enabling Ingress

To use ingress instead of the default Nginx service to expose your deployment, disable Nginx in the values, and provide the host. The example assumes an ingress-nginx controller is already available in your cluster:

nginx:
enabled: false
ingress:
enabled: true
hosts:
- host: rasa-x.example.com # DNS name / CNAME record for your cluster entrypoint
paths:
- /

Configuring Nginx

If you are using Nginx and you need to customize its configuration to e.g. enable SSL, you will need to create a custom config map.

Your configmap should include at least the keys nginx.conf, ssl.conf, and rasax.nginx.template. If you include additional keys for other configuration templates, you need to specify the paths to which to mount these files under nginx.extraVolumeMounts. The standard versions of nginx.conf, ssl.conf, and rasax.nginx.template can be found here. Assuming your customized versions of these files are in the directory ./custom-nginx-conf-files, you can create a custom configmap as follows:

kubectl -n your-namespace create configmap custom-nginx-conf --from-file ./custom-nginx-conf-files

To use your custom configmap, specify its name in your values:

nginx:
# custom config map containing nginx.conf, ssl.conf.template, rasax.nginx.template
customConfConfigMap: "custom-nginx-conf"

The configmap has to be created before you deploy Rasa X. If you use rasactl to create a deployment, you can define a namespace with the secret as an argument in CLI, e.g. the secret has been created in the my-namespace namespace, then use the rasactl start my-namespace command to create Rasa X deployment.

Deploying to a Subpath

By default, Rasa X assumes it is being served at the root of the host. To serve it at a subpath, e.g. "/rasa-x", you will need to use the following configuration in your values.yaml:

nginx:
subPath: "/rasa-x"
rasa-x:
extraEnvs:
- name: "ROOT_URL"
value: www.example.com/rasa-x