mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 12:43:23 +00:00
Drop Endpoints-tracking-specific TestEndpointsToEndpointsMap
TestEndpointsToEndpointsMap tested code that only ran when using Endpoints tracking rather than EndpointSlice tracking--which is to say, never, any more. (TestEndpointsMapFromESC in endpointslicecache_test.go is an equivalent EndpointSlice test.)
This commit is contained in:
parent
00aae4c10c
commit
886c4b0cf2
@ -21,8 +21,6 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/davecgh/go-spew/spew"
|
|
||||||
|
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
discovery "k8s.io/api/discovery/v1"
|
discovery "k8s.io/api/discovery/v1"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
@ -180,302 +178,6 @@ func makeTestEndpoints(namespace, name string, eptFunc func(*v1.Endpoints)) *v1.
|
|||||||
return ept
|
return ept
|
||||||
}
|
}
|
||||||
|
|
||||||
// This is a coarse test, but it offers some modicum of confidence as the code is evolved.
|
|
||||||
func TestEndpointsToEndpointsMap(t *testing.T) {
|
|
||||||
testCases := []struct {
|
|
||||||
desc string
|
|
||||||
newEndpoints *v1.Endpoints
|
|
||||||
expected map[ServicePortName][]*BaseEndpointInfo
|
|
||||||
isIPv6Mode *bool
|
|
||||||
ipFamily v1.IPFamily
|
|
||||||
}{
|
|
||||||
{
|
|
||||||
desc: "nothing",
|
|
||||||
ipFamily: v1.IPv4Protocol,
|
|
||||||
|
|
||||||
newEndpoints: makeTestEndpoints("ns1", "ep1", func(ept *v1.Endpoints) {}),
|
|
||||||
expected: map[ServicePortName][]*BaseEndpointInfo{},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
desc: "no changes, unnamed port",
|
|
||||||
ipFamily: v1.IPv4Protocol,
|
|
||||||
|
|
||||||
newEndpoints: makeTestEndpoints("ns1", "ep1", func(ept *v1.Endpoints) {
|
|
||||||
ept.Subsets = []v1.EndpointSubset{
|
|
||||||
{
|
|
||||||
Addresses: []v1.EndpointAddress{{
|
|
||||||
IP: "1.1.1.1",
|
|
||||||
}},
|
|
||||||
Ports: []v1.EndpointPort{{
|
|
||||||
Name: "",
|
|
||||||
Port: 11,
|
|
||||||
Protocol: v1.ProtocolTCP,
|
|
||||||
}},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
expected: map[ServicePortName][]*BaseEndpointInfo{
|
|
||||||
makeServicePortName("ns1", "ep1", "", v1.ProtocolTCP): {
|
|
||||||
{Endpoint: "1.1.1.1:11", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
desc: "no changes, named port",
|
|
||||||
ipFamily: v1.IPv4Protocol,
|
|
||||||
|
|
||||||
newEndpoints: makeTestEndpoints("ns1", "ep1", func(ept *v1.Endpoints) {
|
|
||||||
ept.Subsets = []v1.EndpointSubset{
|
|
||||||
{
|
|
||||||
Addresses: []v1.EndpointAddress{{
|
|
||||||
IP: "1.1.1.1",
|
|
||||||
}},
|
|
||||||
Ports: []v1.EndpointPort{{
|
|
||||||
Name: "port",
|
|
||||||
Port: 11,
|
|
||||||
Protocol: v1.ProtocolTCP,
|
|
||||||
}},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
expected: map[ServicePortName][]*BaseEndpointInfo{
|
|
||||||
makeServicePortName("ns1", "ep1", "port", v1.ProtocolTCP): {
|
|
||||||
{Endpoint: "1.1.1.1:11", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
desc: "new port",
|
|
||||||
ipFamily: v1.IPv4Protocol,
|
|
||||||
|
|
||||||
newEndpoints: makeTestEndpoints("ns1", "ep1", func(ept *v1.Endpoints) {
|
|
||||||
ept.Subsets = []v1.EndpointSubset{
|
|
||||||
{
|
|
||||||
Addresses: []v1.EndpointAddress{{
|
|
||||||
IP: "1.1.1.1",
|
|
||||||
}},
|
|
||||||
Ports: []v1.EndpointPort{{
|
|
||||||
Port: 11,
|
|
||||||
Protocol: v1.ProtocolTCP,
|
|
||||||
}},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
expected: map[ServicePortName][]*BaseEndpointInfo{
|
|
||||||
makeServicePortName("ns1", "ep1", "", v1.ProtocolTCP): {
|
|
||||||
{Endpoint: "1.1.1.1:11", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
desc: "remove port",
|
|
||||||
ipFamily: v1.IPv4Protocol,
|
|
||||||
|
|
||||||
newEndpoints: makeTestEndpoints("ns1", "ep1", func(ept *v1.Endpoints) {}),
|
|
||||||
expected: map[ServicePortName][]*BaseEndpointInfo{},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
desc: "new IP and port",
|
|
||||||
ipFamily: v1.IPv4Protocol,
|
|
||||||
|
|
||||||
newEndpoints: makeTestEndpoints("ns1", "ep1", func(ept *v1.Endpoints) {
|
|
||||||
ept.Subsets = []v1.EndpointSubset{
|
|
||||||
{
|
|
||||||
Addresses: []v1.EndpointAddress{{
|
|
||||||
IP: "1.1.1.1",
|
|
||||||
}, {
|
|
||||||
IP: "2.2.2.2",
|
|
||||||
}},
|
|
||||||
Ports: []v1.EndpointPort{{
|
|
||||||
Name: "p1",
|
|
||||||
Port: 11,
|
|
||||||
Protocol: v1.ProtocolTCP,
|
|
||||||
}, {
|
|
||||||
Name: "p2",
|
|
||||||
Port: 22,
|
|
||||||
Protocol: v1.ProtocolTCP,
|
|
||||||
}},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
expected: map[ServicePortName][]*BaseEndpointInfo{
|
|
||||||
makeServicePortName("ns1", "ep1", "p1", v1.ProtocolTCP): {
|
|
||||||
{Endpoint: "1.1.1.1:11", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}},
|
|
||||||
{Endpoint: "2.2.2.2:11", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}},
|
|
||||||
},
|
|
||||||
makeServicePortName("ns1", "ep1", "p2", v1.ProtocolTCP): {
|
|
||||||
{Endpoint: "1.1.1.1:22", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}},
|
|
||||||
{Endpoint: "2.2.2.2:22", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
desc: "remove IP and port",
|
|
||||||
ipFamily: v1.IPv4Protocol,
|
|
||||||
|
|
||||||
newEndpoints: makeTestEndpoints("ns1", "ep1", func(ept *v1.Endpoints) {
|
|
||||||
ept.Subsets = []v1.EndpointSubset{
|
|
||||||
{
|
|
||||||
Addresses: []v1.EndpointAddress{{
|
|
||||||
IP: "1.1.1.1",
|
|
||||||
}},
|
|
||||||
Ports: []v1.EndpointPort{{
|
|
||||||
Name: "p1",
|
|
||||||
Port: 11,
|
|
||||||
Protocol: v1.ProtocolTCP,
|
|
||||||
}},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
expected: map[ServicePortName][]*BaseEndpointInfo{
|
|
||||||
makeServicePortName("ns1", "ep1", "p1", v1.ProtocolTCP): {
|
|
||||||
{Endpoint: "1.1.1.1:11", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
desc: "rename port",
|
|
||||||
ipFamily: v1.IPv4Protocol,
|
|
||||||
|
|
||||||
newEndpoints: makeTestEndpoints("ns1", "ep1", func(ept *v1.Endpoints) {
|
|
||||||
ept.Subsets = []v1.EndpointSubset{
|
|
||||||
{
|
|
||||||
Addresses: []v1.EndpointAddress{{
|
|
||||||
IP: "1.1.1.1",
|
|
||||||
}},
|
|
||||||
Ports: []v1.EndpointPort{{
|
|
||||||
Name: "p2",
|
|
||||||
Port: 11,
|
|
||||||
Protocol: v1.ProtocolTCP,
|
|
||||||
}},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
expected: map[ServicePortName][]*BaseEndpointInfo{
|
|
||||||
makeServicePortName("ns1", "ep1", "p2", v1.ProtocolTCP): {
|
|
||||||
{Endpoint: "1.1.1.1:11", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
desc: "renumber port",
|
|
||||||
ipFamily: v1.IPv4Protocol,
|
|
||||||
|
|
||||||
newEndpoints: makeTestEndpoints("ns1", "ep1", func(ept *v1.Endpoints) {
|
|
||||||
ept.Subsets = []v1.EndpointSubset{
|
|
||||||
{
|
|
||||||
Addresses: []v1.EndpointAddress{{
|
|
||||||
IP: "1.1.1.1",
|
|
||||||
}},
|
|
||||||
Ports: []v1.EndpointPort{{
|
|
||||||
Name: "p1",
|
|
||||||
Port: 22,
|
|
||||||
Protocol: v1.ProtocolTCP,
|
|
||||||
}},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
expected: map[ServicePortName][]*BaseEndpointInfo{
|
|
||||||
makeServicePortName("ns1", "ep1", "p1", v1.ProtocolTCP): {
|
|
||||||
{Endpoint: "1.1.1.1:22", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
desc: "should omit IPv6 address in IPv4 mode",
|
|
||||||
ipFamily: v1.IPv4Protocol,
|
|
||||||
|
|
||||||
newEndpoints: makeTestEndpoints("ns1", "ep1", func(ept *v1.Endpoints) {
|
|
||||||
ept.Subsets = []v1.EndpointSubset{
|
|
||||||
{
|
|
||||||
Addresses: []v1.EndpointAddress{{
|
|
||||||
IP: "1.1.1.1",
|
|
||||||
}, {
|
|
||||||
IP: "2001:db8:85a3:0:0:8a2e:370:7334",
|
|
||||||
}},
|
|
||||||
Ports: []v1.EndpointPort{{
|
|
||||||
Name: "p1",
|
|
||||||
Port: 11,
|
|
||||||
Protocol: v1.ProtocolTCP,
|
|
||||||
}, {
|
|
||||||
Name: "p2",
|
|
||||||
Port: 22,
|
|
||||||
Protocol: v1.ProtocolTCP,
|
|
||||||
}},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
expected: map[ServicePortName][]*BaseEndpointInfo{
|
|
||||||
makeServicePortName("ns1", "ep1", "p1", v1.ProtocolTCP): {
|
|
||||||
{Endpoint: "1.1.1.1:11", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}},
|
|
||||||
},
|
|
||||||
makeServicePortName("ns1", "ep1", "p2", v1.ProtocolTCP): {
|
|
||||||
{Endpoint: "1.1.1.1:22", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
desc: "should omit IPv4 address in IPv6 mode",
|
|
||||||
ipFamily: v1.IPv6Protocol,
|
|
||||||
|
|
||||||
newEndpoints: makeTestEndpoints("ns1", "ep1", func(ept *v1.Endpoints) {
|
|
||||||
ept.Subsets = []v1.EndpointSubset{
|
|
||||||
{
|
|
||||||
Addresses: []v1.EndpointAddress{{
|
|
||||||
IP: "1.1.1.1",
|
|
||||||
}, {
|
|
||||||
IP: "2001:db8:85a3:0:0:8a2e:370:7334",
|
|
||||||
}},
|
|
||||||
Ports: []v1.EndpointPort{{
|
|
||||||
Name: "p1",
|
|
||||||
Port: 11,
|
|
||||||
Protocol: v1.ProtocolTCP,
|
|
||||||
}, {
|
|
||||||
Name: "p2",
|
|
||||||
Port: 22,
|
|
||||||
Protocol: v1.ProtocolTCP,
|
|
||||||
}},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
expected: map[ServicePortName][]*BaseEndpointInfo{
|
|
||||||
makeServicePortName("ns1", "ep1", "p1", v1.ProtocolTCP): {
|
|
||||||
{Endpoint: "[2001:db8:85a3:0:0:8a2e:370:7334]:11", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}},
|
|
||||||
},
|
|
||||||
makeServicePortName("ns1", "ep1", "p2", v1.ProtocolTCP): {
|
|
||||||
{Endpoint: "[2001:db8:85a3:0:0:8a2e:370:7334]:22", IsLocal: false, Ready: true, Serving: true, Terminating: false, ZoneHints: sets.String{}},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, tc := range testCases {
|
|
||||||
t.Run(tc.desc, func(t *testing.T) {
|
|
||||||
|
|
||||||
epTracker := NewEndpointChangeTracker("test-hostname", nil, tc.ipFamily, nil, nil)
|
|
||||||
|
|
||||||
// outputs
|
|
||||||
newEndpoints := epTracker.endpointsToEndpointsMap(tc.newEndpoints)
|
|
||||||
|
|
||||||
if len(newEndpoints) != len(tc.expected) {
|
|
||||||
t.Fatalf("[%s] expected %d new, got %d: %v", tc.desc, len(tc.expected), len(newEndpoints), spew.Sdump(newEndpoints))
|
|
||||||
}
|
|
||||||
for x := range tc.expected {
|
|
||||||
if len(newEndpoints[x]) != len(tc.expected[x]) {
|
|
||||||
t.Fatalf("[%s] expected %d endpoints for %v, got %d", tc.desc, len(tc.expected[x]), x, len(newEndpoints[x]))
|
|
||||||
} else {
|
|
||||||
for i := range newEndpoints[x] {
|
|
||||||
ep := newEndpoints[x][i].(*BaseEndpointInfo)
|
|
||||||
if !(reflect.DeepEqual(*ep, *(tc.expected[x][i]))) {
|
|
||||||
t.Fatalf("[%s] expected new[%v][%d] to be %v, got %v", tc.desc, x, i, tc.expected[x][i], *ep)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestUpdateEndpointsMap(t *testing.T) {
|
func TestUpdateEndpointsMap(t *testing.T) {
|
||||||
var nodeName = testHostname
|
var nodeName = testHostname
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user