5e1b246b9a
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
117 lines
2.8 KiB
Go
117 lines
2.8 KiB
Go
package daemon
|
|
|
|
import (
|
|
"os/user"
|
|
|
|
"github.com/docker/docker/testutil/environment"
|
|
)
|
|
|
|
// Option is used to configure a daemon.
|
|
type Option func(*Daemon)
|
|
|
|
// WithContainerdSocket sets the --containerd option on the daemon.
|
|
// Use an empty string to remove the option.
|
|
//
|
|
// If unset the --containerd option will be used with a default value.
|
|
func WithContainerdSocket(socket string) Option {
|
|
return func(d *Daemon) {
|
|
d.containerdSocket = socket
|
|
}
|
|
}
|
|
|
|
// WithDefaultCgroupNamespaceMode sets the default cgroup namespace mode for the daemon
|
|
func WithDefaultCgroupNamespaceMode(mode string) Option {
|
|
return func(d *Daemon) {
|
|
d.defaultCgroupNamespaceMode = mode
|
|
}
|
|
}
|
|
|
|
// WithTestLogger causes the daemon to log certain actions to the provided test.
|
|
func WithTestLogger(t LogT) Option {
|
|
return func(d *Daemon) {
|
|
d.log = t
|
|
}
|
|
}
|
|
|
|
// WithExperimental sets the daemon in experimental mode
|
|
func WithExperimental() Option {
|
|
return func(d *Daemon) {
|
|
d.experimental = true
|
|
}
|
|
}
|
|
|
|
// WithInit sets the daemon init
|
|
func WithInit() Option {
|
|
return func(d *Daemon) {
|
|
d.init = true
|
|
}
|
|
}
|
|
|
|
// WithDockerdBinary sets the dockerd binary to the specified one
|
|
func WithDockerdBinary(dockerdBinary string) Option {
|
|
return func(d *Daemon) {
|
|
d.dockerdBinary = dockerdBinary
|
|
}
|
|
}
|
|
|
|
// WithSwarmPort sets the swarm port to use for swarm mode
|
|
func WithSwarmPort(port int) Option {
|
|
return func(d *Daemon) {
|
|
d.SwarmPort = port
|
|
}
|
|
}
|
|
|
|
// WithSwarmListenAddr sets the swarm listen addr to use for swarm mode
|
|
func WithSwarmListenAddr(listenAddr string) Option {
|
|
return func(d *Daemon) {
|
|
d.swarmListenAddr = listenAddr
|
|
}
|
|
}
|
|
|
|
// WithSwarmDefaultAddrPool sets the swarm default address pool to use for swarm mode
|
|
func WithSwarmDefaultAddrPool(defaultAddrPool []string) Option {
|
|
return func(d *Daemon) {
|
|
d.DefaultAddrPool = defaultAddrPool
|
|
}
|
|
}
|
|
|
|
// WithSwarmDefaultAddrPoolSubnetSize sets the subnet length mask of swarm default address pool to use for swarm mode
|
|
func WithSwarmDefaultAddrPoolSubnetSize(subnetSize uint32) Option {
|
|
return func(d *Daemon) {
|
|
d.SubnetSize = subnetSize
|
|
}
|
|
}
|
|
|
|
// WithSwarmDataPathPort sets the swarm datapath port to use for swarm mode
|
|
func WithSwarmDataPathPort(datapathPort uint32) Option {
|
|
return func(d *Daemon) {
|
|
d.DataPathPort = datapathPort
|
|
}
|
|
}
|
|
|
|
// WithEnvironment sets options from testutil/environment.Execution struct
|
|
func WithEnvironment(e environment.Execution) Option {
|
|
return func(d *Daemon) {
|
|
if e.DaemonInfo.ExperimentalBuild {
|
|
d.experimental = true
|
|
}
|
|
}
|
|
}
|
|
|
|
// WithStorageDriver sets store driver option
|
|
func WithStorageDriver(driver string) Option {
|
|
return func(d *Daemon) {
|
|
d.storageDriver = driver
|
|
}
|
|
}
|
|
|
|
// WithRootlessUser sets the daemon to be rootless
|
|
func WithRootlessUser(username string) Option {
|
|
return func(d *Daemon) {
|
|
u, err := user.Lookup(username)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
d.rootlessUser = u
|
|
}
|
|
}
|