- Consolidate DialRemote/DialTunnel common logic into buildResources + dialEnv interface - Remove strict capability check that prevented ConnResources creation for host-exec-only nodes - Merge gRPC-discovered capabilities with registration-declared capabilities in DialTunnel - Replace requireKubeConfig hard-fail with graceful skip when kubeconfig is absent - Introduce tai/types package for shared Ports/Capabilities/SystemInfo/AuthInfo/NodeMeta - Add tai/conn.go (ConnResources) and tai/dial.go (DialRemote/DialTunnel/DialLocal) - Rename tai/sandbox → tai/runtime for clarity - Update sandbox/v2, workspace, agent/sandbox/v2 test utilities for build-tag isolation Made-with: Cursor
43 lines
1.1 KiB
Go
43 lines
1.1 KiB
Go
package runtime
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
)
|
|
|
|
// Image manages container images on a runtime node.
|
|
type Image interface {
|
|
Exists(ctx context.Context, ref string) (bool, error)
|
|
Pull(ctx context.Context, ref string, opts PullOptions) (<-chan PullProgress, error)
|
|
Remove(ctx context.Context, ref string, force bool) error
|
|
List(ctx context.Context) ([]ImageInfo, error)
|
|
}
|
|
|
|
// PullOptions configures an image pull operation.
|
|
type PullOptions struct {
|
|
Auth *RegistryAuth // nil = anonymous / public
|
|
}
|
|
|
|
// RegistryAuth holds credentials for a private container registry.
|
|
type RegistryAuth struct {
|
|
Username string
|
|
Password string
|
|
Server string // e.g. "ghcr.io", "registry.example.com"
|
|
}
|
|
|
|
// PullProgress reports real-time progress of an image pull.
|
|
type PullProgress struct {
|
|
Status string // "Pulling fs layer", "Downloading", "Extracting", "Pull complete", etc.
|
|
Layer string // layer digest / short ID
|
|
Current int64 // bytes completed
|
|
Total int64 // bytes total (0 if unknown)
|
|
Error string // non-empty on failure
|
|
}
|
|
|
|
// ImageInfo describes a local image.
|
|
type ImageInfo struct {
|
|
ID string
|
|
Tags []string
|
|
Size int64
|
|
Created time.Time
|
|
}
|