ori-edge / k8s_gateway

A CoreDNS plugin to resolve all types of external Kubernetes resources
Apache License 2.0
322 stars 69 forks source link

[Feature Request] Support for TCP LoadBalancer mode for OpenStack platform #56

Open lisachenko opened 3 years ago

lisachenko commented 3 years ago

I'm trying to use k8s_gateway plugin with on-premise K8s and OpenStack underlying platform. Unfortunately, plugin couldn't start, because of following error: only TCP LoadBalancer is supported for openstack load balancers:

Events:
  Type     Reason                      Age                    From                Message
  ----     ------                      ----                   ----                -------
  Normal   EnsuringLoadBalancer        2m23s (x6 over 4m58s)  service-controller  Ensuring load balancer
  Warning  CreatingLoadBalancerFailed  2m23s (x6 over 4m58s)  service-controller  Error creating load balancer (will retry): failed to ensure load balancer for service external-dns-gateway/external-dns-k8s-gateway: only TCP LoadBalancer is supported for openstack load balancers

There is known limitation of OpenStack LB system: https://docs.openstack.org/octavia/latest/contributor/specs/version1.1/udp_support.html which will be addressed later, but right now, only TCP LB are supported.

As both TCP and UDP 53 ports are exposed in Dockerfile - it can be also added on K8s/Helm level to use UDP/TCP mode if for some reason UDP is not available.

networkop commented 3 years ago

yep, valid point @lisachenko. Feel free to submit a PR.

nikolaishields commented 12 months ago

@networkop I'll take this PR on, while Openstack isn't my exact use-case my system has a similiar limitation.