kubernetes/pkg/proxy
Khaled Henidak (Kal) 6675eba3ef
dual stack services (#91824)
* api: structure change

* api: defaulting, conversion, and validation

* [FIX] validation: auto remove second ip/family when service changes to SingleStack

* [FIX] api: defaulting, conversion, and validation

* api-server: clusterIPs alloc, printers, storage and strategy

* [FIX] clusterIPs default on read

* alloc: auto remove second ip/family when service changes to SingleStack

* api-server: repair loop handling for clusterIPs

* api-server: force kubernetes default service into single stack

* api-server: tie dualstack feature flag with endpoint feature flag

* controller-manager: feature flag, endpoint, and endpointSlice controllers handling multi family service

* [FIX] controller-manager: feature flag, endpoint, and endpointSlicecontrollers handling multi family service

* kube-proxy: feature-flag, utils, proxier, and meta proxier

* [FIX] kubeproxy: call both proxier at the same time

* kubenet: remove forced pod IP sorting

* kubectl: modify describe to include ClusterIPs, IPFamilies, and IPFamilyPolicy

* e2e: fix tests that depends on IPFamily field AND add dual stack tests

* e2e: fix expected error message for ClusterIP immutability

* add integration tests for dualstack

the third phase of dual stack is a very complex change in the API,
basically it introduces Dual Stack services. Main changes are:

- It pluralizes the Service IPFamily field to IPFamilies,
and removes the singular field.
- It introduces a new field IPFamilyPolicyType that can take
3 values to express the "dual-stack(mad)ness" of the cluster:
SingleStack, PreferDualStack and RequireDualStack
- It pluralizes ClusterIP to ClusterIPs.

The goal is to add coverage to the services API operations,
taking into account the 6 different modes a cluster can have:

- single stack: IP4 or IPv6 (as of today)
- dual stack: IPv4 only, IPv6 only, IPv4 - IPv6, IPv6 - IPv4

* [FIX] add integration tests for dualstack

* generated data

* generated files

Co-authored-by: Antonio Ojea <aojea@redhat.com>
2020-10-26 13:15:59 -07:00
..
apis dual stack services (#91824) 2020-10-26 13:15:59 -07:00
config Run hack/update-vendor.sh 2020-05-16 07:54:33 -04:00
healthcheck Run hack/update-vendor.sh 2020-05-16 07:54:33 -04:00
iptables dual stack services (#91824) 2020-10-26 13:15:59 -07:00
ipvs dual stack services (#91824) 2020-10-26 13:15:59 -07:00
metaproxier dual stack services (#91824) 2020-10-26 13:15:59 -07:00
metrics pkg/proxy: add last-queued-timestamp metric 2020-04-21 15:19:32 +02:00
userspace update-bazel 2020-09-18 00:44:39 +00:00
util dual stack services (#91824) 2020-10-26 13:15:59 -07:00
winkernel dual stack services (#91824) 2020-10-26 13:15:59 -07:00
winuserspace Run hack/update-vendor.sh 2020-05-16 07:54:33 -04:00
BUILD Run hack/update-vendor.sh 2020-05-16 07:54:33 -04:00
doc.go
endpoints_test.go dual stack services (#91824) 2020-10-26 13:15:59 -07:00
endpoints.go dual stack services (#91824) 2020-10-26 13:15:59 -07:00
endpointslicecache_test.go dual stack services (#91824) 2020-10-26 13:15:59 -07:00
endpointslicecache.go dual stack services (#91824) 2020-10-26 13:15:59 -07:00
OWNERS pkg/proxy: add sig-network-approvers/sig-network-reviewers to OWNERS files 2019-05-13 10:30:29 -05:00
service_test.go dual stack services (#91824) 2020-10-26 13:15:59 -07:00
service.go dual stack services (#91824) 2020-10-26 13:15:59 -07:00
topology_test.go Service Topology implementation 2019-11-15 13:36:43 +08:00
topology.go Service Topology implementation 2019-11-15 13:36:43 +08:00
types.go kube-proxy: log service and endpoint updates 2020-04-10 15:29:44 -07:00