diff --git a/MODULE.bazel b/MODULE.bazel index e512c524e8..144276d486 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -139,9 +139,10 @@ use_repo( "com_github_burntsushi_toml", "com_github_cenkalti_backoff", "com_github_cilium_ebpf", - "com_github_containerd_cgroups", + "com_github_containerd_cgroups_v3", "com_github_containerd_console", "com_github_containerd_containerd", + "com_github_containerd_containerd_api", "com_github_containerd_errdefs", "com_github_containerd_fifo", "com_github_containerd_go_runc", @@ -524,13 +525,18 @@ go_deps.module( ) go_deps.module( path = "github.com/containerd/containerd", - sum = "h1:Bcj0ZXqgIs6GG+YbaKkMX3Dap0JsIVG4UYFOLRo7iX4=", - version = "v1.6.36", + sum = "h1:khEQOAXOEJalRO228yzVsuASLH42vT7DIo9Ss+9SMFQ=", + version = "v1.7.25", ) go_deps.module( - path = "github.com/containerd/cgroups", - sum = "h1:iJnMvco9XGvKUvNQkv88bE4uJXxRQH18efbKo9w5vHQ=", - version = "v1.0.1", + path = "github.com/containerd/containerd/api", + sum = "h1:hVTNJKR8fMc/2Tiw60ZRijntNMd1U+JVMyTRdsD2bS0=", + version = "v1.8.0", +) +go_deps.module( + path = "github.com/containerd/cgroups/v3", + sum = "h1:f5WFqIVSgo5IZmtTT3qVBo6TzI1ON6sycSBKkymb9L0=", + version = "v3.0.2", ) go_deps.module( path = "github.com/containerd/errdefs", @@ -573,7 +579,7 @@ go_deps.gazelle_override( directives = [ "gazelle:proto disable", ], - path = "github.com/containerd/cgroups", + path = "github.com/containerd/cgroups/v3", ) go_deps.gazelle_override( directives = [ diff --git a/pkg/shim/v1/runsc/BUILD b/pkg/shim/v1/runsc/BUILD index 788bb4ca1a..3e8e4c5d3d 100644 --- a/pkg/shim/v1/runsc/BUILD +++ b/pkg/shim/v1/runsc/BUILD @@ -28,10 +28,11 @@ go_library( "//pkg/shim/v1/utils", "//runsc/specutils", "@com_github_burntsushi_toml//:go_default_library", - "@com_github_containerd_cgroups//:go_default_library", - "@com_github_containerd_cgroups//stats/v1:go_default_library", - "@com_github_containerd_cgroups//v2:go_default_library", - "@com_github_containerd_cgroups//v2/stats:go_default_library", + "@com_github_containerd_cgroups_v3//:go_default_library", + "@com_github_containerd_cgroups_v3//cgroup1:go_default_library", + "@com_github_containerd_cgroups_v3//cgroup1/stats:go_default_library", + "@com_github_containerd_cgroups_v3//cgroup2:go_default_library", + "@com_github_containerd_cgroups_v3//cgroup2/stats:go_default_library", "@com_github_containerd_console//:go_default_library", "@com_github_containerd_containerd//api/events:go_default_library", "@com_github_containerd_containerd//api/types/task:go_default_library", diff --git a/pkg/shim/v1/runsc/epoll.go b/pkg/shim/v1/runsc/epoll.go index e9eb10e058..2581d3c801 100644 --- a/pkg/shim/v1/runsc/epoll.go +++ b/pkg/shim/v1/runsc/epoll.go @@ -23,7 +23,7 @@ import ( "fmt" "sync" - "github.com/containerd/cgroups" + cgroups "github.com/containerd/cgroups/v3/cgroup1" "github.com/containerd/containerd/events" "github.com/containerd/containerd/runtime" "golang.org/x/sys/unix" diff --git a/pkg/shim/v1/runsc/oom_v2.go b/pkg/shim/v1/runsc/oom_v2.go index 89b7bed2e6..378c78e4d1 100644 --- a/pkg/shim/v1/runsc/oom_v2.go +++ b/pkg/shim/v1/runsc/oom_v2.go @@ -22,7 +22,7 @@ import ( "context" "fmt" - cgroupsv2 "github.com/containerd/cgroups/v2" + cgroupsv2 "github.com/containerd/cgroups/v3/cgroup2" "github.com/containerd/containerd/runtime" "github.com/containerd/containerd/runtime/v2/shim" "github.com/sirupsen/logrus" diff --git a/pkg/shim/v1/runsc/service.go b/pkg/shim/v1/runsc/service.go index 9bb73b4772..01a42def6a 100644 --- a/pkg/shim/v1/runsc/service.go +++ b/pkg/shim/v1/runsc/service.go @@ -26,10 +26,11 @@ import ( "time" "github.com/BurntSushi/toml" - "github.com/containerd/cgroups" - cgroupsstats "github.com/containerd/cgroups/stats/v1" - cgroupsv2 "github.com/containerd/cgroups/v2" - cgroupsv2stats "github.com/containerd/cgroups/v2/stats" + cgroups "github.com/containerd/cgroups/v3" + cgroupsv1 "github.com/containerd/cgroups/v3/cgroup1" + cgroupsv1stats "github.com/containerd/cgroups/v3/cgroup1/stats" + cgroupsv2 "github.com/containerd/cgroups/v3/cgroup2" + cgroupsv2stats "github.com/containerd/cgroups/v3/cgroup2/stats" "github.com/containerd/console" "github.com/containerd/containerd/api/events" "github.com/containerd/containerd/api/types/task" @@ -380,10 +381,10 @@ func (s *runscService) Create(ctx context.Context, r *taskAPI.CreateTaskRequest) var cgPath string cgPath, err = cgroupsv2.PidGroupPath(pid) if err == nil { - cg, err = cgroupsv2.LoadManager("/sys/fs/cgroup", cgPath) + cg, err = cgroupsv2.Load(cgPath) } } else { - cg, err = cgroups.Load(cgroups.V1, cgroups.PidPath(pid)) + cg, err = cgroupsv1.Load(cgroupsv1.PidPath(pid)) } if err != nil { return nil, fmt.Errorf("loading cgroup for %d: %w", pid, err) @@ -674,48 +675,48 @@ func (s *runscService) getStats(stats *runc.Stats, r *taskAPI.StatsRequest) (*ta } func (s *runscService) getV1Stats(stats *runc.Stats, r *taskAPI.StatsRequest) (*taskAPI.StatsResponse, error) { - metrics := &cgroupsstats.Metrics{ - CPU: &cgroupsstats.CPUStat{ - Usage: &cgroupsstats.CPUUsage{ + metrics := &cgroupsv1stats.Metrics{ + CPU: &cgroupsv1stats.CPUStat{ + Usage: &cgroupsv1stats.CPUUsage{ Total: stats.Cpu.Usage.Total, Kernel: stats.Cpu.Usage.Kernel, User: stats.Cpu.Usage.User, PerCPU: stats.Cpu.Usage.Percpu, }, - Throttling: &cgroupsstats.Throttle{ + Throttling: &cgroupsv1stats.Throttle{ Periods: stats.Cpu.Throttling.Periods, ThrottledPeriods: stats.Cpu.Throttling.ThrottledPeriods, ThrottledTime: stats.Cpu.Throttling.ThrottledTime, }, }, - Memory: &cgroupsstats.MemoryStat{ + Memory: &cgroupsv1stats.MemoryStat{ Cache: stats.Memory.Cache, - Usage: &cgroupsstats.MemoryEntry{ + Usage: &cgroupsv1stats.MemoryEntry{ Limit: stats.Memory.Usage.Limit, Usage: stats.Memory.Usage.Usage, Max: stats.Memory.Usage.Max, Failcnt: stats.Memory.Usage.Failcnt, }, - Swap: &cgroupsstats.MemoryEntry{ + Swap: &cgroupsv1stats.MemoryEntry{ Limit: stats.Memory.Swap.Limit, Usage: stats.Memory.Swap.Usage, Max: stats.Memory.Swap.Max, Failcnt: stats.Memory.Swap.Failcnt, }, - Kernel: &cgroupsstats.MemoryEntry{ + Kernel: &cgroupsv1stats.MemoryEntry{ Limit: stats.Memory.Kernel.Limit, Usage: stats.Memory.Kernel.Usage, Max: stats.Memory.Kernel.Max, Failcnt: stats.Memory.Kernel.Failcnt, }, - KernelTCP: &cgroupsstats.MemoryEntry{ + KernelTCP: &cgroupsv1stats.MemoryEntry{ Limit: stats.Memory.KernelTCP.Limit, Usage: stats.Memory.KernelTCP.Usage, Max: stats.Memory.KernelTCP.Max, Failcnt: stats.Memory.KernelTCP.Failcnt, }, }, - Pids: &cgroupsstats.PidsStat{ + Pids: &cgroupsv1stats.PidsStat{ Current: stats.Pids.Current, Limit: stats.Pids.Limit, },