opts

package
v20.10.9+incompatible Latest Latest
Warning

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

Go to latest
Published: Sep 23, 2021 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
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

func CapabilitiesMap(caps []string) map[string]bool

CapabilitiesMap normalizes the given capabilities and converts them to a map.

func ConvertKVStringsToMap

func ConvertKVStringsToMap(values []string) map[string]string

ConvertKVStringsToMap converts ["key=value"] to {"key":"value"}

func ConvertKVStringsToMapWithNil

func ConvertKVStringsToMapWithNil(values []string) map[string]*string

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

func EffectiveCapAddCapDrop(add, drop []string) (capAdd, capDrop []string)

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

func NormalizeCapability(cap string) string

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 ParseCPUs

func ParseCPUs(value string) (int64, error)

ParseCPUs takes a string ratio and returns an integer value of nano cpus

func ParseEnvFile

func ParseEnvFile(filename string) ([]string, error)

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 ParseHost

func ParseHost(defaultToTLS bool, val string) (string, error)

ParseHost and set defaults for a Daemon host string

func ParseLink(val string) (string, string, error)

ParseLink parses and validates the specified string as a link format (name:alias)

func ParseRestartPolicy

func ParseRestartPolicy(policy string) (container.RestartPolicy, error)

ParseRestartPolicy returns the parsed policy or an error indicating what is incorrect

func ParseTCPAddr

func ParseTCPAddr(tryAddr string, defaultAddr string) (string, error)

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

func ReadKVEnvStrings(files []string, override []string) ([]string, error)

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

func ReadKVStrings(files []string, override []string) ([]string, error)

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

func ValidateDNSSearch(val string) (string, error)

ValidateDNSSearch validates domain for resolvconf search configuration. A zero length domain is represented by a dot (.).

func ValidateEnv

func ValidateEnv(val string) (string, error)

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

func ValidateExtraHost(val string) (string, error)

ValidateExtraHost validates that the specified string is a valid extrahost and returns it. ExtraHost is in the form of name:ip where the ip has to be a valid ip (IPv4 or IPv6).

func ValidateHost

func ValidateHost(val string) (string, error)

ValidateHost validates that the specified string is a valid host and returns it.

func ValidateIPAddress

func ValidateIPAddress(val string) (string, error)

ValidateIPAddress validates an Ip address.

func ValidateLabel

func ValidateLabel(val string) (string, error)

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(val string) (string, error)

ValidateLink validates that the specified string has a valid link format (containerName:alias).

func ValidateMACAddress

func ValidateMACAddress(val string) (string, error)

ValidateMACAddress validates a MAC address.

func ValidateProgressOutput

func ValidateProgressOutput(val string) error

ValidateProgressOutput errors out if an invalid value is passed to --progress

func ValidateSysctl

func ValidateSysctl(val string) (string, error)

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) Set

func (o *ConfigOpt) Set(value string) error

Set a new config value

func (*ConfigOpt) String

func (o *ConfigOpt) String() string

String returns a string repr of this option

func (*ConfigOpt) Type

func (o *ConfigOpt) Type() string

Type returns the type of this option

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) Set

func (d *DurationOpt) Set(s string) error

Set a new value on the option

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 ErrBadKey

type ErrBadKey struct {
	// contains filtered or unexported fields
}

ErrBadKey typed error for bad environment variable

func (ErrBadKey) Error

func (e ErrBadKey) Error() string

type FilterOpt

type FilterOpt struct {
	// contains filtered or unexported fields
}

FilterOpt is a flag type for validating filters

func NewFilterOpt

func NewFilterOpt() FilterOpt

NewFilterOpt returns a new FilterOpt

func (*FilterOpt) Set

func (o *FilterOpt) Set(value string) error

Set sets the value of the opt by parsing the command line value

func (*FilterOpt) String

func (o *FilterOpt) String() string

func (*FilterOpt) Type

func (o *FilterOpt) Type() string

Type returns the option type

func (*FilterOpt) Value

func (o *FilterOpt) Value() filters.Args

Value returns the value of this option

type GpuOpts

type GpuOpts struct {
	// contains filtered or unexported fields
}

GpuOpts is a Value type for parsing mounts

func (*GpuOpts) Set

func (o *GpuOpts) Set(value string) error

Set a new mount value nolint: gocyclo

func (*GpuOpts) String

func (o *GpuOpts) String() string

String returns a string repr of this option

func (*GpuOpts) Type

func (o *GpuOpts) Type() string

Type returns the type of this option

func (*GpuOpts) Value

func (o *GpuOpts) Value() []container.DeviceRequest

Value returns the mounts

type IPOpt

type IPOpt struct {
	*net.IP
}

IPOpt holds an IP. It is used to store values from CLI flags.

func NewIPOpt

func NewIPOpt(ref *net.IP, defaultVal string) *IPOpt

NewIPOpt creates a new IPOpt from a reference net.IP and a string representation of an IP. If the string is not a valid IP it will fallback to the specified reference.

func (*IPOpt) Set

func (o *IPOpt) Set(val string) error

Set sets an IPv4 or IPv6 address from a given string. If the given string is not parseable as an IP address it returns an error.

func (*IPOpt) String

func (o *IPOpt) String() string

String returns the IP address stored in the IPOpt. If stored IP is a nil pointer, it returns an empty string.

func (*IPOpt) Type

func (o *IPOpt) Type() string

Type returns the type of the option

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) Delete

func (opts *ListOpts) Delete(key string)

Delete removes the specified element from the slice.

func (*ListOpts) Get

func (opts *ListOpts) Get(key string) bool

Get checks the existence of the specified key.

func (*ListOpts) GetAll

func (opts *ListOpts) GetAll() []string

GetAll returns the values of slice.

func (*ListOpts) GetAllOrEmpty

func (opts *ListOpts) GetAllOrEmpty() []string

GetAllOrEmpty returns the values of the slice or an empty slice when there are no values.

func (*ListOpts) GetMap

func (opts *ListOpts) GetMap() map[string]struct{}

GetMap returns the content of values in a map in order to avoid duplicates.

func (*ListOpts) Len

func (opts *ListOpts) Len() int

Len returns the amount of element in the slice.

func (*ListOpts) Set

func (opts *ListOpts) Set(value string) error

Set validates if needed the input value and adds it to the internal slice.

func (*ListOpts) String

func (opts *ListOpts) String() string

func (*ListOpts) Type

func (opts *ListOpts) Type() string

Type returns a string name for this Option type

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.

func (*MapOpts) GetAll

func (opts *MapOpts) GetAll() map[string]string

GetAll returns the values of MapOpts as a map.

func (*MapOpts) Set

func (opts *MapOpts) Set(value string) error

Set validates if needed the input value and add it to the internal map, by splitting on '='.

func (*MapOpts) String

func (opts *MapOpts) String() string

func (*MapOpts) Type

func (opts *MapOpts) Type() string

Type returns a string name for this Option type

type MemBytes

type MemBytes int64

MemBytes is a type for human readable memory bytes (like 128M, 2g, etc)

func (*MemBytes) Set

func (m *MemBytes) Set(value string) error

Set sets the value of the MemBytes by passing a string

func (*MemBytes) String

func (m *MemBytes) String() string

String returns the string format of the human readable memory bytes

func (*MemBytes) Type

func (m *MemBytes) Type() string

Type returns the type

func (*MemBytes) UnmarshalJSON

func (m *MemBytes) UnmarshalJSON(s []byte) error

UnmarshalJSON is the customized unmarshaler for MemBytes

func (*MemBytes) Value

func (m *MemBytes) Value() int64

Value returns the value in int64

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) Type

func (m *MemSwapBytes) Type() string

Type returns the type

func (*MemSwapBytes) UnmarshalJSON

func (m *MemSwapBytes) UnmarshalJSON(s []byte) error

UnmarshalJSON is the customized unmarshaler for MemSwapBytes

func (*MemSwapBytes) Value

func (m *MemSwapBytes) Value() int64

Value returns the value in int64

type MountOpt

type MountOpt struct {
	// contains filtered or unexported fields
}

MountOpt is a Value type for parsing mounts

func (*MountOpt) Set

func (m *MountOpt) Set(value string) error

Set a new mount value nolint: gocyclo

func (*MountOpt) String

func (m *MountOpt) String() string

String returns a string repr of this option

func (*MountOpt) Type

func (m *MountOpt) Type() string

Type returns the type of this option

func (*MountOpt) Value

func (m *MountOpt) Value() []mounttypes.Mount

Value returns the 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.

func (*NanoCPUs) Set

func (c *NanoCPUs) Set(value string) error

Set sets the value of the NanoCPU by passing a string

func (*NanoCPUs) String

func (c *NanoCPUs) String() string

String returns the string format of the number

func (*NanoCPUs) Type

func (c *NanoCPUs) Type() string

Type returns the type

func (*NanoCPUs) Value

func (c *NanoCPUs) Value() int64

Value returns the value in int64

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 // TODO add support for LinkLocalIPs in the csv notation of `--network` ?
}

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) Set

func (n *NetworkOpt) Set(value string) error

Set networkopts value

func (*NetworkOpt) String

func (n *NetworkOpt) String() string

String returns the network opts as a string

func (*NetworkOpt) Type

func (n *NetworkOpt) Type() string

Type returns the type of this option

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.

func (*PortOpt) Set

func (p *PortOpt) Set(value string) error

Set a new port value nolint: gocyclo

func (*PortOpt) String

func (p *PortOpt) String() string

String returns a string repr of this option

func (*PortOpt) Type

func (p *PortOpt) Type() string

Type returns the type of this option

func (*PortOpt) Value

func (p *PortOpt) Value() []swarm.PortConfig

Value returns the ports

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) Set

func (s *QuotedString) Set(val string) error

Set sets a new value

func (*QuotedString) String

func (s *QuotedString) String() string

func (*QuotedString) Type

func (s *QuotedString) Type() string

Type returns the type of the value

type RuntimeOpt

type RuntimeOpt struct {
	// contains filtered or unexported fields
}

RuntimeOpt defines a map of Runtimes

func NewNamedRuntimeOpt

func NewNamedRuntimeOpt(name string, ref *map[string]types.Runtime, stockRuntime string) *RuntimeOpt

NewNamedRuntimeOpt creates a new RuntimeOpt

func (*RuntimeOpt) GetMap

func (o *RuntimeOpt) GetMap() map[string]types.Runtime

GetMap returns a map of Runtimes (name: path)

func (*RuntimeOpt) Name

func (o *RuntimeOpt) Name() string

Name returns the name of the NamedListOpts in the configuration.

func (*RuntimeOpt) Set

func (o *RuntimeOpt) Set(val string) error

Set validates and updates the list of Runtimes

func (*RuntimeOpt) String

func (o *RuntimeOpt) String() string

String returns Runtime values as a string.

func (*RuntimeOpt) Type

func (o *RuntimeOpt) Type() string

Type returns the type of the option

type SecretOpt

type SecretOpt struct {
	// contains filtered or unexported fields
}

SecretOpt is a Value type for parsing secrets

func (*SecretOpt) Set

func (o *SecretOpt) Set(value string) error

Set a new secret value

func (*SecretOpt) String

func (o *SecretOpt) String() string

String returns a string repr of this option

func (*SecretOpt) Type

func (o *SecretOpt) Type() string

Type returns the type of this option

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

func NewUlimitOpt(ref *map[string]*units.Ulimit) *UlimitOpt

NewUlimitOpt creates a new UlimitOpt. Ulimits are not validated.

func (*UlimitOpt) GetList

func (o *UlimitOpt) GetList() []*units.Ulimit

GetList returns a slice of pointers to Ulimits. Values are sorted by name.

func (*UlimitOpt) Set

func (o *UlimitOpt) Set(val string) error

Set validates a Ulimit and sets its name as a key in UlimitOpt

func (*UlimitOpt) String

func (o *UlimitOpt) String() string

String returns Ulimit values as a string. Values are sorted by name.

func (*UlimitOpt) Type

func (o *UlimitOpt) Type() string

Type returns the option type

type ValidatorFctListType

type ValidatorFctListType func(val string) ([]string, error)

ValidatorFctListType defines a validator function that returns a validated list of string and/or an error

type ValidatorFctType

type ValidatorFctType func(val string) (string, error)

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

Jump to

Keyboard shortcuts

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