Skip to content

Commit 5fc4f4d

Browse files
authored
Merge pull request kubernetes#90469 from uthark/oatamanenko/describe-node-leases
Ignore forbidden error for leases when describing node
2 parents 02637bb + 8aa0df4 commit 5fc4f4d

File tree

1 file changed

+32
-26
lines changed

1 file changed

+32
-26
lines changed

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

Lines changed: 32 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3038,15 +3038,6 @@ func (d *NodeDescriber) Describe(namespace, name string, describerSettings Descr
30383038
return "", err
30393039
}
30403040

3041-
lease, err := d.CoordinationV1().Leases(corev1.NamespaceNodeLease).Get(context.TODO(), name, metav1.GetOptions{})
3042-
if err != nil {
3043-
if !errors.IsNotFound(err) {
3044-
return "", err
3045-
}
3046-
// Corresponding Lease object doesn't exist - print it accordingly.
3047-
lease = nil
3048-
}
3049-
30503041
fieldSelector, err := fields.ParseSelector("spec.nodeName=" + name + ",status.phase!=" + string(corev1.PodSucceeded) + ",status.phase!=" + string(corev1.PodFailed))
30513042
if err != nil {
30523043
return "", err
@@ -3073,10 +3064,15 @@ func (d *NodeDescriber) Describe(namespace, name string, describerSettings Descr
30733064
}
30743065
}
30753066

3076-
return describeNode(node, lease, nodeNonTerminatedPodsList, events, canViewPods)
3067+
return describeNode(node, nodeNonTerminatedPodsList, events, canViewPods, &LeaseDescriber{d})
30773068
}
30783069

3079-
func describeNode(node *corev1.Node, lease *coordinationv1.Lease, nodeNonTerminatedPodsList *corev1.PodList, events *corev1.EventList, canViewPods bool) (string, error) {
3070+
type LeaseDescriber struct {
3071+
client clientset.Interface
3072+
}
3073+
3074+
func describeNode(node *corev1.Node, nodeNonTerminatedPodsList *corev1.PodList, events *corev1.EventList,
3075+
canViewPods bool, ld *LeaseDescriber) (string, error) {
30803076
return tabbedString(func(out io.Writer) error {
30813077
w := NewPrefixWriter(out)
30823078
w.Write(LEVEL_0, "Name:\t%s\n", node.Name)
@@ -3091,22 +3087,13 @@ func describeNode(node *corev1.Node, lease *coordinationv1.Lease, nodeNonTermina
30913087
printNodeTaintsMultiline(w, "Taints", node.Spec.Taints)
30923088
w.Write(LEVEL_0, "Unschedulable:\t%v\n", node.Spec.Unschedulable)
30933089

3094-
w.Write(LEVEL_0, "Lease:\n")
3095-
holderIdentity := "<unset>"
3096-
if lease != nil && lease.Spec.HolderIdentity != nil {
3097-
holderIdentity = *lease.Spec.HolderIdentity
3098-
}
3099-
w.Write(LEVEL_1, "HolderIdentity:\t%s\n", holderIdentity)
3100-
acquireTime := "<unset>"
3101-
if lease != nil && lease.Spec.AcquireTime != nil {
3102-
acquireTime = lease.Spec.AcquireTime.Time.Format(time.RFC1123Z)
3103-
}
3104-
w.Write(LEVEL_1, "AcquireTime:\t%s\n", acquireTime)
3105-
renewTime := "<unset>"
3106-
if lease != nil && lease.Spec.RenewTime != nil {
3107-
renewTime = lease.Spec.RenewTime.Time.Format(time.RFC1123Z)
3090+
if ld != nil {
3091+
if lease, err := ld.client.CoordinationV1().Leases(corev1.NamespaceNodeLease).Get(context.TODO(), node.Name, metav1.GetOptions{}); err == nil {
3092+
describeNodeLease(lease, w)
3093+
} else {
3094+
w.Write(LEVEL_0, "Lease:\tFailed to get lease: %s\n", err)
3095+
}
31083096
}
3109-
w.Write(LEVEL_1, "RenewTime:\t%s\n", renewTime)
31103097

31113098
if len(node.Status.Conditions) > 0 {
31123099
w.Write(LEVEL_0, "Conditions:\n Type\tStatus\tLastHeartbeatTime\tLastTransitionTime\tReason\tMessage\n")
@@ -3183,6 +3170,25 @@ func describeNode(node *corev1.Node, lease *coordinationv1.Lease, nodeNonTermina
31833170
})
31843171
}
31853172

3173+
func describeNodeLease(lease *coordinationv1.Lease, w PrefixWriter) {
3174+
w.Write(LEVEL_0, "Lease:\n")
3175+
holderIdentity := "<unset>"
3176+
if lease != nil && lease.Spec.HolderIdentity != nil {
3177+
holderIdentity = *lease.Spec.HolderIdentity
3178+
}
3179+
w.Write(LEVEL_1, "HolderIdentity:\t%s\n", holderIdentity)
3180+
acquireTime := "<unset>"
3181+
if lease != nil && lease.Spec.AcquireTime != nil {
3182+
acquireTime = lease.Spec.AcquireTime.Time.Format(time.RFC1123Z)
3183+
}
3184+
w.Write(LEVEL_1, "AcquireTime:\t%s\n", acquireTime)
3185+
renewTime := "<unset>"
3186+
if lease != nil && lease.Spec.RenewTime != nil {
3187+
renewTime = lease.Spec.RenewTime.Time.Format(time.RFC1123Z)
3188+
}
3189+
w.Write(LEVEL_1, "RenewTime:\t%s\n", renewTime)
3190+
}
3191+
31863192
type StatefulSetDescriber struct {
31873193
client clientset.Interface
31883194
}

0 commit comments

Comments
 (0)