Commit Graph

288 Commits

Author SHA1 Message Date
Travis Rhoden
935c23f2ad
Move HostUtil to pkg/volume/util/hostutil
This patch moves the HostUtil functionality from the util/mount package
to the volume/util/hostutil package.

All `*NewHostUtil*` calls are changed to return concrete types instead
of interfaces.

All callers are changed to use the `*NewHostUtil*` methods instead of
directly instantiating the concrete types.
2019-08-30 10:14:42 -06:00
Travis Rhoden
ef855c7c08
Rename mount.IsBind to mount.MakeBindOpts 2019-08-27 11:34:42 -06:00
Kubernetes Prow Robot
bc46e8fc53
Merge pull request #81739 from codenrhoden/clarify-mkdir-mkfile-behavior
Move MakeFile/Dir from HostUtil to host_path vol
2019-08-27 00:53:24 -07:00
Travis Rhoden
107039a265
Move MakeFile/Dir from HostUtil to host_path vol
The MakeFile and MakeDir methods in the HostUtil interface only had one
caller -- the Host Path volume plugin. This patch relocates MakeFile and
MakeDir to the Host Path plugin itself.
2019-08-26 10:46:08 -06:00
Travis Rhoden
a30ba6197d
Internalize mount.Interface.IsMountPointMatch
IsMountPointMatch() had no callers outside of the mount package, and has
internal implementation details. This patch makes it no longer be
public.
2019-08-26 09:47:07 -06:00
Kubernetes Prow Robot
7ebbe34d9c
Merge pull request #81794 from codenrhoden/split-host-utils2
Split HostUtil functionality into its own files
2019-08-24 22:28:21 -07:00
Travis Rhoden
b94ee6bcb1
Split HostUtil functionality into its own files
This patch takes all the HostUtil functionality currently found in
mount*.go files and copies it into hostutil*.go files. Care was taken to
preserve git history to the fullest extent.

As part of doing this, some common functionality was moved into
mount_helper files in preperation for HostUtils to stay in k/k and Mount
to move out. THe tests for each relevant function were moved to test
files to match the appropriate location.
2019-08-22 11:19:52 -06:00
Travis Rhoden
e0050ebc94
move testfiles back 2019-08-22 10:42:34 -06:00
Travis Rhoden
c55b19bc0a
copy testfiles to hostutil dir 2019-08-22 10:42:02 -06:00
Travis Rhoden
8bac909287
move files back to mount 2019-08-22 10:39:18 -06:00
Travis Rhoden
6a21076039
copy mount files to hostutils 2019-08-22 10:37:37 -06:00
Travis Rhoden
a7830a2c6e
mv HasMountRefs from mount pkg to vol/util
HasMountRefs is only used internal to K8s and should not be moved out
with the mount package. move it to pkg/volume/util instead.
2019-08-21 14:53:34 -06:00
Kubernetes Prow Robot
76e19a1619
Merge pull request #81204 from codenrhoden/rename-hu-pathexists
Rename HostUtils.ExistsPath to PathExists
2019-08-12 20:12:12 -07:00
Kubernetes Prow Robot
1d812991b6
Merge pull request #81230 from codenrhoden/rename-GetFSGroup
Rename HostUtils.GetFSGroup to HostUtils.GetOwner
2019-08-09 23:57:26 -07:00
Travis Rhoden
0e73131ca6
Rename HostUtils.GetFSGroup to HostUtils.GetOwner
This patch renames GetFSGroup (a process property) to GetOwner (a file
property), returning both the uid and gid of the given pathname. This
method is only used in one place in the k/k codebase, but having
"GetOwner" instead of "GetGroup" seems to have more utility.
2019-08-09 13:20:35 -06:00
Travis Rhoden
14e25b7c04
Rename HostUtils.ExistsPath to PathExists 2019-08-09 12:40:19 -06:00
Travis Rhoden
4574473753
Rename mount.NewOsExec to mount.NewOSExec 2019-08-09 12:30:56 -06:00
Travis Rhoden
b47184e954
Fix most linting issues in pkg/util/mount
This patch adds comments to exported items that were missing them in
order to make the linter happy. Only code changes that were limited to
the scope of this package were made. There are other linting issues that
will effect callers, and that will be done a seperate patch.
2019-08-08 12:42:21 -06:00
silenceshell
c9275c97aa
fix grammar err
"be of interest to you"
2019-07-23 19:18:29 +08:00
Brian Goff
7077bbd783 Use O_CLOEXEC in util packages
This prevents fd's from leaking to subprocesses.
2019-07-09 10:04:00 -07:00
Kubernetes Prow Robot
2501a9083d
Merge pull request #68513 from codenrhoden/mount-refactor
Refactor util/mount interface in prep for moving out of k/k
2019-06-28 13:57:28 -07:00
Kubernetes Prow Robot
efa043151c
Merge pull request #79094 from gaorong/fix-IsLikelyNotMountPoint
fix kubelet can not delete orphaned pod directory when "/var/lib/kubelet/pods" directory symbolically links to another device's directory
2019-06-18 19:02:31 -07:00
Rong Gao
595fcf68d1 fix kubelet can not delete orphaned pod directory when the kubelet's root directory symbolically links to another device's directory 2019-06-17 15:39:25 +08:00
Travis Rhoden
be7da5052f Refactor pkg/util/mount to be more reusable
This patch refactors pkg/util/mount to be more usable outside of
Kubernetes. This is done by refactoring mount.Interface to only contain
methods that are not K8s specific. Methods that are not relevant to
basic mount activities but still have OS-specific implementations are
now found in a mount.HostUtils interface.
2019-06-14 09:35:18 -06:00
Ted Yu
320dc6c54c Return early when mount ref is determined 2019-06-10 20:40:40 -07:00
smileusd
a81f770472 add annotation about IsLikelyNotMountPoint can't to distinguish mounts and symbolic link 2019-05-20 11:35:24 +08:00
Kubernetes Prow Robot
5b47a92ad8
Merge pull request #76359 from monstercy/fixtypo-20190320
correcting some spelling errors
2019-05-03 04:08:31 -07:00
Travis Rhoden
12b7f1450c Move MountsInGlobalPDPath from mount pkg to volume
Since pkg/util/mount is going to move out of k/k, this exported constant
that is Kubernetes specific needed to move somewhere else. Made sense to
move it to pkg/volume/util.

Update GetDeviceNameFromMount in the mount interface to now take a
pluginMountDir argument, which is volume plugin dir with the global
mount path appended to it already.
2019-04-29 09:56:00 -06:00
Davanum Srinivas
7b8c9acc09
remove unused code
Change-Id: If821920ec8872e326b7d85437ad8d2620807799d
2019-04-19 08:36:31 -04:00
Kubernetes Prow Robot
e8e1e9b667
Merge pull request #75119 from sungjunyoung/fix-typo
Fix typo, old link for contributors
2019-04-18 11:28:03 -07:00
Travis Rhoden
f38d4938be Move ExecMount to pkg/volume/util/exec
This patch moves the ExecMounter found in pkg/util/mount to
pkg/volume/util/exec. This is done in preparation for pkg/util/mount to
move out of tree. This specific implemention of mount.Interface is only
used internally to K8s and does not need to move out of tree.
2019-04-11 12:19:55 -06:00
Kubernetes Prow Robot
c62cd6e3a4
Merge pull request #76047 from codenrhoden/mv-nsenter-mount
Move nsenter mounter to pkg/volume/util/nsenter
2019-04-09 09:55:59 -07:00
Travis Rhoden
1c045a09db Move nsenter mounter to pkg/volume/util/nsenter
As part of moving pkg/util/mount out of tree, the NSEnter implementation
of mount.Interface needs to be relocated out of pkg/util/mount, as it is
K8s specific. This patch relocates that mounter implementation to
pkg/volume/util/nsenter.

Since the NSEnter mounter shares a lot of its logic with the Linux
mounter implementation, many of the previously private methods of the
Linux mounter are now made public to maintain that shared code.

Additionaly, it was observed that *all* mount.Interface implemenations
were using the same common method for IsNotMountPoint, so this patch
removes that method from the mount.Interface definition and just exports
the common implementation instead.
2019-04-08 09:53:46 -06:00
Travis Rhoden
6e5bf40dd2 Remove apimachinery dep from mount library
As part of wanting to move the mount library into staging and then
k8s.io/utils, there can be no dependencies on k/k code, and that
includes k/apimachinery.

This patch makes a small implementation change to no longer need
k8s.io/apimachinery/pkg/util/sets
2019-04-02 13:49:46 -06:00
Yu Cao
88204f6664 correcting some spelling errors 2019-03-20 19:33:35 +08:00
andyzhangx
4b4b6cdcab fix race condition issue for smb mount on windows
change var name
2019-03-14 15:02:15 +00:00
andyzhangx
720a5e20d8 fix smb unmount issue on Windows
fix log warning

use IsCorruptedMnt in GetMountRefs on Windows

use errorno in IsCorruptedMnt check

fix comments: add more error code

add more error no checking

change year

fix comments
2019-03-10 02:13:16 +00:00
Junyoung, Sung
f76de72816 Fix typo in IsLikelyNotMountPoint function comment: --bin -> --bind 2019-03-08 00:58:44 +09:00
Kubernetes Prow Robot
59ee7353e8
Merge pull request #74625 from davidz627/fix/xfsUnmount
GetMountRefs fixed to handle corrupted mounts by treating it like an unmounted volume
2019-03-06 20:35:26 -08:00
David Zhu
5bf970f848 GetMountRefs fixed to handle corrupted mounts by treating it like an
unmounted volume
2019-03-06 14:34:16 -08:00
Travis Rhoden
2c4d748bed Refactor subpath out of pkg/util/mount
This patch moves subpath functionality out of pkg/util/mount and into a
new package pkg/volume/util/subpath. NSEnter funtionality is maintained.
2019-02-26 19:59:53 -07:00
Travis Rhoden
766cf26897 Move original mount files back
Move original mount files back into pkg/util/mount. This move is done to
preserve git history.
2019-02-26 12:18:25 -07:00
Travis Rhoden
f2438cacf5 Copy mount files to pkg/volume/util/subpath
Files in pkg/util/mount that contain significant code implementation for
subpaths are moved to a new package at pkg/volume/util/subpath. This
move is done in order to preserve git history.
2019-02-26 12:14:55 -07:00
Clayton Coleman
7f01e23380
Ignore the sticky gid mode bit when a test is running on memory EmptyDir
While running unit tests for perf on a Kube cluster with a memory backed
emptydir as TMPDIR, TestSafeMakeDir failed with:

```
--- FAIL: TestSafeMakeDir (0.01s)
	mount_linux_test.go:661: test "directory-exists": expected permissions 20000000750, got 20020000750
```

(TMPDIR set to /tmp/volume, /tmp/volume is EmptyDir with type Memory)

The test doesn't actually care about `os.ModeSetgid`, so specifically mask it out when testing this way.
2019-02-24 17:30:37 -08:00
Kubernetes Prow Robot
9027738dd5
Merge pull request #73661 from andyzhangx/smb-mount-windows
fix smb remount issue on Windows
2019-02-15 14:04:59 -08:00
andyzhangx
660813c2d1 fix smb remount issue on Windows
add comments for doSMBMount func

fix comments about smb mount
2019-02-14 14:19:24 +00:00
Roy Lenferink
b43c04452f Updated OWNERS files to include link to docs 2019-02-04 22:33:12 +01:00
Kubernetes Prow Robot
4331660fcd
Merge pull request #73445 from danielqsj/fix-exec
migrate the rest reference of pkg/util/exec to k8s.io/utils/exec
2019-02-01 17:14:15 -08:00
Andrew Kim
84191eb99b replace pkg/util/file with k8s.io/utils/path 2019-01-29 15:20:13 -05:00
danielqsj
c7a012f033 migrate the rest reference of pkg/util/exec to k8s.io/utils/exec 2019-01-29 10:55:10 +08:00