ch

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Feb 16, 2022 License: Apache-2.0 Imports: 46 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	DockerMeasuredCPUStats = []string{"Throttled Periods", "Throttled Time", "Percent"}

	// cgroup-v2 only exposes a subset of memory stats
	DockerCgroupV1MeasuredMemStats = []string{"RSS", "Cache", "Swap", "Usage", "Max Usage"}
)

Functions

func CalculateCPUPercent added in v0.0.5

func CalculateCPUPercent(newSample, oldSample, newTotal, oldTotal uint64, cores int) float64

func NewPlugin

func NewPlugin(logger hclog.Logger) drivers.DriverPlugin

NewPlugin returns a new Container Host driver plugin

Types

type CHContainer added in v0.0.4

type CHContainer struct {
	CreateBody container.ContainerCreateCreatedBody
	Mounts     []CHMount
}

type CHMount added in v0.0.4

type CHMount struct {
	mount.Mount
	Name       string
	Source     string
	MountPoint string
	Volume     string
	Sync       bool
}

type Config

type Config struct {
	Enabled bool   `codec:"enabled"`
	Runtime string `codec:"runtime"`
}

Config contains configuration information for the plugin

type Driver added in v0.0.35

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

Driver is an example driver plugin. When provisioned in a job,

func (*Driver) Capabilities added in v0.0.35

func (d *Driver) Capabilities() (*drivers.Capabilities, error)

Capabilities returns the features supported by the driver.

func (*Driver) ConfigSchema added in v0.0.35

func (d *Driver) ConfigSchema() (*hclspec.Spec, error)

ConfigSchema returns the plugin configuration schema.

func (*Driver) DestroyTask added in v0.0.35

func (d *Driver) DestroyTask(taskID string, force bool) error

DestroyTask cleans up and removes a task that has terminated.

func (*Driver) ExecTask added in v0.0.35

func (d *Driver) ExecTask(taskID string, cmd []string, timeout time.Duration) (*drivers.ExecTaskResult, error)

ExecTask returns the result of executing the given command inside a task. This is an optional capability.

func (*Driver) ExecTaskStreaming added in v0.0.35

func (d *Driver) ExecTaskStreaming(ctx context.Context, taskID string, opts *drivers.ExecOptions) (*drivers.ExitResult, error)

func (*Driver) Fingerprint added in v0.0.35

func (d *Driver) Fingerprint(ctx context.Context) (<-chan *drivers.Fingerprint, error)

Fingerprint returns a channel that will be used to send health information and other driver specific node attributes.

func (*Driver) InspectTask added in v0.0.35

func (d *Driver) InspectTask(taskID string) (*drivers.TaskStatus, error)

InspectTask returns detailed status information for the referenced taskID.

func (*Driver) PluginInfo added in v0.0.35

func (d *Driver) PluginInfo() (*base.PluginInfoResponse, error)

PluginInfo returns information describing the plugin.

func (*Driver) RecoverTask added in v0.0.35

func (d *Driver) RecoverTask(handle *drivers.TaskHandle) error

RecoverTask recreates the in-memory state of a task from a TaskHandle.

func (*Driver) SetConfig added in v0.0.35

func (d *Driver) SetConfig(cfg *base.Config) error

SetConfig is called by the client to pass the configuration for the plugin.

func (*Driver) SignalTask added in v0.0.35

func (d *Driver) SignalTask(taskID string, signal string) error

SignalTask forwards a signal to a task. This is an optional capability.

func (*Driver) StartTask added in v0.0.35

StartTask returns a task handle and a driver network if necessary.

func (*Driver) StopTask added in v0.0.35

func (d *Driver) StopTask(taskID string, timeout time.Duration, signal string) error

StopTask stops a running task with the given signal and within the timeout window.

func (*Driver) TaskConfigSchema added in v0.0.35

func (d *Driver) TaskConfigSchema() (*hclspec.Spec, error)

TaskConfigSchema returns the HCL schema for the configuration of a task.

func (*Driver) TaskEvents added in v0.0.35

func (d *Driver) TaskEvents(ctx context.Context) (<-chan *drivers.TaskEvent, error)

TaskEvents returns a channel that the plugin can use to emit task related events.

func (*Driver) TaskStats added in v0.0.35

func (d *Driver) TaskStats(ctx context.Context, taskID string, interval time.Duration) (<-chan *drivers.TaskResourceUsage, error)

TaskStats returns a channel which the driver should send stats to at the given interval.

func (*Driver) WaitTask added in v0.0.35

func (d *Driver) WaitTask(ctx context.Context, taskID string) (<-chan *drivers.ExitResult, error)

WaitTask returns a channel used to notify Nomad when a task exits.

type RegistryAuth

type RegistryAuth struct {
	Username string `codec:"username"`
	Password string `codec:"password"`
}

RegistryAuth info to pull image from registry.

type TaskConfig

type TaskConfig struct {
	Image      string       `codec:"image"`
	Command    string       `codec:"command"`
	Entrypoint []string     `codec:"entrypoint"`
	Auth       RegistryAuth `codec:"auth"`
	Ports      []string     `codec:"ports"`
	Copy       []string     `codec:"copy"`
	Args       []string     `codec:"args"`
	Mapping    []string     `codec:"mapping"`
}

TaskConfig contains configuration information for a task that runs with this plugin

type TaskState

type TaskState struct {
	ReattachConfig *structs.ReattachConfig
	TaskConfig     *drivers.TaskConfig
	StartedAt      time.Time

	// TODO: add any extra important values that must be persisted in order
	// to restore a task.
	//
	// The plugin keeps track of its running tasks in a in-memory data
	// structure. If the plugin crashes, this data will be lost, so Nomad
	// will respawn a new instance of the plugin and try to restore its
	// in-memory representation of the running tasks using the RecoverTask()
	// method below.
	Pid         int
	ContainerID string
	CHContainer CHContainer
	// contains filtered or unexported fields
}

TaskState is the runtime state which is encoded in the handle returned to Nomad client. This information is needed to rebuild the task state and handler during recovery.

Jump to

Keyboard shortcuts

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