Documentation
¶
Index ¶
- type AllocRunner
- type AllocStatsReporter
- type DriverStats
- type HookTarget
- type RunnerDestroyHook
- type RunnerHook
- type RunnerHookFactory
- type RunnerPostrunHook
- type RunnerPrerunHook
- type RunnerUpdateHook
- type RunnerUpdateRequest
- type ShutdownHook
- type TaskExitedHook
- type TaskExitedRequest
- type TaskExitedResponse
- type TaskHook
- type TaskPoststartHook
- type TaskPoststartRequest
- type TaskPoststartResponse
- type TaskPreKillHook
- type TaskPreKillRequest
- type TaskPreKillResponse
- type TaskPrestartHook
- type TaskPrestartRequest
- type TaskPrestartResponse
- type TaskStateHandler
- type TaskStopHook
- type TaskStopRequest
- type TaskStopResponse
- type TaskUpdateHook
- type TaskUpdateRequest
- type TaskUpdateResponse
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AllocRunner ¶
type AllocRunner interface {
// ID returns the ID of the allocation being run.
ID() string
// Run starts the runner and begins executing all the tasks as part of the
// allocation.
Run()
// State returns a copy of the runners state object
State() *state.State
TaskStateHandler
}
AllocRunner is the interface for an allocation runner.
type AllocStatsReporter ¶
type AllocStatsReporter interface {
LatestAllocStats(taskFilter string) (*cstructs.AllocResourceUsage, error)
}
AllocStatsReporter gives acess to the latest resource usage from the allocation
type DriverStats ¶
type DriverStats interface {
Stats(context.Context, time.Duration) (<-chan *cstructs.TaskResourceUsage, error)
}
DriverStats is the interface implemented by DriverHandles to return task stats.
type HookTarget ¶
type RunnerDestroyHook ¶
type RunnerDestroyHook interface {
RunnerHook
Destroy() error
}
type RunnerHook ¶
type RunnerHook interface {
Name() string
}
RunnnerHook is a lifecycle hook into the life cycle of an allocation runner.
type RunnerHookFactory ¶
type RunnerHookFactory func(target HookTarget) (RunnerHook, error)
XXX Not sure yet
type RunnerPostrunHook ¶
type RunnerPostrunHook interface {
RunnerHook
Postrun() error
}
type RunnerPrerunHook ¶
type RunnerPrerunHook interface {
RunnerHook
Prerun(context.Context) error
}
type RunnerUpdateHook ¶
type RunnerUpdateHook interface {
RunnerHook
Update(*RunnerUpdateRequest) error
}
type RunnerUpdateRequest ¶
type RunnerUpdateRequest struct {
Alloc *structs.Allocation
}
type ShutdownHook ¶
type ShutdownHook interface {
RunnerHook
Shutdown()
}
ShutdownHook may be implemented by AllocRunner or TaskRunner hooks and will be called when the agent process is being shutdown gracefully.
type TaskExitedHook ¶
type TaskExitedHook interface {
TaskHook
// Exited is called when a task exits and may or may not be restarted.
Exited(context.Context, *TaskExitedRequest, *TaskExitedResponse) error
}
type TaskExitedRequest ¶
type TaskExitedRequest struct{}
type TaskExitedResponse ¶
type TaskExitedResponse struct{}
type TaskHook ¶
type TaskHook interface {
Name() string
}
TaskHook is a lifecycle hook into the life cycle of a task runner.
type TaskPoststartHook ¶
type TaskPoststartHook interface {
TaskHook
// Poststart is called after the task has started.
Poststart(context.Context, *TaskPoststartRequest, *TaskPoststartResponse) error
}
type TaskPoststartRequest ¶
type TaskPoststartRequest struct {
// Exec hook (may be nil)
DriverExec interfaces.ScriptExecutor
// Network info (may be nil)
DriverNetwork *drivers.DriverNetwork
// TaskEnv is the task's environment
TaskEnv *taskenv.TaskEnv
// Stats collector
DriverStats DriverStats
}
type TaskPoststartResponse ¶
type TaskPoststartResponse struct{}
type TaskPreKillHook ¶
type TaskPreKillHook interface {
TaskHook
// PreKilling is called right before a task is going to be killed or restarted.
PreKilling(context.Context, *TaskPreKillRequest, *TaskPreKillResponse) error
}
type TaskPreKillRequest ¶
type TaskPreKillRequest struct{}
type TaskPreKillResponse ¶
type TaskPreKillResponse struct{}
type TaskPrestartHook ¶
type TaskPrestartHook interface {
TaskHook
// Prestart is called before the task is started.
Prestart(context.Context, *TaskPrestartRequest, *TaskPrestartResponse) error
}
type TaskPrestartRequest ¶
type TaskPrestartRequest struct {
// HookData is previously set data by the hook
HookData map[string]string
// Task is the task to run
Task *structs.Task
// TaskResources is the resources assigned to the task
TaskResources *structs.AllocatedTaskResources
// Vault token may optionally be set if a Vault token is available
VaultToken string
// TaskDir contains the task's directory tree on the host
TaskDir *allocdir.TaskDir
// TaskEnv is the task's environment
TaskEnv *taskenv.TaskEnv
}
type TaskPrestartResponse ¶
type TaskPrestartResponse struct {
// Env is the environment variables to set for the task
Env map[string]string
// Mounts is the set of host volumes to mount into the task
Mounts []*drivers.MountConfig
// Devices are the set of devices to mount into the task
Devices []*drivers.DeviceConfig
// HookData allows the hook to emit data to be passed in the next time it is
// run
HookData map[string]string
// Done lets the hook indicate that it should only be run once
Done bool
}
type TaskStateHandler ¶
type TaskStateHandler interface {
// TaskStateUpdated is used to notify the alloc runner about task state
// changes.
TaskStateUpdated()
}
TaskStateHandler exposes a handler to be called when a task's state changes
type TaskStopHook ¶
type TaskStopHook interface {
TaskHook
// Stop is called after the task has exited and will not be started again.
Stop(context.Context, *TaskStopRequest, *TaskStopResponse) error
}
type TaskStopRequest ¶
type TaskStopRequest struct{}
type TaskStopResponse ¶
type TaskStopResponse struct{}
type TaskUpdateHook ¶
type TaskUpdateHook interface {
TaskHook
Update(context.Context, *TaskUpdateRequest, *TaskUpdateResponse) error
}
type TaskUpdateRequest ¶
type TaskUpdateRequest struct {
VaultToken string
// Alloc is the current version of the allocation (may have been
// updated since the hook was created)
Alloc *structs.Allocation
// TaskEnv is the task's environment
TaskEnv *taskenv.TaskEnv
}
type TaskUpdateResponse ¶
type TaskUpdateResponse struct{}
Click to show internal directories.
Click to hide internal directories.