Kubelet publishes events

Built on top of  #2261 and #2268
Can you move this entire section into a function and instead of nesting N layers deep, return early if an error happens? That makes it much easier to read (and is more "go style").