You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently there is no full support for full dual-stack in AKO. For ingress-services running in ClusterIP mode it is fully working. Running AKO in NodePort-mode does not currently support dual-stack for backend servers. It does create a vip with both IPv4 and IPv6 where the IPv6 address is unusable without any IPv6 backend servers.
I believe this is due to the logic found in this file: internal/nodes/avi_model_l4_translator.go and functions PopulateServersForNPL, PopulateServersForNodePort and PopulateServers.
In the following code-snippet for PopulateServersForNodePort it will always populate the poolMeta with either an IPv4
or IPv6 address due to using if/else if. It will never return both an IPv4 and IPv6 address that is intended when running in dual-stack mode.
I don't see any reason why it could not be 2 if-statements where both addresses gets appended to the poolMeta. I will try to make a fix myself and try it in a test-cluster if there are any issues with this approach.
Symptoms is that the error: "expected IPv6 servers but found none" will always display even in the cases where there is a valid IPv4 and IPv6 address present on the node.
Reproduction steps
Run AKO(1.12 or later) in a dual-stack cluster with NodePort mode and IP_FAMILY = V4_V6
Deploy any dual-stack LoadBalancer service.
IPv4 and IPv6 addresses get allocated to the VIP but only IPv4 addresses get added to the pool in AVI.
Expected behavior
The expected behavior is that both vip and backend servers are populated with IPv4 and IPv6 addresses from InternalIP of the node.
Additional context
No response
The text was updated successfully, but these errors were encountered:
Describe the bug
Currently there is no full support for full dual-stack in AKO. For ingress-services running in ClusterIP mode it is fully working. Running AKO in NodePort-mode does not currently support dual-stack for backend servers. It does create a vip with both IPv4 and IPv6 where the IPv6 address is unusable without any IPv6 backend servers.
I believe this is due to the logic found in this file: internal/nodes/avi_model_l4_translator.go and functions PopulateServersForNPL, PopulateServersForNodePort and PopulateServers.
In the following code-snippet for PopulateServersForNodePort it will always populate the poolMeta with either an IPv4
or IPv6 address due to using if/else if. It will never return both an IPv4 and IPv6 address that is intended when running in dual-stack mode.
I don't see any reason why it could not be 2 if-statements where both addresses gets appended to the poolMeta. I will try to make a fix myself and try it in a test-cluster if there are any issues with this approach.
avi_model_l4_translator.go #L457
Proposed fix:
Symptoms is that the error: "expected IPv6 servers but found none" will always display even in the cases where there is a valid IPv4 and IPv6 address present on the node.
Reproduction steps
Expected behavior
The expected behavior is that both vip and backend servers are populated with IPv4 and IPv6 addresses from InternalIP of the node.
Additional context
No response
The text was updated successfully, but these errors were encountered: