Files
kubernetes/pkg/util
Kubernetes Submit Queue 009858f18d Merge pull request #48555 from redbaron/hostPath-and-subPath-symlink
Automatic merge from submit-queue

Fix subPath existence check to not follow symlink

**What this PR does / why we need it**:
Volume mounting logic introduced in #43775 and #45623 checks
for subPath existence before attempting to create a directory,
should subPath not be present.

This breaks if subPath is a dangling symlink, os.Stat returns
"do not exist" status, yet `os.MkdirAll` can't create directory
as symlink is present at the given path.

This patch makes existence check to use os.Lstat which works for
normal files/directories as well as doesn't not attempt to follow
symlink, therefore it's "do not exist" status is more reliable when
making a decision whether to create directory or not.

subPath symlinks can be dangling in situations where kubelet is
running in a container itself with access to docker socket, such
as CoreOS's kubelet-wrapper script

**Release note**:
```release-note
Fix pods failing to start when subPath is a dangling symlink from kubelet point of view, which can happen if it is running inside a container
```
2017-07-12 23:43:12 -07:00
..
2017-05-17 20:35:37 +00:00
2017-04-14 10:40:57 -07:00
2017-04-14 10:40:57 -07:00
2017-04-25 11:23:33 -07:00
2017-06-26 16:05:35 +02:00
2017-04-14 10:40:57 -07:00
2017-04-14 10:40:57 -07:00
2017-04-14 10:40:57 -07:00
2017-04-14 10:40:57 -07:00
2017-04-14 10:40:57 -07:00
2017-04-14 10:40:57 -07:00
2017-04-14 10:40:57 -07:00
2017-04-14 10:40:57 -07:00
2017-04-14 10:40:57 -07:00
2017-04-14 10:40:57 -07:00
2017-06-30 23:04:18 -07:00
2017-06-22 11:31:03 -07:00
2017-06-22 11:31:03 -07:00
2017-07-05 12:42:41 -07:00
2017-04-14 10:40:57 -07:00
2017-04-06 16:15:34 -04:00
2017-04-14 10:40:57 -07:00