Skip to content

Commit 6696846

Browse files
committed
Forbid duplicated rlimits with same type
Alternative of #583 , as what we do for `namespaces` in #597 . Signed-off-by: Qiang Huang <[email protected]>
1 parent b8e2ebe commit 6696846

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

config.md

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -110,16 +110,23 @@ See links for details about [mountvol](http://ss64.com/nt/mountvol.html) and [Se
110110
For Linux-based systems the process structure supports the following process specific fields:
111111

112112
* **`capabilities`** (array of strings, OPTIONAL) capabilities is an array that specifies Linux capabilities that can be provided to the process inside the container.
113-
Valid values are the strings for capabilities defined in [the man page](http://man7.org/linux/man-pages/man7/capabilities.7.html)
114-
* **`rlimits`** (array of rlimits, OPTIONAL) rlimits is an array of rlimits that allows setting resource limits for a process inside the container.
115-
The kernel enforces the `soft` limit for a resource while the `hard` limit acts as a ceiling for that value that could be set by an unprivileged process.
116-
Valid values for the 'type' field are the resources defined in [the man page](http://man7.org/linux/man-pages/man2/setrlimit.2.html).
113+
Valid values are the strings for capabilities defined in [the man page](http://man7.org/linux/man-pages/man7/capabilities.7.html).
114+
* **`rlimits`** (array of objects, OPTIONAL) allows setting resource limits for a process inside the container.
115+
Each entry has the following structure:
116+
117+
* **`type`** (string, REQUIRED) - the 'type' field are the resources defined in [the man page](http://man7.org/linux/man-pages/man2/setrlimit.2.html).
118+
* **`soft`** (uint64, REQUIRED) - the value that the kernel enforces for the corresponding resource.
119+
* **`hard`** (uint64, REQUIRED) - the ceiling for the soft limit that could be set by an unprivileged process.
120+
Only privileged process (under Linux: one with the CAP_SYS_RESOURCE capability) can raise a hard limit.
121+
122+
If `rlimits` contains duplicated entries with same `type`, the runtime MUST error out.
123+
117124
* **`apparmorProfile`** (string, OPTIONAL) apparmor profile specifies the name of the apparmor profile that will be used for the container.
118-
For more information about Apparmor, see [Apparmor documentation](https://wiki.ubuntu.com/AppArmor)
125+
For more information about Apparmor, see [Apparmor documentation](https://wiki.ubuntu.com/AppArmor)
119126
* **`selinuxLabel`** (string, OPTIONAL) SELinux process label specifies the label with which the processes in a container are run.
120-
For more information about SELinux, see [Selinux documentation](http://selinuxproject.org/page/Main_Page)
127+
For more information about SELinux, see [Selinux documentation](http://selinuxproject.org/page/Main_Page)
121128
* **`noNewPrivileges`** (bool, OPTIONAL) setting `noNewPrivileges` to true prevents the processes in the container from gaining additional privileges.
122-
[The kernel doc](https://www.kernel.org/doc/Documentation/prctl/no_new_privs.txt) has more information on how this is achieved using a prctl system call.
129+
[The kernel doc](https://www.kernel.org/doc/Documentation/prctl/no_new_privs.txt) has more information on how this is achieved using a prctl system call.
123130

124131
### User
125132

0 commit comments

Comments
 (0)