How to make HTTP request to RasaX from outside the Kubernetes cluster

Hello everyone,

I have followed tutorial directly from rasa.com on how to install RasaX on Kubernetes cluster, I have also watched advanced RasaX course on udemy.com, but neither of them answered my question - how to make HTTP request to RasaX from outside the Kubernetes cluster.

By following the tutorials I have managed:

  1. Install RasaX on Kubernetes cluster,
  2. Opened required ports and assigned external IP to NGINX pod,
  3. After assigning external IP for NGINX, I opened RasaX on my browser (http://server-ip:8000)
  4. Logged in on RasaX. I’m able to upload the models, chat with the bot, etc.

Now I need to connect my website chat widget with Rasa. I imagine, that to do so, I should do HTTP request from widget back-end to rasa using this url: http://server-ip:5005/webhooks/rest/webhook

The problem is that the external IP within the cluster is assigned only to NGINX pod, not Rasa. As I understand I should do the requests to Rasa through NGINX (or am I wrong?), so the question is how to do so?

The Kubernetes cluster is running on Google Cloud VM.

Hi @Benten! I’m assuming that you’re trying to use the rest input channel as documented here? Which deployment method did you use? Did you use a helm chart? Depending on the deployment method, you need to adjust the channel settings (as documented here)

Since the REST channel doesn’t require credentials, you still need to enable it. You can do this by e.g. adding the rest key like in this example for a helm deployment in values.yaml:

rasa:
  additionalChannelCredentials:
    rest:

I think then sending the request to the url you mentioned should work?

Let me know if this helps!! :sparkles:

Hey!

Thank you for the reply.

I use helm chart and I have already set the rest channel in values.yaml file.

As far as I have googled, I believe I need to assign external IP address to rasa-production service as shown below:

By following instructions I have assigned external IP address for nginx service, but not for rasa-production. By using the nginx external IP I can open RasaX on my browser, but I can’t send requests to Rasa through the same IP.

Hey! Theoretically, you should be able to send requests through Nginx external IP to rasa, so there is no need to assign an external IP to rasa production.

Can you post more info about your rasa version, config files, etc.? Maybe you can also check if you are using the correct port?