I am trying to route traffic to my application hosted in a Kubernetes cluster. At the present moment, I am using Ngroks free domains. For example happy-frog-dancing.ngrok-free.app.
I have set up this ingress-depl
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ngrok-ingress-depl
namespace: theblock
annotations:
kubernetes.io/ingress.class: ngrok
spec:
ingressClassName: ngrok
rules:
- host: dominant-hawk-factual.ngrok-free.app
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: app-service
port:
number: 8000
- host: server.dominant-hawk-factual.ngrok-free.app
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: server-service
port:
number: 3000
And I get an invalid error
{"level":"info","ts":"2024-07-14T14:47:56Z","logger":"controllers.ingress","msg":"Ingress is not valid so skipping it","ingress":{"name":"ngrok-ingress-depl","namespace":"theblock"}}
But it works fine when I do something like this.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ngrok-ingress-depl
namespace: theblock
annotations:
kubernetes.io/ingress.class: ngrok
spec:
ingressClassName: ngrok
rules:
- host: dominant-hawk-factual.ngrok-free.app
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: app-service
port:
number: 8000
# - host: dominant-hawk-factual.ngrok-free.app
# http:
# paths:
- path: /server
pathType: Prefix
backend:
service:
name: server-service
port:
number: 3000
What are best practices when trying to do something like this?
I have tried creating selectors in the Ngrok Dashboard but I am not familiar or well versed in how these systems work.