How to expose Nginx Service RasaX on Minikube?

I followed all the Rasa documentation, but it is not generating the external IP, the status is always Pending from rasa-x-nginx

Install Kubectl

  1. curl -LO “https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl”
  2. curl -LO “https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256”
  3. echo “$(<kubectl.sha256) kubectl” | sha256sum --check
  4. sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

Install Helm (pacote instalador do kubernetes)

  1. curl https://baltocdn.com/helm/signing.asc | sudo apt-key add -
  2. sudo apt-get install apt-transport-https --yes
  3. echo “deb Helm > Stable > Debian all main” | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
  4. sudo apt-get install helm

Install Minikube

  1. curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
  2. sudo install minikube-linux-amd64 /usr/local/bin/minikube
  3. minikube start

Creating a namespace

  1. kubectl create namespace ps-rasa

Insert the content mentioned in the Rasa documentation

  1. sudo nano values.yml

    rasax specific settings

rasax: # initialUser is the user which is created upon the initial start of Rasa X initialUser: # password for the Rasa X user password: “” # passwordSalt Rasa X uses to salt the user passwords passwordSalt: “” # token Rasa X accepts as authentication token from other Rasa services token: “” # jwtSecret which is used to sign the jwtTokens of the users jwtSecret: “”

rasa: Settings common for all Rasa containers

rasa: # token Rasa accepts as authentication token from other Rasa services token: “”

RabbitMQ specific settings

rabbitmq: # rabbitmq settings of the subchart rabbitmq: # password which is used for the authentication password: “”

global settings of the used subcharts

global: # postgresql: global settings of the postgresql subchart postgresql: # postgresqlPassword is the password which is used when the postgresqlUsername equals “postgres” postgresqlPassword: “” # redis: global settings of the redis subchart redis: # password to use in case there no external secret was provided password: “”

Add repo

  1. helm repo add rasa-x https://rasahq.github.io/rasa-x-helm

Installing the rasa-x repository by helm

  1. helm install rasa-x --namespace ps-rasa --values values.yml rasa-x/rasa-x

Retrieving the external IP for external access

  1. kubectl --namespace ps-rasa
    get service
    -l app.kubernetes.io/component=nginx
    -o jsonpath="{.items…status…loadBalancer…ingress[0].ip}"

In the minikube documentation, you can find how to expose/access services that use a load balancer - Accessing apps | minikube

minikube tunnel runs as a process, creating a network route on the host to the service CIDR of the cluster using the cluster’s IP address as a gateway. The tunnel command exposes the external IP directly to any program running on the host operating system.

So, just run minikube tunnel?

I tested with microk8s and it works.