Ingress or Nginx Reverse Proxy

Hi and Good Day,

Im now trying to bind a domain to my Rasa X deployment ( Helm Chart - mirok8s ) Googling here and there it seems I need to use Ingress as I would go for ssl.

However as for my current deployment the external IP I’ve pointed to Nginx service, which I’m currently accessing my rasa-x through http://:8000

my yml values for nginx as below

apiVersion: v1
kind: Service
metadata:
  annotations:
    meta.helm.sh/release-name: uov10
    meta.helm.sh/release-namespace: umone
  creationTimestamp: "2021-06-30T12:57:43Z"
  labels:
    app.kubernetes.io/component: nginx
    app.kubernetes.io/instance: uov10
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: rasa-x
    app.kubernetes.io/version: 0.40.1
    helm.sh/chart: rasa-x-1.16.0
  name: uov10-rasa-x-nginx
  namespace: umone
  resourceVersion: "155600"
  selfLink: /api/v1/namespaces/umone/services/uov10-rasa-x-nginx
  uid: 3ab95787-dad6-409d-b071-dd127fce8eb6
spec:
  clusterIP: 10.152.183.165
  clusterIPs:
  - 10.152.183.165
  externalIPs:
  - 10.240.5.9
  externalTrafficPolicy: Cluster
  ipFamilies:
  - IPv4
  ipFamilyPolicy: SingleStack
  ports:
  - name: http
    nodePort: 32530
    port: 8000
    protocol: TCP
    targetPort: 8080
  selector:
    app.kubernetes.io/component: nginx
    app.kubernetes.io/instance: uov10
    app.kubernetes.io/name: rasa-x
  sessionAffinity: None
  type: LoadBalancer
status:
  loadBalancer: {}

while the ingress as below

image

yml values for my ingress

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    meta.helm.sh/release-name: uov10
    meta.helm.sh/release-namespace: umone
  creationTimestamp: "2021-06-30T12:57:43Z"
  generation: 1
  labels:
    app.kubernetes.io/instance: uov10
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: rasa-x
    app.kubernetes.io/version: 0.40.1
    helm.sh/chart: rasa-x-1.16.0
  name: uov10-rasa-x
  namespace: umone
  resourceVersion: "155640"
  selfLink: /apis/networking.k8s.io/v1/namespaces/umone/ingresses/uov10-rasa-x
  uid: 3a8ecaa1-0c07-4ff1-bed0-864e41c5ac6c
spec:
  rules:
  - host: myrasa.com
    http:
      paths:
      - backend:
          service:
            name: uov10-rasa-x-nginx
            port:
              number: 8000
        path: /
        pathType: ImplementationSpecific
status:
  loadBalancer: {}

By pointing myrasa.com to my machine /etc/hosts file Im hoping able to access my rasa-x via http://myrasa.com instead of http://:8000

Anyone can advice how to get this working. My rasa x request later will be served by a load balancer which provide proxy ssl, which I planned to get the ingress working as point of communication to the load balancer.

Thank YouPreformatted text

hey @hiorie, can you try turning off nginx and only use Ingress with your actual host name? you need to have only one of ingress or nginx turned on.

Hi Desmarchris,

Thank you for the reply. How can I do that ? I planned to use ingress as I would like to setup https using ingress later. So I want to off the nginx.

And now I getting more confuse as my ingress is in another namespace and my rasa x is in another namespace. The ingress is default enable when I issue mickrok8s ingress enable.

Thank you for your kind assistant

turn off nginx in your values override file setting this to false: rasa-x-helm/values.yaml at main · RasaHQ/rasa-x-helm · GitHub

so you’ll have:

nginx:
  enabled: false

the ingress resource you see in the other namespace should be fine. That’s just the controller enabling you to create the ingress routes. once you turn off nginx and redeploy, you should see 4 routes show up when you run kubectl get ingress in your rasa namespace