Documentation ¶
Index ¶
- Constants
- func CapabilitiesMap(caps []string) map[string]bool
- func ConvertKVStringsToMap(values []string) map[string]string
- func ConvertKVStringsToMapWithNil(values []string) map[string]*string
- func ConvertPortToPortConfig(port nat.Port, portBindings map[nat.Port][]nat.PortBinding) ([]swarm.PortConfig, error)
- func EffectiveCapAddCapDrop(add, drop []string) (capAdd, capDrop []string)
- func NormalizeCapability(capability string) string
- func ParseCPUs(value string) (int64, error)
- func ParseEnvFile(filename string) ([]string, error)
- func ParseHost(defaultToTLS bool, val string) (string, error)
- func ParseLink(val string) (string, string, error)
- func ParseRestartPolicy(policy string) (container.RestartPolicy, error)
- func ParseTCPAddr(tryAddr string, defaultAddr string) (string, error)
- func ReadKVEnvStrings(files []string, override []string) ([]string, error)
- func ReadKVStrings(files []string, override []string) ([]string, error)
- func ValidateDNSSearch(val string) (string, error)
- func ValidateEnv(val string) (string, error)
- func ValidateExtraHost(val string) (string, error)
- func ValidateHost(val string) (string, error)
- func ValidateIPAddress(val string) (string, error)
- func ValidateLabel(value string) (string, error)
- func ValidateLink(val string) (string, error)
- func ValidateMACAddress(val string) (string, error)
- func ValidateSysctl(val string) (string, error)
- func ValidateThrottleBpsDevice(val string) (*blkiodev.ThrottleDevice, error)
- func ValidateThrottleIOpsDevice(val string) (*blkiodev.ThrottleDevice, error)
- func ValidateWeightDevice(val string) (*blkiodev.WeightDevice, error)
- type ConfigOpt
- type DurationOpt
- type FilterOpt
- type GpuOpts
- type ListOpts
- func (opts *ListOpts) Delete(key string)
- func (opts *ListOpts) Get(key string) bool
- func (opts *ListOpts) GetAll() []string
- func (opts *ListOpts) GetAllOrEmpty() []string
- func (opts *ListOpts) GetMap() map[string]struct{}
- func (opts *ListOpts) Len() int
- func (opts *ListOpts) Set(value string) error
- func (opts *ListOpts) String() string
- func (opts *ListOpts) Type() string
- func (opts *ListOpts) WithValidator(validator ValidatorFctType) *ListOpts
- type MapOpts
- type MemBytes
- type MemSwapBytes
- type MountOpt
- type NamedListOpts
- type NamedMapOpts
- type NamedOption
- type NanoCPUs
- type NetworkAttachmentOpts
- type NetworkOpt
- type PortOpt
- type PositiveDurationOpt
- type QuotedString
- type SecretOpt
- type ThrottledeviceOpt
- type UlimitOpt
- type ValidatorFctListType
- type ValidatorFctType
- type ValidatorThrottleFctType
- type ValidatorWeightFctType
- type WeightdeviceOpt
Constants ¶
const ( // AllCapabilities is a special value to add or drop all capabilities AllCapabilities = "ALL" // ResetCapabilities is a special value to reset capabilities when updating. // This value should only be used when updating, not used on "create". ResetCapabilities = "RESET" )
Variables ¶
This section is empty.
Functions ¶
func CapabilitiesMap ¶
CapabilitiesMap normalizes the given capabilities and converts them to a map.
func ConvertKVStringsToMap ¶
ConvertKVStringsToMap converts ["key=value"] to {"key":"value"}
func ConvertKVStringsToMapWithNil ¶
ConvertKVStringsToMapWithNil converts ["key=value"] to {"key":"value"} but set unset keys to nil - meaning the ones with no "=" in them. We use this in cases where we need to distinguish between
FOO= and FOO
where the latter case just means FOO was mentioned but not given a value
func ConvertPortToPortConfig ¶
func ConvertPortToPortConfig( port nat.Port, portBindings map[nat.Port][]nat.PortBinding, ) ([]swarm.PortConfig, error)
ConvertPortToPortConfig converts ports to the swarm type
func EffectiveCapAddCapDrop ¶
EffectiveCapAddCapDrop normalizes and sorts capabilities to "add" and "drop", and returns the effective capabilities to include in both.
"CapAdd" takes precedence over "CapDrop", so capabilities included in both lists are removed from the list of capabilities to drop. The special "ALL" capability is also taken into account.
Note that the special "RESET" value is only used when updating an existing service, and will be ignored.
Duplicates are removed, and the resulting lists are sorted.
func NormalizeCapability ¶
NormalizeCapability normalizes a capability by upper-casing, trimming white space and adding a CAP_ prefix (if not yet present). This function also accepts the "ALL" magic-value, as used by CapAdd/CapDrop.
This function only handles rudimentary formatting; no validation is performed, as the list of available capabilities can be updated over time, thus should be handled by the daemon.
func ParseEnvFile ¶
ParseEnvFile reads a file with environment variables enumerated by lines
“Environment variable names used by the utilities in the Shell and Utilities volume of IEEE Std 1003.1-2001 consist solely of uppercase letters, digits, and the '_' (underscore) from the characters defined in Portable Character Set and do not begin with a digit. *But*, other characters may be permitted by an implementation; applications shall tolerate the presence of such names.” -- http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html
As of #16585, it's up to application inside docker to validate or not environment variables, that's why we just strip leading whitespace and nothing more.
func ParseRestartPolicy ¶
func ParseRestartPolicy(policy string) (container.RestartPolicy, error)
ParseRestartPolicy returns the parsed policy or an error indicating what is incorrect
func ParseTCPAddr ¶
ParseTCPAddr parses and validates that the specified address is a valid TCP address. It returns a formatted TCP address, either using the address parsed from tryAddr, or the contents of defaultAddr if tryAddr is a blank string. tryAddr is expected to have already been Trim()'d defaultAddr must be in the full `tcp://host:port` form
func ReadKVEnvStrings ¶
ReadKVEnvStrings reads a file of line terminated key=value pairs, and overrides any keys present in the file with additional pairs specified in the override parameter. If a key has no value, it will get the value from the environment.
func ReadKVStrings ¶
ReadKVStrings reads a file of line terminated key=value pairs, and overrides any keys present in the file with additional pairs specified in the override parameter
func ValidateDNSSearch ¶
ValidateDNSSearch validates domain for resolvconf search configuration. A zero length domain is represented by a dot (.).
func ValidateEnv ¶
ValidateEnv validates an environment variable and returns it. If no value is specified, it obtains its value from the current environment
As on ParseEnvFile and related to #16585, environment variable names are not validated, and it's up to the application inside the container to validate them or not.
The only validation here is to check if name is empty, per #25099
func ValidateExtraHost ¶
ValidateExtraHost validates that the specified string is a valid extrahost and returns it. ExtraHost is in the form of name:ip or name=ip, where the ip has to be a valid ip (IPv4 or IPv6). The address may be enclosed in square brackets.
For example:
my-hostname:127.0.0.1 my-hostname:::1 my-hostname=::1 my-hostname:[::1]
For compatibility with the API server, this function normalises the given argument to use the ':' separator and strip square brackets enclosing the address.
func ValidateHost ¶
ValidateHost validates that the specified string is a valid host and returns it.
TODO(thaJeztah): ValidateHost appears to be unused; deprecate it.
func ValidateIPAddress ¶
ValidateIPAddress validates if the given value is a correctly formatted IP address, and returns the value in normalized form. Leading and trailing whitespace is allowed, but it does not allow IPv6 addresses surrounded by square brackets ("[::1]").
Refer to net.ParseIP for accepted formats.
func ValidateLabel ¶
ValidateLabel validates that the specified string is a valid label, and returns it.
Labels are in the form of key=value; key must be a non-empty string, and not contain whitespaces. A value is optional (defaults to an empty string if omitted).
Leading whitespace is removed during validation but values are kept as-is otherwise, so any string value is accepted for both, which includes whitespace (for values) and quotes (surrounding, or embedded in key or value).
TODO discuss if quotes (and other special characters) should be valid or invalid for keys TODO discuss if leading/trailing whitespace in keys should be preserved (and valid)
func ValidateLink ¶
ValidateLink validates that the specified string has a valid link format (containerName:alias).
func ValidateMACAddress ¶
ValidateMACAddress validates a MAC address.
func ValidateSysctl ¶
ValidateSysctl validates a sysctl and returns it.
func ValidateThrottleBpsDevice ¶
func ValidateThrottleBpsDevice(val string) (*blkiodev.ThrottleDevice, error)
ValidateThrottleBpsDevice validates that the specified string has a valid device-rate format.
func ValidateThrottleIOpsDevice ¶
func ValidateThrottleIOpsDevice(val string) (*blkiodev.ThrottleDevice, error)
ValidateThrottleIOpsDevice validates that the specified string has a valid device-rate format.
func ValidateWeightDevice ¶
func ValidateWeightDevice(val string) (*blkiodev.WeightDevice, error)
ValidateWeightDevice validates that the specified string has a valid device-weight format.
Types ¶
type ConfigOpt ¶
type ConfigOpt struct {
// contains filtered or unexported fields
}
ConfigOpt is a Value type for parsing configs
func (*ConfigOpt) Value ¶
func (o *ConfigOpt) Value() []*swarmtypes.ConfigReference
Value returns the config requests
type DurationOpt ¶
type DurationOpt struct {
// contains filtered or unexported fields
}
DurationOpt is an option type for time.Duration that uses a pointer. This allows us to get nil values outside, instead of defaulting to 0
func NewDurationOpt ¶
func NewDurationOpt(value *time.Duration) *DurationOpt
NewDurationOpt creates a DurationOpt with the specified duration
func (*DurationOpt) String ¶
func (d *DurationOpt) String() string
String returns a string repr of this option
func (*DurationOpt) Type ¶
func (d *DurationOpt) Type() string
Type returns the type of this option, which will be displayed in `--help` output
func (*DurationOpt) Value ¶
func (d *DurationOpt) Value() *time.Duration
Value returns the time.Duration
type FilterOpt ¶
type FilterOpt struct {
// contains filtered or unexported fields
}
FilterOpt is a flag type for validating filters
type GpuOpts ¶
type GpuOpts struct {
// contains filtered or unexported fields
}
GpuOpts is a Value type for parsing mounts
func (*GpuOpts) Value ¶
func (o *GpuOpts) Value() []container.DeviceRequest
Value returns the mounts
type ListOpts ¶
type ListOpts struct {
// contains filtered or unexported fields
}
ListOpts holds a list of values and a validation function.
func NewListOpts ¶
func NewListOpts(validator ValidatorFctType) ListOpts
NewListOpts creates a new ListOpts with the specified validator.
func NewListOptsRef ¶
func NewListOptsRef(values *[]string, validator ValidatorFctType) *ListOpts
NewListOptsRef creates a new ListOpts with the specified values and validator.
func (*ListOpts) GetAllOrEmpty ¶
GetAllOrEmpty returns the values of the slice or an empty slice when there are no values.
func (*ListOpts) GetMap ¶
GetMap returns the content of values in a map in order to avoid duplicates.
func (*ListOpts) WithValidator ¶
func (opts *ListOpts) WithValidator(validator ValidatorFctType) *ListOpts
WithValidator returns the ListOpts with validator set.
type MapOpts ¶
type MapOpts struct {
// contains filtered or unexported fields
}
MapOpts holds a map of values and a validation function.
func NewMapOpts ¶
func NewMapOpts(values map[string]string, validator ValidatorFctType) *MapOpts
NewMapOpts creates a new MapOpts with the specified map of values and a validator.
type MemBytes ¶
type MemBytes int64
MemBytes is a type for human readable memory bytes (like 128M, 2g, etc)
func (*MemBytes) UnmarshalJSON ¶
UnmarshalJSON is the customized unmarshaler for MemBytes
type MemSwapBytes ¶
type MemSwapBytes int64
MemSwapBytes is a type for human readable memory bytes (like 128M, 2g, etc). It differs from MemBytes in that -1 is valid and the default.
func (*MemSwapBytes) Set ¶
func (m *MemSwapBytes) Set(value string) error
Set sets the value of the MemSwapBytes by passing a string
func (*MemSwapBytes) String ¶
func (m *MemSwapBytes) String() string
func (*MemSwapBytes) UnmarshalJSON ¶
func (m *MemSwapBytes) UnmarshalJSON(s []byte) error
UnmarshalJSON is the customized unmarshaler for MemSwapBytes
type MountOpt ¶
type MountOpt struct {
// contains filtered or unexported fields
}
MountOpt is a Value type for parsing mounts
type NamedListOpts ¶
type NamedListOpts struct { ListOpts // contains filtered or unexported fields }
NamedListOpts is a ListOpts with a configuration name. This struct is useful to keep reference to the assigned field name in the internal configuration struct.
func NewNamedListOptsRef ¶
func NewNamedListOptsRef(name string, values *[]string, validator ValidatorFctType) *NamedListOpts
NewNamedListOptsRef creates a reference to a new NamedListOpts struct.
func (*NamedListOpts) Name ¶
func (o *NamedListOpts) Name() string
Name returns the name of the NamedListOpts in the configuration.
type NamedMapOpts ¶
type NamedMapOpts struct { MapOpts // contains filtered or unexported fields }
NamedMapOpts is a MapOpts struct with a configuration name. This struct is useful to keep reference to the assigned field name in the internal configuration struct.
func NewNamedMapOpts ¶
func NewNamedMapOpts(name string, values map[string]string, validator ValidatorFctType) *NamedMapOpts
NewNamedMapOpts creates a reference to a new NamedMapOpts struct.
func (*NamedMapOpts) Name ¶
func (o *NamedMapOpts) Name() string
Name returns the name of the NamedMapOpts in the configuration.
type NamedOption ¶
type NamedOption interface {
Name() string
}
NamedOption is an interface that list and map options with names implement.
type NanoCPUs ¶
type NanoCPUs int64
NanoCPUs is a type for fixed point fractional number.
type NetworkAttachmentOpts ¶
type NetworkAttachmentOpts struct { Target string Aliases []string DriverOpts map[string]string Links []string // TODO add support for links in the csv notation of `--network` IPv4Address string IPv6Address string LinkLocalIPs []string MacAddress string }
NetworkAttachmentOpts represents the network options for endpoint creation
type NetworkOpt ¶
type NetworkOpt struct {
// contains filtered or unexported fields
}
NetworkOpt represents a network config in swarm mode.
func (*NetworkOpt) NetworkMode ¶
func (n *NetworkOpt) NetworkMode() string
NetworkMode return the network mode for the network option
func (*NetworkOpt) String ¶
func (n *NetworkOpt) String() string
String returns the network opts as a string
func (*NetworkOpt) Value ¶
func (n *NetworkOpt) Value() []NetworkAttachmentOpts
Value returns the networkopts
type PortOpt ¶
type PortOpt struct {
// contains filtered or unexported fields
}
PortOpt represents a port config in swarm mode.
type PositiveDurationOpt ¶
type PositiveDurationOpt struct {
DurationOpt
}
PositiveDurationOpt is an option type for time.Duration that uses a pointer. It behave similarly to DurationOpt but only allows positive duration values.
func (*PositiveDurationOpt) Set ¶
func (d *PositiveDurationOpt) Set(s string) error
Set a new value on the option. Setting a negative duration value will cause an error to be returned.
type QuotedString ¶
type QuotedString struct {
// contains filtered or unexported fields
}
QuotedString is a string that may have extra quotes around the value. The quotes are stripped from the value.
func NewQuotedString ¶
func NewQuotedString(value *string) *QuotedString
NewQuotedString returns a new quoted string option
func (*QuotedString) String ¶
func (s *QuotedString) String() string
type SecretOpt ¶
type SecretOpt struct {
// contains filtered or unexported fields
}
SecretOpt is a Value type for parsing secrets
func (*SecretOpt) Value ¶
func (o *SecretOpt) Value() []*swarmtypes.SecretReference
Value returns the secret requests
type ThrottledeviceOpt ¶
type ThrottledeviceOpt struct {
// contains filtered or unexported fields
}
ThrottledeviceOpt defines a map of ThrottleDevices
func NewThrottledeviceOpt ¶
func NewThrottledeviceOpt(validator ValidatorThrottleFctType) ThrottledeviceOpt
NewThrottledeviceOpt creates a new ThrottledeviceOpt
func (*ThrottledeviceOpt) GetList ¶
func (opt *ThrottledeviceOpt) GetList() []*blkiodev.ThrottleDevice
GetList returns a slice of pointers to ThrottleDevices.
func (*ThrottledeviceOpt) Set ¶
func (opt *ThrottledeviceOpt) Set(val string) error
Set validates a ThrottleDevice and sets its name as a key in ThrottledeviceOpt
func (*ThrottledeviceOpt) String ¶
func (opt *ThrottledeviceOpt) String() string
String returns ThrottledeviceOpt values as a string.
func (*ThrottledeviceOpt) Type ¶
func (opt *ThrottledeviceOpt) Type() string
Type returns the option type
type UlimitOpt ¶
type UlimitOpt struct {
// contains filtered or unexported fields
}
UlimitOpt defines a map of Ulimits
func NewUlimitOpt ¶
NewUlimitOpt creates a new UlimitOpt. Ulimits are not validated.
func (*UlimitOpt) GetList ¶
GetList returns a slice of pointers to Ulimits. Values are sorted by name.
type ValidatorFctListType ¶
ValidatorFctListType defines a validator function that returns a validated list of string and/or an error
type ValidatorFctType ¶
ValidatorFctType defines a validator function that returns a validated string and/or an error.
type ValidatorThrottleFctType ¶
type ValidatorThrottleFctType func(val string) (*blkiodev.ThrottleDevice, error)
ValidatorThrottleFctType defines a validator function that returns a validated struct and/or an error.
type ValidatorWeightFctType ¶
type ValidatorWeightFctType func(val string) (*blkiodev.WeightDevice, error)
ValidatorWeightFctType defines a validator function that returns a validated struct and/or an error.
type WeightdeviceOpt ¶
type WeightdeviceOpt struct {
// contains filtered or unexported fields
}
WeightdeviceOpt defines a map of WeightDevices
func NewWeightdeviceOpt ¶
func NewWeightdeviceOpt(validator ValidatorWeightFctType) WeightdeviceOpt
NewWeightdeviceOpt creates a new WeightdeviceOpt
func (*WeightdeviceOpt) GetList ¶
func (opt *WeightdeviceOpt) GetList() []*blkiodev.WeightDevice
GetList returns a slice of pointers to WeightDevices.
func (*WeightdeviceOpt) Set ¶
func (opt *WeightdeviceOpt) Set(val string) error
Set validates a WeightDevice and sets its name as a key in WeightdeviceOpt
func (*WeightdeviceOpt) String ¶
func (opt *WeightdeviceOpt) String() string
String returns WeightdeviceOpt values as a string.
func (*WeightdeviceOpt) Type ¶
func (opt *WeightdeviceOpt) Type() string
Type returns the option type