mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-28 05:57:25 +00:00
Svc REST: Change ETP create test to a feature test
All the same test cases and more.
This commit is contained in:
parent
f4521aa75a
commit
7b1e43665d
@ -5204,225 +5204,6 @@ func TestCreateInitNodePorts(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestCreateExternalTrafficPolicy(t *testing.T) {
|
||||
testCases := []struct {
|
||||
name string
|
||||
svc *api.Service
|
||||
expectError bool
|
||||
expectHCNP bool
|
||||
}{{
|
||||
name: "ExternalName_policy:none_hcnp:none",
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeExternalName,
|
||||
svctest.SetExternalTrafficPolicy("")),
|
||||
expectHCNP: false,
|
||||
}, {
|
||||
name: "ExternalName_policy:none_hcnp:specified",
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeExternalName,
|
||||
svctest.SetExternalTrafficPolicy(""),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectError: true,
|
||||
}, {
|
||||
name: "ExternalName_policy:Cluster_hcnp:none",
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeExternalName,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster)),
|
||||
expectError: true,
|
||||
}, {
|
||||
name: "ExternalName_policy:Cluster_hcnp:specified",
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeExternalName,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectError: true,
|
||||
}, {
|
||||
name: "ExternalName_policy:Local_hcnp:none",
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeExternalName,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)),
|
||||
expectError: true,
|
||||
}, {
|
||||
name: "ExternalName_policy:Local_hcnp:specified",
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeExternalName,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectError: true,
|
||||
}, {
|
||||
name: "ClusterIP_policy:none_hcnp:none",
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeClusterIP,
|
||||
svctest.SetExternalTrafficPolicy("")),
|
||||
expectHCNP: false,
|
||||
}, {
|
||||
name: "ClusterIP_policy:none_hcnp:specified",
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeClusterIP,
|
||||
svctest.SetExternalTrafficPolicy(""),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectError: true,
|
||||
}, {
|
||||
name: "ClusterIP_policy:Cluster_hcnp:none",
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeClusterIP,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster)),
|
||||
expectError: true,
|
||||
}, {
|
||||
name: "ClusterIP_policy:Cluster_hcnp:specified",
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeClusterIP,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectError: true,
|
||||
}, {
|
||||
name: "ClusterIP_policy:Local_hcnp:none",
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeClusterIP,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)),
|
||||
expectError: true,
|
||||
}, {
|
||||
name: "ClusterIP_policy:Local_hcnp:specified",
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeClusterIP,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectError: true,
|
||||
}, {
|
||||
name: "NodePort_policy:none_hcnp:none",
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeNodePort,
|
||||
svctest.SetExternalTrafficPolicy("")),
|
||||
expectHCNP: false,
|
||||
}, {
|
||||
name: "NodePort_policy:none_hcnp:specified",
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeNodePort,
|
||||
svctest.SetExternalTrafficPolicy(""),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectError: true,
|
||||
}, {
|
||||
name: "NodePort_policy:Cluster:none",
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeNodePort,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster)),
|
||||
expectHCNP: false,
|
||||
}, {
|
||||
name: "NodePort_policy:Cluster:specified",
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeNodePort,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectError: true,
|
||||
}, {
|
||||
name: "NodePort_policy:Local_hcnp:none",
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeNodePort,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)),
|
||||
expectHCNP: false,
|
||||
}, {
|
||||
name: "NodePort_policy:Local_hcnp:specified",
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeNodePort,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectError: true,
|
||||
}, {
|
||||
name: "LoadBalancer_policy:none_hcnp:none",
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeLoadBalancer,
|
||||
svctest.SetExternalTrafficPolicy("")),
|
||||
expectHCNP: false,
|
||||
}, {
|
||||
name: "LoadBalancer_policy:none_hcnp:specified",
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeLoadBalancer,
|
||||
svctest.SetExternalTrafficPolicy(""),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectError: true,
|
||||
}, {
|
||||
name: "LoadBalancer_policy:Cluster_hcnp:none",
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeLoadBalancer,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster)),
|
||||
expectHCNP: false,
|
||||
}, {
|
||||
name: "LoadBalancer_policy:Cluster_hcnp:specified",
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeLoadBalancer,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectError: true,
|
||||
}, {
|
||||
name: "LoadBalancer_policy:Local_hcnp:none",
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeLoadBalancer,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)),
|
||||
expectHCNP: true,
|
||||
}, {
|
||||
name: "LoadBalancer_policy:Local_hcnp:specified",
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeLoadBalancer,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectHCNP: true,
|
||||
}, {
|
||||
name: "LoadBalancer_policy:Local_hcnp:negative",
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeLoadBalancer,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal),
|
||||
svctest.SetHealthCheckNodePort(-1)),
|
||||
expectError: true,
|
||||
}}
|
||||
|
||||
// Do this in the outer scope for performance.
|
||||
storage, _, server := newStorage(t, []api.IPFamily{api.IPv4Protocol})
|
||||
defer server.Terminate(t)
|
||||
defer storage.Store.DestroyFunc()
|
||||
|
||||
for _, tc := range testCases {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
ctx := genericapirequest.NewDefaultContext()
|
||||
createdObj, err := storage.Create(ctx, tc.svc, rest.ValidateAllObjectFunc, &metav1.CreateOptions{})
|
||||
if tc.expectError && err != nil {
|
||||
return
|
||||
}
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error creating service: %v", err)
|
||||
}
|
||||
defer storage.Delete(ctx, tc.svc.Name, rest.ValidateAllObjectFunc, &metav1.DeleteOptions{})
|
||||
if tc.expectError && err == nil {
|
||||
t.Fatalf("unexpected success creating service")
|
||||
}
|
||||
createdSvc := createdObj.(*api.Service)
|
||||
|
||||
if !tc.expectHCNP {
|
||||
if createdSvc.Spec.HealthCheckNodePort != 0 {
|
||||
t.Fatalf("expected no HealthCheckNodePort, got %d", createdSvc.Spec.HealthCheckNodePort)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
if createdSvc.Spec.HealthCheckNodePort == 0 {
|
||||
t.Fatalf("expected a HealthCheckNodePort")
|
||||
}
|
||||
if !portIsAllocated(t, storage.alloc.serviceNodePorts, createdSvc.Spec.HealthCheckNodePort) {
|
||||
t.Errorf("expected HealthCheckNodePort to be allocated: %v", createdSvc.Spec.HealthCheckNodePort)
|
||||
}
|
||||
if tc.svc.Spec.HealthCheckNodePort != 0 {
|
||||
if want, got := tc.svc.Spec.HealthCheckNodePort, createdSvc.Spec.HealthCheckNodePort; want != got {
|
||||
t.Errorf("wrong HealthCheckNodePort value: wanted %d, got %d", want, got)
|
||||
}
|
||||
}
|
||||
for i, p := range createdSvc.Spec.Ports {
|
||||
if p.NodePort == createdSvc.Spec.HealthCheckNodePort {
|
||||
t.Errorf("HealthCheckNodePort overlaps NodePort[%d]", i)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// Prove that create skips allocations for Headless services.
|
||||
func TestCreateSkipsAllocationsForHeadless(t *testing.T) {
|
||||
testCases := []struct {
|
||||
@ -6993,7 +6774,327 @@ func TestFeatureType(t *testing.T) {
|
||||
helpTestCreateUpdateDelete(t, testCases)
|
||||
}
|
||||
|
||||
func TestFeatureExternalTrafficPolicy(t *testing.T) {
|
||||
testCases := []cudTestCase{{
|
||||
name: "ExternalName_policy:none_hcnp:specified",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeExternalName,
|
||||
svctest.SetExternalTrafficPolicy(""),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectError: true,
|
||||
},
|
||||
}, {
|
||||
name: "ExternalName_policy:Cluster_hcnp:none",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeExternalName,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster)),
|
||||
expectError: true,
|
||||
},
|
||||
}, {
|
||||
name: "ExternalName_policy:Cluster_hcnp:specified",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeExternalName,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectError: true,
|
||||
},
|
||||
}, {
|
||||
name: "ExternalName_policy:Local_hcnp:none",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeExternalName,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)),
|
||||
expectError: true,
|
||||
},
|
||||
}, {
|
||||
name: "ExternalName_policy:Local_hcnp:specified",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeExternalName,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectError: true,
|
||||
},
|
||||
}, {
|
||||
name: "ClusterIP_policy:none_hcnp:none_policy:Cluster_hcnp:none",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeClusterIP,
|
||||
svctest.SetExternalTrafficPolicy("")),
|
||||
expectClusterIPs: true,
|
||||
},
|
||||
update: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeClusterIP,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster)),
|
||||
expectError: true,
|
||||
},
|
||||
}, {
|
||||
name: "ClusterIP_policy:none_hcnp:specified",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeClusterIP,
|
||||
svctest.SetExternalTrafficPolicy(""),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectError: true,
|
||||
},
|
||||
}, {
|
||||
name: "ClusterIP_policy:Cluster_hcnp:none",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeClusterIP,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster)),
|
||||
expectError: true,
|
||||
},
|
||||
}, {
|
||||
name: "ClusterIP_policy:Cluster_hcnp:specified",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeClusterIP,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectError: true,
|
||||
},
|
||||
}, {
|
||||
name: "ClusterIP_policy:Local_hcnp:none",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeClusterIP,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)),
|
||||
expectError: true,
|
||||
},
|
||||
}, {
|
||||
name: "ClusterIP_policy:Local_hcnp:specified",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeClusterIP,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectError: true,
|
||||
},
|
||||
}, {
|
||||
name: "NodePort_policy:none_hcnp:none",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeNodePort,
|
||||
svctest.SetExternalTrafficPolicy("")),
|
||||
expectError: true,
|
||||
},
|
||||
}, {
|
||||
name: "NodePort_policy:none_hcnp:specified",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeNodePort,
|
||||
svctest.SetExternalTrafficPolicy(""),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectError: true,
|
||||
},
|
||||
}, {
|
||||
name: "NodePort_policy:Cluster_hcnp:none_policy:Local_hcnp:none",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeNodePort,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster)),
|
||||
expectClusterIPs: true,
|
||||
expectNodePorts: true,
|
||||
expectHealthCheckNodePort: false,
|
||||
},
|
||||
update: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeNodePort,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)),
|
||||
expectClusterIPs: true,
|
||||
expectNodePorts: true,
|
||||
expectHealthCheckNodePort: false,
|
||||
},
|
||||
}, {
|
||||
name: "NodePort_policy:Cluster_hcnp:specified",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeNodePort,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectError: true,
|
||||
},
|
||||
}, {
|
||||
name: "NodePort_policy:Local_hcnp:none_policy:Cluster_hcnp:none",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeNodePort,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)),
|
||||
expectClusterIPs: true,
|
||||
expectNodePorts: true,
|
||||
expectHealthCheckNodePort: false,
|
||||
},
|
||||
update: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeNodePort,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster)),
|
||||
expectClusterIPs: true,
|
||||
expectNodePorts: true,
|
||||
expectHealthCheckNodePort: false,
|
||||
},
|
||||
}, {
|
||||
name: "NodePort_policy:Local_hcnp:specified",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeNodePort,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectError: true,
|
||||
},
|
||||
}, {
|
||||
name: "LoadBalancer_policy:none_hcnp:none",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeLoadBalancer,
|
||||
svctest.SetExternalTrafficPolicy("")),
|
||||
expectError: true,
|
||||
},
|
||||
}, {
|
||||
name: "LoadBalancer_policy:none_hcnp:specified",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeLoadBalancer,
|
||||
svctest.SetExternalTrafficPolicy(""),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectError: true,
|
||||
},
|
||||
}, {
|
||||
name: "LoadBalancer_policy:Cluster_hcnp:none_policy:Local_hcnp:none",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeLoadBalancer,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster)),
|
||||
expectClusterIPs: true,
|
||||
expectNodePorts: true,
|
||||
expectHealthCheckNodePort: false,
|
||||
},
|
||||
update: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeLoadBalancer,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)),
|
||||
expectClusterIPs: true,
|
||||
expectNodePorts: true,
|
||||
expectHealthCheckNodePort: true,
|
||||
},
|
||||
}, {
|
||||
name: "LoadBalancer_policy:Cluster_hcnp:none_policy:Local_hcnp:specified",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeLoadBalancer,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster)),
|
||||
expectClusterIPs: true,
|
||||
expectNodePorts: true,
|
||||
expectHealthCheckNodePort: false,
|
||||
},
|
||||
update: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeLoadBalancer,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectClusterIPs: true,
|
||||
expectNodePorts: true,
|
||||
expectHealthCheckNodePort: true,
|
||||
},
|
||||
}, {
|
||||
name: "LoadBalancer_policy:Cluster_hcnp:specified",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeLoadBalancer,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectError: true,
|
||||
},
|
||||
}, {
|
||||
name: "LoadBalancer_policy:Local_hcnp:none_policy:Cluster_hcnp:none",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeLoadBalancer,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)),
|
||||
expectClusterIPs: true,
|
||||
expectNodePorts: true,
|
||||
expectHealthCheckNodePort: true,
|
||||
},
|
||||
update: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeLoadBalancer,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster)),
|
||||
expectClusterIPs: true,
|
||||
expectNodePorts: true,
|
||||
expectHealthCheckNodePort: false,
|
||||
},
|
||||
}, {
|
||||
name: "LoadBalancer_policy:Local_hcnp:specified_policy:Cluster_hcnp:none",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeLoadBalancer,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectClusterIPs: true,
|
||||
expectNodePorts: true,
|
||||
expectHealthCheckNodePort: true,
|
||||
},
|
||||
update: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeLoadBalancer,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeCluster)),
|
||||
expectClusterIPs: true,
|
||||
expectNodePorts: true,
|
||||
expectHealthCheckNodePort: false,
|
||||
},
|
||||
}, {
|
||||
name: "LoadBalancer_policy:Local_hcnp:specified_policy:Cluster_hcnp:different",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeLoadBalancer,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal),
|
||||
svctest.SetHealthCheckNodePort(30000)),
|
||||
expectClusterIPs: true,
|
||||
expectNodePorts: true,
|
||||
expectHealthCheckNodePort: true,
|
||||
},
|
||||
update: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeLoadBalancer,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal),
|
||||
svctest.SetHealthCheckNodePort(30001)),
|
||||
expectError: true,
|
||||
},
|
||||
}, {
|
||||
name: "LoadBalancer_policy:Local_hcnp:none_policy:Inalid",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeLoadBalancer,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal)),
|
||||
expectClusterIPs: true,
|
||||
expectNodePorts: true,
|
||||
expectHealthCheckNodePort: true,
|
||||
},
|
||||
update: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeLoadBalancer,
|
||||
svctest.SetExternalTrafficPolicy("Invalid")),
|
||||
expectError: true,
|
||||
},
|
||||
}, {
|
||||
name: "LoadBalancer_policy:Local_hcnp:negative",
|
||||
create: svcTestCase{
|
||||
svc: svctest.MakeService("foo",
|
||||
svctest.SetTypeLoadBalancer,
|
||||
svctest.SetExternalTrafficPolicy(api.ServiceExternalTrafficPolicyTypeLocal),
|
||||
svctest.SetHealthCheckNodePort(-1)),
|
||||
expectError: true,
|
||||
},
|
||||
}}
|
||||
|
||||
helpTestCreateUpdateDelete(t, testCases)
|
||||
}
|
||||
|
||||
// FIXME: externalIPs, lbip,
|
||||
// lbsourceranges, externalname, etp, hcnp, itp, PublishNotReadyAddresses,
|
||||
// lbsourceranges, externalname, itp, PublishNotReadyAddresses,
|
||||
// ipfamilypolicy and list,
|
||||
// AllocateLoadBalancerNodePorts, LoadBalancerClass, status
|
||||
|
Loading…
Reference in New Issue
Block a user