kubernetes/pkg/kubelet
Maxim Ivanov 020ec43b56 Fix subPath existence check to not follow symlink
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
2017-07-07 11:52:16 +01:00
..
apis Update all relevant interfaces and create stubs 2017-05-24 15:21:16 -07:00
cadvisor Use Docker API Version instead of docker version 2017-04-27 10:05:22 -04:00
certificate Merge pull request #45059 from jcbsmpsn/rotate-server-certificate 2017-05-30 19:49:02 -07:00
client autogenerated 2017-04-14 10:40:57 -07:00
cm Fix naming and comments in Container Manage 2017-05-26 10:53:09 +08:00
config use the base filename to check if the filename starts with a dot 2017-05-16 12:17:58 -04:00
configmap Use TTL-based caching configmap manager in kubelet 2017-05-31 10:39:40 +02:00
container Fix kubelet event recording 2017-05-22 17:24:36 -04:00
custommetrics Merge pull request #44469 from siggy/siggy/custom-metrics-comment 2017-04-17 19:59:16 -07:00
dockershim Revert "kubelet/network: report but tolerate errors returned from GetNetNS()" 2017-05-31 17:16:32 -07:00
envvars kubelet/envvars: Adding brackets to IPv6 addresses 2017-04-30 19:15:01 +02:00
events fix regression in UX experience for double attach volume 2017-05-25 09:27:24 +08:00
eviction Merge pull request #45488 from bboreham/eviction-log-format 2017-05-30 03:46:55 -07:00
gpu Update bazel BUID files 2017-05-05 11:48:08 -07:00
images Merge pull request #45014 from CaoShuFeng/unit_for_freed_image_size 2017-05-30 07:49:03 -07:00
kuberuntime Update all relevant interfaces and create stubs 2017-05-24 15:21:16 -07:00
leaky Enable auto-generating sources rules 2017-01-05 14:14:13 -08:00
lifecycle autogenerated 2017-04-14 10:40:57 -07:00
metrics Unregister some metrics 2017-05-17 18:31:56 +08:00
network Revert "kubelet/network: report but tolerate errors returned from GetNetNS()" 2017-05-31 17:16:32 -07:00
pleg Merge pull request #45496 from andyxning/fix_pleg_relist_time 2017-05-21 04:17:14 -07:00
pod Migrate kubelet configmap management logic to an interface 2017-05-31 10:39:36 +02:00
preemption Moved qos to api.helpers. 2017-05-20 07:17:57 -04:00
prober Migrate kubelet configmap management logic to an interface 2017-05-31 10:39:36 +02:00
qos Moved qos to api.helpers. 2017-05-20 07:17:57 -04:00
remote Merge pull request #45614 from yujuhong/container-metrics 2017-05-26 16:59:08 -07:00
rkt Fix kubelet event recording 2017-05-22 17:24:36 -04:00
rktshim Reorganize kubelet tree so apis can be independently versioned 2017-05-12 10:02:33 -07:00
secret Refactor move of client-go/util/clock to apimachinery 2017-05-20 14:19:48 -04:00
server Certificate rotation for kubelet server certs. 2017-05-29 12:28:01 -07:00
status Migrate kubelet configmap management logic to an interface 2017-05-31 10:39:36 +02:00
sysctl Remove various references of dockertools 2017-05-11 10:01:41 -07:00
types Keep annotation_key_constants consistent 2017-05-16 14:25:30 -07:00
util Merge pull request #46089 from karataliu/wincri1 2017-05-25 21:40:02 -07:00
volumemanager Migrate kubelet configmap management logic to an interface 2017-05-31 10:39:36 +02:00
active_deadline_test.go Refactor move of client-go/util/clock to apimachinery 2017-05-20 14:19:48 -04:00
active_deadline.go Refactor move of client-go/util/clock to apimachinery 2017-05-20 14:19:48 -04:00
BUILD Migrate kubelet configmap management logic to an interface 2017-05-31 10:39:36 +02:00
disk_manager_test.go
disk_manager.go
doc.go
kubelet_cadvisor_test.go Use the assert/require package in kubelet unit tests 2017-03-16 10:21:44 -07:00
kubelet_cadvisor.go start the apimachinery repo 2017-01-11 09:09:48 -05:00
kubelet_getters_test.go Use the assert/require package in kubelet unit tests 2017-03-16 10:21:44 -07:00
kubelet_getters.go kubelet: Fix ConfigMap on Windows. 2017-01-24 18:40:49 +00:00
kubelet_network_test.go Merge pull request #45036 from apilloud/fix_resolvconf 2017-06-01 11:41:58 -07:00
kubelet_network.go resolv.conf nameserver line has only one entry 2017-04-27 09:23:04 -07:00
kubelet_node_status_test.go cleanup kubelet new node status test 2017-05-30 11:08:31 -04:00
kubelet_node_status.go kubelet was sending negative allocatable values 2017-05-26 13:01:24 -04:00
kubelet_pods_test.go write HostAliases to hosts file 2017-04-29 11:31:24 -07:00
kubelet_pods_windows_test.go kubelet: Fix ConfigMap on Windows. 2017-01-24 18:40:49 +00:00
kubelet_pods.go Fix subPath existence check to not follow symlink 2017-07-07 11:52:16 +01:00
kubelet_resources_test.go add support for node allocatable phase 2 to kubelet 2017-02-27 21:24:44 -08:00
kubelet_resources.go move pkg/api/v1/ref.go and pkg/api/v1/resource.go to subpackages. move some functions in resource.go to pkg/api/v1/node and pkg/api/v1/pod 2017-04-17 11:38:11 -07:00
kubelet_test.go Migrate kubelet configmap management logic to an interface 2017-05-31 10:39:36 +02:00
kubelet_volumes_test.go Add missing Cleanup() calls in kubelet tests. 2017-05-25 13:19:56 -07:00
kubelet_volumes.go fix comment error in function newVolumeMounterFromPlugins 2017-06-01 12:47:12 +08:00
kubelet.go Use TTL-based caching configmap manager in kubelet 2017-05-31 10:39:40 +02:00
networks_test.go Bump kubelet/networks test coverage 2017-05-17 11:20:06 +02:00
networks.go pass noopnetworkhost to dockershim 2017-05-03 16:32:01 -07:00
oom_watcher_test.go Use the assert/require package in kubelet unit tests 2017-03-16 10:21:44 -07:00
oom_watcher.go switch kubelet to use external (client-go) object references for events 2017-01-31 19:15:33 -05:00
OWNERS Small fix in kubelet owner file. 2017-01-19 11:04:57 -08:00
pod_container_deletor_test.go
pod_container_deletor.go start the apimachinery repo 2017-01-11 09:09:48 -05:00
pod_workers_test.go Refactor move of client-go/util/clock to apimachinery 2017-05-20 14:19:48 -04:00
pod_workers.go increase timeout 2017-02-27 10:59:24 -08:00
reason_cache_test.go start the apimachinery repo 2017-01-11 09:09:48 -05:00
reason_cache.go start the apimachinery repo 2017-01-11 09:09:48 -05:00
runonce_test.go Migrate kubelet configmap management logic to an interface 2017-05-31 10:39:36 +02:00
runonce.go cmd/kubelet 2016-11-23 15:53:09 -08:00
runtime.go Check the health of PLEG when updating the node status 2017-01-10 16:34:00 -08:00
util.go cmd/kubelet 2016-11-23 15:53:09 -08:00
volume_host.go Migrate kubelet configmap management logic to an interface 2017-05-31 10:39:36 +02:00