Merge pull request #106485 from aimuz/fix-kubectl-uid

fix Kubectl describe node missing event

Kubernetes-commit: 4d45ae5050cc1ab10bba65b49ff4fe7cd4547fed
This commit is contained in:
Kubernetes Publisher 2022-03-28 05:39:23 -07:00
commit 6347985cf4
4 changed files with 54 additions and 6 deletions

4
go.mod
View File

@ -35,7 +35,7 @@ require (
k8s.io/apimachinery v0.0.0-20220327010740-1992dccd17de
k8s.io/cli-runtime v0.0.0-20220328052852-84e333d968d4
k8s.io/client-go v0.0.0-20220327011239-402aa66c5cad
k8s.io/component-base v0.0.0-20220327011759-ab4264d408ec
k8s.io/component-base v0.0.0-20220328131428-cf687172c5c1
k8s.io/component-helpers v0.0.0-20220327011904-6a03ec91fb2a
k8s.io/klog/v2 v2.60.1
k8s.io/kube-openapi v0.0.0-20220324211241-9f9c01d62a3a
@ -53,7 +53,7 @@ replace (
k8s.io/cli-runtime => k8s.io/cli-runtime v0.0.0-20220328052852-84e333d968d4
k8s.io/client-go => k8s.io/client-go v0.0.0-20220327011239-402aa66c5cad
k8s.io/code-generator => k8s.io/code-generator v0.0.0-20220327010549-a207ba43f29b
k8s.io/component-base => k8s.io/component-base v0.0.0-20220327011759-ab4264d408ec
k8s.io/component-base => k8s.io/component-base v0.0.0-20220328131428-cf687172c5c1
k8s.io/component-helpers => k8s.io/component-helpers v0.0.0-20220327011904-6a03ec91fb2a
k8s.io/metrics => k8s.io/metrics v0.0.0-20220327013221-9d8785aa9377
)

4
go.sum
View File

@ -857,8 +857,8 @@ k8s.io/cli-runtime v0.0.0-20220328052852-84e333d968d4/go.mod h1:hU5Muk4FAIq+AnDB
k8s.io/client-go v0.0.0-20220327011239-402aa66c5cad h1:v2udgOBdg/+3kM7nGJtQfjvnlsjgA0wdR9sJjiX7UfQ=
k8s.io/client-go v0.0.0-20220327011239-402aa66c5cad/go.mod h1:HCq7QlEN/lEZ7hg4X9ldPo4rbktT3jtB83/5IJmurlw=
k8s.io/code-generator v0.0.0-20220327010549-a207ba43f29b/go.mod h1:K+f3PS8AJPkGO9NJoAqq6J1NMsr37Ey1IaQrQ2c97yQ=
k8s.io/component-base v0.0.0-20220327011759-ab4264d408ec h1:FJOEmHL/fuAEoY/W+SUmBrfrN4lwqBpAGPIAnS4yGpA=
k8s.io/component-base v0.0.0-20220327011759-ab4264d408ec/go.mod h1:ovi3X90kD1M022w7Jk4rQ0JiXQSCTZGXTP3xC65q2FM=
k8s.io/component-base v0.0.0-20220328131428-cf687172c5c1 h1:u12RSj/wUOlBMijVItJMa5oFTamtWwcJGpl0m64M3Vc=
k8s.io/component-base v0.0.0-20220328131428-cf687172c5c1/go.mod h1:bv8VKJjKvywGpxYTIs9+A7blbVBaoOSApzZwU1DLK/8=
k8s.io/component-helpers v0.0.0-20220327011904-6a03ec91fb2a h1:euIo+fgv9QlPQLbNyfZKs0u1E7ZwvCJ/4K8SYwgaL/4=
k8s.io/component-helpers v0.0.0-20220327011904-6a03ec91fb2a/go.mod h1:uK2zz8FPyEfyDcix2/Gv3te5X2sgHzr/wS27VUbEIxA=
k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=

View File

@ -3519,8 +3519,17 @@ func (d *NodeDescriber) Describe(namespace, name string, describerSettings Descr
klog.Errorf("Unable to construct reference to '%#v': %v", node, err)
} else {
// TODO: We haven't decided the namespace for Node object yet.
ref.UID = types.UID(ref.Name)
// there are two UIDs for host events:
// controller use node.uid
// kubelet use node.name
// TODO: Uniform use of UID
events, _ = searchEvents(d.CoreV1(), ref, describerSettings.ChunkSize)
ref.UID = types.UID(ref.Name)
eventsInvName, _ := searchEvents(d.CoreV1(), ref, describerSettings.ChunkSize)
// Merge the results of two queries
events.Items = append(events.Items, eventsInvName.Items...)
}
}

View File

@ -4934,6 +4934,7 @@ func TestDescribeNode(t *testing.T) {
&corev1.Node{
ObjectMeta: metav1.ObjectMeta{
Name: "bar",
UID: "uid",
},
Spec: corev1.NodeSpec{
Unschedulable: true,
@ -4986,6 +4987,42 @@ func TestDescribeNode(t *testing.T) {
Phase: corev1.PodRunning,
},
},
&corev1.EventList{
Items: []corev1.Event{
{
ObjectMeta: metav1.ObjectMeta{
Name: "event-1",
Namespace: "default",
},
InvolvedObject: corev1.ObjectReference{
Kind: "Node",
Name: "bar",
UID: "bar",
},
Message: "Node bar status is now: NodeHasNoDiskPressure",
FirstTimestamp: metav1.NewTime(time.Date(2014, time.January, 15, 0, 0, 0, 0, time.UTC)),
LastTimestamp: metav1.NewTime(time.Date(2014, time.January, 15, 0, 0, 0, 0, time.UTC)),
Count: 1,
Type: corev1.EventTypeNormal,
},
{
ObjectMeta: metav1.ObjectMeta{
Name: "event-2",
Namespace: "default",
},
InvolvedObject: corev1.ObjectReference{
Kind: "Node",
Name: "bar",
UID: "0ceac5fb-a393-49d7-b04f-9ea5f18de5e9",
},
Message: "Node bar status is now: NodeReady",
FirstTimestamp: metav1.NewTime(time.Date(2014, time.January, 15, 0, 0, 0, 0, time.UTC)),
LastTimestamp: metav1.NewTime(time.Date(2014, time.January, 15, 0, 0, 0, 0, time.UTC)),
Count: 2,
Type: corev1.EventTypeNormal,
},
},
},
)
c := &describeClient{T: t, Namespace: "foo", Interface: fake}
d := NodeDescriber{c}
@ -5003,7 +5040,9 @@ func TestDescribeNode(t *testing.T) {
memory 1Gi (8%) 2Gi (16%)
ephemeral-storage 0 (0%) 0 (0%)
hugepages-1Gi 0 (0%) 0 (0%)
hugepages-2Mi 512Mi (25%) 512Mi (25%)`}
hugepages-2Mi 512Mi (25%) 512Mi (25%)`,
`Node bar status is now: NodeHasNoDiskPressure`,
`Node bar status is now: NodeReady`}
for _, expected := range expectedOut {
if !strings.Contains(out, expected) {
t.Errorf("expected to find %q in output: %q", expected, out)