Skip to content

Commit e950e51

Browse files
authored
Merge pull request kubernetes#130862 from icylord/kubectl
kubectl: Remove duplicate selector calculation logic and add missing test cases for the 'describe DaemonSet'
2 parents 917a556 + 3e48d14 commit e950e51

File tree

2 files changed

+38
-7
lines changed

2 files changed

+38
-7
lines changed

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

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2527,18 +2527,14 @@ func (d *DaemonSetDescriber) Describe(namespace, name string, describerSettings
25272527
events, _ = searchEvents(d.CoreV1(), daemon, describerSettings.ChunkSize)
25282528
}
25292529

2530-
return describeDaemonSet(daemon, events, running, waiting, succeeded, failed)
2530+
return describeDaemonSet(daemon, selector, events, running, waiting, succeeded, failed)
25312531
}
25322532

2533-
func describeDaemonSet(daemon *appsv1.DaemonSet, events *corev1.EventList, running, waiting, succeeded, failed int) (string, error) {
2533+
func describeDaemonSet(daemon *appsv1.DaemonSet, selector labels.Selector, events *corev1.EventList, running, waiting, succeeded, failed int) (string, error) {
25342534
return tabbedString(func(out io.Writer) error {
25352535
w := NewPrefixWriter(out)
25362536
w.Write(LEVEL_0, "Name:\t%s\n", daemon.Name)
2537-
selector, err := metav1.LabelSelectorAsSelector(daemon.Spec.Selector)
2538-
if err != nil {
2539-
// this shouldn't happen if LabelSelector passed validation
2540-
return err
2541-
}
2537+
w.Write(LEVEL_0, "Namespace:\t%s\n", daemon.Namespace)
25422538
w.Write(LEVEL_0, "Selector:\t%s\n", selector)
25432539
w.Write(LEVEL_0, "Node-Selector:\t%s\n", labels.FormatLabels(daemon.Spec.Template.Spec.NodeSelector))
25442540
printLabelsMultiline(w, "Labels", daemon.Labels)

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

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6397,6 +6397,41 @@ func TestDescribeStatefulSet(t *testing.T) {
63976397
}
63986398
}
63996399

6400+
func TestDescribeDaemonSet(t *testing.T) {
6401+
fake := fake.NewSimpleClientset(&appsv1.DaemonSet{
6402+
ObjectMeta: metav1.ObjectMeta{
6403+
Name: "bar",
6404+
Namespace: "foo",
6405+
},
6406+
Spec: appsv1.DaemonSetSpec{
6407+
Selector: &metav1.LabelSelector{
6408+
MatchLabels: map[string]string{"node-role.kubernetes.io/control-plane": "true"},
6409+
},
6410+
Template: corev1.PodTemplateSpec{
6411+
Spec: corev1.PodSpec{
6412+
Containers: []corev1.Container{
6413+
{Image: "mytest-image:latest"},
6414+
},
6415+
},
6416+
},
6417+
},
6418+
})
6419+
d := DaemonSetDescriber{fake}
6420+
out, err := d.Describe("foo", "bar", DescriberSettings{ShowEvents: true})
6421+
if err != nil {
6422+
t.Errorf("unexpected error: %v", err)
6423+
}
6424+
expectedOutputs := []string{
6425+
"bar", "foo", "Containers:", "mytest-image:latest", "Selector", "node-role.kubernetes.io/control-plane=true",
6426+
}
6427+
for _, o := range expectedOutputs {
6428+
if !strings.Contains(out, o) {
6429+
t.Errorf("unexpected out: %s", out)
6430+
break
6431+
}
6432+
}
6433+
}
6434+
64006435
func TestDescribeEndpointSlice(t *testing.T) {
64016436
protocolTCP := corev1.ProtocolTCP
64026437
port80 := int32(80)

0 commit comments

Comments
 (0)