You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The systemd cgroup path convention currently implemented in runtimes
like `runc/crun` should be added to the spec.
This patch adds the systemd cgroup convention for `Linux.CgroupsPath`
which is in the `slice:prefix:name` form and clarifies the detailed
usage.
Fixes#1021
Signed-off-by: Kailun Qin <kailun.qin@intel.com>
Copy file name to clipboardExpand all lines: config-linux.md
+21-1
Original file line number
Diff line number
Diff line change
@@ -176,11 +176,31 @@ For more information, see the [kernel cgroups documentation][cgroup-v1].
176
176
**`cgroupsPath`** (string, OPTIONAL) path to the cgroups.
177
177
It can be used to either control the cgroups hierarchy for containers or to run a new process in an existing container.
178
178
179
-
The value of `cgroupsPath` MUST be either an absolute path or a relative path.
179
+
If the runtime creates cgroups and sets cgroup limits on its own (aka. fs cgroup driver mode), the value of `cgroupsPath` MUST be either an absolute path or a relative path.
180
180
181
181
* In the case of an absolute path (starting with `/`), the runtime MUST take the path to be relative to the cgroups mount point.
182
182
* In the case of a relative path (not starting with `/`), the runtime MAY interpret the path relative to a runtime-determined location in the cgroups hierarchy.
183
183
184
+
If the runtime use systemd cgroup driver to create cgroups and set cgroup limits, the value of `cgroupsPath` MUST be in the "slice:prefix:name" form (e.g. "system.slice:runtime:434234").
185
+
By specifying with the transient systemd unit to create for the container and the containing slice which hosts the unit, the systemd units directly map to objects in the cgroup tree.
186
+
When these units are activated, they map directly to cgroup paths built from the unit names.
187
+
188
+
This form specifies the following systemd cgroup properties:
189
+
190
+
*`slice` - name of the parent slice systemd unit, under which the container is placed.
191
+
Note that `slice` can contain dashes to denote a sub-slice (e.g. `user-1000.slice` is a correct
192
+
notation, meaning a subslice of `user.slice`), but it must not contain slashes (e.g.
193
+
`user.slice/user-1000.slice` is invalid).
194
+
There might be some slices already created by default, for example:
195
+
`-.slice` - the root slice;
196
+
`system.slice` - the default place for all system services;
197
+
`user.slice` - the default place for all user sessions.
198
+
*`prefix` - prefix of the scope systemd unit to create for the container.
199
+
*`name` - name of the systemd unit to create.
200
+
When `name` has `.slice` suffix, in which case `prefix` is ignored and the `name` is used as is,
201
+
this describes a unit being created is a slice. Otherwise, `prefix` and `name` are used to
202
+
compose the scope unit name, which is `<prefix>-<name>.scope`.
203
+
184
204
If the value is specified, the runtime MUST consistently attach to the same place in the cgroups hierarchy given the same value of `cgroupsPath`.
185
205
If the value is not specified, the runtime MAY define the default cgroups path.
186
206
Runtimes MAY consider certain `cgroupsPath` values to be invalid, and MUST generate an error if this is the case.
0 commit comments