Skip to content
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

[occm octavia] UDP listener with PROXY protocol enabled fails to be created #2854

Open
danfai opened this issue Mar 4, 2025 · 0 comments
Open

Comments

@danfai
Copy link
Contributor

danfai commented Mar 4, 2025

When an port with UDP is specified in the service definition and the service is configured with proxyProtocol, the pool will get PROXY as the pool type, while it should be UDP.
In case healthmonitors are configured by default octavia will complain to not be able to create a healthmonitor of type UDP-CONNECT with a pool having protocol PROXY

The corresponding lines are in https://github.com/kubernetes/cloud-provider-openstack/blob/master/pkg/openstack/loadbalancer.go#L977 and
https://github.com/kubernetes/cloud-provider-openstack/blob/master/pkg/openstack/loadbalancer.go#L888
The comparison should make sure to exclude UDP or SCTP type pools.

reproducer spec:

apiVersion: v1
kind: Service
metadata:
  annotations:
    loadbalancer.openstack.org/proxy-protocol: "true"
  name: dummy
  namespace: default
spec:
  ports:
  - name: quic
    port: 443
    protocol: UDP
    targetPort: quic
  sessionAffinity: None
  type: LoadBalancer

From the logs:
[...] faultstring: "Validation failure: The UDP-CONNECT type is only supported for pools of type UDP/SCTP."

Generated LB:

[...]
  "listeners": [
    {   
      "protocol": "UDP",
      [...]
      "default_pool": {
        "lb_algorithm": "ROUND_ROBIN",
        "protocol": "PROXY",
         [...]
        "healthmonitor": {
          "type": "UDP-CONNECT",
[...]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant