Merge pull request #106485 from aimuz/fix-kubectl-uid
fix Kubectl describe node missing event Kubernetes-commit: 4d45ae5050cc1ab10bba65b49ff4fe7cd4547fed
This commit is contained in:
commit
6347985cf4
4
go.mod
4
go.mod
|
|
@ -35,7 +35,7 @@ require (
|
||||||
k8s.io/apimachinery v0.0.0-20220327010740-1992dccd17de
|
k8s.io/apimachinery v0.0.0-20220327010740-1992dccd17de
|
||||||
k8s.io/cli-runtime v0.0.0-20220328052852-84e333d968d4
|
k8s.io/cli-runtime v0.0.0-20220328052852-84e333d968d4
|
||||||
k8s.io/client-go v0.0.0-20220327011239-402aa66c5cad
|
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/component-helpers v0.0.0-20220327011904-6a03ec91fb2a
|
||||||
k8s.io/klog/v2 v2.60.1
|
k8s.io/klog/v2 v2.60.1
|
||||||
k8s.io/kube-openapi v0.0.0-20220324211241-9f9c01d62a3a
|
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/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/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/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/component-helpers => k8s.io/component-helpers v0.0.0-20220327011904-6a03ec91fb2a
|
||||||
k8s.io/metrics => k8s.io/metrics v0.0.0-20220327013221-9d8785aa9377
|
k8s.io/metrics => k8s.io/metrics v0.0.0-20220327013221-9d8785aa9377
|
||||||
)
|
)
|
||||||
|
|
|
||||||
4
go.sum
4
go.sum
|
|
@ -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 h1:v2udgOBdg/+3kM7nGJtQfjvnlsjgA0wdR9sJjiX7UfQ=
|
||||||
k8s.io/client-go v0.0.0-20220327011239-402aa66c5cad/go.mod h1:HCq7QlEN/lEZ7hg4X9ldPo4rbktT3jtB83/5IJmurlw=
|
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/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-20220328131428-cf687172c5c1 h1:u12RSj/wUOlBMijVItJMa5oFTamtWwcJGpl0m64M3Vc=
|
||||||
k8s.io/component-base v0.0.0-20220327011759-ab4264d408ec/go.mod h1:ovi3X90kD1M022w7Jk4rQ0JiXQSCTZGXTP3xC65q2FM=
|
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 h1:euIo+fgv9QlPQLbNyfZKs0u1E7ZwvCJ/4K8SYwgaL/4=
|
||||||
k8s.io/component-helpers v0.0.0-20220327011904-6a03ec91fb2a/go.mod h1:uK2zz8FPyEfyDcix2/Gv3te5X2sgHzr/wS27VUbEIxA=
|
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=
|
k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
|
||||||
|
|
|
||||||
|
|
@ -3519,8 +3519,17 @@ func (d *NodeDescriber) Describe(namespace, name string, describerSettings Descr
|
||||||
klog.Errorf("Unable to construct reference to '%#v': %v", node, err)
|
klog.Errorf("Unable to construct reference to '%#v': %v", node, err)
|
||||||
} else {
|
} else {
|
||||||
// TODO: We haven't decided the namespace for Node object yet.
|
// 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)
|
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...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4934,6 +4934,7 @@ func TestDescribeNode(t *testing.T) {
|
||||||
&corev1.Node{
|
&corev1.Node{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "bar",
|
Name: "bar",
|
||||||
|
UID: "uid",
|
||||||
},
|
},
|
||||||
Spec: corev1.NodeSpec{
|
Spec: corev1.NodeSpec{
|
||||||
Unschedulable: true,
|
Unschedulable: true,
|
||||||
|
|
@ -4986,6 +4987,42 @@ func TestDescribeNode(t *testing.T) {
|
||||||
Phase: corev1.PodRunning,
|
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}
|
c := &describeClient{T: t, Namespace: "foo", Interface: fake}
|
||||||
d := NodeDescriber{c}
|
d := NodeDescriber{c}
|
||||||
|
|
@ -5003,7 +5040,9 @@ func TestDescribeNode(t *testing.T) {
|
||||||
memory 1Gi (8%) 2Gi (16%)
|
memory 1Gi (8%) 2Gi (16%)
|
||||||
ephemeral-storage 0 (0%) 0 (0%)
|
ephemeral-storage 0 (0%) 0 (0%)
|
||||||
hugepages-1Gi 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 {
|
for _, expected := range expectedOut {
|
||||||
if !strings.Contains(out, expected) {
|
if !strings.Contains(out, expected) {
|
||||||
t.Errorf("expected to find %q in output: %q", expected, out)
|
t.Errorf("expected to find %q in output: %q", expected, out)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue