From b938cdabd068a82ec78984c3ea72161da76f8284 Mon Sep 17 00:00:00 2001 From: Aufar Gilbran Date: Sat, 16 Jul 2022 16:57:38 +0800 Subject: [PATCH] Print ServiceAccount attached to the Pod --- .../k8s.io/kubectl/pkg/describe/describe.go | 3 +++ .../kubectl/pkg/describe/describe_test.go | 24 +++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/staging/src/k8s.io/kubectl/pkg/describe/describe.go b/staging/src/k8s.io/kubectl/pkg/describe/describe.go index e73fb16d846..ac8e603531d 100644 --- a/staging/src/k8s.io/kubectl/pkg/describe/describe.go +++ b/staging/src/k8s.io/kubectl/pkg/describe/describe.go @@ -766,6 +766,9 @@ func describePod(pod *corev1.Pod, events *corev1.EventList) (string, error) { if len(pod.Spec.PriorityClassName) > 0 { w.Write(LEVEL_0, "Priority Class Name:\t%s\n", stringOrNone(pod.Spec.PriorityClassName)) } + if len(pod.Spec.ServiceAccountName) > 0 { + w.Write(LEVEL_0, "Service Account:\t%s\n", pod.Spec.ServiceAccountName) + } if pod.Spec.NodeName == "" { w.Write(LEVEL_0, "Node:\t\n") } else { diff --git a/staging/src/k8s.io/kubectl/pkg/describe/describe_test.go b/staging/src/k8s.io/kubectl/pkg/describe/describe_test.go index f9988f53a81..c1e21515b22 100644 --- a/staging/src/k8s.io/kubectl/pkg/describe/describe_test.go +++ b/staging/src/k8s.io/kubectl/pkg/describe/describe_test.go @@ -102,6 +102,30 @@ func TestDescribePod(t *testing.T) { } } +func TestDescribePodServiceAccount(t *testing.T) { + fake := fake.NewSimpleClientset(&corev1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: "bar", + Namespace: "foo", + }, + Spec: corev1.PodSpec{ + ServiceAccountName: "fooaccount", + }, + }) + c := &describeClient{T: t, Namespace: "foo", Interface: fake} + d := PodDescriber{c} + out, err := d.Describe("foo", "bar", DescriberSettings{ShowEvents: true}) + if err != nil { + t.Errorf("unexpected error: %v", err) + } + if !strings.Contains(out, "Service Account:") { + t.Errorf("unexpected out: %s", out) + } + if !strings.Contains(out, "fooaccount") { + t.Errorf("unexpected out: %s", out) + } +} + func TestDescribePodEphemeralContainers(t *testing.T) { fake := fake.NewSimpleClientset(&corev1.Pod{ ObjectMeta: metav1.ObjectMeta{