Search code examples
kubernetesngrok

Is it possible to run multiple instance of ngrok ingress controller?


Is it possible to run multiple instances of ngrok ingress controller?

I'm currently running an instance of ngrok ingress controller by following ngrok's docs.

I've installed ngrok ingress controller using this and it works as expected.

$ helm install ngrok-ingress-controller-1 ngrok/kubernetes-ingress-controller --namespace pi-deploy 
\ --set credentials.apiKey=$APIKEY1
\ --set credentials.authtoken=$AUTHTOKEN1
\ --set controller.ingressClassResource.name=class1

However when I try installing the second ngrok ingress controller with another ngrok account, it gives me this error

$ helm install ngrok-ingress-controller-2 ngrok2/kubernetes-ingress-controller 
\ --namespace sm-website
\ --set credentials.apiKey=APIKEY2
\ --set credentials.authtoken=AUTHTOKEN2
\ --set controller.ingressClassResource.name=class2

Error: INSTALLATION FAILED: rendered manifests contain a resource that already exists. 
Unable to continue with install: CustomResourceDefinition "domains.ingress.k8s.ngrok.com" 
in namespace "" exists and cannot be imported into the current release: invalid ownership 
metadata; annotation validation error: key "meta.helm.sh/release-name" must equal 
"ngrok-ingress-controller-2": current value is "ngrok-ingress-controller-1"; 
annotation validation error: key "meta.helm.sh/release-namespace" must equal 
"sm-website": current value is "pi-deploy"

I've tried following this stackoverflow question but to no avail.

I'm in a pinch here. Any idea how to fix this? or is there any work arounds?


Solution

  • PM from ngrok here. It is not possible to do this today but we have an open issue to track this feature request: https://github.com/ngrok/kubernetes-ingress-controller/issues/87

    We'd love for you to add a comment as to your use case to help us prioritize it properly. We are actively working on improving the ingress controller based on community feedback.