kubernetes / cloud-provider-openstack

Apache License 2.0
623 stars 611 forks source link

[occm] LoadBalancer ProxyProtocol v2 feature #2585

Closed nicolaslacroux closed 3 months ago

nicolaslacroux commented 7 months ago

/kind feature

As a Kubernetes + occm user I would like to enabling the ProxyProtocol v2 as valid protocol with Octavia Load balancer.

What happened: Currently, it is not possible to create an Octavoia load balancer from the OCCM using the "ProxyProtocolv2" protocol.

loadbalancer.openstack.org/proxy-protocol: "true" # Enable ProxyProtocolv1
loadbalancer.openstack.org/proxy-protocol: "false" # Default value, no proxy protocol enable

What you expected to happen: Add proxy-protocol v2 annotations at Loadbalancer creation (Kubernetes service type LoadBalancer):

loadbalancer.openstack.org/proxy-protocol: "true" # Enable ProxyProtocolv1
loadbalancer.openstack.org/proxy-protocol: "v1" # Enable ProxyProtocolv1
loadbalancer.openstack.org/proxy-protocol: "v2" # Enable ProxyProtocolv2
loadbalancer.openstack.org/proxy-protocol: "false" # Default value, no proxy protocol enable 

Anything else we need to know?: Related Octavia documentation: https://docs.openstack.org/api-ref/load-balancer/v2/#protocol-combinations-listener-pool

As an Openstack Public Cloud Provider we are currently working on a custom CCM implementation, for this reason we can potentially do the PR associated with this request, but we'd like to at least validate the implementation before starting developments.

zetaab commented 7 months ago

@nicolaslacroux for me the spec seems valid. Another option could be add loadbalancer.openstack.org/proxy-protocol-version annotation to specify the version. However, as I see it we could do it in one annotation that can accept values that you mentioned.

cc @dulek do you have opinion?

dulek commented 6 months ago

I like the design proposed and I see value in not introducing new annotations.

zetaab commented 5 months ago

@nicolaslacroux are you planning to implement this as you might have capable test environment to verify it? :)

nicolaslacroux commented 5 months ago

@zetaab We do not currently have the capacity to work on this feature, however we have plans to work on it in the coming months.