I’m trying to use Kong custom resources, like the KongIngress resource, to send information on a post to a webhook directly onto a RabbitMQ exchange. I’m using a custom kong plugin to accomplish this, and everything works fine in a local docker-compose environment, but when I deploy to kubernetes, the plugin registers that it’s sending an amqp request to rabbitmq.default.5672.svc:80. My rabbit service uses port 5672 and the kube service name on the Ingress is rabbitmq, but I want the port to be 5672, not 80. Is there a way to do this? In my local environment I was able to use dbless declarative config in kong to create a kong service with a url of localhost:5672 and it was able to connect to Rabbit, but I suspect the port 80 thing in kubernetes is messing with the ability to connect to Rabbit.
EDIT: If it helps, the custom plugin is showing that kong.router.get_service().host is rabbitmq.default.5672.svc, and kong.router.get_service().port is 80, which I don’t understand.
The targets, is this something I can set in a kong configuration or a kubernetes ingress resource? Or will I just have to find another way around the plugin?
I am trying to get json data hitting an endpoint, say on example.com/api/v1, and route that data via a custom plugin to communicate that json POSTed data via AMQP to a rabbitmq service on port 5672, in kubernetes. I have kong configured with the custom plugin and working locally using kong’s declarative config to make the Kong service url be localhost:5672. I have the KongIngress resource with the Ingress resource pointing to a backend rabbitmq service with a service port of 5672, which ends up through kube getting a host name of rabbitmq.default.5672.svc, and a port number of 80. I need a way to send the data to 5672, not 80, because the plugin is failing to connect to the backend service with that hostname and port combo.