util

package
v5.2.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 24, 2024 License: Apache-2.0 Imports: 39 Imported by: 1

Documentation

Index

Constants

View Source
const (
	// Kube annotation for podman volume driver.
	VolumeDriverAnnotation = "volume.podman.io/driver"
	// Kube annotation for podman volume type.
	VolumeTypeAnnotation = "volume.podman.io/type"
	// Kube annotation for podman volume device.
	VolumeDeviceAnnotation = "volume.podman.io/device"
	// Kube annotation for podman volume UID.
	VolumeUIDAnnotation = "volume.podman.io/uid"
	// Kube annotation for podman volume GID.
	VolumeGIDAnnotation = "volume.podman.io/gid"
	// Kube annotation for podman volume mount options.
	VolumeMountOptsAnnotation = "volume.podman.io/mount-options"
	// Kube annotation for podman volume import source.
	VolumeImportSourceAnnotation = "volume.podman.io/import-source"
	// Kube annotation for podman volume image.
	VolumeImageAnnotation = "volume.podman.io/image"
)
View Source
const DefaultCPUPeriod uint64 = 100000

DefaultCPUPeriod is the default CPU period (100ms) in microseconds, which is the same default as Kubernetes.

Variables

View Source
var (
	// ErrBadMntOption indicates that an invalid mount option was passed.
	ErrBadMntOption = errors.New("invalid mount option")
	// ErrDupeMntOption indicates that a duplicate mount option was passed.
	ErrDupeMntOption = errors.New("duplicate mount option passed")
)

Functions

func AddPrivilegedDevices

func AddPrivilegedDevices(g *generate.Generator, systemdMode bool) error

func ConvertTimeout

func ConvertTimeout(timeout int) uint

ConvertTimeout converts negative timeout to MaxUint32, which indicates approximately infinity, waiting to stop containers

func CoresToPeriodAndQuota

func CoresToPeriodAndQuota(cores float64) (uint64, int64)

CoresToPeriodAndQuota converts a fraction of cores to the equivalent Completely Fair Scheduler (CFS) parameters period and quota.

Cores is a fraction of the CFS period that a container may use. Period and Quota are in microseconds.

func CreateIDFile

func CreateIDFile(path string, id string) error

func DecodeChanges added in v5.2.2

func DecodeChanges(changes []string) []string

DecodeChanges reads one or more changes from a slice and cleans them up, since what we've advertised as being acceptable in the past isn't really.

func DefaultContainerConfig

func DefaultContainerConfig() *config.Config

func DeviceFromPath

func DeviceFromPath(path string) (*spec.LinuxDevice, error)

Copied from github.com/opencontainers/runc/libcontainer/devices Given the path to a device look up the information about a linux device

func ExecAddTERM

func ExecAddTERM(existingEnv []string, execEnvs map[string]string)

ExecAddTERM when container does not have a TERM environment variable and caller wants a tty, then leak the existing TERM environment into the container.

func ExitCode

func ExitCode(err error) int

ExitCode reads the error message when failing to executing container process and then returns 0 if no error, 126 if command does not exist, or 127 for all other errors

func FiltersFromRequest

func FiltersFromRequest(r *http.Request) ([]string, error)

filtersFromRequests extracts the "filters" parameter from the specified http.Request. The parameter can either be a `map[string][]string` as done in new versions of Docker and libpod, or a `map[string]map[string]bool` as done in older versions of Docker. We have to do a bit of Yoga to support both - just as Docker does as well.

Please refer to https://github.com/containers/podman/issues/6899 for some background.

func FindDeviceNodes

func FindDeviceNodes() (map[string]string, error)

FindDeviceNodes parses /dev/ into a set of major:minor -> path, where [major:minor] is the device's major and minor numbers formatted as, for example, 2:0 and path is the path to the device node. Symlinks to nodes are ignored.

func GetAutoOptions

func GetAutoOptions(n namespaces.UsernsMode) (*stypes.AutoUserNsOptions, error)

GetAutoOptions returns an AutoUserNsOptions with the settings to automatically set up a user namespace.

func GetContainerPidInformationDescriptors

func GetContainerPidInformationDescriptors() ([]string, error)

GetContainerPidInformationDescriptors returns a string slice of all supported format descriptors of GetContainerPidInformation.

func GetKeepIDMapping

func GetKeepIDMapping(opts *namespaces.KeepIDUserNsOptions) (*stypes.IDMappingOptions, int, int, error)

GetKeepIDMapping returns the mappings and the user to use when keep-id is used

func GetNoMapMapping

func GetNoMapMapping() (*stypes.IDMappingOptions, int, int, error)

GetNoMapMapping returns the mappings and the user to use when nomap is used

func GetRootlessConfigHomeDir

func GetRootlessConfigHomeDir() (string, error)

GetRootlessConfigHomeDir returns the config home directory when running as non root

func GetRootlessPauseProcessPidPath

func GetRootlessPauseProcessPidPath() (string, error)

GetRootlessPauseProcessPidPath returns the path to the file that holds the pid for the pause process.

func GetRootlessRuntimeDir

func GetRootlessRuntimeDir() (string, error)

GetRootlessRuntimeDir returns the runtime directory when running as non root

func IDtoolsToRuntimeSpec

func IDtoolsToRuntimeSpec(idMaps []idtools.IDMap) (convertedIDMap []specs.LinuxIDMapping)

IDtoolsToRuntimeSpec converts idtools ID mapping to the one of the runtime spec.

func LookupUser

func LookupUser(name string) (*user.User, error)

func OpenExclusiveFile

func OpenExclusiveFile(path string) (*os.File, error)

OpenExclusiveFile opens a file for writing and ensure it doesn't already exist

func ParseDockerignore

func ParseDockerignore(containerfiles []string, root string) ([]string, string, error)

Takes build context and validates `.containerignore` or `.dockerignore` if they are symlink outside of buildcontext. Returns list of files to be excluded and resolved path to the ignore files inside build context or error

func ParseDriverOpts

func ParseDriverOpts(option string) (string, string, error)

func ParseIDMap

func ParseIDMap(mapSpec []string, mapSetting string, parentMapping []ruser.IDMap) (idmap []idtools.IDMap, err error)

Extension of idTools.ParseIDMap that parses idmap triples from string. This extension accepts additional flags that control how the mapping is done

func ParseIDMapping

func ParseIDMapping(mode namespaces.UsernsMode, uidMapSlice, gidMapSlice []string, subUIDMap, subGIDMap string) (*stypes.IDMappingOptions, error)

ParseIDMapping takes idmappings and subuid and subgid maps and returns a storage mapping

func ParseInputTime

func ParseInputTime(inputTime string, since bool) (time.Time, error)

ParseInputTime takes the users input and to determine if it is valid and returns a time format and error. The input is compared to known time formats or a duration which implies no-duration

func ParseRegistryCreds

func ParseRegistryCreds(creds string) (*types.DockerAuthConfig, error)

ParseRegistryCreds takes a credentials string in the form USERNAME:PASSWORD and returns a DockerAuthConfig

func ParseRestartPolicy

func ParseRestartPolicy(policy string) (string, uint, error)

ParseRestartPolicy parses the value given to the --restart flag and returns the policy and restart retries value

func ParseSignal

func ParseSignal(rawSignal string) (syscall.Signal, error)

ParseSignal parses and validates a signal name or number.

func PeriodAndQuotaToCores

func PeriodAndQuotaToCores(period uint64, quota int64) float64

PeriodAndQuotaToCores takes the CFS parameters period and quota and returns a fraction that represents the limit to the number of cores that can be utilized over the scheduling period.

Cores is a fraction of the CFS period that a container may use. Period and Quota are in microseconds.

func PrepareFilters

func PrepareFilters(r *http.Request) (*map[string][]string, error)

PrepareFilters prepares a *map[string][]string of filters to be later searched in lipod and compat API to get desired filters

func ProcessOptions

func ProcessOptions(options []string, isTmpfs bool, sourcePath string) ([]string, error)

ProcessOptions parses the options for a bind or tmpfs mount and ensures that they are sensible and follow convention. The isTmpfs variable controls whether extra, tmpfs-specific options will be allowed. The sourcePath variable, if not empty, contains a bind mount source.

func RuntimeSpecToIDtools

func RuntimeSpecToIDtools(idMaps []specs.LinuxIDMapping) (convertedIDMap []idtools.IDMap)

RuntimeSpecToIDtoolsTo converts runtime spec to the one of the idtools ID mapping

func SizeOfPath

func SizeOfPath(path string) (uint64, error)

SizeOfPath determines the file usage of a given path. it was called volumeSize in v1 and now is made to be generic and take a path instead of a libpod volume Deprecated: use github.com/containers/storage/pkg/directory.Size() instead.

func StringMatchRegexSlice

func StringMatchRegexSlice(s string, re []string) bool

StringMatchRegexSlice determines if a given string matches one of the given regexes, returns bool

func Tmpdir

func Tmpdir() string

func ValidateSysctls

func ValidateSysctls(strSlice []string) (map[string]string, error)

ValidateSysctls validates a list of sysctl and returns it.

func WriteStorageConfigFile

func WriteStorageConfigFile(storageOpts *stypes.StoreOptions, storageConf string) error

WriteStorageConfigFile writes the configuration to a file

Types

This section is empty.

Directories

Path Synopsis
Package camelcase is a micro package to split the words of a camelcase type string into a slice of words.
Package camelcase is a micro package to split the words of a camelcase type string into a slice of words.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL