Skip to content

Commit e3b3975

Browse files
committed
describe servicecidr and ipaddress v1
1 parent eeae7b3 commit e3b3975

File tree

2 files changed

+144
-0
lines changed

2 files changed

+144
-0
lines changed

staging/src/k8s.io/kubectl/pkg/describe/describe.go

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,8 @@ func describerMap(clientConfig *rest.Config) (map[schema.GroupKind]ResourceDescr
217217
{Group: networkingv1.GroupName, Kind: "IngressClass"}: &IngressClassDescriber{c},
218218
{Group: networkingv1beta1.GroupName, Kind: "ServiceCIDR"}: &ServiceCIDRDescriber{c},
219219
{Group: networkingv1beta1.GroupName, Kind: "IPAddress"}: &IPAddressDescriber{c},
220+
{Group: networkingv1.GroupName, Kind: "ServiceCIDR"}: &ServiceCIDRDescriber{c},
221+
{Group: networkingv1.GroupName, Kind: "IPAddress"}: &IPAddressDescriber{c},
220222
{Group: batchv1.GroupName, Kind: "Job"}: &JobDescriber{c},
221223
{Group: batchv1.GroupName, Kind: "CronJob"}: &CronJobDescriber{c},
222224
{Group: batchv1beta1.GroupName, Kind: "CronJob"}: &CronJobDescriber{c},
@@ -2889,6 +2891,14 @@ type ServiceCIDRDescriber struct {
28892891
func (c *ServiceCIDRDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) {
28902892
var events *corev1.EventList
28912893

2894+
svcV1, err := c.client.NetworkingV1().ServiceCIDRs().Get(context.TODO(), name, metav1.GetOptions{})
2895+
if err == nil {
2896+
if describerSettings.ShowEvents {
2897+
events, _ = searchEvents(c.client.CoreV1(), svcV1, describerSettings.ChunkSize)
2898+
}
2899+
return c.describeServiceCIDRV1(svcV1, events)
2900+
}
2901+
28922902
svcV1beta1, err := c.client.NetworkingV1beta1().ServiceCIDRs().Get(context.TODO(), name, metav1.GetOptions{})
28932903
if err == nil {
28942904
if describerSettings.ShowEvents {
@@ -2899,6 +2909,37 @@ func (c *ServiceCIDRDescriber) Describe(namespace, name string, describerSetting
28992909
return "", err
29002910
}
29012911

2912+
func (c *ServiceCIDRDescriber) describeServiceCIDRV1(svc *networkingv1.ServiceCIDR, events *corev1.EventList) (string, error) {
2913+
return tabbedString(func(out io.Writer) error {
2914+
w := NewPrefixWriter(out)
2915+
w.Write(LEVEL_0, "Name:\t%v\n", svc.Name)
2916+
printLabelsMultiline(w, "Labels", svc.Labels)
2917+
printAnnotationsMultiline(w, "Annotations", svc.Annotations)
2918+
2919+
w.Write(LEVEL_0, "CIDRs:\t%v\n", strings.Join(svc.Spec.CIDRs, ", "))
2920+
2921+
if len(svc.Status.Conditions) > 0 {
2922+
w.Write(LEVEL_0, "Status:\n")
2923+
w.Write(LEVEL_0, "Conditions:\n")
2924+
w.Write(LEVEL_1, "Type\tStatus\tLastTransitionTime\tReason\tMessage\n")
2925+
w.Write(LEVEL_1, "----\t------\t------------------\t------\t-------\n")
2926+
for _, c := range svc.Status.Conditions {
2927+
w.Write(LEVEL_1, "%v\t%v\t%s\t%v\t%v\n",
2928+
c.Type,
2929+
c.Status,
2930+
c.LastTransitionTime.Time.Format(time.RFC1123Z),
2931+
c.Reason,
2932+
c.Message)
2933+
}
2934+
}
2935+
2936+
if events != nil {
2937+
DescribeEvents(events, w)
2938+
}
2939+
return nil
2940+
})
2941+
}
2942+
29022943
func (c *ServiceCIDRDescriber) describeServiceCIDRV1beta1(svc *networkingv1beta1.ServiceCIDR, events *corev1.EventList) (string, error) {
29032944
return tabbedString(func(out io.Writer) error {
29042945
w := NewPrefixWriter(out)
@@ -2938,6 +2979,14 @@ type IPAddressDescriber struct {
29382979
func (c *IPAddressDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error) {
29392980
var events *corev1.EventList
29402981

2982+
ipV1, err := c.client.NetworkingV1().IPAddresses().Get(context.TODO(), name, metav1.GetOptions{})
2983+
if err == nil {
2984+
if describerSettings.ShowEvents {
2985+
events, _ = searchEvents(c.client.CoreV1(), ipV1, describerSettings.ChunkSize)
2986+
}
2987+
return c.describeIPAddressV1(ipV1, events)
2988+
}
2989+
29412990
ipV1beta1, err := c.client.NetworkingV1beta1().IPAddresses().Get(context.TODO(), name, metav1.GetOptions{})
29422991
if err == nil {
29432992
if describerSettings.ShowEvents {
@@ -2948,6 +2997,28 @@ func (c *IPAddressDescriber) Describe(namespace, name string, describerSettings
29482997
return "", err
29492998
}
29502999

3000+
func (c *IPAddressDescriber) describeIPAddressV1(ip *networkingv1.IPAddress, events *corev1.EventList) (string, error) {
3001+
return tabbedString(func(out io.Writer) error {
3002+
w := NewPrefixWriter(out)
3003+
w.Write(LEVEL_0, "Name:\t%v\n", ip.Name)
3004+
printLabelsMultiline(w, "Labels", ip.Labels)
3005+
printAnnotationsMultiline(w, "Annotations", ip.Annotations)
3006+
3007+
if ip.Spec.ParentRef != nil {
3008+
w.Write(LEVEL_0, "Parent Reference:\n")
3009+
w.Write(LEVEL_1, "Group:\t%v\n", ip.Spec.ParentRef.Group)
3010+
w.Write(LEVEL_1, "Resource:\t%v\n", ip.Spec.ParentRef.Resource)
3011+
w.Write(LEVEL_1, "Namespace:\t%v\n", ip.Spec.ParentRef.Namespace)
3012+
w.Write(LEVEL_1, "Name:\t%v\n", ip.Spec.ParentRef.Name)
3013+
}
3014+
3015+
if events != nil {
3016+
DescribeEvents(events, w)
3017+
}
3018+
return nil
3019+
})
3020+
}
3021+
29513022
func (c *IPAddressDescriber) describeIPAddressV1beta1(ip *networkingv1beta1.IPAddress, events *corev1.EventList) (string, error) {
29523023
return tabbedString(func(out io.Writer) error {
29533024
w := NewPrefixWriter(out)

staging/src/k8s.io/kubectl/pkg/describe/describe_test.go

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6590,6 +6590,54 @@ Events: <none>` + "\n",
65906590
Labels: <none>
65916591
Annotations: <none>
65926592
CIDRs: fd00:1:1::/64
6593+
Events: <none>` + "\n",
6594+
},
6595+
"ServiceCIDR v1": {
6596+
input: fake.NewSimpleClientset(&networkingv1.ServiceCIDR{
6597+
ObjectMeta: metav1.ObjectMeta{
6598+
Name: "foo.123",
6599+
},
6600+
Spec: networkingv1.ServiceCIDRSpec{
6601+
CIDRs: []string{"10.1.0.0/16", "fd00:1:1::/64"},
6602+
},
6603+
}),
6604+
6605+
output: `Name: foo.123
6606+
Labels: <none>
6607+
Annotations: <none>
6608+
CIDRs: 10.1.0.0/16, fd00:1:1::/64
6609+
Events: <none>` + "\n",
6610+
},
6611+
"ServiceCIDR v1 IPv4": {
6612+
input: fake.NewSimpleClientset(&networkingv1.ServiceCIDR{
6613+
ObjectMeta: metav1.ObjectMeta{
6614+
Name: "foo.123",
6615+
},
6616+
Spec: networkingv1.ServiceCIDRSpec{
6617+
CIDRs: []string{"10.1.0.0/16"},
6618+
},
6619+
}),
6620+
6621+
output: `Name: foo.123
6622+
Labels: <none>
6623+
Annotations: <none>
6624+
CIDRs: 10.1.0.0/16
6625+
Events: <none>` + "\n",
6626+
},
6627+
"ServiceCIDR v1 IPv6": {
6628+
input: fake.NewSimpleClientset(&networkingv1.ServiceCIDR{
6629+
ObjectMeta: metav1.ObjectMeta{
6630+
Name: "foo.123",
6631+
},
6632+
Spec: networkingv1.ServiceCIDRSpec{
6633+
CIDRs: []string{"fd00:1:1::/64"},
6634+
},
6635+
}),
6636+
6637+
output: `Name: foo.123
6638+
Labels: <none>
6639+
Annotations: <none>
6640+
CIDRs: fd00:1:1::/64
65936641
Events: <none>` + "\n",
65946642
},
65956643
}
@@ -6633,6 +6681,31 @@ func TestDescribeIPAddress(t *testing.T) {
66336681
output: `Name: foo.123
66346682
Labels: <none>
66356683
Annotations: <none>
6684+
Parent Reference:
6685+
Group: mygroup
6686+
Resource: myresource
6687+
Namespace: mynamespace
6688+
Name: myname
6689+
Events: <none>` + "\n",
6690+
},
6691+
"IPAddress v1": {
6692+
input: fake.NewSimpleClientset(&networkingv1.IPAddress{
6693+
ObjectMeta: metav1.ObjectMeta{
6694+
Name: "foo.123",
6695+
},
6696+
Spec: networkingv1.IPAddressSpec{
6697+
ParentRef: &networkingv1.ParentReference{
6698+
Group: "mygroup",
6699+
Resource: "myresource",
6700+
Namespace: "mynamespace",
6701+
Name: "myname",
6702+
},
6703+
},
6704+
}),
6705+
6706+
output: `Name: foo.123
6707+
Labels: <none>
6708+
Annotations: <none>
66366709
Parent Reference:
66376710
Group: mygroup
66386711
Resource: myresource

0 commit comments

Comments
 (0)