types

package
v4.5.0 Latest Latest
Warning

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

Go to latest
Published: Nov 29, 2025 License: Apache-2.0 Imports: 4 Imported by: 0

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 Conn

type Conn struct {
	Name    string   `json:"name"`
	Aliases []string `json:"aliases"`
}

Conn defines a container network connection.

type HostAlias

type HostAlias struct {
	Name string `json:"name,omitempty"`
	IP   string `json:"ip,omitempty"`
}

type Port

type Port struct {
	Number   uint16 `json:"number,omitempty"`
	Protocol string `json:"protocol,omitempty"`
}

type Secret

type Secret struct {
	Name  string `json:"name,omitempty"`
	Value string `json:"value,omitempty"`
}

Secret defines a runtime secret.

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.

type StepType

type StepType string

StepType identifies the type of step.

const (
	StepTypeClone    StepType = "clone"
	StepTypeService  StepType = "service"
	StepTypePlugin   StepType = "plugin"
	StepTypeCommands StepType = "commands"
	StepTypeCache    StepType = "cache"
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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