test dualstack services with assigned clusterIPs

This commit is contained in:
Antonio Ojea 2022-10-14 15:44:11 +00:00
parent 9bedff1147
commit bea96abac3

View File

@ -81,6 +81,14 @@ func TestCreateServiceSingleStackIPv4(t *testing.T) {
expectedIPFamilies: []v1.IPFamily{v1.IPv4Protocol},
expectError: false,
},
{
name: "Type ClusterIP - Client Allocated IP - Default IP Family - Policy Single Stack",
serviceType: v1.ServiceTypeClusterIP,
clusterIPs: []string{"10.0.0.16"},
ipFamilies: nil,
expectedIPFamilies: []v1.IPFamily{v1.IPv4Protocol},
expectError: false,
},
{
name: "Type ClusterIP - Server Allocated IP - Default IP Family - Policy Prefer Dual Stack",
serviceType: v1.ServiceTypeClusterIP,
@ -218,10 +226,9 @@ func TestCreateServiceSingleStackIPv4(t *testing.T) {
Name: fmt.Sprintf("svc-test-%d", i), // use different services for each test
},
Spec: v1.ServiceSpec{
Type: tc.serviceType,
ClusterIPs: tc.clusterIPs,
IPFamilies: tc.ipFamilies,
IPFamilyPolicy: &tc.ipFamilyPolicy,
Type: tc.serviceType,
ClusterIPs: tc.clusterIPs,
IPFamilies: tc.ipFamilies,
Ports: []v1.ServicePort{
{
Port: 443,
@ -231,6 +238,14 @@ func TestCreateServiceSingleStackIPv4(t *testing.T) {
},
}
if len(tc.ipFamilyPolicy) > 0 {
svc.Spec.IPFamilyPolicy = &tc.ipFamilyPolicy
}
if len(tc.clusterIPs) > 0 {
svc.Spec.ClusterIP = tc.clusterIPs[0]
}
// create the service
_, err := client.CoreV1().Services(metav1.NamespaceDefault).Create(context.TODO(), svc, metav1.CreateOptions{})
if (err != nil) != tc.expectError {
@ -509,6 +524,47 @@ func TestCreateServiceDualStackIPv4IPv6(t *testing.T) {
ipFamilyPolicy: v1.IPFamilyPolicySingleStack,
expectError: false,
},
{
name: "Type ClusterIP - Client Allocated IP - IPv4 Family",
serviceType: v1.ServiceTypeClusterIP,
clusterIPs: []string{"10.0.0.16"},
ipFamilies: nil,
expectedIPFamilies: []v1.IPFamily{v1.IPv4Protocol},
expectError: false,
},
{
name: "Type ClusterIP - Client Allocated IP - IPv6 Family",
serviceType: v1.ServiceTypeClusterIP,
clusterIPs: []string{"2001:db8:1::16"},
ipFamilies: nil,
expectedIPFamilies: []v1.IPFamily{v1.IPv6Protocol},
expectError: false,
},
{
name: "Type ClusterIP - Client Allocated IP - IPv4 IPv6 Family ",
serviceType: v1.ServiceTypeClusterIP,
clusterIPs: []string{"10.0.0.17", "2001:db8:1::17"},
ipFamilies: nil,
expectedIPFamilies: []v1.IPFamily{v1.IPv4Protocol, v1.IPv6Protocol},
expectError: true,
},
{
name: "Type ClusterIP - Client Allocated IP - IPv4 IPv6 Family ",
serviceType: v1.ServiceTypeClusterIP,
clusterIPs: []string{"10.0.0.17", "2001:db8:1::17"},
ipFamilies: nil,
ipFamilyPolicy: v1.IPFamilyPolicyPreferDualStack,
expectedIPFamilies: []v1.IPFamily{v1.IPv4Protocol, v1.IPv6Protocol},
expectError: false,
},
{
name: "Type ClusterIP - Client Allocated IP - IPv4 IPv6 Family ",
serviceType: v1.ServiceTypeClusterIP,
clusterIPs: []string{"10.0.0.18", "2001:db8:1::18"},
ipFamilies: []v1.IPFamily{v1.IPv4Protocol, v1.IPv6Protocol},
expectedIPFamilies: []v1.IPFamily{v1.IPv4Protocol, v1.IPv6Protocol},
expectError: true,
},
{
name: "Type ClusterIP - Server Allocated IP - Default IP Family - Policy Prefer Dual Stack",
serviceType: v1.ServiceTypeClusterIP,
@ -647,10 +703,9 @@ func TestCreateServiceDualStackIPv4IPv6(t *testing.T) {
Name: fmt.Sprintf("svc-test-%d", i), // use different services for each test
},
Spec: v1.ServiceSpec{
Type: tc.serviceType,
ClusterIPs: tc.clusterIPs,
IPFamilies: tc.ipFamilies,
IPFamilyPolicy: &tc.ipFamilyPolicy,
Type: tc.serviceType,
ClusterIPs: tc.clusterIPs,
IPFamilies: tc.ipFamilies,
Ports: []v1.ServicePort{
{
Port: 443,
@ -660,6 +715,14 @@ func TestCreateServiceDualStackIPv4IPv6(t *testing.T) {
},
}
if len(tc.ipFamilyPolicy) > 0 {
svc.Spec.IPFamilyPolicy = &tc.ipFamilyPolicy
}
if len(tc.clusterIPs) > 0 {
svc.Spec.ClusterIP = tc.clusterIPs[0]
}
// create a service
_, err := client.CoreV1().Services(metav1.NamespaceDefault).Create(context.TODO(), svc, metav1.CreateOptions{})
if (err != nil) != tc.expectError {