diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 81c4beb..53af6e1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,3 +10,4 @@ jobs: release: ${{ github.ref == 'refs/heads/main' }} build_dep: | gardenlinux/package-golang 1.26.2-1gl0 + force-arm-build: true diff --git a/prepare_source b/prepare_source index 8697f42..5a37976 100644 --- a/prepare_source +++ b/prepare_source @@ -1,5 +1,5 @@ debian_version="1.7.24_ds1-6" -version_orig="2.3.1" +version_orig="2.3.4" version="${version_orig}-0" DEBIAN_SRC=$(mktemp -d) @@ -14,5 +14,4 @@ rm -fR "$DEBIAN_SRC" git_src -b "v$version_orig" https://github.com/containerd/containerd -import_upstream_patches upstream_patches apply_patches diff --git a/upstream_patches/0001-disable-windows-support-in-ctr-metric.patch b/upstream_patches/0001-disable-windows-support-in-ctr-metric.patch deleted file mode 100644 index efe167f..0000000 --- a/upstream_patches/0001-disable-windows-support-in-ctr-metric.patch +++ /dev/null @@ -1,186 +0,0 @@ -From: Shengjing Zhu -Date: Wed, 16 Sep 2020 15:15:44 +0800 -Subject: disable windows support in ctr metric - -Forwarded: not-needed ---- a/cmd/ctr/commands/tasks/metrics.go -+++ b/cmd/ctr/commands/tasks/metrics.go -@@ -23,7 +23,6 @@ import ( - "os" - "text/tabwriter" - -- wstats "github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/stats" - v1 "github.com/containerd/cgroups/v3/cgroup1/stats" - v2 "github.com/containerd/cgroups/v3/cgroup2/stats" - "github.com/containerd/containerd/v2/cmd/ctr/commands" -@@ -74,10 +73,8 @@ var metricsCommand = &cli.Command{ - data = &v1.Metrics{} - case typeurl.Is(metric.Data, (*v2.Metrics)(nil)): - data = &v2.Metrics{} -- case typeurl.Is(metric.Data, (*wstats.Statistics)(nil)): -- data = &wstats.Statistics{} - default: -- return errors.New("cannot convert metric data to cgroups.Metrics or windows.Statistics") -+ return errors.New("cannot convert metric data to cgroups.Metrics") - } - if err := typeurl.UnmarshalTo(metric.Data, data); err != nil { - return err -@@ -93,8 +90,6 @@ var metricsCommand = &cli.Command{ - printCgroupMetricsTable(w, v) - case *v2.Metrics: - printCgroup2MetricsTable(w, v) -- case *wstats.Statistics: -- printWindowsStats(w, v) - } - return w.Flush() - case formatJSON: -@@ -148,57 +143,3 @@ func printCgroup2MetricsTable(w *tabwriter.Writer, data *v2.Metrics) { - fmt.Fprintf(w, "memory.swap_limit\t%v\t\n", data.Memory.SwapLimit) - } - } -- --func printWindowsStats(w *tabwriter.Writer, windowsStats *wstats.Statistics) { -- if windowsStats.GetLinux() != nil { -- stats := windowsStats.GetLinux() -- printCgroupMetricsTable(w, stats) -- } else if windowsStats.GetWindows() != nil { -- printWindowsContainerStatistics(w, windowsStats.GetWindows()) -- } -- // Print VM stats if its isolated -- if windowsStats.VM != nil { -- printWindowsVMStatistics(w, windowsStats.VM) -- } --} -- --func printWindowsContainerStatistics(w *tabwriter.Writer, stats *wstats.WindowsContainerStatistics) { -- fmt.Fprintf(w, "METRIC\tVALUE\t\n") -- fmt.Fprintf(w, "timestamp\t%s\t\n", stats.Timestamp) -- fmt.Fprintf(w, "start_time\t%s\t\n", stats.ContainerStartTime) -- fmt.Fprintf(w, "uptime_ns\t%d\t\n", stats.UptimeNS) -- if stats.Processor != nil { -- fmt.Fprintf(w, "cpu.total_runtime_ns\t%d\t\n", stats.Processor.TotalRuntimeNS) -- fmt.Fprintf(w, "cpu.runtime_user_ns\t%d\t\n", stats.Processor.RuntimeUserNS) -- fmt.Fprintf(w, "cpu.runtime_kernel_ns\t%d\t\n", stats.Processor.RuntimeKernelNS) -- } -- if stats.Memory != nil { -- fmt.Fprintf(w, "memory.commit_bytes\t%d\t\n", stats.Memory.MemoryUsageCommitBytes) -- fmt.Fprintf(w, "memory.commit_peak_bytes\t%d\t\n", stats.Memory.MemoryUsageCommitPeakBytes) -- fmt.Fprintf(w, "memory.private_working_set_bytes\t%d\t\n", stats.Memory.MemoryUsagePrivateWorkingSetBytes) -- } -- if stats.Storage != nil { -- fmt.Fprintf(w, "storage.read_count_normalized\t%d\t\n", stats.Storage.ReadCountNormalized) -- fmt.Fprintf(w, "storage.read_size_bytes\t%d\t\n", stats.Storage.ReadSizeBytes) -- fmt.Fprintf(w, "storage.write_count_normalized\t%d\t\n", stats.Storage.WriteCountNormalized) -- fmt.Fprintf(w, "storage.write_size_bytes\t%d\t\n", stats.Storage.WriteSizeBytes) -- } --} -- --func printWindowsVMStatistics(w *tabwriter.Writer, stats *wstats.VirtualMachineStatistics) { -- fmt.Fprintf(w, "METRIC\tVALUE\t\n") -- if stats.Processor != nil { -- fmt.Fprintf(w, "vm.cpu.total_runtime_ns\t%d\t\n", stats.Processor.TotalRuntimeNS) -- } -- if stats.Memory != nil { -- fmt.Fprintf(w, "vm.memory.working_set_bytes\t%d\t\n", stats.Memory.WorkingSetBytes) -- fmt.Fprintf(w, "vm.memory.virtual_node_count\t%d\t\n", stats.Memory.VirtualNodeCount) -- fmt.Fprintf(w, "vm.memory.available\t%d\t\n", stats.Memory.VmMemory.AvailableMemory) -- fmt.Fprintf(w, "vm.memory.available_buffer\t%d\t\n", stats.Memory.VmMemory.AvailableMemoryBuffer) -- fmt.Fprintf(w, "vm.memory.reserved\t%d\t\n", stats.Memory.VmMemory.ReservedMemory) -- fmt.Fprintf(w, "vm.memory.assigned\t%d\t\n", stats.Memory.VmMemory.AssignedMemory) -- fmt.Fprintf(w, "vm.memory.slp_active\t%t\t\n", stats.Memory.VmMemory.SlpActive) -- fmt.Fprintf(w, "vm.memory.balancing_enabled\t%t\t\n", stats.Memory.VmMemory.BalancingEnabled) -- fmt.Fprintf(w, "vm.memory.dm_operation_in_progress\t%t\t\n", stats.Memory.VmMemory.DmOperationInProgress) -- } --} ---- a/internal/cri/server/container_stats_list.go -+++ b/internal/cri/server/container_stats_list.go -@@ -18,12 +18,10 @@ package server ( - - import ( - "context" -- "errors" - "fmt" - "reflect" - "time" - -- wstats "github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/stats" - cg1 "github.com/containerd/cgroups/v3/cgroup1/stats" - cg2 "github.com/containerd/cgroups/v3/cgroup2/stats" - "github.com/containerd/log" -@@ -102,10 +101,6 @@ func (c *criService) getMetricsHandler(ctx context.Context, sandboxID string) (m - snapshotter := c.RuntimeSnapshotter(ctx, ociRuntime) - - switch p.OS { -- case "windows": -- return func(meta containerstore.Metadata, stats *types.Metric) (containerStats, error) { -- return c.windowsContainerMetrics(meta, stats, snapshotter) -- }, nil - case "linux": - return func(meta containerstore.Metadata, stats *types.Metric) (containerStats, error) { - return c.linuxContainerMetrics(meta, stats, snapshotter) -@@ -297,65 +292,6 @@ func matchLabelSelector(selector, labels map[string]string) bool { - return true - } - --func (c *criService) windowsContainerMetrics( -- meta containerstore.Metadata, -- stats *types.Metric, -- snapshotter string, --) (containerStats, error) { -- var cs runtime.ContainerStats -- var usedBytes, inodesUsed uint64 -- sn, err := c.GetSnapshot(meta.ID, snapshotter) -- // If snapshotstore doesn't have cached snapshot information -- // set WritableLayer usage to zero -- if err == nil { -- usedBytes = sn.Size -- inodesUsed = sn.Inodes -- } -- cs.WritableLayer = &runtime.FilesystemUsage{ -- Timestamp: sn.Timestamp, -- FsId: &runtime.FilesystemIdentifier{ -- Mountpoint: c.imageFSPaths[snapshotter], -- }, -- UsedBytes: &runtime.UInt64Value{Value: usedBytes}, -- InodesUsed: &runtime.UInt64Value{Value: inodesUsed}, -- } -- cs.Attributes = &runtime.ContainerAttributes{ -- Id: meta.ID, -- Metadata: meta.Config.GetMetadata(), -- Labels: meta.Config.GetLabels(), -- Annotations: meta.Config.GetAnnotations(), -- } -- -- if stats != nil { -- s, err := typeurl.UnmarshalAny(stats.Data) -- if err != nil { -- return containerStats{}, fmt.Errorf("failed to extract container metrics: %w", err) -- } -- wstats := s.(*wstats.Statistics).GetWindows() -- if wstats == nil { -- return containerStats{}, errors.New("windows stats is empty") -- } -- if wstats.Processor != nil { -- cs.Cpu = &runtime.CpuUsage{ -- Timestamp: (protobuf.FromTimestamp(wstats.Timestamp)).UnixNano(), -- UsageCoreNanoSeconds: &runtime.UInt64Value{Value: wstats.Processor.TotalRuntimeNS}, -- } -- } -- if wstats.Memory != nil { -- cs.Memory = &runtime.MemoryUsage{ -- Timestamp: (protobuf.FromTimestamp(wstats.Timestamp)).UnixNano(), -- WorkingSetBytes: &runtime.UInt64Value{ -- Value: wstats.Memory.MemoryUsagePrivateWorkingSetBytes, -- }, -- UsageBytes: &runtime.UInt64Value{ -- Value: wstats.Memory.MemoryUsageCommitBytes, -- }, -- } -- } -- } -- return containerStats{&cs, 0}, nil --} -- - func (c *criService) linuxContainerMetrics( - meta containerstore.Metadata, - stats *types.Metric, diff --git a/upstream_patches/series b/upstream_patches/series deleted file mode 100644 index 136b0c4..0000000 --- a/upstream_patches/series +++ /dev/null @@ -1 +0,0 @@ -0001-disable-windows-support-in-ctr-metric.patch