Documentation
¶
Index ¶
- func ExecuteAttach(ctx context.Context, info *schema.ConfigAndStacksInfo) error
- func ExecuteBuild(ctx context.Context, info *schema.ConfigAndStacksInfo) error
- func ExecuteBulk(ctx context.Context, info *schema.ConfigAndStacksInfo, verb string) error
- func ExecuteDown(ctx context.Context, info *schema.ConfigAndStacksInfo) error
- func ExecuteExec(ctx context.Context, info *schema.ConfigAndStacksInfo, command []string) error
- func ExecuteList(ctx context.Context, info *schema.ConfigAndStacksInfo) error
- func ExecuteLogs(ctx context.Context, info *schema.ConfigAndStacksInfo) error
- func ExecuteLogsWithOptions(ctx context.Context, info *schema.ConfigAndStacksInfo, opts logsOptions) error
- func ExecutePs(ctx context.Context, info *schema.ConfigAndStacksInfo) error
- func ExecutePull(ctx context.Context, info *schema.ConfigAndStacksInfo) error
- func ExecutePush(ctx context.Context, info *schema.ConfigAndStacksInfo) error
- func ExecuteRestart(ctx context.Context, info *schema.ConfigAndStacksInfo) error
- func ExecuteRm(ctx context.Context, info *schema.ConfigAndStacksInfo) error
- func ExecuteRun(ctx context.Context, info *schema.ConfigAndStacksInfo) error
- func ExecuteStart(ctx context.Context, info *schema.ConfigAndStacksInfo) error
- func ExecuteStop(ctx context.Context, info *schema.ConfigAndStacksInfo) error
- func ExecuteUp(ctx context.Context, info *schema.ConfigAndStacksInfo) error
- type Config
- type ContainerComponentProvider
- func (p *ContainerComponentProvider) Execute(execCtx *component.ExecutionContext) error
- func (p *ContainerComponentProvider) GenerateArtifacts(_ *component.ExecutionContext) error
- func (p *ContainerComponentProvider) GetAvailableCommands() []string
- func (p *ContainerComponentProvider) GetBasePath(atmosConfig *schema.AtmosConfiguration) string
- func (p *ContainerComponentProvider) GetGroup() string
- func (p *ContainerComponentProvider) GetType() string
- func (p *ContainerComponentProvider) ListComponents(_ context.Context, _ string, stackConfig map[string]any) ([]string, error)
- func (p *ContainerComponentProvider) ValidateComponent(config map[string]any) error
- type ContainerSpec
- func (s *ContainerSpec) CommandArgs() ([]string, error)
- func (s *ContainerSpec) HealthCheck() *ctr.HealthCheck
- func (s *ContainerSpec) Mounts() []ctr.Mount
- func (s *ContainerSpec) Ports() []ctr.PortBinding
- func (s *ContainerSpec) PushRefs() []string
- func (s *ContainerSpec) RestartPolicy() *ctr.RestartPolicy
- func (s *ContainerSpec) ToBuildConfig() *ctr.BuildConfig
- func (s *ContainerSpec) ValidateRun() error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ExecuteAttach ¶
func ExecuteAttach(ctx context.Context, info *schema.ConfigAndStacksInfo) error
ExecuteAttach attaches local stdin/stdout/stderr to the component container's main process (PID 1), mirroring `docker/podman attach`. Unlike `exec`, it does not start a new shell — it connects to the existing process. Detach with the runtime's detach keys (Ctrl-P Ctrl-Q), which leaves the container running.
func ExecuteBuild ¶
func ExecuteBuild(ctx context.Context, info *schema.ConfigAndStacksInfo) error
ExecuteBuild builds the component image from the build configuration.
func ExecuteBulk ¶
ExecuteBulk resolves the set of target container components and runs the verb against each one, continuing on error and aggregating failures into a single summary. Targets come from `--all` (all components, optionally scoped by --stack) or from an interactive picker (stack, then components) when no component was given.
func ExecuteDown ¶
func ExecuteDown(ctx context.Context, info *schema.ConfigAndStacksInfo) error
ExecuteDown stops and removes the long-lived container.
func ExecuteExec ¶
ExecuteExec runs a command in the component's container. Args after `--` form the command; defaults to a shell.
func ExecuteList ¶
func ExecuteList(ctx context.Context, info *schema.ConfigAndStacksInfo) error
ExecuteList lists all container components across stacks (optionally filtered by --stack) with their running state, discovered by label. This is the container-specific listing; running state is intentionally NOT surfaced by the generic `atmos list components` (which treats all component kinds uniformly).
func ExecuteLogs ¶
func ExecuteLogs(ctx context.Context, info *schema.ConfigAndStacksInfo) error
ExecuteLogs streams logs from a single component's container (no follow, all lines). The richer multi-component / follow behavior lives in ExecuteLogsWithOptions (logs.go); this thin entry point is kept for callers and tests that stream one component with defaults.
func ExecuteLogsWithOptions ¶
func ExecuteLogsWithOptions(ctx context.Context, info *schema.ConfigAndStacksInfo, opts logsOptions) error
ExecuteLogsWithOptions streams logs for one or many container components. A component argument streams just that one; `--all` or no component selects many (all components, or an interactive picker). With `--follow` and multiple components, logs are streamed concurrently and each line is prefixed with the component name; without `--follow` they are printed sequentially.
func ExecutePs ¶
func ExecutePs(ctx context.Context, info *schema.ConfigAndStacksInfo) error
ExecutePs reports the running state of a single component's container, including its health when a health check is configured. The no-argument listing is handled by ExecuteList.
func ExecutePull ¶
func ExecutePull(ctx context.Context, info *schema.ConfigAndStacksInfo) error
ExecutePull pulls the component image.
func ExecutePush ¶
func ExecutePush(ctx context.Context, info *schema.ConfigAndStacksInfo) error
ExecutePush pushes the component image to its registry. It sends every configured build tag (so registry-qualified tags in `build.tags` push to multiple registries in one operation), falling back to the single top-level image when no build tags are set. Pushes happen in order and fail fast.
func ExecuteRestart ¶
func ExecuteRestart(ctx context.Context, info *schema.ConfigAndStacksInfo) error
ExecuteRestart stops then starts the component's container.
func ExecuteRm ¶
func ExecuteRm(ctx context.Context, info *schema.ConfigAndStacksInfo) error
ExecuteRm removes the component's container.
func ExecuteRun ¶
func ExecuteRun(ctx context.Context, info *schema.ConfigAndStacksInfo) error
ExecuteRun runs the component as a one-shot foreground container (run).
func ExecuteStart ¶
func ExecuteStart(ctx context.Context, info *schema.ConfigAndStacksInfo) error
ExecuteStart starts the component's existing (stopped) container in place, discovered by label. It is the inverse of stop: unlike `up`, it never creates or recreates the container — if none exists, `up` is the way to create it.
func ExecuteStop ¶
func ExecuteStop(ctx context.Context, info *schema.ConfigAndStacksInfo) error
ExecuteStop stops the component's container without removing it.
Types ¶
type Config ¶
type Config struct {
// BasePath is the base directory for container component assets.
BasePath string `mapstructure:"base_path"`
}
Config is the global configuration for the container component kind, stored under `components.container` in atmos.yaml and read via the Plugins map.
func DefaultConfig ¶
func DefaultConfig() Config
DefaultConfig returns the default global container component configuration.
type ContainerComponentProvider ¶
type ContainerComponentProvider struct{}
ContainerComponentProvider implements component.ComponentProvider for the container component kind: a stack-scoped, Atmos-native, persistent container whose lifecycle is discovered by labels derived from the canonical component instance address.
func (*ContainerComponentProvider) Execute ¶
func (p *ContainerComponentProvider) Execute(execCtx *component.ExecutionContext) error
Execute dispatches a container subcommand to the matching executor. Bulk-capable lifecycle verbs fan out to ExecuteBulk when `--all` is set or no component was given (interactive picker); otherwise they run against the single component.
func (*ContainerComponentProvider) GenerateArtifacts ¶
func (p *ContainerComponentProvider) GenerateArtifacts(_ *component.ExecutionContext) error
GenerateArtifacts is a no-op for container components (no generated files).
func (*ContainerComponentProvider) GetAvailableCommands ¶
func (p *ContainerComponentProvider) GetAvailableCommands() []string
GetAvailableCommands returns the lifecycle verbs supported by container components.
func (*ContainerComponentProvider) GetBasePath ¶
func (p *ContainerComponentProvider) GetBasePath(atmosConfig *schema.AtmosConfiguration) string
GetBasePath returns the base directory path for container components.
func (*ContainerComponentProvider) GetGroup ¶
func (p *ContainerComponentProvider) GetGroup() string
GetGroup returns the component group for categorization.
func (*ContainerComponentProvider) GetType ¶
func (p *ContainerComponentProvider) GetType() string
GetType returns the component type identifier.
func (*ContainerComponentProvider) ListComponents ¶
func (p *ContainerComponentProvider) ListComponents(_ context.Context, _ string, stackConfig map[string]any) ([]string, error)
ListComponents discovers all container components in a stack.
func (*ContainerComponentProvider) ValidateComponent ¶
func (p *ContainerComponentProvider) ValidateComponent(config map[string]any) error
ValidateComponent validates container component configuration. A real (non-abstract) component must declare an image or a build.
type ContainerSpec ¶
type ContainerSpec struct {
Image string
Build *schema.ContainerBuildStep
Run *schema.ContainerRunStep
Composition string
}
ContainerSpec is the resolved, per-instance container component configuration. Its build/run shapes reuse the workflow container-step structs so component and step configuration stay consistent. These are first-class component sections (siblings of `composition`/`env`/`metadata`), NOT nested under `vars`.
func FromComponentSection ¶
func FromComponentSection(section map[string]any) (ContainerSpec, error)
FromComponentSection decodes the resolved (merged, templated) component section into a ContainerSpec, reading the first-class top-level keys `image`, `build`, `run`, and `composition`. Container application env comes from the component's `env:` section (resolved with secrets), not from `run`.
func (*ContainerSpec) CommandArgs ¶
func (s *ContainerSpec) CommandArgs() ([]string, error)
CommandArgs tokenizes the run command string into argv using shell-style quoting so quoted arguments (e.g. `sh -c "echo hi"`) survive intact when passed directly as argv (as `up` does, unlike `run` which wraps in `/bin/sh -lc`). An empty command yields nil so the image's default ENTRYPOINT/CMD is used. A malformed command (e.g. an unbalanced quote) is a config error.
func (*ContainerSpec) HealthCheck ¶
func (s *ContainerSpec) HealthCheck() *ctr.HealthCheck
HealthCheck maps the run healthcheck spec onto a runtime HealthCheck, resolving the Compose `test` form (a bare string or a list whose first element is `NONE`, `CMD`, or `CMD-SHELL`) into a single shell command. Returns nil when no healthcheck is configured (the container then inherits any image healthcheck).
func (*ContainerSpec) Mounts ¶
func (s *ContainerSpec) Mounts() []ctr.Mount
Mounts maps the run mount specs onto runtime Mounts.
func (*ContainerSpec) Ports ¶
func (s *ContainerSpec) Ports() []ctr.PortBinding
Ports maps the structured run port specs onto runtime PortBindings.
func (*ContainerSpec) PushRefs ¶
func (s *ContainerSpec) PushRefs() []string
PushRefs returns the image references that `push` should send. When a build with tags is configured it returns every build tag (deduped, order-preserving) — so listing registry-qualified tags in `build.tags` pushes the image to multiple registries in one operation. Otherwise it returns the single top-level image (or nil when neither is set).
func (*ContainerSpec) RestartPolicy ¶
func (s *ContainerSpec) RestartPolicy() *ctr.RestartPolicy
RestartPolicy maps the run restart spec onto a runtime RestartPolicy, or nil when none is configured (the runtime then uses its default of `no`).
func (*ContainerSpec) ToBuildConfig ¶
func (s *ContainerSpec) ToBuildConfig() *ctr.BuildConfig
ToBuildConfig maps the build spec onto a runtime BuildConfig.
func (*ContainerSpec) ValidateRun ¶
func (s *ContainerSpec) ValidateRun() error
ValidateRun checks the run restart/healthcheck settings up front so a misconfiguration surfaces as a friendly Atmos error instead of an opaque docker/podman failure at create time. It is a no-op when `run` is unset.