Uploaded image for project: 'OpenShift Bugs'
  1. OpenShift Bugs
  2. OCPBUGS-29085

LoadBalancer ingressController not working with IPv6 and OVN-Octavia provider

XMLWordPrintable

    • +
    • Moderate
    • No
    • 5
    • False
    • Hide

      None

      Show
      None
    • Hide
      Due to a bug in OSP 17.1 (https://bugzilla.redhat.com/show_bug.cgi?id=2263552) and OSP 16.2 (https://bugzilla.redhat.com/show_bug.cgi?id=2263550), OCP will fail to configure an IPv6 IngressController with `endpointPublishingStrategy.type: LoadBalancerService`. Please check the linked bugreports for bug resolutions.
      Show
      Due to a bug in OSP 17.1 ( https://bugzilla.redhat.com/show_bug.cgi?id=2263552 ) and OSP 16.2 ( https://bugzilla.redhat.com/show_bug.cgi?id=2263550), OCP will fail to configure an IPv6 IngressController with `endpointPublishingStrategy.type: LoadBalancerService`. Please check the linked bugreports for bug resolutions.
    • Known Issue
    • Done

      Description of problem:

      OCP4.15 running on top of OSP16.2 fails to configure an ipv6 ingress controller. The testcase that fails is:

      make openstack-tests && KUBECONFIG=~/.kube/config ./openstack-tests run-test "[sig-installer][Suite:openshift/openstack][lb][Serial] The Openstack platform should create a TCP OVN LoadBalancer when LoadBalancerService ingressController is created on Openshift"
      

      and it should be run with below configuration applied:

      $ oc get cm -n openshift-config cloud-provider-config -o json | jq -r .data.config 
      [Global]
      secret-name = openstack-credentials
      secret-namespace = kube-system
      region = regionOne
      ca-file = /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
      
      [LoadBalancer]
      floating-network-id = 663be8b6-09db-4be4-bb33-7fc87c0ec51a
      lb-provider = ovn
      lb-method = SOURCE_IP_PORT
      subnet-id = 648feab4-be61-4f69-a2a7-f54a7bbe5375
      create-monitor = False
      monitor-delay = 10s
      monitor-timeout = 10s
      monitor-max-retries = 1
      max-shared-lb = 2
      

      It's observed an error in OVN-Octavia on the controller:

      : 31592, 'pool_id': '1794b0ac-44c7-4450-abad-a0725bd8a84a', 'subnet_id': '648feab4-be61-4f69-a2a7-f54a7bbe5375', 'admin_state_up': True} request_handler /usr/lib/python3.6/site-packages/networking_ovn/octavia/ovn_
      driver.py:510
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver [-] Exception occurred during creation of member: netaddr.core.AddrFormatError: invalid IPNetwork [fd2e:6f44:5dd8:c956::3b4]
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver Traceback (most recent call last):
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver   File "/usr/lib/python3.6/site-packages/netaddr/strategy/ipv4.py", line 125, in str_to_int
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver     return _struct.unpack('>I', _inet_pton(AF_INET, addr))[0]
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver OSError: illegal IP address string passed to inet_pton
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver 
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver During handling of the above exception, another exception occurred:
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver 
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver Traceback (most recent call last):
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver   File "/usr/lib/python3.6/site-packages/netaddr/ip/__init__.py", line 311, in __init__
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver     self._value = self._module.str_to_int(addr, flags)
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver   File "/usr/lib/python3.6/site-packages/netaddr/strategy/ipv4.py", line 129, in str_to_int
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver     raise AddrFormatError('%r is not a valid IPv4 address string!' % addr)
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver netaddr.core.AddrFormatError: '[fd2e:6f44:5dd8:c956::3b4]' is not a valid IPv4 address string!
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver 
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver During handling of the above exception, another exception occurred:
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver 
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver Traceback (most recent call last):
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver   File "/usr/lib/python3.6/site-packages/netaddr/ip/__init__.py", line 791, in parse_ip_network
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver     ip = IPAddress(val1, module.version, flags=INET_PTON)
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver   File "/usr/lib/python3.6/site-packages/netaddr/ip/__init__.py", line 314, in __init__
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver     % (addr, self._module.version))
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver netaddr.core.AddrFormatError: base address '[fd2e:6f44:5dd8:c956::3b4]' is not IPv4
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver 
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver During handling of the above exception, another exception occurred:
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver 
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver Traceback (most recent call last):
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver   File "/usr/lib/python3.6/site-packages/netaddr/ip/__init__.py", line 928, in __init__
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver     implicit_prefix, flags)
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver   File "/usr/lib/python3.6/site-packages/netaddr/ip/__init__.py", line 795, in parse_ip_network
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver     expanded_addr = _ipv4.expand_partial_address(val1)
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver   File "/usr/lib/python3.6/site-packages/netaddr/strategy/ipv4.py", line 259, in expand_partial_address
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver     raise error
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver netaddr.core.AddrFormatError: invalid partial IPv4 address: '[fd2e:6f44:5dd8:c956::3b4]'!
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver 
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver During handling of the above exception, another exception occurred:
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver 
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver Traceback (most recent call last):
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver   File "/usr/lib/python3.6/site-packages/networking_ovn/octavia/ovn_driver.py", line 1883, in member_create
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver     self._add_member(member, ovn_lb, pool_key)
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver   File "/usr/lib/python3.6/site-packages/networking_ovn/octavia/ovn_driver.py", line 1841, in _add_member
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver     self._refresh_lb_vips(ovn_lb.uuid, external_ids)
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver   File "/usr/lib/python3.6/site-packages/networking_ovn/octavia/ovn_driver.py", line 1051, in _refresh_lb_vips
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver     vip_ips = self._frame_vip_ips(lb_external_ids)
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver   File "/usr/lib/python3.6/site-packages/networking_ovn/octavia/ovn_driver.py", line 1039, in _frame_vip_ips
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver     if netaddr.IPNetwork(lb_vip).version == 6:
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver   File "/usr/lib/python3.6/site-packages/netaddr/ip/__init__.py", line 938, in __init__
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver     raise AddrFormatError('invalid IPNetwork %s' % addr)
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver netaddr.core.AddrFormatError: invalid IPNetwork [fd2e:6f44:5dd8:c956::3b4]
      2024-02-06 15:28:23.072 13 ERROR networking_ovn.octavia.ovn_driver
      

      However, this behaviour is only observed by the LB created through the openshift-ingress. Other tc that is creating a loadbalancer serviceType in ipv6 it's working fine, for example:

      $ make openstack-tests && KUBECONFIG=~/.kube/config ./openstack-tests run-test "[sig-installer][Suite:openshift/openstack][lb][Serial] The Openstack platform should create a UDP OVN LoadBalancer when a UDP svc with type:LoadBalancer is created on Openshift"
      make: 'openstack-tests' is up to date.
        Feb  6 09:29:12.460: INFO: Enabling in-tree volume drivers
        Feb  6 09:29:12.954: INFO: configPath is now "/tmp/configfile48504311"
        Feb  6 09:29:12.954: INFO: The user is now "e2e-test-openstack-shwmj-user"
        Feb  6 09:29:12.954: INFO: Creating project "e2e-test-openstack-shwmj"
        Feb  6 09:29:13.275: INFO: Waiting on permissions in project "e2e-test-openstack-shwmj" ...
        Feb  6 09:29:13.504: INFO: Waiting for ServiceAccount "default" to be provisioned...
        Feb  6 09:29:13.615: INFO: Waiting for ServiceAccount "deployer" to be provisioned...
        Feb  6 09:29:13.736: INFO: Waiting for ServiceAccount "builder" to be provisioned...
        Feb  6 09:29:13.851: INFO: Waiting for RoleBinding "system:image-pullers" to be provisioned...
        Feb  6 09:29:13.864: INFO: Waiting for RoleBinding "system:image-builders" to be provisioned...
        Feb  6 09:29:13.945: INFO: Waiting for RoleBinding "system:deployers" to be provisioned...
        Feb  6 09:29:14.366: INFO: Project "e2e-test-openstack-shwmj" has been fully provisioned.
        Feb  6 09:29:15.054: INFO: deployment status: v1.DeploymentStatus{ObservedGeneration:0, Replicas:0, UpdatedReplicas:0, ReadyReplicas:0, AvailableReplicas:0, UnavailableReplicas:0, Conditions:[]v1.DeploymentCondition(nil), CollisionCount:(*int32)(nil)}
        Feb  6 09:29:17.064: INFO: deployment status: v1.DeploymentStatus{ObservedGeneration:1, Replicas:2, UpdatedReplicas:2, ReadyReplicas:0, AvailableReplicas:0, UnavailableReplicas:2, Conditions:[]v1.DeploymentCondition{v1.DeploymentCondition{Type:"Available", Status:"False", LastUpdateTime:time.Date(2024, time.February, 6, 9, 29, 15, 0, time.Local), LastTransitionTime:time.Date(2024, time.February, 6, 9, 29, 15, 0, time.Local), Reason:"MinimumReplicasUnavailable", Message:"Deployment does not have minimum availability."}, v1.DeploymentCondition{Type:"Progressing", Status:"True", LastUpdateTime:time.Date(2024, time.February, 6, 9, 29, 15, 0, time.Local), LastTransitionTime:time.Date(2024, time.February, 6,
      9, 29, 15, 0, time.Local), Reason:"ReplicaSetUpdated", Message:"ReplicaSet \"lb-default-dep-749c7dd84d\" is progressing."}}, CollisionCount:(*int32)(nil)}                                                                                   
        Feb  6 09:29:19.069: INFO: deployment status: v1.DeploymentStatus{ObservedGeneration:1, Replicas:2, UpdatedReplicas:2, ReadyReplicas:0, AvailableReplicas:0, UnavailableReplicas:2, Conditions:[]v1.DeploymentCondition{v1.DeploymentCondition{Type:"Available", Status:"False", LastUpdateTime:time.Date(2024, time.February, 6, 9, 29, 15, 0, time.Local), LastTransitionTime:time.Date(2024, time.February, 6, 9, 29, 15, 0, time.Local), Reason:"MinimumReplicasUnavailable", Message:"Deployment does not have minimum availability."}, v1.DeploymentCondition{Type:"Progressing", Status:"True", LastUpdateTime:time.Date(2024, time.February, 6, 9, 29, 15, 0, time.Local), LastTransitionTime:time.Date(2024, time.February, 6,
      9, 29, 15, 0, time.Local), Reason:"ReplicaSetUpdated", Message:"ReplicaSet \"lb-default-dep-749c7dd84d\" is progressing."}}, CollisionCount:(*int32)(nil)}                                                                                   
        Feb  6 09:29:21.245: INFO: Waiting up to 10m0s for service "lb-default-svc" to have a LoadBalancer
        Feb  6 09:29:31.554: INFO: Waiting for 6 members matching status NO_MONITOR|ONLINE in the pool pool_0_kube_service_kubernetes_e2e-test-openstack-shwmj_lb-default-svc                                                                      
        Feb  6 09:29:47.352: INFO: Found expected number of NO_MONITOR|ONLINE members, checking again 5 seconds later to confirm that it is stable                                                                                                 
        Feb  6 09:29:52.872: INFO: Wait completed, NO_MONITOR|ONLINE members found: ["ostest-qvxqg-master-2" "ostest-qvxqg-master-1" "ostest-qvxqg-worker-0-fnk9m" "ostest-qvxqg-worker-0-njvpg" "ostest-qvxqg-master-0" "ostest-qvxqg-worker-0-lmv7g"]
        Feb  6 09:29:53.240: INFO: Pods accessed after 100 requests:
        map[lb-default-dep-749c7dd84d-6j6k8:48 lb-default-dep-749c7dd84d-kjvnn:52]
      
        Feb  6 09:29:53.258: INFO: Checking if pod "lb-default-dep-749c7dd84d-6j6k8" has been accessed at least 30 number of times...                                                                                                              
        Feb  6 09:29:53.258: INFO: Checking if pod "lb-default-dep-749c7dd84d-kjvnn" has been accessed at least 30 number of times...                                                                                                              
        Feb  6 09:29:53.281: INFO: Deleted {user.openshift.io/v1, Resource=users  e2e-test-openstack-shwmj-user}, err: <nil>
        Feb  6 09:29:53.331: INFO: Deleted {oauth.openshift.io/v1, Resource=oauthclients  e2e-client-e2e-test-openstack-shwmj}, err: <nil>                                                                                                         
        Feb  6 09:29:53.352: INFO: Deleted {oauth.openshift.io/v1, Resource=oauthaccesstokens  sha256~j1Ji4c-VHrdkSG_MexljLtH4fUGLq1CDq-hwbwvJP_g}, err: <nil>                           
      

            sfinucan@redhat.com Stephen Finucane
            rlobillo Ramón Lobillo
            Itshak Brown Itshak Brown
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: