mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 03:41:45 +00:00
Merge pull request #99746 from swetharepakula/nodeName-feature-gate-ga
Graduate EndpointSliceNodeName feature gate to GA
This commit is contained in:
commit
cc4bd511bb
@ -452,6 +452,7 @@ func TestSyncService(t *testing.T) {
|
|||||||
Addresses: []string{"10.0.0.1"},
|
Addresses: []string{"10.0.0.1"},
|
||||||
TargetRef: &v1.ObjectReference{Kind: "Pod", Namespace: "default", Name: "pod0"},
|
TargetRef: &v1.ObjectReference{Kind: "Pod", Namespace: "default", Name: "pod0"},
|
||||||
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Conditions: discovery.EndpointConditions{
|
Conditions: discovery.EndpointConditions{
|
||||||
@ -460,6 +461,7 @@ func TestSyncService(t *testing.T) {
|
|||||||
Addresses: []string{"10.0.0.2"},
|
Addresses: []string{"10.0.0.2"},
|
||||||
TargetRef: &v1.ObjectReference{Kind: "Pod", Namespace: "default", Name: "pod1"},
|
TargetRef: &v1.ObjectReference{Kind: "Pod", Namespace: "default", Name: "pod1"},
|
||||||
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -565,6 +567,7 @@ func TestSyncService(t *testing.T) {
|
|||||||
Addresses: []string{"fd08::5678:0000:0000:9abc:def0"},
|
Addresses: []string{"fd08::5678:0000:0000:9abc:def0"},
|
||||||
TargetRef: &v1.ObjectReference{Kind: "Pod", Namespace: "default", Name: "pod1"},
|
TargetRef: &v1.ObjectReference{Kind: "Pod", Namespace: "default", Name: "pod1"},
|
||||||
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -670,6 +673,7 @@ func TestSyncService(t *testing.T) {
|
|||||||
Addresses: []string{"10.0.0.1"},
|
Addresses: []string{"10.0.0.1"},
|
||||||
TargetRef: &v1.ObjectReference{Kind: "Pod", Namespace: "default", Name: "pod0"},
|
TargetRef: &v1.ObjectReference{Kind: "Pod", Namespace: "default", Name: "pod0"},
|
||||||
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Conditions: discovery.EndpointConditions{
|
Conditions: discovery.EndpointConditions{
|
||||||
@ -680,6 +684,7 @@ func TestSyncService(t *testing.T) {
|
|||||||
Addresses: []string{"10.0.0.2"},
|
Addresses: []string{"10.0.0.2"},
|
||||||
TargetRef: &v1.ObjectReference{Kind: "Pod", Namespace: "default", Name: "pod1"},
|
TargetRef: &v1.ObjectReference{Kind: "Pod", Namespace: "default", Name: "pod1"},
|
||||||
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
terminatingGateEnabled: true,
|
terminatingGateEnabled: true,
|
||||||
@ -784,6 +789,7 @@ func TestSyncService(t *testing.T) {
|
|||||||
Addresses: []string{"10.0.0.1"},
|
Addresses: []string{"10.0.0.1"},
|
||||||
TargetRef: &v1.ObjectReference{Kind: "Pod", Namespace: "default", Name: "pod0"},
|
TargetRef: &v1.ObjectReference{Kind: "Pod", Namespace: "default", Name: "pod0"},
|
||||||
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
terminatingGateEnabled: false,
|
terminatingGateEnabled: false,
|
||||||
@ -890,6 +896,7 @@ func TestSyncService(t *testing.T) {
|
|||||||
Addresses: []string{"10.0.0.1"},
|
Addresses: []string{"10.0.0.1"},
|
||||||
TargetRef: &v1.ObjectReference{Kind: "Pod", Namespace: "default", Name: "pod0"},
|
TargetRef: &v1.ObjectReference{Kind: "Pod", Namespace: "default", Name: "pod0"},
|
||||||
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Conditions: discovery.EndpointConditions{
|
Conditions: discovery.EndpointConditions{
|
||||||
@ -900,6 +907,7 @@ func TestSyncService(t *testing.T) {
|
|||||||
Addresses: []string{"10.0.0.2"},
|
Addresses: []string{"10.0.0.2"},
|
||||||
TargetRef: &v1.ObjectReference{Kind: "Pod", Namespace: "default", Name: "pod1"},
|
TargetRef: &v1.ObjectReference{Kind: "Pod", Namespace: "default", Name: "pod1"},
|
||||||
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
terminatingGateEnabled: true,
|
terminatingGateEnabled: true,
|
||||||
@ -1004,6 +1012,7 @@ func TestSyncService(t *testing.T) {
|
|||||||
Addresses: []string{"10.0.0.1"},
|
Addresses: []string{"10.0.0.1"},
|
||||||
TargetRef: &v1.ObjectReference{Kind: "Pod", Namespace: "default", Name: "pod0"},
|
TargetRef: &v1.ObjectReference{Kind: "Pod", Namespace: "default", Name: "pod0"},
|
||||||
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
terminatingGateEnabled: false,
|
terminatingGateEnabled: false,
|
||||||
|
@ -131,6 +131,7 @@ func TestReconcile1Pod(t *testing.T) {
|
|||||||
"topology.kubernetes.io/zone": "us-central1-a",
|
"topology.kubernetes.io/zone": "us-central1-a",
|
||||||
"topology.kubernetes.io/region": "us-central1",
|
"topology.kubernetes.io/region": "us-central1",
|
||||||
},
|
},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
TargetRef: &corev1.ObjectReference{
|
TargetRef: &corev1.ObjectReference{
|
||||||
Kind: "Pod",
|
Kind: "Pod",
|
||||||
Namespace: namespace,
|
Namespace: namespace,
|
||||||
@ -156,6 +157,7 @@ func TestReconcile1Pod(t *testing.T) {
|
|||||||
"topology.kubernetes.io/zone": "us-central1-a",
|
"topology.kubernetes.io/zone": "us-central1-a",
|
||||||
"topology.kubernetes.io/region": "us-central1",
|
"topology.kubernetes.io/region": "us-central1",
|
||||||
},
|
},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
TargetRef: &corev1.ObjectReference{
|
TargetRef: &corev1.ObjectReference{
|
||||||
Kind: "Pod",
|
Kind: "Pod",
|
||||||
Namespace: namespace,
|
Namespace: namespace,
|
||||||
@ -186,6 +188,7 @@ func TestReconcile1Pod(t *testing.T) {
|
|||||||
"topology.kubernetes.io/zone": "us-central1-a",
|
"topology.kubernetes.io/zone": "us-central1-a",
|
||||||
"topology.kubernetes.io/region": "us-central1",
|
"topology.kubernetes.io/region": "us-central1",
|
||||||
},
|
},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
TargetRef: &corev1.ObjectReference{
|
TargetRef: &corev1.ObjectReference{
|
||||||
Kind: "Pod",
|
Kind: "Pod",
|
||||||
Namespace: namespace,
|
Namespace: namespace,
|
||||||
@ -213,6 +216,7 @@ func TestReconcile1Pod(t *testing.T) {
|
|||||||
"topology.kubernetes.io/zone": "us-central1-a",
|
"topology.kubernetes.io/zone": "us-central1-a",
|
||||||
"topology.kubernetes.io/region": "us-central1",
|
"topology.kubernetes.io/region": "us-central1",
|
||||||
},
|
},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
TargetRef: &corev1.ObjectReference{
|
TargetRef: &corev1.ObjectReference{
|
||||||
Kind: "Pod",
|
Kind: "Pod",
|
||||||
Namespace: namespace,
|
Namespace: namespace,
|
||||||
@ -230,6 +234,7 @@ func TestReconcile1Pod(t *testing.T) {
|
|||||||
"topology.kubernetes.io/zone": "us-central1-a",
|
"topology.kubernetes.io/zone": "us-central1-a",
|
||||||
"topology.kubernetes.io/region": "us-central1",
|
"topology.kubernetes.io/region": "us-central1",
|
||||||
},
|
},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
TargetRef: &corev1.ObjectReference{
|
TargetRef: &corev1.ObjectReference{
|
||||||
Kind: "Pod",
|
Kind: "Pod",
|
||||||
Namespace: namespace,
|
Namespace: namespace,
|
||||||
@ -253,6 +258,7 @@ func TestReconcile1Pod(t *testing.T) {
|
|||||||
"topology.kubernetes.io/zone": "us-central1-a",
|
"topology.kubernetes.io/zone": "us-central1-a",
|
||||||
"topology.kubernetes.io/region": "us-central1",
|
"topology.kubernetes.io/region": "us-central1",
|
||||||
},
|
},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
TargetRef: &corev1.ObjectReference{
|
TargetRef: &corev1.ObjectReference{
|
||||||
Kind: "Pod",
|
Kind: "Pod",
|
||||||
Namespace: namespace,
|
Namespace: namespace,
|
||||||
@ -270,6 +276,7 @@ func TestReconcile1Pod(t *testing.T) {
|
|||||||
"topology.kubernetes.io/zone": "us-central1-a",
|
"topology.kubernetes.io/zone": "us-central1-a",
|
||||||
"topology.kubernetes.io/region": "us-central1",
|
"topology.kubernetes.io/region": "us-central1",
|
||||||
},
|
},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
TargetRef: &corev1.ObjectReference{
|
TargetRef: &corev1.ObjectReference{
|
||||||
Kind: "Pod",
|
Kind: "Pod",
|
||||||
Namespace: namespace,
|
Namespace: namespace,
|
||||||
@ -295,6 +302,7 @@ func TestReconcile1Pod(t *testing.T) {
|
|||||||
"topology.kubernetes.io/zone": "us-central1-a",
|
"topology.kubernetes.io/zone": "us-central1-a",
|
||||||
"topology.kubernetes.io/region": "us-central1",
|
"topology.kubernetes.io/region": "us-central1",
|
||||||
},
|
},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
TargetRef: &corev1.ObjectReference{
|
TargetRef: &corev1.ObjectReference{
|
||||||
Kind: "Pod",
|
Kind: "Pod",
|
||||||
Namespace: namespace,
|
Namespace: namespace,
|
||||||
@ -312,6 +320,7 @@ func TestReconcile1Pod(t *testing.T) {
|
|||||||
"topology.kubernetes.io/zone": "us-central1-a",
|
"topology.kubernetes.io/zone": "us-central1-a",
|
||||||
"topology.kubernetes.io/region": "us-central1",
|
"topology.kubernetes.io/region": "us-central1",
|
||||||
},
|
},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
TargetRef: &corev1.ObjectReference{
|
TargetRef: &corev1.ObjectReference{
|
||||||
Kind: "Pod",
|
Kind: "Pod",
|
||||||
Namespace: namespace,
|
Namespace: namespace,
|
||||||
@ -337,6 +346,7 @@ func TestReconcile1Pod(t *testing.T) {
|
|||||||
"topology.kubernetes.io/zone": "us-central1-a",
|
"topology.kubernetes.io/zone": "us-central1-a",
|
||||||
"topology.kubernetes.io/region": "us-central1",
|
"topology.kubernetes.io/region": "us-central1",
|
||||||
},
|
},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
TargetRef: &corev1.ObjectReference{
|
TargetRef: &corev1.ObjectReference{
|
||||||
Kind: "Pod",
|
Kind: "Pod",
|
||||||
Namespace: namespace,
|
Namespace: namespace,
|
||||||
@ -364,6 +374,7 @@ func TestReconcile1Pod(t *testing.T) {
|
|||||||
"topology.kubernetes.io/zone": "us-central1-a",
|
"topology.kubernetes.io/zone": "us-central1-a",
|
||||||
"topology.kubernetes.io/region": "us-central1",
|
"topology.kubernetes.io/region": "us-central1",
|
||||||
},
|
},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
TargetRef: &corev1.ObjectReference{
|
TargetRef: &corev1.ObjectReference{
|
||||||
Kind: "Pod",
|
Kind: "Pod",
|
||||||
Namespace: namespace,
|
Namespace: namespace,
|
||||||
@ -390,6 +401,7 @@ func TestReconcile1Pod(t *testing.T) {
|
|||||||
"topology.kubernetes.io/zone": "us-central1-a",
|
"topology.kubernetes.io/zone": "us-central1-a",
|
||||||
"topology.kubernetes.io/region": "us-central1",
|
"topology.kubernetes.io/region": "us-central1",
|
||||||
},
|
},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
TargetRef: &corev1.ObjectReference{
|
TargetRef: &corev1.ObjectReference{
|
||||||
Kind: "Pod",
|
Kind: "Pod",
|
||||||
Namespace: namespace,
|
Namespace: namespace,
|
||||||
@ -406,6 +418,7 @@ func TestReconcile1Pod(t *testing.T) {
|
|||||||
"topology.kubernetes.io/zone": "us-central1-a",
|
"topology.kubernetes.io/zone": "us-central1-a",
|
||||||
"topology.kubernetes.io/region": "us-central1",
|
"topology.kubernetes.io/region": "us-central1",
|
||||||
},
|
},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
TargetRef: &corev1.ObjectReference{
|
TargetRef: &corev1.ObjectReference{
|
||||||
Kind: "Pod",
|
Kind: "Pod",
|
||||||
Namespace: namespace,
|
Namespace: namespace,
|
||||||
|
@ -252,7 +252,6 @@ func TestPodToEndpoint(t *testing.T) {
|
|||||||
expectedEndpoint discovery.Endpoint
|
expectedEndpoint discovery.Endpoint
|
||||||
publishNotReadyAddresses bool
|
publishNotReadyAddresses bool
|
||||||
terminatingGateEnabled bool
|
terminatingGateEnabled bool
|
||||||
nodeNameGateEnabled bool
|
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "Ready pod",
|
name: "Ready pod",
|
||||||
@ -262,6 +261,7 @@ func TestPodToEndpoint(t *testing.T) {
|
|||||||
Addresses: []string{"1.2.3.5"},
|
Addresses: []string{"1.2.3.5"},
|
||||||
Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)},
|
Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)},
|
||||||
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
TargetRef: &v1.ObjectReference{
|
TargetRef: &v1.ObjectReference{
|
||||||
Kind: "Pod",
|
Kind: "Pod",
|
||||||
Namespace: ns,
|
Namespace: ns,
|
||||||
@ -279,6 +279,7 @@ func TestPodToEndpoint(t *testing.T) {
|
|||||||
Addresses: []string{"1.2.3.5"},
|
Addresses: []string{"1.2.3.5"},
|
||||||
Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)},
|
Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)},
|
||||||
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
TargetRef: &v1.ObjectReference{
|
TargetRef: &v1.ObjectReference{
|
||||||
Kind: "Pod",
|
Kind: "Pod",
|
||||||
Namespace: ns,
|
Namespace: ns,
|
||||||
@ -296,6 +297,7 @@ func TestPodToEndpoint(t *testing.T) {
|
|||||||
Addresses: []string{"1.2.3.5"},
|
Addresses: []string{"1.2.3.5"},
|
||||||
Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(false)},
|
Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(false)},
|
||||||
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
TargetRef: &v1.ObjectReference{
|
TargetRef: &v1.ObjectReference{
|
||||||
Kind: "Pod",
|
Kind: "Pod",
|
||||||
Namespace: ns,
|
Namespace: ns,
|
||||||
@ -309,24 +311,6 @@ func TestPodToEndpoint(t *testing.T) {
|
|||||||
name: "Unready pod + publishNotReadyAddresses",
|
name: "Unready pod + publishNotReadyAddresses",
|
||||||
pod: unreadyPod,
|
pod: unreadyPod,
|
||||||
svc: &svcPublishNotReady,
|
svc: &svcPublishNotReady,
|
||||||
expectedEndpoint: discovery.Endpoint{
|
|
||||||
Addresses: []string{"1.2.3.5"},
|
|
||||||
Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)},
|
|
||||||
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
|
||||||
TargetRef: &v1.ObjectReference{
|
|
||||||
Kind: "Pod",
|
|
||||||
Namespace: ns,
|
|
||||||
Name: readyPod.Name,
|
|
||||||
UID: readyPod.UID,
|
|
||||||
ResourceVersion: readyPod.ResourceVersion,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Ready pod + node name gate enabled",
|
|
||||||
pod: readyPod,
|
|
||||||
svc: &svc,
|
|
||||||
nodeNameGateEnabled: true,
|
|
||||||
expectedEndpoint: discovery.Endpoint{
|
expectedEndpoint: discovery.Endpoint{
|
||||||
Addresses: []string{"1.2.3.5"},
|
Addresses: []string{"1.2.3.5"},
|
||||||
Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)},
|
Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)},
|
||||||
@ -354,6 +338,7 @@ func TestPodToEndpoint(t *testing.T) {
|
|||||||
"topology.kubernetes.io/zone": "us-central1-a",
|
"topology.kubernetes.io/zone": "us-central1-a",
|
||||||
"topology.kubernetes.io/region": "us-central1",
|
"topology.kubernetes.io/region": "us-central1",
|
||||||
},
|
},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
TargetRef: &v1.ObjectReference{
|
TargetRef: &v1.ObjectReference{
|
||||||
Kind: "Pod",
|
Kind: "Pod",
|
||||||
Namespace: ns,
|
Namespace: ns,
|
||||||
@ -376,6 +361,7 @@ func TestPodToEndpoint(t *testing.T) {
|
|||||||
"topology.kubernetes.io/zone": "us-central1-a",
|
"topology.kubernetes.io/zone": "us-central1-a",
|
||||||
"topology.kubernetes.io/region": "us-central1",
|
"topology.kubernetes.io/region": "us-central1",
|
||||||
},
|
},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
TargetRef: &v1.ObjectReference{
|
TargetRef: &v1.ObjectReference{
|
||||||
Kind: "Pod",
|
Kind: "Pod",
|
||||||
Namespace: ns,
|
Namespace: ns,
|
||||||
@ -399,6 +385,7 @@ func TestPodToEndpoint(t *testing.T) {
|
|||||||
"topology.kubernetes.io/zone": "us-central1-a",
|
"topology.kubernetes.io/zone": "us-central1-a",
|
||||||
"topology.kubernetes.io/region": "us-central1",
|
"topology.kubernetes.io/region": "us-central1",
|
||||||
},
|
},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
TargetRef: &v1.ObjectReference{
|
TargetRef: &v1.ObjectReference{
|
||||||
Kind: "Pod",
|
Kind: "Pod",
|
||||||
Namespace: ns,
|
Namespace: ns,
|
||||||
@ -420,6 +407,7 @@ func TestPodToEndpoint(t *testing.T) {
|
|||||||
Terminating: utilpointer.BoolPtr(false),
|
Terminating: utilpointer.BoolPtr(false),
|
||||||
},
|
},
|
||||||
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
TargetRef: &v1.ObjectReference{
|
TargetRef: &v1.ObjectReference{
|
||||||
Kind: "Pod",
|
Kind: "Pod",
|
||||||
Namespace: ns,
|
Namespace: ns,
|
||||||
@ -440,6 +428,7 @@ func TestPodToEndpoint(t *testing.T) {
|
|||||||
Ready: utilpointer.BoolPtr(false),
|
Ready: utilpointer.BoolPtr(false),
|
||||||
},
|
},
|
||||||
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
TargetRef: &v1.ObjectReference{
|
TargetRef: &v1.ObjectReference{
|
||||||
Kind: "Pod",
|
Kind: "Pod",
|
||||||
Namespace: ns,
|
Namespace: ns,
|
||||||
@ -462,6 +451,7 @@ func TestPodToEndpoint(t *testing.T) {
|
|||||||
Terminating: utilpointer.BoolPtr(true),
|
Terminating: utilpointer.BoolPtr(true),
|
||||||
},
|
},
|
||||||
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
TargetRef: &v1.ObjectReference{
|
TargetRef: &v1.ObjectReference{
|
||||||
Kind: "Pod",
|
Kind: "Pod",
|
||||||
Namespace: ns,
|
Namespace: ns,
|
||||||
@ -482,6 +472,7 @@ func TestPodToEndpoint(t *testing.T) {
|
|||||||
Ready: utilpointer.BoolPtr(false),
|
Ready: utilpointer.BoolPtr(false),
|
||||||
},
|
},
|
||||||
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
TargetRef: &v1.ObjectReference{
|
TargetRef: &v1.ObjectReference{
|
||||||
Kind: "Pod",
|
Kind: "Pod",
|
||||||
Namespace: ns,
|
Namespace: ns,
|
||||||
@ -504,6 +495,7 @@ func TestPodToEndpoint(t *testing.T) {
|
|||||||
Terminating: utilpointer.BoolPtr(true),
|
Terminating: utilpointer.BoolPtr(true),
|
||||||
},
|
},
|
||||||
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
Topology: map[string]string{"kubernetes.io/hostname": "node-1"},
|
||||||
|
NodeName: utilpointer.StringPtr("node-1"),
|
||||||
TargetRef: &v1.ObjectReference{
|
TargetRef: &v1.ObjectReference{
|
||||||
Kind: "Pod",
|
Kind: "Pod",
|
||||||
Namespace: ns,
|
Namespace: ns,
|
||||||
@ -519,7 +511,6 @@ func TestPodToEndpoint(t *testing.T) {
|
|||||||
for _, testCase := range testCases {
|
for _, testCase := range testCases {
|
||||||
t.Run(testCase.name, func(t *testing.T) {
|
t.Run(testCase.name, func(t *testing.T) {
|
||||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.EndpointSliceTerminatingCondition, testCase.terminatingGateEnabled)()
|
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.EndpointSliceTerminatingCondition, testCase.terminatingGateEnabled)()
|
||||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.EndpointSliceNodeName, testCase.nodeNameGateEnabled)()
|
|
||||||
|
|
||||||
endpoint := podToEndpoint(testCase.pod, testCase.node, testCase.svc, discovery.AddressTypeIPv4)
|
endpoint := podToEndpoint(testCase.pod, testCase.node, testCase.svc, discovery.AddressTypeIPv4)
|
||||||
if !reflect.DeepEqual(testCase.expectedEndpoint, endpoint) {
|
if !reflect.DeepEqual(testCase.expectedEndpoint, endpoint) {
|
||||||
|
@ -27,11 +27,8 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/apimachinery/pkg/util/rand"
|
"k8s.io/apimachinery/pkg/util/rand"
|
||||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
|
||||||
"k8s.io/client-go/kubernetes/fake"
|
"k8s.io/client-go/kubernetes/fake"
|
||||||
k8stesting "k8s.io/client-go/testing"
|
k8stesting "k8s.io/client-go/testing"
|
||||||
featuregatetesting "k8s.io/component-base/featuregate/testing"
|
|
||||||
"k8s.io/kubernetes/pkg/features"
|
|
||||||
utilpointer "k8s.io/utils/pointer"
|
utilpointer "k8s.io/utils/pointer"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -81,83 +78,39 @@ func TestNewEndpointSlice(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestAddressToEndpoint(t *testing.T) {
|
func TestAddressToEndpoint(t *testing.T) {
|
||||||
testCases := []struct {
|
//name: "simple + gate enabled",
|
||||||
name string
|
epAddress := v1.EndpointAddress{
|
||||||
epAddress v1.EndpointAddress
|
IP: "10.1.2.3",
|
||||||
expectedEndpoint discovery.Endpoint
|
Hostname: "foo",
|
||||||
ready bool
|
NodeName: utilpointer.StringPtr("node-abc"),
|
||||||
nodeNameGateEnabled bool
|
TargetRef: &v1.ObjectReference{
|
||||||
}{{
|
APIVersion: "v1",
|
||||||
name: "simple + gate enabled",
|
Kind: "Pod",
|
||||||
epAddress: v1.EndpointAddress{
|
Namespace: "default",
|
||||||
IP: "10.1.2.3",
|
Name: "foo",
|
||||||
Hostname: "foo",
|
|
||||||
NodeName: utilpointer.StringPtr("node-abc"),
|
|
||||||
TargetRef: &v1.ObjectReference{
|
|
||||||
APIVersion: "v1",
|
|
||||||
Kind: "Pod",
|
|
||||||
Namespace: "default",
|
|
||||||
Name: "foo",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
ready: true,
|
|
||||||
nodeNameGateEnabled: true,
|
|
||||||
expectedEndpoint: discovery.Endpoint{
|
|
||||||
Addresses: []string{"10.1.2.3"},
|
|
||||||
Hostname: utilpointer.StringPtr("foo"),
|
|
||||||
Conditions: discovery.EndpointConditions{
|
|
||||||
Ready: utilpointer.BoolPtr(true),
|
|
||||||
},
|
|
||||||
Topology: map[string]string{
|
|
||||||
"kubernetes.io/hostname": "node-abc",
|
|
||||||
},
|
|
||||||
TargetRef: &v1.ObjectReference{
|
|
||||||
APIVersion: "v1",
|
|
||||||
Kind: "Pod",
|
|
||||||
Namespace: "default",
|
|
||||||
Name: "foo",
|
|
||||||
},
|
|
||||||
NodeName: utilpointer.StringPtr("node-abc"),
|
|
||||||
},
|
|
||||||
}, {
|
|
||||||
name: "simple + gate disabled",
|
|
||||||
epAddress: v1.EndpointAddress{
|
|
||||||
IP: "10.1.2.3",
|
|
||||||
Hostname: "foo",
|
|
||||||
NodeName: utilpointer.StringPtr("node-abc"),
|
|
||||||
TargetRef: &v1.ObjectReference{
|
|
||||||
APIVersion: "v1",
|
|
||||||
Kind: "Pod",
|
|
||||||
Namespace: "default",
|
|
||||||
Name: "foo",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
ready: true,
|
|
||||||
nodeNameGateEnabled: false,
|
|
||||||
expectedEndpoint: discovery.Endpoint{
|
|
||||||
Addresses: []string{"10.1.2.3"},
|
|
||||||
Hostname: utilpointer.StringPtr("foo"),
|
|
||||||
Conditions: discovery.EndpointConditions{
|
|
||||||
Ready: utilpointer.BoolPtr(true),
|
|
||||||
},
|
|
||||||
Topology: map[string]string{
|
|
||||||
"kubernetes.io/hostname": "node-abc",
|
|
||||||
},
|
|
||||||
TargetRef: &v1.ObjectReference{
|
|
||||||
APIVersion: "v1",
|
|
||||||
Kind: "Pod",
|
|
||||||
Namespace: "default",
|
|
||||||
Name: "foo",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}}
|
|
||||||
|
|
||||||
for _, tc := range testCases {
|
|
||||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.EndpointSliceNodeName, tc.nodeNameGateEnabled)()
|
|
||||||
|
|
||||||
ep := addressToEndpoint(tc.epAddress, tc.ready)
|
|
||||||
assert.EqualValues(t, tc.expectedEndpoint, *ep)
|
|
||||||
}
|
}
|
||||||
|
ready := true
|
||||||
|
expectedEndpoint := discovery.Endpoint{
|
||||||
|
Addresses: []string{"10.1.2.3"},
|
||||||
|
Hostname: utilpointer.StringPtr("foo"),
|
||||||
|
Conditions: discovery.EndpointConditions{
|
||||||
|
Ready: utilpointer.BoolPtr(true),
|
||||||
|
},
|
||||||
|
Topology: map[string]string{
|
||||||
|
"kubernetes.io/hostname": "node-abc",
|
||||||
|
},
|
||||||
|
TargetRef: &v1.ObjectReference{
|
||||||
|
APIVersion: "v1",
|
||||||
|
Kind: "Pod",
|
||||||
|
Namespace: "default",
|
||||||
|
Name: "foo",
|
||||||
|
},
|
||||||
|
NodeName: utilpointer.StringPtr("node-abc"),
|
||||||
|
}
|
||||||
|
|
||||||
|
ep := addressToEndpoint(epAddress, ready)
|
||||||
|
assert.EqualValues(t, expectedEndpoint, *ep)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test helpers
|
// Test helpers
|
||||||
|
@ -753,7 +753,7 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS
|
|||||||
EndpointSlice: {Default: true, PreRelease: featuregate.Beta},
|
EndpointSlice: {Default: true, PreRelease: featuregate.Beta},
|
||||||
EndpointSliceProxying: {Default: true, PreRelease: featuregate.Beta},
|
EndpointSliceProxying: {Default: true, PreRelease: featuregate.Beta},
|
||||||
EndpointSliceTerminatingCondition: {Default: false, PreRelease: featuregate.Alpha},
|
EndpointSliceTerminatingCondition: {Default: false, PreRelease: featuregate.Alpha},
|
||||||
EndpointSliceNodeName: {Default: false, PreRelease: featuregate.Alpha},
|
EndpointSliceNodeName: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, //remove in 1.25
|
||||||
WindowsEndpointSliceProxying: {Default: false, PreRelease: featuregate.Alpha},
|
WindowsEndpointSliceProxying: {Default: false, PreRelease: featuregate.Alpha},
|
||||||
StartupProbe: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.23
|
StartupProbe: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.23
|
||||||
AllowInsecureBackendProxy: {Default: true, PreRelease: featuregate.Beta},
|
AllowInsecureBackendProxy: {Default: true, PreRelease: featuregate.Beta},
|
||||||
|
@ -31,7 +31,6 @@ func Test_dropDisabledFieldsOnCreate(t *testing.T) {
|
|||||||
testcases := []struct {
|
testcases := []struct {
|
||||||
name string
|
name string
|
||||||
terminatingGateEnabled bool
|
terminatingGateEnabled bool
|
||||||
nodeNameGateEnabled bool
|
|
||||||
eps *discovery.EndpointSlice
|
eps *discovery.EndpointSlice
|
||||||
expectedEPS *discovery.EndpointSlice
|
expectedEPS *discovery.EndpointSlice
|
||||||
}{
|
}{
|
||||||
@ -132,8 +131,7 @@ func Test_dropDisabledFieldsOnCreate(t *testing.T) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "node name gate enabled, field should be allowed",
|
name: "node name gate enabled, field should be allowed",
|
||||||
nodeNameGateEnabled: true,
|
|
||||||
eps: &discovery.EndpointSlice{
|
eps: &discovery.EndpointSlice{
|
||||||
Endpoints: []discovery.Endpoint{
|
Endpoints: []discovery.Endpoint{
|
||||||
{
|
{
|
||||||
@ -155,36 +153,11 @@ func Test_dropDisabledFieldsOnCreate(t *testing.T) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: "node name gate disabled, field should be allowed",
|
|
||||||
nodeNameGateEnabled: false,
|
|
||||||
eps: &discovery.EndpointSlice{
|
|
||||||
Endpoints: []discovery.Endpoint{
|
|
||||||
{
|
|
||||||
NodeName: utilpointer.StringPtr("node-1"),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
NodeName: utilpointer.StringPtr("node-2"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
expectedEPS: &discovery.EndpointSlice{
|
|
||||||
Endpoints: []discovery.Endpoint{
|
|
||||||
{
|
|
||||||
NodeName: nil,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
NodeName: nil,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, testcase := range testcases {
|
for _, testcase := range testcases {
|
||||||
t.Run(testcase.name, func(t *testing.T) {
|
t.Run(testcase.name, func(t *testing.T) {
|
||||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.EndpointSliceTerminatingCondition, testcase.terminatingGateEnabled)()
|
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.EndpointSliceTerminatingCondition, testcase.terminatingGateEnabled)()
|
||||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.EndpointSliceNodeName, testcase.nodeNameGateEnabled)()
|
|
||||||
|
|
||||||
dropDisabledFieldsOnCreate(testcase.eps)
|
dropDisabledFieldsOnCreate(testcase.eps)
|
||||||
if !apiequality.Semantic.DeepEqual(testcase.eps, testcase.expectedEPS) {
|
if !apiequality.Semantic.DeepEqual(testcase.eps, testcase.expectedEPS) {
|
||||||
@ -200,7 +173,6 @@ func Test_dropDisabledFieldsOnUpdate(t *testing.T) {
|
|||||||
testcases := []struct {
|
testcases := []struct {
|
||||||
name string
|
name string
|
||||||
terminatingGateEnabled bool
|
terminatingGateEnabled bool
|
||||||
nodeNameGateEnabled bool
|
|
||||||
oldEPS *discovery.EndpointSlice
|
oldEPS *discovery.EndpointSlice
|
||||||
newEPS *discovery.EndpointSlice
|
newEPS *discovery.EndpointSlice
|
||||||
expectedEPS *discovery.EndpointSlice
|
expectedEPS *discovery.EndpointSlice
|
||||||
@ -483,8 +455,7 @@ func Test_dropDisabledFieldsOnUpdate(t *testing.T) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "node name gate enabled, set on new EPS",
|
name: "node name gate enabled, set on new EPS",
|
||||||
nodeNameGateEnabled: true,
|
|
||||||
oldEPS: &discovery.EndpointSlice{
|
oldEPS: &discovery.EndpointSlice{
|
||||||
Endpoints: []discovery.Endpoint{
|
Endpoints: []discovery.Endpoint{
|
||||||
{
|
{
|
||||||
@ -517,42 +488,7 @@ func Test_dropDisabledFieldsOnUpdate(t *testing.T) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "node name gate disabled, set on new EPS",
|
name: "node name gate disabled, set on old and updated EPS",
|
||||||
nodeNameGateEnabled: false,
|
|
||||||
oldEPS: &discovery.EndpointSlice{
|
|
||||||
Endpoints: []discovery.Endpoint{
|
|
||||||
{
|
|
||||||
NodeName: nil,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
NodeName: nil,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
newEPS: &discovery.EndpointSlice{
|
|
||||||
Endpoints: []discovery.Endpoint{
|
|
||||||
{
|
|
||||||
NodeName: utilpointer.StringPtr("node-1"),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
NodeName: utilpointer.StringPtr("node-2"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
expectedEPS: &discovery.EndpointSlice{
|
|
||||||
Endpoints: []discovery.Endpoint{
|
|
||||||
{
|
|
||||||
NodeName: nil,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
NodeName: nil,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "node name gate disabled, set on old and updated EPS",
|
|
||||||
nodeNameGateEnabled: false,
|
|
||||||
oldEPS: &discovery.EndpointSlice{
|
oldEPS: &discovery.EndpointSlice{
|
||||||
Endpoints: []discovery.Endpoint{
|
Endpoints: []discovery.Endpoint{
|
||||||
{
|
{
|
||||||
@ -589,7 +525,6 @@ func Test_dropDisabledFieldsOnUpdate(t *testing.T) {
|
|||||||
for _, testcase := range testcases {
|
for _, testcase := range testcases {
|
||||||
t.Run(testcase.name, func(t *testing.T) {
|
t.Run(testcase.name, func(t *testing.T) {
|
||||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.EndpointSliceTerminatingCondition, testcase.terminatingGateEnabled)()
|
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.EndpointSliceTerminatingCondition, testcase.terminatingGateEnabled)()
|
||||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.EndpointSliceNodeName, testcase.nodeNameGateEnabled)()
|
|
||||||
|
|
||||||
dropDisabledFieldsOnUpdate(testcase.oldEPS, testcase.newEPS)
|
dropDisabledFieldsOnUpdate(testcase.oldEPS, testcase.newEPS)
|
||||||
if !apiequality.Semantic.DeepEqual(testcase.newEPS, testcase.expectedEPS) {
|
if !apiequality.Semantic.DeepEqual(testcase.newEPS, testcase.expectedEPS) {
|
||||||
|
Loading…
Reference in New Issue
Block a user