From f662d7d11c3aa3100f59255a1b0ca2ee3bd00b03 Mon Sep 17 00:00:00 2001 From: Dawn Chen Date: Thu, 26 Mar 2015 16:30:23 -0700 Subject: [PATCH 1/2] Kubelet reports node related events with empty namespace for now. --- pkg/api/validation/events.go | 4 +++- pkg/kubelet/kubelet.go | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/pkg/api/validation/events.go b/pkg/api/validation/events.go index 15ad7ff84aa..f2a036022e1 100644 --- a/pkg/api/validation/events.go +++ b/pkg/api/validation/events.go @@ -25,7 +25,9 @@ import ( // ValidateEvent makes sure that the event makes sense. func ValidateEvent(event *api.Event) errs.ValidationErrorList { allErrs := errs.ValidationErrorList{} - if event.Namespace != event.InvolvedObject.Namespace { + // TODO: There is no namespace required for minion + if event.InvolvedObject.Kind != "Node" && + event.Namespace != event.InvolvedObject.Namespace { allErrs = append(allErrs, errs.NewFieldInvalid("involvedObject.namespace", event.InvolvedObject.Namespace, "namespace does not match involvedObject")) } if !util.IsDNS1123Subdomain(event.Namespace) { diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index b27fec0b5a7..2967b08cab4 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -2131,11 +2131,12 @@ func (kl *Kubelet) BirthCry() { // Make an event that kubelet restarted. // TODO: get the real minion object of ourself, // and use the real minion name and UID. + // TODO: what is namespace for node? ref := &api.ObjectReference{ - Kind: "Minion", + Kind: "Node", Name: kl.hostname, UID: types.UID(kl.hostname), - Namespace: api.NamespaceDefault, + Namespace: "", } kl.recorder.Eventf(ref, "starting", "Starting kubelet.") } From 688363ad53ae1f29b5e4f67bbb4b1b96e0238ad5 Mon Sep 17 00:00:00 2001 From: Dawn Chen Date: Thu, 26 Mar 2015 16:32:08 -0700 Subject: [PATCH 2/2] Kubectl describe nodes id with events. --- pkg/kubectl/describe.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkg/kubectl/describe.go b/pkg/kubectl/describe.go index d0a335987dc..0ef55369297 100644 --- a/pkg/kubectl/describe.go +++ b/pkg/kubectl/describe.go @@ -27,6 +27,7 @@ import ( "github.com/GoogleCloudPlatform/kubernetes/pkg/api" "github.com/GoogleCloudPlatform/kubernetes/pkg/client" "github.com/GoogleCloudPlatform/kubernetes/pkg/labels" + "github.com/GoogleCloudPlatform/kubernetes/pkg/types" "github.com/golang/glog" ) @@ -366,7 +367,14 @@ func (d *NodeDescriber) Describe(namespace, name string) (string, error) { pods = append(pods, pod) } - events, _ := d.Events(namespace).Search(node) + var events *api.EventList + if ref, err := api.GetReference(node); err != nil { + glog.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) + events, _ = d.Events("").Search(ref) + } return describeNode(node, pods, events) }