-
Notifications
You must be signed in to change notification settings - Fork 364
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support downstream and upstream Proxy Protocol #1328
Comments
thanks for raising this issue @JuniorJPDJ, ive raised a issue in the upstream API repo |
Can you please link this issue here? |
Sure. |
@JuniorJPDJ yes an extension (policyAttachment or Filter) might be the way to go if the feature is not supported by the native upstream API |
Not sure if a policyAttachment or Filter would be necessary since you could also introduce it as extended protocol types in This is allowed under the existing spec:
|
hey @haq204 thats a really good idea |
But this is a solution for just a downstream proxy proto. |
I think for upstream proxy it would probably would need to be a Filter/PolicyAttachment but not really keen on that idea. There is an effort upstream to expand backend properties kubernetes-sigs/gateway-api#1282 which would include protocol selection kubernetes-sigs/gateway-api#1911 so upstream proxy would seem to be a more natural fit here. |
Maybe there should be a protocolStack option as well :)
or a |
for upstream, |
This issue has been automatically marked as stale because it has not had activity in the last 30 days. |
not stale |
This issue has been automatically marked as stale because it has not had activity in the last 30 days. |
not stale |
This issue has been automatically marked as stale because it has not had activity in the last 30 days. |
not stale |
This issue has been automatically marked as stale because it has not had activity in the last 30 days. |
downstream proxy protocol can be added to the ClientTrafficPolicy API which is now available https://gateway.envoyproxy.io/latest/api/extension_types.html#clienttrafficpolicy and upstream proxy protocol can be added to the BackendTrafficPolicy API which should be in soon |
Relates to envoyproxy#1328 Signed-off-by: Arko Dasgupta <arko@tetrate.io>
Relates to envoyproxy#1328 Signed-off-by: Arko Dasgupta <arko@tetrate.io>
Relates to #1328 Signed-off-by: Arko Dasgupta <arko@tetrate.io>
relates to envoyproxy#1328 Signed-off-by: Arko Dasgupta <arko@tetrate.io>
Relates to #1328 Signed-off-by: Arko Dasgupta <arko@tetrate.io>
relates to envoyproxy#1328 Signed-off-by: Arko Dasgupta <arko@tetrate.io>
relates to envoyproxy#1328 Signed-off-by: Arko Dasgupta <arko@tetrate.io>
relates to envoyproxy#1328 Signed-off-by: Arko Dasgupta <arko@tetrate.io>
relates to envoyproxy#1328 Signed-off-by: Arko Dasgupta <arko@tetrate.io>
* feat: proxy protocol in ClientTrafficPolicy relates to #1328 Signed-off-by: Arko Dasgupta <arko@tetrate.io> * address review comments Signed-off-by: Arko Dasgupta <arko@tetrate.io> --------- Signed-off-by: Arko Dasgupta <arko@tetrate.io> Co-authored-by: zirain <zirain2009@gmail.com>
relates to envoyproxy#1328 Signed-off-by: Arko Dasgupta <arko@tetrate.io>
relates to envoyproxy#1328 Signed-off-by: Arko Dasgupta <arko@tetrate.io>
* feat: proxyProtocol in BackendTrafficPolicy relates to #1328 Signed-off-by: Arko Dasgupta <arko@tetrate.io> * xds Signed-off-by: Arko Dasgupta <arko@tetrate.io> --------- Signed-off-by: Arko Dasgupta <arko@tetrate.io>
@arkodg thank you very much for implementing it.
Traffic is being routed, output of
https://gist.github.com/JuniorJPDJ/19d0cd1bfd2ac0e00230adce374ac358 Oh, and I forgot - I'm on v1.0.0 |
the BTP policy is attaching to a |
@JuniorJPDJ the downstream side should work https://gateway.envoyproxy.io/v1.0.0/user/traffic/client-traffic-policy/#enable-proxy-protocol-for-downstream-client |
also @JuniorJPDJ you mentioned that you can see the xds cluster config with proxy protocol enabled, wonder how thats possible .. |
Yup, look at those lines: EDIT: that's http, bad catch, wait a sec |
You were right.. I just greped for proxyProtocol and wasn't reading too much.. |
Aaaand it works now on the latest commit due to #3004 |
Envoy Gateway should support Proxy Protocol on traffic coming from the world to support for example cases of Network Load Balancers from some cloud providers (AWS example from Emissary Ingress docs) and other cases when we have some sort of L4 LB in front of the K8S cluster.
It should also support Proxy Protocol on egress traffic to support cases where eg. pointing to ExternalService outside of the cluster or we just need raw L4 socket (TCP or UDP) and source IP preservation.
I actually need the second case, but I know there are lots of people needing first one due to cloud deployments with L4 LBs in front of the k8s.
Istio for example has 2 issues for upstream proxy proto (istio/istio#42257, istio/istio#44342) and some forum posts from people implementing it with EnvoyFilter mechanism and it also has example of configuration in docs for downstream proxy proto due to cloud usage.
Upstream proxy protocol would for example allow placing nginx ingress controler behind Envoy Gateway without losing the source IPs when someone needs legacy ingress resource support: https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#use-proxy-protocol
The text was updated successfully, but these errors were encountered: