diff --git a/cmd/ctr/commands/run/run_unix.go b/cmd/ctr/commands/run/run_unix.go index 81ba9d111..0d003828d 100644 --- a/cmd/ctr/commands/run/run_unix.go +++ b/cmd/ctr/commands/run/run_unix.go @@ -82,6 +82,14 @@ var platformRunFlags = []cli.Flag{ Usage: "Set the cpu shares", Value: 1024, }, + cli.StringFlag{ + Name: "cpuset-cpus", + Usage: "Set the CPUs the container will run in (e.g., 1-2,4)", + }, + cli.StringFlag{ + Name: "cpuset-mems", + Usage: "Set the memory nodes the container will run in (e.g., 1-2,4)", + }, } // NewContainer creates a new container @@ -293,6 +301,14 @@ func NewContainer(ctx gocontext.Context, client *containerd.Client, context *cli opts = append(opts, oci.WithCPUCFS(quota, period)) } + if cpusetCpus := context.String("cpuset-cpus"); len(cpusetCpus) > 0 { + opts = append(opts, oci.WithCPUs(cpusetCpus)) + } + + if cpusetMems := context.String("cpuset-mems"); len(cpusetMems) > 0 { + opts = append(opts, oci.WithCPUsMems(cpusetMems)) + } + if shares := context.Int("cpu-shares"); shares > 0 { opts = append(opts, oci.WithCPUShares(uint64(shares))) }