Versions in this module Expand all Collapse all v0 v0.7.1 Dec 20, 2017 Changes in this version + const NoSuchContainerError + var BuiltinDrivers = map[string]Factory + var DockerMeasuredCpuStats = []string + var DockerMeasuredMemStats = []string + var DriverStatsNotImplemented = errors.New("stats not implemented for driver") + var HandshakeConfig = plugin.HandshakeConfig + func GetAbsolutePath(bin string) (string, error) + func GetDockerCoordinator(config *dockerCoordinatorConfig) *dockerCoordinator + func GetKillTimeout(desired, max time.Duration) time.Duration + func GetPluginMap(w io.Writer, logLevel string) map[string]plugin.Plugin + func NewDockerCoordinator(config *dockerCoordinatorConfig) *dockerCoordinator + func SetEnvvars(envBuilder *env.Builder, fsi cstructs.FSIsolation, taskDir *allocdir.TaskDir, ...) + type CreatedResources struct + Resources map[string][]string + func NewCreatedResources() *CreatedResources + func (r *CreatedResources) Add(k, v string) + func (r *CreatedResources) Copy() *CreatedResources + func (r *CreatedResources) Hash() []byte + func (r *CreatedResources) Merge(o *CreatedResources) + func (r *CreatedResources) Remove(k, needle string) bool + type DockerDevice struct + CgroupPermissions string + ContainerPath string + HostPath string + type DockerDriver struct + func (d *DockerDriver) Abilities() DriverAbilities + func (d *DockerDriver) Cleanup(_ *ExecContext, res *CreatedResources) error + func (d *DockerDriver) FSIsolation() cstructs.FSIsolation + func (d *DockerDriver) Fingerprint(cfg *config.Config, node *structs.Node) (bool, error) + func (d *DockerDriver) Open(ctx *ExecContext, handleID string) (DriverHandle, error) + func (d *DockerDriver) Periodic() (bool, time.Duration) + func (d *DockerDriver) Prestart(ctx *ExecContext, task *structs.Task) (*PrestartResponse, error) + func (d *DockerDriver) Start(ctx *ExecContext, task *structs.Task) (*StartResponse, error) + func (d *DockerDriver) Validate(config map[string]interface{}) error + type DockerDriverAuth struct + Email string + Password string + ServerAddress string + Username string + type DockerDriverConfig struct + Args []string + Auth []DockerDriverAuth + AuthSoftFail bool + Command string + DNSOptions []string + DNSSearchDomains []string + DNSServers []string + Devices []DockerDevice + ExtraHosts []string + ForcePull bool + Hostname string + IPv4Address string + IPv6Address string + ImageName string + Interactive bool + IpcMode string + Labels map[string]string + LabelsRaw []map[string]string + LoadImage string + Logging []DockerLoggingOpts + MacAddress string + Mounts []DockerMount + NetworkAliases []string + NetworkMode string + PidMode string + PortMap map[string]int + PortMapRaw []map[string]string + Privileged bool + SecurityOpt []string + ShmSize int64 + Sysctl map[string]string + SysctlRaw []map[string]string + TTY bool + UTSMode string + Ulimit []docker.ULimit + UlimitRaw []map[string]string + UsernsMode string + VolumeDriver string + Volumes []string + WorkDir string + func NewDockerDriverConfig(task *structs.Task, env *env.TaskEnv) (*DockerDriverConfig, error) + func (c *DockerDriverConfig) Validate() error + type DockerHandle struct + Image string + ImageID string + func (h *DockerHandle) ContainerID() string + func (h *DockerHandle) Exec(ctx context.Context, cmd string, args []string) ([]byte, int, error) + func (h *DockerHandle) ID() string + func (h *DockerHandle) Kill() error + func (h *DockerHandle) Signal(s os.Signal) error + func (h *DockerHandle) Stats() (*cstructs.TaskResourceUsage, error) + func (h *DockerHandle) Update(task *structs.Task) error + func (h *DockerHandle) WaitCh() chan *dstructs.WaitResult + type DockerImageClient interface + InspectImage func(id string) (*docker.Image, error) + PullImage func(opts docker.PullImageOptions, auth docker.AuthConfiguration) error + RemoveImage func(id string) error + type DockerLoggingOpts struct + Config map[string]string + ConfigRaw []map[string]string + Type string + type DockerMount struct + ReadOnly bool + Source string + Target string + VolumeOptions []*DockerVolumeOptions + type DockerVolumeDriverConfig struct + Name string + Options []map[string]string + type DockerVolumeOptions struct + DriverConfig []DockerVolumeDriverConfig + Labels []map[string]string + NoCopy bool + type Driver interface + Abilities func() DriverAbilities + Cleanup func(*ExecContext, *CreatedResources) error + FSIsolation func() cstructs.FSIsolation + Open func(ctx *ExecContext, handleID string) (DriverHandle, error) + Prestart func(*ExecContext, *structs.Task) (*PrestartResponse, error) + Start func(ctx *ExecContext, task *structs.Task) (*StartResponse, error) + Validate func(map[string]interface{}) error + func NewDockerDriver(ctx *DriverContext) Driver + func NewDriver(name string, ctx *DriverContext) (Driver, error) + func NewExecDriver(ctx *DriverContext) Driver + func NewJavaDriver(ctx *DriverContext) Driver + func NewQemuDriver(ctx *DriverContext) Driver + func NewRawExecDriver(ctx *DriverContext) Driver + func NewRktDriver(*DriverContext) Driver + func NewRktDriver(ctx *DriverContext) Driver + type DriverAbilities struct + Exec bool + SendSignals bool + type DriverContext struct + func NewDriverContext(taskName, allocID string, config *config.Config, node *structs.Node, ...) *DriverContext + func NewEmptyDriverContext() *DriverContext + type DriverHandle interface + ID func() string + Kill func() error + Signal func(s os.Signal) error + Stats func() (*cstructs.TaskResourceUsage, error) + Update func(task *structs.Task) error + WaitCh func() chan *dstructs.WaitResult + type ExecCmdArgs struct + Args []string + Deadline time.Time + Name string + type ExecCmdReturn struct + Code int + Output []byte + type ExecContext struct + TaskDir *allocdir.TaskDir + TaskEnv *env.TaskEnv + func NewExecContext(td *allocdir.TaskDir, te *env.TaskEnv) *ExecContext + type ExecDriver struct + func (d *ExecDriver) Abilities() DriverAbilities + func (d *ExecDriver) Cleanup(*ExecContext, *CreatedResources) error + func (d *ExecDriver) FSIsolation() cstructs.FSIsolation + func (d *ExecDriver) Fingerprint(cfg *config.Config, node *structs.Node) (bool, error) + func (d *ExecDriver) Open(ctx *ExecContext, handleID string) (DriverHandle, error) + func (d *ExecDriver) Periodic() (bool, time.Duration) + func (d *ExecDriver) Prestart(*ExecContext, *structs.Task) (*PrestartResponse, error) + func (d *ExecDriver) Start(ctx *ExecContext, task *structs.Task) (*StartResponse, error) + func (d *ExecDriver) Validate(config map[string]interface{}) error + type ExecDriverConfig struct + Args []string + Command string + type ExecutorPlugin struct + Impl *ExecutorRPCServer + func (p *ExecutorPlugin) Client(b *plugin.MuxBroker, c *rpc.Client) (interface{}, error) + func (p *ExecutorPlugin) Server(*plugin.MuxBroker) (interface{}, error) + type ExecutorRPC struct + func (e *ExecutorRPC) DeregisterServices() error + func (e *ExecutorRPC) Exec(deadline time.Time, name string, args []string) ([]byte, int, error) + func (e *ExecutorRPC) Exit() error + func (e *ExecutorRPC) LaunchCmd(cmd *executor.ExecCommand) (*executor.ProcessState, error) + func (e *ExecutorRPC) LaunchSyslogServer() (*executor.SyslogServerState, error) + func (e *ExecutorRPC) SetContext(ctx *executor.ExecutorContext) error + func (e *ExecutorRPC) ShutDown() error + func (e *ExecutorRPC) Signal(s os.Signal) error + func (e *ExecutorRPC) Stats() (*cstructs.TaskResourceUsage, error) + func (e *ExecutorRPC) UpdateLogConfig(logConfig *structs.LogConfig) error + func (e *ExecutorRPC) UpdateTask(task *structs.Task) error + func (e *ExecutorRPC) Version() (*executor.ExecutorVersion, error) + func (e *ExecutorRPC) Wait() (*executor.ProcessState, error) + type ExecutorRPCServer struct + Impl executor.Executor + func (e *ExecutorRPCServer) DeregisterServices(args interface{}, resp *interface{}) error + func (e *ExecutorRPCServer) Exec(args ExecCmdArgs, result *ExecCmdReturn) error + func (e *ExecutorRPCServer) Exit(args interface{}, resp *interface{}) error + func (e *ExecutorRPCServer) LaunchCmd(args LaunchCmdArgs, ps *executor.ProcessState) error + func (e *ExecutorRPCServer) LaunchSyslogServer(args interface{}, ss *executor.SyslogServerState) error + func (e *ExecutorRPCServer) SetContext(args *executor.ExecutorContext, resp *interface{}) error + func (e *ExecutorRPCServer) ShutDown(args interface{}, resp *interface{}) error + func (e *ExecutorRPCServer) Signal(args os.Signal, resp *interface{}) error + func (e *ExecutorRPCServer) Stats(args interface{}, resourceUsage *cstructs.TaskResourceUsage) error + func (e *ExecutorRPCServer) UpdateLogConfig(args *structs.LogConfig, resp *interface{}) error + func (e *ExecutorRPCServer) UpdateTask(args *structs.Task, resp *interface{}) error + func (e *ExecutorRPCServer) Version(args interface{}, version *executor.ExecutorVersion) error + func (e *ExecutorRPCServer) Wait(args interface{}, ps *executor.ProcessState) error + type Factory func(*DriverContext) Driver + type JavaDriver struct + func (d *JavaDriver) Abilities() DriverAbilities + func (d *JavaDriver) Cleanup(*ExecContext, *CreatedResources) error + func (d *JavaDriver) FSIsolation() cstructs.FSIsolation + func (d *JavaDriver) Fingerprint(cfg *config.Config, node *structs.Node) (bool, error) + func (d *JavaDriver) Open(ctx *ExecContext, handleID string) (DriverHandle, error) + func (d *JavaDriver) Prestart(*ExecContext, *structs.Task) (*PrestartResponse, error) + func (d *JavaDriver) Start(ctx *ExecContext, task *structs.Task) (*StartResponse, error) + func (d *JavaDriver) Validate(config map[string]interface{}) error + type JavaDriverConfig struct + Args []string + Class string + ClassPath string + JarPath string + JvmOpts []string + func NewJavaDriverConfig(task *structs.Task, env *env.TaskEnv) (*JavaDriverConfig, error) + type LaunchCmdArgs struct + Cmd *executor.ExecCommand + type LogEventFn func(message string, args ...interface{}) + type PluginReattachConfig struct + AddrName string + AddrNet string + Pid int + func NewPluginReattachConfig(c *plugin.ReattachConfig) *PluginReattachConfig + func (c *PluginReattachConfig) PluginConfig() *plugin.ReattachConfig + type PrestartResponse struct + CreatedResources *CreatedResources + Network *cstructs.DriverNetwork + func NewPrestartResponse() *PrestartResponse + type QemuDriver struct + func (d *QemuDriver) Abilities() DriverAbilities + func (d *QemuDriver) Cleanup(*ExecContext, *CreatedResources) error + func (d *QemuDriver) FSIsolation() cstructs.FSIsolation + func (d *QemuDriver) Fingerprint(cfg *config.Config, node *structs.Node) (bool, error) + func (d *QemuDriver) Open(ctx *ExecContext, handleID string) (DriverHandle, error) + func (d *QemuDriver) Prestart(_ *ExecContext, task *structs.Task) (*PrestartResponse, error) + func (d *QemuDriver) Start(ctx *ExecContext, task *structs.Task) (*StartResponse, error) + func (d *QemuDriver) Validate(config map[string]interface{}) error + type QemuDriverConfig struct + Accelerator string + Args []string + GracefulShutdown bool + ImagePath string + PortMap []map[string]int + type RawExecDriver struct + func (d *RawExecDriver) Abilities() DriverAbilities + func (d *RawExecDriver) Cleanup(*ExecContext, *CreatedResources) error + func (d *RawExecDriver) FSIsolation() cstructs.FSIsolation + func (d *RawExecDriver) Fingerprint(cfg *config.Config, node *structs.Node) (bool, error) + func (d *RawExecDriver) Open(ctx *ExecContext, handleID string) (DriverHandle, error) + func (d *RawExecDriver) Prestart(*ExecContext, *structs.Task) (*PrestartResponse, error) + func (d *RawExecDriver) Start(ctx *ExecContext, task *structs.Task) (*StartResponse, error) + func (d *RawExecDriver) Validate(config map[string]interface{}) error + type RktDriver struct + func (RktDriver) Abilities() DriverAbilities + func (RktDriver) Cleanup(*ExecContext, *CreatedResources) error + func (RktDriver) FSIsolation() cstructs.FSIsolation + func (RktDriver) Fingerprint(cfg *config.Config, node *structs.Node) (bool, error) + func (RktDriver) Open(ctx *ExecContext, handleID string) (DriverHandle, error) + func (RktDriver) Periodic() (bool, time.Duration) + func (RktDriver) Prestart(*ExecContext, *structs.Task) (*PrestartResponse, error) + func (RktDriver) Start(ctx *ExecContext, task *structs.Task) (*StartResponse, error) + func (RktDriver) Validate(map[string]interface{}) error + func (d *RktDriver) Abilities() DriverAbilities + func (d *RktDriver) Cleanup(*ExecContext, *CreatedResources) error + func (d *RktDriver) FSIsolation() cstructs.FSIsolation + func (d *RktDriver) Fingerprint(cfg *config.Config, node *structs.Node) (bool, error) + func (d *RktDriver) Open(ctx *ExecContext, handleID string) (DriverHandle, error) + func (d *RktDriver) Periodic() (bool, time.Duration) + func (d *RktDriver) Prestart(ctx *ExecContext, task *structs.Task) (*PrestartResponse, error) + func (d *RktDriver) Start(ctx *ExecContext, task *structs.Task) (*StartResponse, error) + func (d *RktDriver) Validate(config map[string]interface{}) error + type RktDriverConfig struct — linux/amd64 + Args []string + Command string + DNSSearchDomains []string + DNSServers []string + Debug bool + ImageName string + InsecureOptions []string + Net []string + NoOverlay bool + PortMap map[string]string + PortMapRaw []map[string]string + TrustPrefix string + Volumes []string + type ScriptExecutor interface + Exec func(ctx context.Context, cmd string, args []string) ([]byte, int, error) + type StartResponse struct + Handle DriverHandle + Network *cstructs.DriverNetwork