Documentation
¶
Index ¶
- type Cgroups
- type CleanupResult
- type ContainerWatchdog
- type Metrics
- func (m *Metrics) Add(name string, pathes map[string]string, attributes map[string]string) error
- func (m *Metrics) Gather(name string) ([]*metric_v1alpha.ContainerSnapshot, error)
- func (m *Metrics) Monitor(ctx context.Context)
- func (m *Metrics) Remove(name string) error
- func (m *Metrics) Snapshot(ctx context.Context, req *metric_v1alpha.SandboxMetricsSnapshot) error
- type PortMonitor
- type SandboxController
- func (c *SandboxController) Close() error
- func (c *SandboxController) Create(ctx context.Context, co *compute.Sandbox, meta *entity.Meta) error
- func (c *SandboxController) Delete(ctx context.Context, id entity.Id) error
- func (c *SandboxController) Init(ctx context.Context) error
- func (c *SandboxController) Periodic(ctx context.Context, timeHorizon time.Duration) error
- func (c *SandboxController) Populated() error
- func (c *SandboxController) SetPortStatus(id string, port observability.BoundPort, status observability.PortStatus)
- type SandboxLogs
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CleanupResult ¶
type CleanupResult struct {
// DeletedContainers contains IDs of containers successfully removed
DeletedContainers []string
// FailedContainers contains IDs and errors for containers that failed to be removed
FailedContainers map[string]error
}
CleanupResult contains information about containers cleaned up during orphan removal
type ContainerWatchdog ¶
type ContainerWatchdog struct {
Log *slog.Logger
CC *containerd.Client
EAC *entityserver_v1alpha.EntityAccessClient
Namespace string
// CheckInterval is how often to check for orphaned containers
CheckInterval time.Duration
// GraceWindow is how long to wait before removing containers from non-running sandboxes
GraceWindow time.Duration
// contains filtered or unexported fields
}
ContainerWatchdog periodically checks that containers in containerd match what is expected by sandbox entities. It removes orphaned containers that shouldn't exist, acting as a safety mechanism to keep the container runtime clean.
func (*ContainerWatchdog) Start ¶
func (w *ContainerWatchdog) Start(ctx context.Context)
Start begins the periodic container cleanup process
func (*ContainerWatchdog) Stop ¶
func (w *ContainerWatchdog) Stop()
Stop gracefully stops the watchdog
type Metrics ¶
type Metrics struct {
Log *slog.Logger
CPUUsage *metrics.CPUUsage
MemUsage *metrics.MemoryUsage
// contains filtered or unexported fields
}
func (*Metrics) Gather ¶
func (m *Metrics) Gather(name string) ([]*metric_v1alpha.ContainerSnapshot, error)
func (*Metrics) Snapshot ¶
func (m *Metrics) Snapshot(ctx context.Context, req *metric_v1alpha.SandboxMetricsSnapshot) error
type PortMonitor ¶
type PortMonitor struct {
// contains filtered or unexported fields
}
PortMonitor monitors ports for containers using polling
func NewPortMonitor ¶
func NewPortMonitor(log *slog.Logger, ports observability.PortTracker) *PortMonitor
NewPortMonitor creates a new port monitor
func (*PortMonitor) MonitorContainer ¶
func (pm *PortMonitor) MonitorContainer(containerID string, ip string, ports []int)
MonitorContainer starts monitoring ports for a container
func (*PortMonitor) StopMonitoring ¶
func (pm *PortMonitor) StopMonitoring(containerID string)
StopMonitoring stops monitoring for a container
type SandboxController ¶
type SandboxController struct {
Log *slog.Logger
CC *containerd.Client
EAC *entityserver_v1alpha.EntityAccessClient
Namespace string `asm:"namespace"`
NodeId string `asm:"node-id"`
NetServ *network.ServiceManager
Bridge string `asm:"bridge-iface"`
Subnet *netdb.Subnet
DataPath string `asm:"data-path"`
Tempdir string `asm:"tempdir"`
LogsMaintainer *observability.LogsMaintainer
LogWriter observability.LogWriter
StatusMon *observability.StatusMonitor
Resolver netresolve.Resolver
Metrics *Metrics
// contains filtered or unexported fields
}
func (*SandboxController) Close ¶
func (c *SandboxController) Close() error
func (*SandboxController) Periodic ¶
Periodic cleans up dead sandboxes that are older than the specified time horizon
func (*SandboxController) Populated ¶
func (c *SandboxController) Populated() error
func (*SandboxController) SetPortStatus ¶
func (c *SandboxController) SetPortStatus(id string, port observability.BoundPort, status observability.PortStatus)
type SandboxLogs ¶
type SandboxLogs struct {
// contains filtered or unexported fields
}
func NewSandboxLogs ¶
func NewSandboxLogs( log *slog.Logger, entity string, attrs map[string]string, lw observability.LogWriter, ) *SandboxLogs
func (*SandboxLogs) Stderr ¶
func (s *SandboxLogs) Stderr() *SandboxLogs