diff --git a/pkg/kubelet/runonce.go b/pkg/kubelet/runonce.go index 576c62c6b7..6b2eaef0a4 100644 --- a/pkg/kubelet/runonce.go +++ b/pkg/kubelet/runonce.go @@ -18,6 +18,7 @@ package kubelet import ( "fmt" + "os" "time" "github.com/golang/glog" @@ -42,6 +43,18 @@ type RunPodResult struct { // RunOnce polls from one configuration update and run the associated pods. func (kl *Kubelet) RunOnce(updates <-chan kubetypes.PodUpdate) ([]RunPodResult, error) { + // Setup filesystem directories. + if err := kl.setupDataDirs(); err != nil { + return nil, err + } + + // If the container logs directory does not exist, create it. + if _, err := os.Stat(containerLogsDir); err != nil { + if err := kl.os.Mkdir(containerLogsDir, 0755); err != nil { + glog.Errorf("Failed to create directory %q: %v", containerLogsDir, err) + } + } + select { case u := <-updates: glog.Infof("processing manifest with %d pods", len(u.Pods))