Merge pull request #50712 from dims/create-cadvisor-directory-if-necessary

Automatic merge from submit-queue (batch tested with PRs 51102, 50712, 51037, 51044, 51059)

Create the directory for cadvisor if needed

**What this PR does / why we need it**:

In 6c7245d464, code was added to
bail out if the directory that cadvisor monitored did not exist.

However, this breaks the earlier assumption that kubelet created
directories when needed in pkg/kubelet/kubelet.go's setupDataDirs()
method. setupDataDirs() happens much later, so basically kubelet
exits now.

So since cadvisor really needs this directory, let us just create
it

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #

Fixes #50709

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```
This commit is contained in:
Kubernetes Submit Queue 2017-08-22 12:27:59 -07:00 committed by GitHub
commit 09bb8d367a

View File

@ -24,6 +24,7 @@ import (
"net"
"net/http"
"os"
"path"
"strconv"
"time"
@ -108,7 +109,9 @@ func New(address string, port uint, runtime string, rootPath string) (Interface,
if _, err := os.Stat(rootPath); err != nil {
if os.IsNotExist(err) {
return nil, fmt.Errorf("rootDirectory %q does not exist", rootPath)
if err := os.MkdirAll(path.Clean(rootPath), 0750); err != nil {
return nil, fmt.Errorf("error creating root directory %q: %v", rootPath, err)
}
} else {
return nil, fmt.Errorf("failed to Stat %q: %v", rootPath, err)
}