Ipv6-only is supported in k8s since 1.9, but still in "alpha" (due to lack of e2e testing), but the work with dual-stack is under way and ipv6 should be supported.
Support of ipv6 is not so hard in golang, most network functions are already dual-stack. For kube-static-egress-ip I think it may be possible to be dual-stack compliant right from start. The dual-stack KEP proposes different services for ipv4 and ipv6. kube-static-egress-ip can probably be supporting both depending on the address format. I don't think the CRD have to be altered.
For calls to ip rule/route a -6 parameter must be added but otherwise the calls are similar. ip6tables must be used instead of iptables but otherwise the calls are similar. Ipset is a bit of a problem because different set's must be created that differs in name, e.g. a ipv6: prefix, and note, the ipset names must be <32 characters.
Ipv6-only is supported in k8s since 1.9, but still in "alpha" (due to lack of e2e testing), but the work with dual-stack is under way and ipv6 should be supported.
Support of ipv6 is not so hard in golang, most network functions are already dual-stack. For kube-static-egress-ip I think it may be possible to be dual-stack compliant right from start. The dual-stack KEP proposes different services for ipv4 and ipv6. kube-static-egress-ip can probably be supporting both depending on the address format. I don't think the CRD have to be altered.
For calls to ip rule/route a
-6
parameter must be added but otherwise the calls are similar.ip6tables
must be used instead ofiptables
but otherwise the calls are similar.Ipset
is a bit of a problem because different set's must be created that differs in name, e.g. aipv6:
prefix, and note, the ipset names must be <32 characters.