Documentation ¶
Index ¶
- Constants
- func GetConflictFreeLabels(labels []string) ([]string, error)
- func ModifiedDiscoverySettings(config *Config, backendType, advertise string, clusterOpts map[string]string) bool
- func ParseClusterAdvertiseSettings(clusterStore, clusterAdvertise string) (string, error)
- func ParseGenericResources(value []string) ([]swarm.GenericResource, error)
- func Reload(configFile string, flags *pflag.FlagSet, reload func(*Config)) error
- func Validate(config *Config) error
- type BridgeConfig
- type CommonConfig
- type CommonTLSOptions
- type CommonUnixConfig
- type Config
- func (conf *Config) GetAllRuntimes() map[string]types.Runtime
- func (conf *Config) GetDefaultRuntimeName() string
- func (conf *Config) GetExecRoot() string
- func (conf *Config) GetInitPath() string
- func (conf *Config) GetRuntime(name string) *types.Runtime
- func (conf *Config) IsSwarmCompatible() error
- func (conf *Config) IsValueSet(name string) bool
- func (conf *Config) ValidatePlatformConfig() error
- type LogConfig
Constants ¶
const ( // DefaultMaxConcurrentDownloads is the default value for // maximum number of downloads that // may take place at a time for each pull. DefaultMaxConcurrentDownloads = 3 // DefaultMaxConcurrentUploads is the default value for // maximum number of uploads that // may take place at a time for each push. DefaultMaxConcurrentUploads = 5 // StockRuntimeName is the reserved name/alias used to represent the // OCI runtime being shipped with the docker daemon package. StockRuntimeName = "runc" // DefaultShmSize is the default value for container's shm size DefaultShmSize = int64(67108864) // DefaultNetworkMtu is the default value for network MTU DefaultNetworkMtu = 1500 // DisableNetworkBridge is the default value of the option to disable network bridge DisableNetworkBridge = "none" // DefaultInitBinary is the name of the default init binary DefaultInitBinary = "balena-engine-init" )
const ( // DefaultIpcMode is default for container's IpcMode, if not set otherwise DefaultIpcMode = "shareable" // TODO: change to private )
Variables ¶
This section is empty.
Functions ¶
func GetConflictFreeLabels ¶
GetConflictFreeLabels validates Labels for conflict In swarm the duplicates for labels are removed so we only take same values here, no conflict values If the key-value is the same we will only take the last label
func ModifiedDiscoverySettings ¶
func ModifiedDiscoverySettings(config *Config, backendType, advertise string, clusterOpts map[string]string) bool
ModifiedDiscoverySettings returns whether the discovery configuration has been modified or not.
func ParseClusterAdvertiseSettings ¶
ParseClusterAdvertiseSettings parses the specified advertise settings
func ParseGenericResources ¶
func ParseGenericResources(value []string) ([]swarm.GenericResource, error)
ParseGenericResources parses and validates the specified string as a list of GenericResource
Types ¶
type BridgeConfig ¶
type BridgeConfig struct { // Fields below here are platform specific. EnableIPv6 bool `json:"ipv6,omitempty"` EnableIPTables bool `json:"iptables,omitempty"` EnableIPForward bool `json:"ip-forward,omitempty"` EnableIPMasq bool `json:"ip-masq,omitempty"` EnableUserlandProxy bool `json:"userland-proxy,omitempty"` UserlandProxyPath string `json:"userland-proxy-path,omitempty"` FixedCIDRv6 string `json:"fixed-cidr-v6,omitempty"` // contains filtered or unexported fields }
BridgeConfig stores all the bridge driver specific configuration.
type CommonConfig ¶
type CommonConfig struct { AuthzMiddleware *authorization.Middleware `json:"-"` AuthorizationPlugins []string `json:"authorization-plugins,omitempty"` // AuthorizationPlugins holds list of authorization plugins AutoRestart bool `json:"-"` Context map[string][]string `json:"-"` DisableBridge bool `json:"-"` DNS []string `json:"dns,omitempty"` DNSOptions []string `json:"dns-opts,omitempty"` DNSSearch []string `json:"dns-search,omitempty"` ExecOptions []string `json:"exec-opts,omitempty"` GraphDriver string `json:"storage-driver,omitempty"` GraphOptions []string `json:"storage-opts,omitempty"` DeltaGraphDriver string `json:"delta-storage-driver,omitempty"` DeltaGraphOptions []string `json:"delta-storage-opts,omitempty"` Labels []string `json:"labels,omitempty"` Mtu int `json:"mtu,omitempty"` NetworkDiagnosticPort int `json:"network-diagnostic-port,omitempty"` Pidfile string `json:"pidfile,omitempty"` RawLogs bool `json:"raw-logs,omitempty"` RootDeprecated string `json:"graph,omitempty"` Root string `json:"data-root,omitempty"` DeltaRoot string `json:"delta-data-root,omitempty"` ExecRoot string `json:"exec-root,omitempty"` SocketGroup string `json:"group,omitempty"` CorsHeaders string `json:"api-cors-header,omitempty"` // TrustKeyPath is used to generate the daemon ID and for signing schema 1 manifests // when pushing to a registry which does not support schema 2. This field is marked as // deprecated because schema 1 manifests are deprecated in favor of schema 2 and the // daemon ID will use a dedicated identifier not shared with exported signatures. TrustKeyPath string `json:"deprecated-key-path,omitempty"` // LiveRestoreEnabled determines whether we should keep containers // alive upon daemon shutdown/start LiveRestoreEnabled bool `json:"live-restore,omitempty"` // ClusterStore is the storage backend used for the cluster information. It is used by both // multihost networking (to store networks and endpoints information) and by the node discovery // mechanism. ClusterStore string `json:"cluster-store,omitempty"` // ClusterOpts is used to pass options to the discovery package for tuning libkv settings, such // as TLS configuration settings. ClusterOpts map[string]string `json:"cluster-store-opts,omitempty"` // ClusterAdvertise is the network endpoint that the Engine advertises for the purpose of node // discovery. This should be a 'host:port' combination on which that daemon instance is // reachable by other hosts. ClusterAdvertise string `json:"cluster-advertise,omitempty"` // MaxConcurrentDownloads is the maximum number of downloads that // may take place at a time for each pull. MaxConcurrentDownloads *int `json:"max-concurrent-downloads,omitempty"` // MaxConcurrentUploads is the maximum number of uploads that // may take place at a time for each push. MaxConcurrentUploads *int `json:"max-concurrent-uploads,omitempty"` // ShutdownTimeout is the timeout value (in seconds) the daemon will wait for the container // to stop when daemon is being shutdown ShutdownTimeout int `json:"shutdown-timeout,omitempty"` Debug bool `json:"debug,omitempty"` Hosts []string `json:"hosts,omitempty"` LogLevel string `json:"log-level,omitempty"` TLS bool `json:"tls,omitempty"` TLSVerify bool `json:"tlsverify,omitempty"` // Embedded structs that allow config // deserialization without the full struct. CommonTLSOptions // SwarmDefaultAdvertiseAddr is the default host/IP or network interface // to use if a wildcard address is specified in the ListenAddr value // given to the /swarm/init endpoint and no advertise address is // specified. SwarmDefaultAdvertiseAddr string `json:"swarm-default-advertise-addr"` MetricsAddress string `json:"metrics-addr"` LogConfig BridgeConfig // bridgeConfig holds bridge network specific configuration. registry.ServiceOptions sync.Mutex // FIXME(vdemeester) This part is not that clear and is mainly dependent on cli flags // It should probably be handled outside this package. ValuesSet map[string]interface{} Experimental bool `json:"experimental"` // Experimental indicates whether experimental features should be exposed or not // Exposed node Generic Resources // e.g: ["orange=red", "orange=green", "orange=blue", "apple=3"] NodeGenericResources []string `json:"node-generic-resources,omitempty"` // NetworkControlPlaneMTU allows to specify the control plane MTU, this will allow to optimize the network use in some components NetworkControlPlaneMTU int `json:"network-control-plane-mtu,omitempty"` // ContainerAddr is the address used to connect to containerd if we're // not starting it ourselves ContainerdAddr string `json:"containerd,omitempty"` }
CommonConfig defines the configuration of a docker daemon which is common across platforms. It includes json tags to deserialize configuration from a file using the same names that the flags in the command line use.
type CommonTLSOptions ¶
type CommonTLSOptions struct { CAFile string `json:"tlscacert,omitempty"` CertFile string `json:"tlscert,omitempty"` KeyFile string `json:"tlskey,omitempty"` }
CommonTLSOptions defines TLS configuration for the daemon server. It includes json tags to deserialize configuration from a file using the same names that the flags in the command line use.
type CommonUnixConfig ¶
type CommonUnixConfig struct { Runtimes map[string]types.Runtime `json:"runtimes,omitempty"` DefaultRuntime string `json:"default-runtime,omitempty"` DefaultInitBinary string `json:"default-init,omitempty"` }
CommonUnixConfig defines configuration of a docker daemon that is common across Unix platforms.
type Config ¶
type Config struct { CommonConfig // These fields are common to all unix platforms. CommonUnixConfig // Fields below here are platform specific. CgroupParent string `json:"cgroup-parent,omitempty"` EnableSelinuxSupport bool `json:"selinux-enabled,omitempty"` RemappedRoot string `json:"userns-remap,omitempty"` Ulimits map[string]*units.Ulimit `json:"default-ulimits,omitempty"` CPURealtimePeriod int64 `json:"cpu-rt-period,omitempty"` CPURealtimeRuntime int64 `json:"cpu-rt-runtime,omitempty"` OOMScoreAdjust int `json:"oom-score-adjust,omitempty"` Init bool `json:"init,omitempty"` InitPath string `json:"init-path,omitempty"` SeccompProfile string `json:"seccomp-profile,omitempty"` ShmSize opts.MemBytes `json:"default-shm-size,omitempty"` NoNewPrivileges bool `json:"no-new-privileges,omitempty"` IpcMode string `json:"default-ipc-mode,omitempty"` }
Config defines the configuration of a docker daemon. It includes json tags to deserialize configuration from a file using the same names that the flags in the command line uses.
func MergeDaemonConfigurations ¶
func MergeDaemonConfigurations(flagsConfig *Config, flags *pflag.FlagSet, configFile string) (*Config, error)
MergeDaemonConfigurations reads a configuration file, loads the file configuration in an isolated structure, and merges the configuration provided from flags on top if there are no conflicts.
func (*Config) GetAllRuntimes ¶
GetAllRuntimes returns a copy of the runtimes map
func (*Config) GetDefaultRuntimeName ¶
GetDefaultRuntimeName returns the current default runtime
func (*Config) GetExecRoot ¶
GetExecRoot returns the user configured Exec-root
func (*Config) GetInitPath ¶
GetInitPath returns the configured docker-init path
func (*Config) GetRuntime ¶
GetRuntime returns the runtime path and arguments for a given runtime name
func (*Config) IsSwarmCompatible ¶
IsSwarmCompatible defines if swarm mode can be enabled in this config
func (*Config) IsValueSet ¶
IsValueSet returns true if a configuration value was explicitly set in the configuration file.
func (*Config) ValidatePlatformConfig ¶
ValidatePlatformConfig checks if any platform-specific configuration settings are invalid.
type LogConfig ¶
type LogConfig struct { Type string `json:"log-driver,omitempty"` Config map[string]string `json:"log-opts,omitempty"` }
LogConfig represents the default log configuration. It includes json tags to deserialize configuration from a file using the same names that the flags in the command line use.