package subpath
import "k8s.io/kubernetes/pkg/volume/util/subpath"
Index ¶
- Constants
- type FakeSubpath
- func (fs *FakeSubpath) CleanSubPaths(podDir string, volumeName string) error
- func (fs *FakeSubpath) PrepareSafeSubpath(subPath Subpath) (newHostPath string, cleanupAction func(), err error)
- func (fs *FakeSubpath) SafeMakeDir(pathname string, base string, perm os.FileMode) error
- type Interface
- func New(mount.Interface) Interface
- func NewNSEnter(mounter mount.Interface, ne *nsenter.Nsenter, rootDir string) Interface
- type Subpath
Constants ¶
const MaxPathLength = 32767
MaxPathLength is the maximum length of Windows path. Normally, it is 260, but if long path is enable, the max number is 32,767
Types ¶
type FakeSubpath ¶
type FakeSubpath struct{}
FakeSubpath is a subpather implementation for testing
func (*FakeSubpath) CleanSubPaths ¶
func (fs *FakeSubpath) CleanSubPaths(podDir string, volumeName string) error
CleanSubPaths is a fake implementation of CleanSubPaths. It is a noop
func (*FakeSubpath) PrepareSafeSubpath ¶
func (fs *FakeSubpath) PrepareSafeSubpath(subPath Subpath) (newHostPath string, cleanupAction func(), err error)
PrepareSafeSubpath is a fake implementation of PrepareSafeSubpath. Always returns newHostPath == subPath.Path
func (*FakeSubpath) SafeMakeDir ¶
SafeMakeDir is a fake implementation of SafeMakeDir. It is a noop
type Interface ¶
type Interface interface {
// CleanSubPaths removes any bind-mounts created by PrepareSafeSubpath in given
// pod volume directory.
CleanSubPaths(poodDir string, volumeName string) error
// PrepareSafeSubpath does everything that's necessary to prepare a subPath
// that's 1) inside given volumePath and 2) immutable after this call.
//
// newHostPath - location of prepared subPath. It should be used instead of
// hostName when running the container.
// cleanupAction - action to run when the container is running or it failed to start.
//
// CleanupAction must be called immediately after the container with given
// subpath starts. On the other hand, Interface.CleanSubPaths must be called
// when the pod finishes.
PrepareSafeSubpath(subPath Subpath) (newHostPath string, cleanupAction func(), err error)
// SafeMakeDir creates subdir within given base. It makes sure that the
// created directory does not escape given base directory mis-using
// symlinks. Note that the function makes sure that it creates the directory
// somewhere under the base, nothing else. E.g. if the directory already
// exists, it may exist outside of the base due to symlinks.
// This method should be used if the directory to create is inside volume
// that's under user control. User must not be able to use symlinks to
// escape the volume to create directories somewhere else.
SafeMakeDir(subdir string, base string, perm os.FileMode) error
}
Interface defines the set of methods all subpathers must implement
func New ¶
func New(mount.Interface) Interface
New returns a subpath.Interface for the current system
func NewNSEnter ¶
NewNSEnter is to satisfy the compiler for having NewSubpathNSEnter exist for all OS choices. however, NSEnter is only valid on Linux
type Subpath ¶
type Subpath struct {
// index of the VolumeMount for this container
VolumeMountIndex int
// Full path to the subpath directory on the host
Path string
// name of the volume that is a valid directory name.
VolumeName string
// Full path to the volume path
VolumePath string
// Path to the pod's directory, including pod UID
PodDir string
// Name of the container
ContainerName string
}
Subpath defines the attributes of a subpath
Source Files ¶
subpath.go subpath_windows.go
- Version
- v1.25.2-rc.0
- Published
- Sep 14, 2022
- Platform
- windows/amd64
- Imports
- 9 packages
- Last checked
- 15 minutes ago –
Tools for package owners.