Ingress: support external load balancers (aws alb ingress controller) to ingress into mesh with transparent proxy
- Dominant language
- Go
- Stars
- 30.1k
- Forks
- 4.6k
- Avg merge
- 1d 18h
- Merged PRs (30d)
- 39
Description
### Community Note
* Please vote on this issue by adding a 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original issue to help the community and maintainers prioritize this request. Searching for pre-existing feature requests helps us consolidate datapoints for identical requirements into a single place, thank you!
* Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request.
* If you are interested in working on this issue or have submitted a pull request, please leave a comment.
---
#### Is your feature request related to a problem? Please describe.
The feature request has some related comments in issue hashicorp/consul-k8s#430.
> I attempted to inject the [aws-load-balancer-controller](https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.2/) to no avail. I don't think the integration works with the aws-load-balancer-controller as described in [the documentation](https://www.consul.io/docs/k8s/connect/ingress-controllers). I was able to expose an http endpoint on the sidecar to pass the alb health checks, but the actual traffic returned the error:
>```
>[source/extensions/transport_sockets/tls/ssl_socket.cc:219] [C1732] TLS error: 268435648:SSL >routines:OPENSSL_internal:PEER_DID_NOT_RETURN_A_CERTIFICATE
>```
> I assume this is happening because the load balancer that is sending traffic to the pod has no certificate signed by the CA consul is using for mTLS.
versions used
```
consul: 1.10.0
consul-k8s: 0.26.0
envoy: v1.18.3
```
#### Feature Description
Bring external traffic into the service mesh using an aws application load balancer.
#### Use Case(s)
In relation to hashicorp/consul-k8s#430, there doesn't seem to be much support for third party ingress controllers at this time. I only saw examples for kong & traefik in [the documentation](https://www.consul.io/docs/k8s/connect/ingress-controllers)
Please let me know if the feature makes sense. I'm happy to expand if needed!
Contributor guide
Research direction
Start by reviewing hashicorp/consul-k8s#430 and the Consul Kubernetes ingress-controller documentation, including the Kong and Traefik examples. Reproduce the reported AWS load balancer behavior with the listed Consul, consul-k8s, and Envoy versions. Done should be defined as external AWS ALB traffic entering the mesh through a transparent proxy without the reported mTLS failure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, kubernetes
- Domain
- cloud, distributed-systems, networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100