Merge pull request #6069 from simon3z/kubelet-reboot-logic

node: move the reboot detection logic to kubelet
pull/6/head
Victor Marmol 2015-03-30 08:45:37 -07:00
commit d5ce931f0b
2 changed files with 17 additions and 17 deletions

View File

@ -294,16 +294,6 @@ func (nc *NodeController) populateNodeInfo(node *api.Node) error {
for key, value := range nodeInfo.Capacity {
node.Status.Capacity[key] = value
}
if node.Status.NodeInfo.BootID != "" &&
node.Status.NodeInfo.BootID != nodeInfo.NodeSystemInfo.BootID {
ref := &api.ObjectReference{
Kind: "Minion",
Name: node.Name,
UID: node.UID,
Namespace: api.NamespaceDefault,
}
nc.recorder.Eventf(ref, "rebooted", "Node %s has been rebooted", node.Name)
}
node.Status.NodeInfo = nodeInfo.NodeSystemInfo
return nil
}

View File

@ -1752,8 +1752,15 @@ func (kl *Kubelet) tryUpdateNodeStatus() error {
} else {
node.Status.NodeInfo.MachineID = info.MachineID
node.Status.NodeInfo.SystemUUID = info.SystemUUID
node.Status.NodeInfo.BootID = info.BootID
node.Status.Capacity = CapacityFromMachineInfo(info)
if node.Status.NodeInfo.BootID != "" &&
node.Status.NodeInfo.BootID != info.BootID {
// TODO: This requires a transaction, either both node status is updated
// and event is recorded or neither should happen, see issue #6055.
kl.recorder.Eventf(kl.getNodeReference(), "rebooted",
"Node %s has been rebooted, boot id: %s", kl.hostname, info.BootID)
}
node.Status.NodeInfo.BootID = info.BootID
}
currentTime := util.Now()
@ -1996,19 +2003,22 @@ func (kl *Kubelet) PortForward(podFullName string, uid types.UID, port uint16, s
return kl.runner.PortForward(podInfraContainer.ID, port, stream)
}
// BirthCry sends an event that the kubelet has started up.
func (kl *Kubelet) BirthCry() {
// Make an event that kubelet restarted.
// TODO: get the real minion object of ourself,
func (kl *Kubelet) getNodeReference() *api.ObjectReference {
// and use the real minion name and UID.
// TODO: what is namespace for node?
ref := &api.ObjectReference{
return &api.ObjectReference{
Kind: "Node",
Name: kl.hostname,
UID: types.UID(kl.hostname),
Namespace: "",
}
kl.recorder.Eventf(ref, "starting", "Starting kubelet.")
}
// BirthCry sends an event that the kubelet has started up.
func (kl *Kubelet) BirthCry() {
// Make an event that kubelet restarted.
// TODO: get the real minion object of ourself,
kl.recorder.Eventf(kl.getNodeReference(), "starting", "Starting kubelet.")
}
func (kl *Kubelet) StreamingConnectionIdleTimeout() time.Duration {