From 6b61cb290786688e3f994f4776f3a672c8f30fbb Mon Sep 17 00:00:00 2001 From: Jordan Liggitt Date: Thu, 16 Apr 2020 01:05:46 -0400 Subject: [PATCH] Print and describe failed CSRs --- pkg/printers/internalversion/printers.go | 18 +++++++++--------- .../k8s.io/kubectl/pkg/describe/describe.go | 18 +++++++++--------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/pkg/printers/internalversion/printers.go b/pkg/printers/internalversion/printers.go index 1707a46e3f1..ac58d853bbb 100644 --- a/pkg/printers/internalversion/printers.go +++ b/pkg/printers/internalversion/printers.go @@ -1781,10 +1781,7 @@ func printCertificateSigningRequest(obj *certificates.CertificateSigningRequest, row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } - status, err := extractCSRStatus(obj) - if err != nil { - return nil, err - } + status := extractCSRStatus(obj) signerName := "" if obj.Spec.SignerName != "" { signerName = obj.Spec.SignerName @@ -1793,16 +1790,16 @@ func printCertificateSigningRequest(obj *certificates.CertificateSigningRequest, return []metav1.TableRow{row}, nil } -func extractCSRStatus(csr *certificates.CertificateSigningRequest) (string, error) { - var approved, denied bool +func extractCSRStatus(csr *certificates.CertificateSigningRequest) string { + var approved, denied, failed bool for _, c := range csr.Status.Conditions { switch c.Type { case certificates.CertificateApproved: approved = true case certificates.CertificateDenied: denied = true - default: - return "", fmt.Errorf("unknown csr condition %q", c) + case certificates.CertificateFailed: + failed = true } } var status string @@ -1814,10 +1811,13 @@ func extractCSRStatus(csr *certificates.CertificateSigningRequest) (string, erro } else { status += "Pending" } + if failed { + status += ",Failed" + } if len(csr.Status.Certificate) > 0 { status += ",Issued" } - return status, nil + return status } func printCertificateSigningRequestList(list *certificates.CertificateSigningRequestList, options printers.GenerateOptions) ([]metav1.TableRow, error) { diff --git a/staging/src/k8s.io/kubectl/pkg/describe/describe.go b/staging/src/k8s.io/kubectl/pkg/describe/describe.go index cbeca846716..d58df99cd1f 100644 --- a/staging/src/k8s.io/kubectl/pkg/describe/describe.go +++ b/staging/src/k8s.io/kubectl/pkg/describe/describe.go @@ -3261,10 +3261,7 @@ func (p *CertificateSigningRequestDescriber) Describe(namespace, name string, de if err != nil { return "", fmt.Errorf("Error parsing CSR: %v", err) } - status, err := extractCSRStatus(csr) - if err != nil { - return "", err - } + status := extractCSRStatus(csr) var events *corev1.EventList if describerSettings.ShowEvents { @@ -4843,16 +4840,16 @@ func formatEndpoints(endpoints *corev1.Endpoints, ports sets.String) string { return ret } -func extractCSRStatus(csr *certificatesv1beta1.CertificateSigningRequest) (string, error) { - var approved, denied bool +func extractCSRStatus(csr *certificatesv1beta1.CertificateSigningRequest) string { + var approved, denied, failed bool for _, c := range csr.Status.Conditions { switch c.Type { case certificatesv1beta1.CertificateApproved: approved = true case certificatesv1beta1.CertificateDenied: denied = true - default: - return "", fmt.Errorf("unknown csr condition %q", c) + case certificatesv1beta1.CertificateFailed: + failed = true } } var status string @@ -4864,10 +4861,13 @@ func extractCSRStatus(csr *certificatesv1beta1.CertificateSigningRequest) (strin } else { status += "Pending" } + if failed { + status += ",Failed" + } if len(csr.Status.Certificate) > 0 { status += ",Issued" } - return status, nil + return status } // backendStringer behaves just like a string interface and converts the given backend to a string.