diff --git a/cmd/kube-proxy/app/server.go b/cmd/kube-proxy/app/server.go index 0b582582fec..b31fa216575 100644 --- a/cmd/kube-proxy/app/server.go +++ b/cmd/kube-proxy/app/server.go @@ -736,7 +736,7 @@ func (s *ProxyServer) Run() error { go serviceConfig.Run(wait.NeverStop) if s.UseEndpointSlices { - endpointSliceConfig := config.NewEndpointSliceConfig(informerFactory.Discovery().V1beta1().EndpointSlices(), s.ConfigSyncPeriod) + endpointSliceConfig := config.NewEndpointSliceConfig(informerFactory.Discovery().V1().EndpointSlices(), s.ConfigSyncPeriod) endpointSliceConfig.RegisterEventHandler(s.Proxier) go endpointSliceConfig.Run(wait.NeverStop) } else { diff --git a/pkg/proxy/config/config.go b/pkg/proxy/config/config.go index 129c22a8958..bcca0549eca 100644 --- a/pkg/proxy/config/config.go +++ b/pkg/proxy/config/config.go @@ -21,10 +21,10 @@ import ( "time" v1 "k8s.io/api/core/v1" - discovery "k8s.io/api/discovery/v1beta1" + discovery "k8s.io/api/discovery/v1" utilruntime "k8s.io/apimachinery/pkg/util/runtime" coreinformers "k8s.io/client-go/informers/core/v1" - discoveryinformers "k8s.io/client-go/informers/discovery/v1beta1" + discoveryinformers "k8s.io/client-go/informers/discovery/v1" "k8s.io/client-go/tools/cache" "k8s.io/klog/v2" ) diff --git a/pkg/proxy/endpoints.go b/pkg/proxy/endpoints.go index af1be874932..c3433a48619 100644 --- a/pkg/proxy/endpoints.go +++ b/pkg/proxy/endpoints.go @@ -26,7 +26,7 @@ import ( "k8s.io/klog/v2" v1 "k8s.io/api/core/v1" - discovery "k8s.io/api/discovery/v1beta1" + discovery "k8s.io/api/discovery/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/client-go/tools/record" @@ -47,8 +47,7 @@ var supportedEndpointSliceAddressTypes = sets.NewString( type BaseEndpointInfo struct { Endpoint string // TODO: should be an endpointString type // IsLocal indicates whether the endpoint is running in same host as kube-proxy. - IsLocal bool - Topology map[string]string + IsLocal bool // ZoneHints represent the zone hints for the endpoint. This is based on // endpoint.hints.forZones[*].name in the EndpointSlice API. @@ -69,6 +68,11 @@ type BaseEndpointInfo struct { // This is only set when watching EndpointSlices. If using Endpoints, this is always // false since terminating endpoints are always excluded from Endpoints. Terminating bool + + // NodeName is the name of the node this endpoint belongs to + NodeName string + // Zone is the name of the zone this endpoint belongs to + Zone string } var _ Endpoint = &BaseEndpointInfo{} @@ -100,11 +104,6 @@ func (info *BaseEndpointInfo) IsTerminating() bool { return info.Terminating } -// GetTopology returns the topology information of the endpoint. -func (info *BaseEndpointInfo) GetTopology() map[string]string { - return info.Topology -} - // GetZoneHints returns the zone hint for the endpoint. func (info *BaseEndpointInfo) GetZoneHints() sets.String { return info.ZoneHints @@ -125,16 +124,27 @@ func (info *BaseEndpointInfo) Equal(other Endpoint) bool { return info.String() == other.String() && info.GetIsLocal() == other.GetIsLocal() } -func newBaseEndpointInfo(IP string, port int, isLocal bool, topology map[string]string, +// GetNodeName returns the NodeName for this endpoint. +func (info *BaseEndpointInfo) GetNodeName() string { + return info.NodeName +} + +// GetZone returns the Zone for this endpoint. +func (info *BaseEndpointInfo) GetZone() string { + return info.Zone +} + +func newBaseEndpointInfo(IP, nodeName, zone string, port int, isLocal bool, ready, serving, terminating bool, zoneHints sets.String) *BaseEndpointInfo { return &BaseEndpointInfo{ Endpoint: net.JoinHostPort(IP, strconv.Itoa(port)), IsLocal: isLocal, - Topology: topology, Ready: ready, Serving: serving, Terminating: terminating, ZoneHints: zoneHints, + NodeName: nodeName, + Zone: zone, } } @@ -441,11 +451,17 @@ func (ect *EndpointChangeTracker) endpointsToEndpointsMap(endpoints *v1.Endpoint isReady := true isServing := true isTerminating := false - isLocal := addr.NodeName != nil && *addr.NodeName == ect.hostname + isLocal := false + nodeName := "" + if addr.NodeName != nil { + isLocal = *addr.NodeName == ect.hostname + nodeName = *addr.NodeName + } // Only supported with EndpointSlice API zoneHints := sets.String{} - baseEndpointInfo := newBaseEndpointInfo(addr.IP, int(port.Port), isLocal, nil, isReady, isServing, isTerminating, zoneHints) + // Zone information is only supported with EndpointSlice API + baseEndpointInfo := newBaseEndpointInfo(addr.IP, nodeName, "", int(port.Port), isLocal, isReady, isServing, isTerminating, zoneHints) if ect.makeEndpointInfo != nil { endpointsMap[svcPortName] = append(endpointsMap[svcPortName], ect.makeEndpointInfo(baseEndpointInfo)) } else { diff --git a/pkg/proxy/endpoints_test.go b/pkg/proxy/endpoints_test.go index a5c678cae77..8d560ea1469 100644 --- a/pkg/proxy/endpoints_test.go +++ b/pkg/proxy/endpoints_test.go @@ -24,7 +24,7 @@ import ( "github.com/davecgh/go-spew/spew" v1 "k8s.io/api/core/v1" - discovery "k8s.io/api/discovery/v1beta1" + discovery "k8s.io/api/discovery/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/sets" @@ -1952,9 +1952,7 @@ func compareEndpointsMapsStr(t *testing.T, newMap EndpointsMap, expected map[Ser func newTestEp(ep, host string, ready, serving, terminating bool) *BaseEndpointInfo { endpointInfo := &BaseEndpointInfo{Endpoint: ep, Ready: ready, Serving: serving, Terminating: terminating} if host != "" { - endpointInfo.Topology = map[string]string{ - "kubernetes.io/hostname": host, - } + endpointInfo.NodeName = host } return endpointInfo } diff --git a/pkg/proxy/endpointslicecache.go b/pkg/proxy/endpointslicecache.go index 58f8ef3fbc0..1115673f382 100644 --- a/pkg/proxy/endpointslicecache.go +++ b/pkg/proxy/endpointslicecache.go @@ -24,7 +24,7 @@ import ( "sync" v1 "k8s.io/api/core/v1" - discovery "k8s.io/api/discovery/v1beta1" + discovery "k8s.io/api/discovery/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/sets" utilfeature "k8s.io/apiserver/pkg/util/feature" @@ -76,11 +76,11 @@ type endpointSliceInfo struct { // endpointInfo contains just the attributes kube-proxy cares about. // Used for caching. Intentionally small to limit memory util. -// Addresses and Topology are copied from EndpointSlice Endpoints. +// Addresses, NodeName, and Zone are copied from EndpointSlice Endpoints. type endpointInfo struct { Addresses []string NodeName *string - Topology map[string]string + Zone *string ZoneHints sets.String Ready bool @@ -130,7 +130,8 @@ func newEndpointSliceInfo(endpointSlice *discovery.EndpointSlice, remove bool) * for _, endpoint := range endpointSlice.Endpoints { epInfo := &endpointInfo{ Addresses: endpoint.Addresses, - Topology: endpoint.Topology, + Zone: endpoint.Zone, + NodeName: endpoint.NodeName, // conditions Ready: endpoint.Conditions.Ready == nil || *endpoint.Conditions.Ready, @@ -138,8 +139,6 @@ func newEndpointSliceInfo(endpointSlice *discovery.EndpointSlice, remove bool) * Terminating: endpoint.Conditions.Terminating != nil && *endpoint.Conditions.Terminating, } - epInfo.NodeName = endpoint.NodeName - if utilfeature.DefaultFeatureGate.Enabled(features.TopologyAwareHints) { if endpoint.Hints != nil && len(endpoint.Hints.ForZones) > 0 { epInfo.ZoneHints = sets.String{} @@ -281,13 +280,18 @@ func (cache *EndpointSliceCache) addEndpoints(serviceNN types.NamespacedName, po } isLocal := false + nodeName := "" if endpoint.NodeName != nil { isLocal = cache.isLocal(*endpoint.NodeName) - } else { - isLocal = cache.isLocal(endpoint.Topology[v1.LabelHostname]) + nodeName = *endpoint.NodeName } - endpointInfo := newBaseEndpointInfo(endpoint.Addresses[0], portNum, isLocal, endpoint.Topology, + zone := "" + if endpoint.Zone != nil { + zone = *endpoint.Zone + } + + endpointInfo := newBaseEndpointInfo(endpoint.Addresses[0], nodeName, zone, portNum, isLocal, endpoint.Ready, endpoint.Serving, endpoint.Terminating, endpoint.ZoneHints) // This logic ensures we're deduplicating potential overlapping endpoints diff --git a/pkg/proxy/endpointslicecache_test.go b/pkg/proxy/endpointslicecache_test.go index 360c23a6e6f..dd1e639dd7a 100644 --- a/pkg/proxy/endpointslicecache_test.go +++ b/pkg/proxy/endpointslicecache_test.go @@ -21,8 +21,8 @@ import ( "reflect" "testing" - "k8s.io/api/core/v1" - discovery "k8s.io/api/discovery/v1beta1" + v1 "k8s.io/api/core/v1" + discovery "k8s.io/api/discovery/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" @@ -235,7 +235,7 @@ func TestEndpointInfoByServicePort(t *testing.T) { "10.0.1.1:80": &BaseEndpointInfo{ Endpoint: "10.0.1.1:80", IsLocal: false, - Topology: map[string]string{"kubernetes.io/hostname": "host2"}, + NodeName: "host2", Ready: true, Serving: true, Terminating: false, @@ -243,7 +243,7 @@ func TestEndpointInfoByServicePort(t *testing.T) { "10.0.1.2:80": &BaseEndpointInfo{ Endpoint: "10.0.1.2:80", IsLocal: true, - Topology: map[string]string{"kubernetes.io/hostname": "host1"}, + NodeName: "host1", Ready: true, Serving: true, Terminating: false, @@ -251,7 +251,7 @@ func TestEndpointInfoByServicePort(t *testing.T) { "10.0.1.3:80": &BaseEndpointInfo{ Endpoint: "10.0.1.3:80", IsLocal: false, - Topology: map[string]string{"kubernetes.io/hostname": "host2"}, + NodeName: "host2", Ready: true, Serving: true, Terminating: false, @@ -271,7 +271,7 @@ func TestEndpointInfoByServicePort(t *testing.T) { "10.0.1.1:80": &BaseEndpointInfo{ Endpoint: "10.0.1.1:80", IsLocal: false, - Topology: map[string]string{"kubernetes.io/hostname": "host2"}, + NodeName: "host2", Ready: true, Serving: true, Terminating: false, @@ -279,7 +279,7 @@ func TestEndpointInfoByServicePort(t *testing.T) { "10.0.1.2:80": &BaseEndpointInfo{ Endpoint: "10.0.1.2:80", IsLocal: true, - Topology: map[string]string{"kubernetes.io/hostname": "host1"}, + NodeName: "host1", Ready: true, Serving: true, Terminating: false, @@ -287,7 +287,7 @@ func TestEndpointInfoByServicePort(t *testing.T) { "10.0.1.1:8080": &BaseEndpointInfo{ Endpoint: "10.0.1.1:8080", IsLocal: false, - Topology: map[string]string{"kubernetes.io/hostname": "host2"}, + NodeName: "host2", Ready: true, Serving: true, Terminating: false, @@ -295,7 +295,7 @@ func TestEndpointInfoByServicePort(t *testing.T) { "10.0.1.2:8080": &BaseEndpointInfo{ Endpoint: "10.0.1.2:8080", IsLocal: true, - Topology: map[string]string{"kubernetes.io/hostname": "host1"}, + NodeName: "host1", Ready: true, Serving: true, Terminating: false, @@ -500,9 +500,8 @@ func generateEndpointSliceWithOffset(serviceName, namespace string, sliceNum, of } if len(hosts) > 0 { - endpoint.Topology = map[string]string{ - "kubernetes.io/hostname": hosts[i%len(hosts)], - } + hostname := hosts[i%len(hosts)] + endpoint.NodeName = &hostname } endpointSlice.Endpoints = append(endpointSlice.Endpoints, endpoint) diff --git a/pkg/proxy/iptables/proxier.go b/pkg/proxy/iptables/proxier.go index 6a1ca47b21f..6502cf5125a 100644 --- a/pkg/proxy/iptables/proxier.go +++ b/pkg/proxy/iptables/proxier.go @@ -34,7 +34,7 @@ import ( "time" v1 "k8s.io/api/core/v1" - discovery "k8s.io/api/discovery/v1beta1" + discovery "k8s.io/api/discovery/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/wait" diff --git a/pkg/proxy/iptables/proxier_test.go b/pkg/proxy/iptables/proxier_test.go index ba4f8aa544c..5cfdb63df5d 100644 --- a/pkg/proxy/iptables/proxier_test.go +++ b/pkg/proxy/iptables/proxier_test.go @@ -29,7 +29,7 @@ import ( "github.com/stretchr/testify/assert" v1 "k8s.io/api/core/v1" - discovery "k8s.io/api/discovery/v1beta1" + discovery "k8s.io/api/discovery/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/intstr" @@ -3023,19 +3023,19 @@ COMMIT Endpoints: []discovery.Endpoint{{ Addresses: []string{"10.0.1.1"}, Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)}, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.2"}, Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)}, - Topology: map[string]string{"kubernetes.io/hostname": "node2"}, + NodeName: utilpointer.StringPtr("node2"), }, { Addresses: []string{"10.0.1.3"}, Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)}, - Topology: map[string]string{"kubernetes.io/hostname": "node3"}, + NodeName: utilpointer.StringPtr("node3"), }, { Addresses: []string{"10.0.1.4"}, Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(false)}, - Topology: map[string]string{"kubernetes.io/hostname": "node4"}, + NodeName: utilpointer.StringPtr("node4"), }}, } @@ -3136,19 +3136,19 @@ COMMIT Endpoints: []discovery.Endpoint{{ Addresses: []string{"10.0.1.1"}, Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)}, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.2"}, Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)}, - Topology: map[string]string{"kubernetes.io/hostname": "node2"}, + NodeName: utilpointer.StringPtr("node2"), }, { Addresses: []string{"10.0.1.3"}, Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)}, - Topology: map[string]string{"kubernetes.io/hostname": "node3"}, + NodeName: utilpointer.StringPtr("node3"), }, { Addresses: []string{"10.0.1.4"}, Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(false)}, - Topology: map[string]string{"kubernetes.io/hostname": "node4"}, + NodeName: utilpointer.StringPtr("node4"), }}, } fp.OnEndpointSliceAdd(endpointSlice) @@ -3196,19 +3196,19 @@ func Test_HealthCheckNodePortWhenTerminating(t *testing.T) { Endpoints: []discovery.Endpoint{{ Addresses: []string{"10.0.1.1"}, Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)}, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.2"}, Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)}, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.3"}, Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)}, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { // not ready endpoints should be ignored Addresses: []string{"10.0.1.4"}, Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(false)}, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }}, } @@ -3238,7 +3238,7 @@ func Test_HealthCheckNodePortWhenTerminating(t *testing.T) { Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(false), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.2"}, Conditions: discovery.EndpointConditions{ @@ -3246,7 +3246,7 @@ func Test_HealthCheckNodePortWhenTerminating(t *testing.T) { Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.3"}, Conditions: discovery.EndpointConditions{ @@ -3254,7 +3254,7 @@ func Test_HealthCheckNodePortWhenTerminating(t *testing.T) { Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { // not ready endpoints should be ignored Addresses: []string{"10.0.1.4"}, Conditions: discovery.EndpointConditions{ @@ -3262,7 +3262,7 @@ func Test_HealthCheckNodePortWhenTerminating(t *testing.T) { Serving: utilpointer.BoolPtr(false), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }}, } @@ -3679,7 +3679,7 @@ COMMIT endpointSlice.Endpoints = append(endpointSlice.Endpoints, discovery.Endpoint{ Addresses: []string{ep.ip}, Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)}, - Topology: map[string]string{"kubernetes.io/hostname": ep.hostname}, + NodeName: utilpointer.StringPtr(ep.hostname), }) } @@ -3746,7 +3746,7 @@ func Test_EndpointSliceWithTerminatingEndpoints(t *testing.T) { Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(false), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.2"}, @@ -3755,7 +3755,7 @@ func Test_EndpointSliceWithTerminatingEndpoints(t *testing.T) { Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(false), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { // this endpoint should be ignored for node ports since there are ready non-terminating endpoints @@ -3765,7 +3765,7 @@ func Test_EndpointSliceWithTerminatingEndpoints(t *testing.T) { Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { // this endpoint should be ignored for node ports since there are ready non-terminating endpoints @@ -3775,7 +3775,7 @@ func Test_EndpointSliceWithTerminatingEndpoints(t *testing.T) { Serving: utilpointer.BoolPtr(false), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { // this endpoint should be ignored for node ports since it's not local @@ -3785,7 +3785,7 @@ func Test_EndpointSliceWithTerminatingEndpoints(t *testing.T) { Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(false), }, - Topology: map[string]string{"kubernetes.io/hostname": "host-1"}, + NodeName: utilpointer.StringPtr("host-1"), }, }, }, @@ -3879,7 +3879,7 @@ COMMIT Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(false), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.2"}, @@ -3888,7 +3888,7 @@ COMMIT Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(false), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { // this endpoint should be ignored for node ports since there are ready non-terminating endpoints @@ -3898,7 +3898,7 @@ COMMIT Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { // this endpoint should be ignored for node ports since there are ready non-terminating endpoints @@ -3908,7 +3908,7 @@ COMMIT Serving: utilpointer.BoolPtr(false), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { // this endpoint should be ignored for node ports since it's not local @@ -3918,7 +3918,7 @@ COMMIT Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(false), }, - Topology: map[string]string{"kubernetes.io/hostname": "host-1"}, + NodeName: utilpointer.StringPtr("host-1"), }, }, }, @@ -4013,7 +4013,7 @@ COMMIT Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { // this endpoint should be used since there are only ready terminating endpoints @@ -4023,7 +4023,7 @@ COMMIT Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { // this endpoint should not be used since it is both terminating and not ready. @@ -4033,7 +4033,7 @@ COMMIT Serving: utilpointer.BoolPtr(false), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { // this endpoint should be ignored for node ports since it's not local @@ -4043,7 +4043,7 @@ COMMIT Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(false), }, - Topology: map[string]string{"kubernetes.io/hostname": "host-1"}, + NodeName: utilpointer.StringPtr("host-1"), }, }, }, @@ -4132,7 +4132,7 @@ COMMIT Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.2"}, @@ -4141,7 +4141,7 @@ COMMIT Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.3"}, @@ -4150,7 +4150,7 @@ COMMIT Serving: utilpointer.BoolPtr(false), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.4"}, @@ -4159,7 +4159,7 @@ COMMIT Serving: utilpointer.BoolPtr(false), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.5"}, @@ -4168,7 +4168,7 @@ COMMIT Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(false), }, - Topology: map[string]string{"kubernetes.io/hostname": "host-1"}, + NodeName: utilpointer.StringPtr("host-1"), }, }, }, diff --git a/pkg/proxy/ipvs/proxier.go b/pkg/proxy/ipvs/proxier.go index 064c88d2a2b..31f08e029d0 100644 --- a/pkg/proxy/ipvs/proxier.go +++ b/pkg/proxy/ipvs/proxier.go @@ -37,7 +37,7 @@ import ( utilnet "k8s.io/utils/net" v1 "k8s.io/api/core/v1" - discovery "k8s.io/api/discovery/v1beta1" + discovery "k8s.io/api/discovery/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/version" diff --git a/pkg/proxy/ipvs/proxier_test.go b/pkg/proxy/ipvs/proxier_test.go index c0e5bd6a8bd..20611ea1c87 100644 --- a/pkg/proxy/ipvs/proxier_test.go +++ b/pkg/proxy/ipvs/proxier_test.go @@ -28,7 +28,7 @@ import ( "github.com/stretchr/testify/assert" v1 "k8s.io/api/core/v1" - discovery "k8s.io/api/discovery/v1beta1" + discovery "k8s.io/api/discovery/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/intstr" @@ -2973,12 +2973,12 @@ func Test_updateEndpointsMap(t *testing.T) { }, oldEndpoints: map[proxy.ServicePortName][]*proxy.BaseEndpointInfo{ makeServicePortName("ns1", "ep1", "p11", v1.ProtocolUDP): { - {Endpoint: "1.1.1.1:11", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "1.1.1.1:11", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, }, expectedResult: map[proxy.ServicePortName][]*proxy.BaseEndpointInfo{ makeServicePortName("ns1", "ep1", "p11", v1.ProtocolUDP): { - {Endpoint: "1.1.1.1:11", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "1.1.1.1:11", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, }, expectedStaleEndpoints: []proxy.ServiceEndpoint{}, @@ -3023,10 +3023,10 @@ func Test_updateEndpointsMap(t *testing.T) { }, oldEndpoints: map[proxy.ServicePortName][]*proxy.BaseEndpointInfo{ makeServicePortName("ns1", "ep1", "p11", v1.ProtocolUDP): { - {Endpoint: "1.1.1.1:11", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "1.1.1.1:11", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, makeServicePortName("ns1", "ep1", "p12", v1.ProtocolUDP): { - {Endpoint: "1.1.1.1:12", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "1.1.1.1:12", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, makeServicePortName("ns1", "ep1", "p13", v1.ProtocolUDP): { {Endpoint: "1.1.1.3:13", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, @@ -3034,10 +3034,10 @@ func Test_updateEndpointsMap(t *testing.T) { }, expectedResult: map[proxy.ServicePortName][]*proxy.BaseEndpointInfo{ makeServicePortName("ns1", "ep1", "p11", v1.ProtocolUDP): { - {Endpoint: "1.1.1.1:11", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "1.1.1.1:11", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, makeServicePortName("ns1", "ep1", "p12", v1.ProtocolUDP): { - {Endpoint: "1.1.1.1:12", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "1.1.1.1:12", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, makeServicePortName("ns1", "ep1", "p13", v1.ProtocolUDP): { {Endpoint: "1.1.1.3:13", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, @@ -3061,53 +3061,53 @@ func Test_updateEndpointsMap(t *testing.T) { oldEndpoints: map[proxy.ServicePortName][]*proxy.BaseEndpointInfo{ makeServicePortName("ns1", "ep1", "p11", v1.ProtocolUDP): { {Endpoint: "1.1.1.1:11", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, - {Endpoint: "1.1.1.2:11", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "1.1.1.2:11", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, makeServicePortName("ns1", "ep1", "p12", v1.ProtocolUDP): { {Endpoint: "1.1.1.1:12", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, - {Endpoint: "1.1.1.2:12", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "1.1.1.2:12", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, makeServicePortName("ns1", "ep1", "p13", v1.ProtocolUDP): { {Endpoint: "1.1.1.3:13", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, - {Endpoint: "1.1.1.4:13", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "1.1.1.4:13", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, makeServicePortName("ns1", "ep1", "p14", v1.ProtocolUDP): { {Endpoint: "1.1.1.3:14", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, - {Endpoint: "1.1.1.4:14", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "1.1.1.4:14", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, makeServicePortName("ns2", "ep2", "p21", v1.ProtocolUDP): { {Endpoint: "2.2.2.1:21", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, - {Endpoint: "2.2.2.2:21", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "2.2.2.2:21", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, makeServicePortName("ns2", "ep2", "p22", v1.ProtocolUDP): { {Endpoint: "2.2.2.1:22", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, - {Endpoint: "2.2.2.2:22", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "2.2.2.2:22", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, }, expectedResult: map[proxy.ServicePortName][]*proxy.BaseEndpointInfo{ makeServicePortName("ns1", "ep1", "p11", v1.ProtocolUDP): { {Endpoint: "1.1.1.1:11", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, - {Endpoint: "1.1.1.2:11", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "1.1.1.2:11", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, makeServicePortName("ns1", "ep1", "p12", v1.ProtocolUDP): { {Endpoint: "1.1.1.1:12", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, - {Endpoint: "1.1.1.2:12", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "1.1.1.2:12", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, makeServicePortName("ns1", "ep1", "p13", v1.ProtocolUDP): { {Endpoint: "1.1.1.3:13", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, - {Endpoint: "1.1.1.4:13", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "1.1.1.4:13", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, makeServicePortName("ns1", "ep1", "p14", v1.ProtocolUDP): { {Endpoint: "1.1.1.3:14", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, - {Endpoint: "1.1.1.4:14", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "1.1.1.4:14", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, makeServicePortName("ns2", "ep2", "p21", v1.ProtocolUDP): { {Endpoint: "2.2.2.1:21", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, - {Endpoint: "2.2.2.2:21", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "2.2.2.2:21", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, makeServicePortName("ns2", "ep2", "p22", v1.ProtocolUDP): { {Endpoint: "2.2.2.1:22", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, - {Endpoint: "2.2.2.2:22", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "2.2.2.2:22", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, }, expectedStaleEndpoints: []proxy.ServiceEndpoint{}, @@ -3127,7 +3127,7 @@ func Test_updateEndpointsMap(t *testing.T) { oldEndpoints: map[proxy.ServicePortName][]*proxy.BaseEndpointInfo{}, expectedResult: map[proxy.ServicePortName][]*proxy.BaseEndpointInfo{ makeServicePortName("ns1", "ep1", "", v1.ProtocolUDP): { - {Endpoint: "1.1.1.1:11", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "1.1.1.1:11", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, }, expectedStaleEndpoints: []proxy.ServiceEndpoint{}, @@ -3147,7 +3147,7 @@ func Test_updateEndpointsMap(t *testing.T) { }, oldEndpoints: map[proxy.ServicePortName][]*proxy.BaseEndpointInfo{ makeServicePortName("ns1", "ep1", "", v1.ProtocolUDP): { - {Endpoint: "1.1.1.1:11", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "1.1.1.1:11", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, }, expectedResult: map[proxy.ServicePortName][]*proxy.BaseEndpointInfo{}, @@ -3173,11 +3173,11 @@ func Test_updateEndpointsMap(t *testing.T) { expectedResult: map[proxy.ServicePortName][]*proxy.BaseEndpointInfo{ makeServicePortName("ns1", "ep1", "p11", v1.ProtocolUDP): { {Endpoint: "1.1.1.1:11", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, - {Endpoint: "1.1.1.2:11", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "1.1.1.2:11", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, makeServicePortName("ns1", "ep1", "p12", v1.ProtocolUDP): { {Endpoint: "1.1.1.1:12", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, - {Endpoint: "1.1.1.2:12", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "1.1.1.2:12", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, }, expectedStaleEndpoints: []proxy.ServiceEndpoint{}, @@ -3198,11 +3198,11 @@ func Test_updateEndpointsMap(t *testing.T) { oldEndpoints: map[proxy.ServicePortName][]*proxy.BaseEndpointInfo{ makeServicePortName("ns1", "ep1", "p11", v1.ProtocolUDP): { {Endpoint: "1.1.1.1:11", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, - {Endpoint: "1.1.1.2:11", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "1.1.1.2:11", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, makeServicePortName("ns1", "ep1", "p12", v1.ProtocolUDP): { {Endpoint: "1.1.1.1:12", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, - {Endpoint: "1.1.1.2:12", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "1.1.1.2:12", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, }, expectedResult: map[proxy.ServicePortName][]*proxy.BaseEndpointInfo{ @@ -3240,7 +3240,7 @@ func Test_updateEndpointsMap(t *testing.T) { {Endpoint: "1.1.1.1:11", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, makeServicePortName("ns1", "ep1", "p12", v1.ProtocolUDP): { - {Endpoint: "1.1.1.2:12", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "1.1.1.2:12", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, }, expectedStaleEndpoints: []proxy.ServiceEndpoint{}, @@ -3346,18 +3346,18 @@ func Test_updateEndpointsMap(t *testing.T) { {Endpoint: "1.1.1.1:11", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, makeServicePortName("ns2", "ep2", "p22", v1.ProtocolUDP): { - {Endpoint: "2.2.2.2:22", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, - {Endpoint: "2.2.2.22:22", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "2.2.2.2:22", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "2.2.2.22:22", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, makeServicePortName("ns2", "ep2", "p23", v1.ProtocolUDP): { - {Endpoint: "2.2.2.3:23", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "2.2.2.3:23", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, makeServicePortName("ns4", "ep4", "p44", v1.ProtocolUDP): { - {Endpoint: "4.4.4.4:44", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, - {Endpoint: "4.4.4.5:44", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "4.4.4.4:44", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "4.4.4.5:44", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, makeServicePortName("ns4", "ep4", "p45", v1.ProtocolUDP): { - {Endpoint: "4.4.4.6:45", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "4.4.4.6:45", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, }, expectedResult: map[proxy.ServicePortName][]*proxy.BaseEndpointInfo{ @@ -3375,7 +3375,7 @@ func Test_updateEndpointsMap(t *testing.T) { {Endpoint: "3.3.3.3:33", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, makeServicePortName("ns4", "ep4", "p44", v1.ProtocolUDP): { - {Endpoint: "4.4.4.4:44", IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, + {Endpoint: "4.4.4.4:44", NodeName: nodeName, IsLocal: true, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}}, }, }, expectedStaleEndpoints: []proxy.ServiceEndpoint{{ @@ -4321,19 +4321,19 @@ func TestEndpointSliceE2E(t *testing.T) { Endpoints: []discovery.Endpoint{{ Addresses: []string{"10.0.1.1"}, Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)}, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.2"}, Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)}, - Topology: map[string]string{"kubernetes.io/hostname": "node2"}, + NodeName: utilpointer.StringPtr("node2"), }, { Addresses: []string{"10.0.1.3"}, Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)}, - Topology: map[string]string{"kubernetes.io/hostname": "node3"}, + NodeName: utilpointer.StringPtr("node3"), }, { // not ready endpoints should be ignored Addresses: []string{"10.0.1.4"}, Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(false)}, - Topology: map[string]string{"kubernetes.io/hostname": "node3"}, + NodeName: utilpointer.StringPtr("node3"), }}, } @@ -4462,19 +4462,18 @@ func Test_HealthCheckNodePortWhenTerminating(t *testing.T) { Endpoints: []discovery.Endpoint{{ Addresses: []string{"10.0.1.1"}, Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)}, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.2"}, Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)}, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.3"}, Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)}, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, }, { // not ready endpoints should be ignored Addresses: []string{"10.0.1.4"}, Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(false)}, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }}, } @@ -4504,7 +4503,7 @@ func Test_HealthCheckNodePortWhenTerminating(t *testing.T) { Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(false), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.2"}, Conditions: discovery.EndpointConditions{ @@ -4512,7 +4511,7 @@ func Test_HealthCheckNodePortWhenTerminating(t *testing.T) { Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.3"}, Conditions: discovery.EndpointConditions{ @@ -4520,7 +4519,7 @@ func Test_HealthCheckNodePortWhenTerminating(t *testing.T) { Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { // not ready endpoints should be ignored Addresses: []string{"10.0.1.4"}, Conditions: discovery.EndpointConditions{ @@ -4528,7 +4527,7 @@ func Test_HealthCheckNodePortWhenTerminating(t *testing.T) { Serving: utilpointer.BoolPtr(false), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }}, } @@ -4721,7 +4720,7 @@ func TestTestInternalTrafficPolicyE2E(t *testing.T) { endpointSlice.Endpoints = append(endpointSlice.Endpoints, discovery.Endpoint{ Addresses: []string{ep.ip}, Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)}, - Topology: map[string]string{"kubernetes.io/hostname": ep.hostname}, + NodeName: utilpointer.StringPtr(ep.hostname), }) } @@ -4831,7 +4830,7 @@ func Test_EndpointSliceReadyAndTerminatingLocal(t *testing.T) { Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(false), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.2"}, @@ -4840,7 +4839,7 @@ func Test_EndpointSliceReadyAndTerminatingLocal(t *testing.T) { Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(false), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.3"}, @@ -4849,7 +4848,7 @@ func Test_EndpointSliceReadyAndTerminatingLocal(t *testing.T) { Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.4"}, @@ -4858,7 +4857,7 @@ func Test_EndpointSliceReadyAndTerminatingLocal(t *testing.T) { Serving: utilpointer.BoolPtr(false), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.5"}, @@ -4867,7 +4866,7 @@ func Test_EndpointSliceReadyAndTerminatingLocal(t *testing.T) { Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(false), }, - Topology: map[string]string{"kubernetes.io/hostname": "another-host"}, + NodeName: utilpointer.StringPtr("another-host"), }, }, } @@ -5007,7 +5006,7 @@ func Test_EndpointSliceOnlyReadyAndTerminatingLocal(t *testing.T) { Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.2"}, @@ -5016,7 +5015,7 @@ func Test_EndpointSliceOnlyReadyAndTerminatingLocal(t *testing.T) { Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.3"}, @@ -5025,7 +5024,7 @@ func Test_EndpointSliceOnlyReadyAndTerminatingLocal(t *testing.T) { Serving: utilpointer.BoolPtr(false), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.4"}, @@ -5034,7 +5033,7 @@ func Test_EndpointSliceOnlyReadyAndTerminatingLocal(t *testing.T) { Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": "another-host"}, + NodeName: utilpointer.StringPtr("another-host"), }, { Addresses: []string{"10.0.1.5"}, @@ -5043,7 +5042,7 @@ func Test_EndpointSliceOnlyReadyAndTerminatingLocal(t *testing.T) { Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(false), }, - Topology: map[string]string{"kubernetes.io/hostname": "another-host"}, + NodeName: utilpointer.StringPtr("another-host"), }, }, } @@ -5180,7 +5179,7 @@ func Test_EndpointSliceOnlyReadyAndTerminatingLocalWithFeatureGateDisabled(t *te Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.2"}, @@ -5189,7 +5188,7 @@ func Test_EndpointSliceOnlyReadyAndTerminatingLocalWithFeatureGateDisabled(t *te Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.3"}, @@ -5198,7 +5197,7 @@ func Test_EndpointSliceOnlyReadyAndTerminatingLocalWithFeatureGateDisabled(t *te Serving: utilpointer.BoolPtr(false), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": testHostname}, + NodeName: utilpointer.StringPtr(testHostname), }, { Addresses: []string{"10.0.1.4"}, @@ -5207,7 +5206,7 @@ func Test_EndpointSliceOnlyReadyAndTerminatingLocalWithFeatureGateDisabled(t *te Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(true), }, - Topology: map[string]string{"kubernetes.io/hostname": "another-host"}, + NodeName: utilpointer.StringPtr("another-host"), }, { Addresses: []string{"10.0.1.5"}, @@ -5216,7 +5215,7 @@ func Test_EndpointSliceOnlyReadyAndTerminatingLocalWithFeatureGateDisabled(t *te Serving: utilpointer.BoolPtr(true), Terminating: utilpointer.BoolPtr(false), }, - Topology: map[string]string{"kubernetes.io/hostname": "another-host"}, + NodeName: utilpointer.StringPtr("another-host"), }, }, } diff --git a/pkg/proxy/metaproxier/meta_proxier.go b/pkg/proxy/metaproxier/meta_proxier.go index 40a570d2b3d..800536d3899 100644 --- a/pkg/proxy/metaproxier/meta_proxier.go +++ b/pkg/proxy/metaproxier/meta_proxier.go @@ -20,7 +20,7 @@ import ( "fmt" v1 "k8s.io/api/core/v1" - discovery "k8s.io/api/discovery/v1beta1" + discovery "k8s.io/api/discovery/v1" "k8s.io/klog/v2" "k8s.io/kubernetes/pkg/proxy" "k8s.io/kubernetes/pkg/proxy/config" diff --git a/pkg/proxy/types.go b/pkg/proxy/types.go index 19dad2b082c..2b4beb7d718 100644 --- a/pkg/proxy/types.go +++ b/pkg/proxy/types.go @@ -116,8 +116,6 @@ type Endpoint interface { // This is only set when watching EndpointSlices. If using Endpoints, this is always // false since terminating endpoints are always excluded from Endpoints. IsTerminating() bool - // GetTopology returns the topology information of the endpoint. - GetTopology() map[string]string // GetZoneHint returns the zone hint for the endpoint. This is based on // endpoint.hints.forZones[0].name in the EndpointSlice API. GetZoneHints() sets.String @@ -127,6 +125,10 @@ type Endpoint interface { Port() (int, error) // Equal checks if two endpoints are equal. Equal(Endpoint) bool + // GetNodeName returns the node name for the endpoint + GetNodeName() string + // GetZone returns the zone for the endpoint + GetZone() string } // ServiceEndpoint is used to identify a service and one of its endpoint pair. diff --git a/pkg/proxy/userspace/proxier_test.go b/pkg/proxy/userspace/proxier_test.go index 6d0bb008130..a9eca668962 100644 --- a/pkg/proxy/userspace/proxier_test.go +++ b/pkg/proxy/userspace/proxier_test.go @@ -29,8 +29,8 @@ import ( "testing" "time" - "k8s.io/api/core/v1" - discovery "k8s.io/api/discovery/v1beta1" + v1 "k8s.io/api/core/v1" + discovery "k8s.io/api/discovery/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/runtime" diff --git a/pkg/proxy/winkernel/proxier.go b/pkg/proxy/winkernel/proxier.go index 0a26385e8ad..a1b64390803 100644 --- a/pkg/proxy/winkernel/proxier.go +++ b/pkg/proxy/winkernel/proxier.go @@ -31,7 +31,7 @@ import ( "github.com/Microsoft/hcsshim" "github.com/Microsoft/hcsshim/hcn" - discovery "k8s.io/api/discovery/v1beta1" + discovery "k8s.io/api/discovery/v1" "github.com/davecgh/go-spew/spew" v1 "k8s.io/api/core/v1" @@ -197,11 +197,6 @@ func (info *endpointsInfo) IsTerminating() bool { return info.terminating } -// GetTopology returns the topology information of the endpoint. -func (info *endpointsInfo) GetTopology() map[string]string { - return nil -} - // GetZoneHint returns the zone hint for the endpoint. func (info *endpointsInfo) GetZoneHints() sets.String { return sets.String{} @@ -222,6 +217,16 @@ func (info *endpointsInfo) Equal(other proxy.Endpoint) bool { return info.String() == other.String() && info.GetIsLocal() == other.GetIsLocal() } +// GetNodeName returns the NodeName for this endpoint. +func (info *endpointsInfo) GetNodeName() string { + return "" +} + +// GetZone returns the Zone for this endpoint. +func (info *endpointsInfo) GetZone() string { + return "" +} + //Uses mac prefix and IPv4 address to return a mac address //This ensures mac addresses are unique for proper load balancing //There is a possibility of MAC collisions but this Mac address is used for remote endpoints only diff --git a/pkg/proxy/winkernel/proxier_test.go b/pkg/proxy/winkernel/proxier_test.go index be7b51ee28b..c132e6d36cb 100644 --- a/pkg/proxy/winkernel/proxier_test.go +++ b/pkg/proxy/winkernel/proxier_test.go @@ -20,18 +20,19 @@ package winkernel import ( "fmt" - "k8s.io/api/core/v1" - discovery "k8s.io/api/discovery/v1beta1" + "net" + "strings" + "testing" + "time" + + v1 "k8s.io/api/core/v1" + discovery "k8s.io/api/discovery/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/kubernetes/pkg/proxy" "k8s.io/kubernetes/pkg/proxy/healthcheck" utilpointer "k8s.io/utils/pointer" - "net" - "strings" - "testing" - "time" ) const ( @@ -810,7 +811,7 @@ func TestEndpointSlice(t *testing.T) { Endpoints: []discovery.Endpoint{{ Addresses: []string{"192.168.2.3"}, Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)}, - Topology: map[string]string{"kubernetes.io/hostname": "testhost2"}, + NodeName: utilpointer.StringPtr("testhost2"), }}, } diff --git a/pkg/proxy/winuserspace/proxier_test.go b/pkg/proxy/winuserspace/proxier_test.go index 3951433e091..f24d6f2507d 100644 --- a/pkg/proxy/winuserspace/proxier_test.go +++ b/pkg/proxy/winuserspace/proxier_test.go @@ -29,8 +29,8 @@ import ( "testing" "time" - "k8s.io/api/core/v1" - discovery "k8s.io/api/discovery/v1beta1" + v1 "k8s.io/api/core/v1" + discovery "k8s.io/api/discovery/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/runtime"