Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var CliCommand contextKey
CliCommand is the context key to pass cli context to backends if needed.
View Source
var ErrNoCliContextFound = errors.New("no CliContext in context found")
Functions ¶
This section is empty.
Types ¶
type Auth ¶
type Auth struct {
Username string `json:"username,omitempty"`
Password string `json:"password,omitempty"`
}
Auth defines registry authentication credentials.
type Backend ¶
type Backend interface {
// Name returns the name of the backend.
Name() string
// IsAvailable check if the backend is available.
IsAvailable(ctx context.Context) bool
// Flags return the configuration flags of the backend.
Flags() []cli.Flag
// Load loads the backend engine.
Load(ctx context.Context) (*BackendInfo, error)
// SetupWorkflow sets up the workflow environment.
SetupWorkflow(ctx context.Context, conf *Config, taskUUID string) error
// StartStep starts the workflow step.
StartStep(ctx context.Context, step *Step, taskUUID string) error
// WaitStep waits for the workflow step to complete and returns
// the completion results.
WaitStep(ctx context.Context, step *Step, taskUUID string) (*State, error)
// TailStep tails the workflow step logs.
TailStep(ctx context.Context, step *Step, taskUUID string) (io.ReadCloser, error)
// DestroyStep destroys the workflow step.
DestroyStep(ctx context.Context, step *Step, taskUUID string) error
// DestroyWorkflow destroys the workflow environment.
DestroyWorkflow(ctx context.Context, conf *Config, taskUUID string) error
}
Backend defines a container orchestration backend and is used to create and manage container resources.
type BackendInfo ¶
type BackendInfo struct {
Platform string
}
BackendInfo represents the reported information of a loaded backend.
type Config ¶
type Config struct {
Stages []*Stage `json:"pipeline"` // workflow stages
Network string `json:"network"` // network definition
Volume string `json:"volume"` // volume definition
Secrets []*Secret `json:"secrets"` // secret definitions
}
Config defines the runtime configuration of a workflow.
type Stage ¶
type Stage struct {
Steps []*Step `json:"steps,omitempty"`
}
Stage denotes a collection of one or more steps.
type State ¶
type State struct {
// Container exit code
ExitCode int `json:"exit_code"`
// Container exited, true or false
Exited bool `json:"exited"`
// Container is oom killed, true or false
OOMKilled bool `json:"oom_killed"`
// Container error
Error error
}
State defines a container state.
type Step ¶
type Step struct {
Name string `json:"name"`
OrgID int64 `json:"org_id,omitempty"`
UUID string `json:"uuid"`
Type StepType `json:"type,omitempty"`
Image string `json:"image,omitempty"`
Pull bool `json:"pull,omitempty"`
Detached bool `json:"detach,omitempty"`
Privileged bool `json:"privileged,omitempty"`
WorkingDir string `json:"working_dir,omitempty"`
WorkspaceBase string `json:"workspace_base,omitempty"`
Environment map[string]string `json:"environment,omitempty"`
SecretMapping map[string]string `json:"secret_mapping,omitempty"`
Entrypoint []string `json:"entrypoint,omitempty"`
Commands []string `json:"commands,omitempty"`
ExtraHosts []HostAlias `json:"extra_hosts,omitempty"`
Volumes []string `json:"volumes,omitempty"`
Tmpfs []string `json:"tmpfs,omitempty"`
Devices []string `json:"devices,omitempty"`
Networks []Conn `json:"networks,omitempty"`
DNS []string `json:"dns,omitempty"`
DNSSearch []string `json:"dns_search,omitempty"`
OnFailure bool `json:"on_failure,omitempty"`
OnSuccess bool `json:"on_success,omitempty"`
Failure string `json:"failure,omitempty"`
AuthConfig Auth `json:"auth_config,omitempty"`
NetworkMode string `json:"network_mode,omitempty"`
Ports []Port `json:"ports,omitempty"`
BackendOptions map[string]any `json:"backend_options,omitempty"`
WorkflowLabels map[string]string `json:"workflow_labels,omitempty"`
ContainerNameScheme string `json:"container_name_scheme,omitempty"`
DependsOn []string `json:"depends_on,omitempty"`
}
Step defines a container process.
Source Files
¶
Click to show internal directories.
Click to hide internal directories.