From 2ba69fae1d17f2398ce6827bad9f642d688ee6fc Mon Sep 17 00:00:00 2001 From: "Khaled Henidak(Kal)" Date: Fri, 23 Aug 2019 17:25:59 +0000 Subject: [PATCH] phase 2: api types + defaulting + validation + disabled fields handling Kubernetes-commit: 5e8ccda71cc676e070cd0f5d7b6990b8ebc24c1f --- pkg/describe/versioned/describe.go | 5 +++ pkg/describe/versioned/describe_test.go | 48 +++++++++++++++++++++++-- 2 files changed, 51 insertions(+), 2 deletions(-) diff --git a/pkg/describe/versioned/describe.go b/pkg/describe/versioned/describe.go index a5c78c0da..7ce165e23 100644 --- a/pkg/describe/versioned/describe.go +++ b/pkg/describe/versioned/describe.go @@ -2478,6 +2478,11 @@ func describeService(service *corev1.Service, endpoints *corev1.Endpoints, event w.Write(LEVEL_0, "Selector:\t%s\n", labels.FormatLabels(service.Spec.Selector)) w.Write(LEVEL_0, "Type:\t%s\n", service.Spec.Type) w.Write(LEVEL_0, "IP:\t%s\n", service.Spec.ClusterIP) + + if service.Spec.IPFamily != nil { + w.Write(LEVEL_0, "IPFamily:\t%s\n", *(service.Spec.IPFamily)) + } + if len(service.Spec.ExternalIPs) > 0 { w.Write(LEVEL_0, "External IPs:\t%v\n", strings.Join(service.Spec.ExternalIPs, ",")) } diff --git a/pkg/describe/versioned/describe_test.go b/pkg/describe/versioned/describe_test.go index 1fe3b944f..66e719aba 100644 --- a/pkg/describe/versioned/describe_test.go +++ b/pkg/describe/versioned/describe_test.go @@ -351,6 +351,8 @@ func getResourceList(cpu, memory string) corev1.ResourceList { } func TestDescribeService(t *testing.T) { + defaultServiceIPFamily := corev1.IPv4Protocol + testCases := []struct { name string service *corev1.Service @@ -364,7 +366,8 @@ func TestDescribeService(t *testing.T) { Namespace: "foo", }, Spec: corev1.ServiceSpec{ - Type: corev1.ServiceTypeLoadBalancer, + Type: corev1.ServiceTypeLoadBalancer, + IPFamily: &defaultServiceIPFamily, Ports: []corev1.ServicePort{{ Name: "port-tcp", Port: 8080, @@ -402,7 +405,8 @@ func TestDescribeService(t *testing.T) { Namespace: "foo", }, Spec: corev1.ServiceSpec{ - Type: corev1.ServiceTypeLoadBalancer, + Type: corev1.ServiceTypeLoadBalancer, + IPFamily: &defaultServiceIPFamily, Ports: []corev1.ServicePort{{ Name: "port-tcp", Port: 8080, @@ -432,6 +436,46 @@ func TestDescribeService(t *testing.T) { "HealthCheck NodePort", "32222", }, }, + { + name: "test-ServiceIPFamily", + service: &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: "bar", + Namespace: "foo", + }, + Spec: corev1.ServiceSpec{ + Type: corev1.ServiceTypeLoadBalancer, + IPFamily: &defaultServiceIPFamily, + Ports: []corev1.ServicePort{{ + Name: "port-tcp", + Port: 8080, + Protocol: corev1.ProtocolTCP, + TargetPort: intstr.FromString("targetPort"), + NodePort: 31111, + }}, + Selector: map[string]string{"blah": "heh"}, + ClusterIP: "1.2.3.4", + LoadBalancerIP: "5.6.7.8", + SessionAffinity: "None", + ExternalTrafficPolicy: "Local", + HealthCheckNodePort: 32222, + }, + }, + expect: []string{ + "Name", "bar", + "Namespace", "foo", + "Selector", "blah=heh", + "Type", "LoadBalancer", + "IP", "1.2.3.4", + "IPFamily", "IPv4", + "Port", "port-tcp", "8080/TCP", + "TargetPort", "targetPort/TCP", + "NodePort", "port-tcp", "31111/TCP", + "Session Affinity", "None", + "External Traffic Policy", "Local", + "HealthCheck NodePort", "32222", + }, + }, } for _, testCase := range testCases { t.Run(testCase.name, func(t *testing.T) {