Skip to content

Commit a186385

Browse files
committed
Clean up service account print and describe
1 parent 032142c commit a186385

File tree

4 files changed

+9
-74
lines changed

4 files changed

+9
-74
lines changed

pkg/printers/internalversion/printers.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,6 @@ func AddHandlers(h printers.PrintHandler) {
299299

300300
serviceAccountColumnDefinitions := []metav1.TableColumnDefinition{
301301
{Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]},
302-
{Name: "Secrets", Type: "string", Description: apiv1.ServiceAccount{}.SwaggerDoc()["secrets"]},
303302
{Name: "Age", Type: "string", Description: metav1.ObjectMeta{}.SwaggerDoc()["creationTimestamp"]},
304303
}
305304
_ = h.TableHandler(serviceAccountColumnDefinitions, printServiceAccount)
@@ -1915,7 +1914,7 @@ func printServiceAccount(obj *api.ServiceAccount, options printers.GenerateOptio
19151914
row := metav1.TableRow{
19161915
Object: runtime.RawExtension{Object: obj},
19171916
}
1918-
row.Cells = append(row.Cells, obj.Name, int64(len(obj.Secrets)), translateTimestampSince(obj.CreationTimestamp))
1917+
row.Cells = append(row.Cells, obj.Name, translateTimestampSince(obj.CreationTimestamp))
19191918
return []metav1.TableRow{row}, nil
19201919
}
19211920

pkg/printers/internalversion/printers_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,7 @@ func TestPrintServiceAccount(t *testing.T) {
468468
Secrets: []api.ObjectReference{},
469469
},
470470
// Columns: Name, (Num) Secrets, Age
471-
expected: []metav1.TableRow{{Cells: []interface{}{"sa1", int64(0), "0s"}}},
471+
expected: []metav1.TableRow{{Cells: []interface{}{"sa1", "0s"}}},
472472
},
473473
// Basic service account with two secrets.
474474
{
@@ -483,7 +483,7 @@ func TestPrintServiceAccount(t *testing.T) {
483483
},
484484
},
485485
// Columns: Name, (Num) Secrets, Age
486-
expected: []metav1.TableRow{{Cells: []interface{}{"sa1", int64(2), "0s"}}},
486+
expected: []metav1.TableRow{{Cells: []interface{}{"sa1", "0s"}}},
487487
},
488488
}
489489

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

Lines changed: 5 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -3445,61 +3445,15 @@ func (d *ServiceAccountDescriber) Describe(namespace, name string, describerSett
34453445
return "", err
34463446
}
34473447

3448-
tokens := []corev1.Secret{}
3449-
3450-
// missingSecrets is the set of all secrets present in the
3451-
// serviceAccount but not present in the set of existing secrets.
3452-
missingSecrets := sets.New[string]()
3453-
secrets := corev1.SecretList{}
3454-
err = runtimeresource.FollowContinue(&metav1.ListOptions{Limit: describerSettings.ChunkSize},
3455-
func(options metav1.ListOptions) (runtime.Object, error) {
3456-
newList, err := d.CoreV1().Secrets(namespace).List(context.TODO(), options)
3457-
if err != nil {
3458-
return nil, runtimeresource.EnhanceListError(err, options, corev1.ResourceSecrets.String())
3459-
}
3460-
secrets.Items = append(secrets.Items, newList.Items...)
3461-
return newList, nil
3462-
})
3463-
3464-
// errors are tolerated here in order to describe the serviceAccount with all
3465-
// of the secrets that it references, even if those secrets cannot be fetched.
3466-
if err == nil {
3467-
// existingSecrets is the set of all secrets remaining on a
3468-
// service account that are not present in the "tokens" slice.
3469-
existingSecrets := sets.New[string]()
3470-
3471-
for _, s := range secrets.Items {
3472-
if s.Type == corev1.SecretTypeServiceAccountToken {
3473-
name := s.Annotations[corev1.ServiceAccountNameKey]
3474-
uid := s.Annotations[corev1.ServiceAccountUIDKey]
3475-
if name == serviceAccount.Name && uid == string(serviceAccount.UID) {
3476-
tokens = append(tokens, s)
3477-
}
3478-
}
3479-
existingSecrets.Insert(s.Name)
3480-
}
3481-
3482-
for _, s := range serviceAccount.Secrets {
3483-
if !existingSecrets.Has(s.Name) {
3484-
missingSecrets.Insert(s.Name)
3485-
}
3486-
}
3487-
for _, s := range serviceAccount.ImagePullSecrets {
3488-
if !existingSecrets.Has(s.Name) {
3489-
missingSecrets.Insert(s.Name)
3490-
}
3491-
}
3492-
}
3493-
34943448
var events *corev1.EventList
34953449
if describerSettings.ShowEvents {
34963450
events, _ = searchEvents(d.CoreV1(), serviceAccount, describerSettings.ChunkSize)
34973451
}
34983452

3499-
return describeServiceAccount(serviceAccount, tokens, missingSecrets, events)
3453+
return describeServiceAccount(serviceAccount, events)
35003454
}
35013455

3502-
func describeServiceAccount(serviceAccount *corev1.ServiceAccount, tokens []corev1.Secret, missingSecrets sets.Set[string], events *corev1.EventList) (string, error) {
3456+
func describeServiceAccount(serviceAccount *corev1.ServiceAccount, events *corev1.EventList) (string, error) {
35033457
return tabbedString(func(out io.Writer) error {
35043458
w := NewPrefixWriter(out)
35053459
w.Write(LEVEL_0, "Name:\t%s\n", serviceAccount.Name)
@@ -3510,28 +3464,16 @@ func describeServiceAccount(serviceAccount *corev1.ServiceAccount, tokens []core
35103464
var (
35113465
emptyHeader = " "
35123466
pullHeader = "Image pull secrets:"
3513-
mountHeader = "Mountable secrets: "
3514-
tokenHeader = "Tokens: "
35153467

3516-
pullSecretNames = []string{}
3517-
mountSecretNames = []string{}
3518-
tokenSecretNames = []string{}
3468+
pullSecretNames = []string{}
35193469
)
35203470

35213471
for _, s := range serviceAccount.ImagePullSecrets {
35223472
pullSecretNames = append(pullSecretNames, s.Name)
35233473
}
3524-
for _, s := range serviceAccount.Secrets {
3525-
mountSecretNames = append(mountSecretNames, s.Name)
3526-
}
3527-
for _, s := range tokens {
3528-
tokenSecretNames = append(tokenSecretNames, s.Name)
3529-
}
35303474

35313475
types := map[string][]string{
3532-
pullHeader: pullSecretNames,
3533-
mountHeader: mountSecretNames,
3534-
tokenHeader: tokenSecretNames,
3476+
pullHeader: pullSecretNames,
35353477
}
35363478
for _, header := range sets.List(sets.KeySet(types)) {
35373479
names := types[header]
@@ -3540,11 +3482,7 @@ func describeServiceAccount(serviceAccount *corev1.ServiceAccount, tokens []core
35403482
} else {
35413483
prefix := header
35423484
for _, name := range names {
3543-
if missingSecrets.Has(name) {
3544-
w.Write(LEVEL_0, "%s\t%s (not found)\n", prefix, name)
3545-
} else {
3546-
w.Write(LEVEL_0, "%s\t%s\n", prefix, name)
3547-
}
3485+
w.Write(LEVEL_0, "%s\t%s\n", prefix, name)
35483486
prefix = emptyHeader
35493487
}
35503488
}

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6238,9 +6238,7 @@ func TestDescribeServiceAccount(t *testing.T) {
62386238
Namespace: foo
62396239
Labels: <none>
62406240
Annotations: <none>
6241-
Image pull secrets: test-local-ref (not found)
6242-
Mountable secrets: test-objectref (not found)
6243-
Tokens: <none>
6241+
Image pull secrets: test-local-ref
62446242
Events: <none>` + "\n"
62456243
if out != expectedOut {
62466244
t.Errorf("expected : %q\n but got output:\n %q", expectedOut, out)

0 commit comments

Comments
 (0)