manager

package
v0.6.4 Latest Latest
Warning

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

Go to latest
Published: Jul 13, 2025 License: Apache-2.0 Imports: 41 Imported by: 0

Documentation

Overview

Package manager contains most of the implementation of the zeropod-manager node daemon. It takes care of loading eBPF programs, providing metrics and monitors the shims for status updates.

Index

Constants

View Source
const (
	LabelPodName      = "pod"
	LabelPodNamespace = "namespace"

	MetricsNamespace         = "zeropod"
	MetricCheckpointDuration = "checkpoint_duration_seconds"
	MetricRestoreDuration    = "restore_duration_seconds"
	MetricLastCheckpointTime = "last_checkpoint_time"
	MetricLastRestoreTime    = "last_restore_time"
	MetricRunning            = "running"
)
View Source
const (
	CPUAnnotationKey    = "zeropod.ctrox.dev/cpu-requests"
	MemoryAnnotationKey = "zeropod.ctrox.dev/memory-requests"
)
View Source
const (
	StatusLabelKeyPrefix = "status.zeropod.ctrox.dev"
)

Variables

View Source
var (
	ScaledDownCPU    = resource.MustParse("1m")
	ScaledDownMemory = resource.MustParse("1Ki")
)

Functions

func AttachRedirectors added in v0.2.0

func AttachRedirectors(ctx context.Context, log *slog.Logger) error

AttachRedirectors scans the zeropod maps path in the bpf file system for directories named after the pid of the sandbox container. It does an initial iteration over all directories and then starts a goroutine which watches for fsevents. When the associated netns of the sandbox container can be found it attaches the redirector BPF programs to the network interfaces of the sandbox. The directories are expected to be created by the zeropod shim on startup.

func NewPodController added in v0.6.0

func NewPodController(ctx context.Context, mgr manager.Manager, log *slog.Logger) error

func StartSubscribers added in v0.3.0

func StartSubscribers(ctx context.Context, sc SubscriberConfig, podHandlers ...PodHandler) error

Types

type Collector added in v0.6.0

type Collector struct {
	// contains filtered or unexported fields
}

func NewCollector added in v0.6.0

func NewCollector() *Collector

func (*Collector) Collect added in v0.6.0

func (c *Collector) Collect(ch chan<- prometheus.Metric)

func (*Collector) Describe added in v0.6.0

func (c *Collector) Describe(ch chan<- *prometheus.Desc)

type PodHandler added in v0.4.0

type PodHandler interface {
	// Handle a status update with the associated pod. Changes made to
	// the pod object will be applied after all handlers have been called.
	// Pod status updates are ignored and won't be applied.
	Handle(context.Context, *v1.ContainerStatus, *corev1.Pod) error
}

type PodHandlerWithClient added in v0.6.0

type PodHandlerWithClient interface {
	PodHandler
	InjectClient(v1.ShimClient)
}

type PodLabeller added in v0.4.0

type PodLabeller struct {
	// contains filtered or unexported fields
}

func NewPodLabeller added in v0.4.0

func NewPodLabeller(log *slog.Logger) *PodLabeller

func (*PodLabeller) Handle added in v0.4.0

func (pl *PodLabeller) Handle(ctx context.Context, status *v1.ContainerStatus, pod *corev1.Pod) error

type PodScaler added in v0.3.0

type PodScaler struct {
	// contains filtered or unexported fields
}

func NewPodScaler added in v0.3.0

func NewPodScaler(log *slog.Logger) *PodScaler

func (*PodScaler) Handle added in v0.3.0

func (ps *PodScaler) Handle(ctx context.Context, status *v1.ContainerStatus, pod *corev1.Pod) error

type Redirector added in v0.2.0

type Redirector struct {
	sync.Mutex
	// contains filtered or unexported fields
}

type SubscriberConfig added in v0.6.0

type SubscriberConfig struct {
	Log       *slog.Logger
	Kube      client.Client
	Collector *Collector
}

Directories

Path Synopsis
Package node provides the node RPC service to facilitate live migrations.
Package node provides the node RPC service to facilitate live migrations.

Jump to

Keyboard shortcuts

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