|
| 1 | +# OCI cgroups project proposal |
| 2 | + |
| 3 | +## Abstract |
| 4 | +Having a common cgroups management implementation in OCI for use in and outside |
| 5 | +of runc will ensure long lasting security and interoperability throughout the |
| 6 | +container ecosystem. |
| 7 | + |
| 8 | +## Proposal |
| 9 | + |
| 10 | +Refactor and move cgroups packages out of runc into a separate project: |
| 11 | + |
| 12 | +https://github.com/opencontainers/runc/tree/master/libcontainer/cgroups |
| 13 | + |
| 14 | +The new project would live in the opencontainers github organization: |
| 15 | + |
| 16 | +https://github.com/opencontainers/cgroups |
| 17 | + |
| 18 | +A sample of how the project would look like is already here: |
| 19 | + |
| 20 | +https://github.com/kolyshkin/opencontainers-cgroups |
| 21 | + |
| 22 | +### Initial Maintainers |
| 23 | +Initial maintainers of the cgroups project would be: |
| 24 | + |
| 25 | +* Akihiro Suda < [email protected]> ( @AkihiroSuda) |
| 26 | +* Aleksa Sarai <[email protected]> ( @cyphar) |
| 27 | +* Kir Kolyshkin <[email protected]> ( @kolyshkin) |
| 28 | +* Mrunal Patel <[email protected]> ( @mrunalp) |
| 29 | +* Sebastiaan van Stijn <[email protected]> ( @thaJeztah) |
| 30 | +* Odin Ugedal <[email protected]> ( @odinuge) |
| 31 | +* Peter Hunt <[email protected]> ( @haircommander) |
| 32 | +* Davanum Srinivas <[email protected]> ( @dims) |
| 33 | + |
| 34 | +### Code of Conduct |
| 35 | +This project would incorporate (by reference) the OCI [Code of Conduct][code-of-conduct]. |
| 36 | + |
| 37 | +### Governance and Releases |
| 38 | +This project would incorporate the Governance and Releases processes from the |
| 39 | +OCI project template: https://github.com/opencontainers/project-template. |
| 40 | + |
| 41 | +### Project Communications |
| 42 | +The proposed project would continue to use existing channels in use by the OCI |
| 43 | +developer community for communication including: |
| 44 | +* GitHub for issues and pull requests |
| 45 | +* The [email protected] email list |
| 46 | +* The weekly OCI developer community conference call |
| 47 | +* The #OpenContainers IRC channel |
| 48 | + |
| 49 | +### Versioning / Roadmap |
| 50 | + |
| 51 | +We'll start with v0.x until everything is stabilized after the split. |
| 52 | + |
| 53 | +The plan is to have frequent releases to accommodate various users. |
| 54 | + |
| 55 | +## Frequently Asked Questions (FAQ) |
| 56 | +*Q: Does this change the OCI Charter or Scope Table?* |
| 57 | +A: No. Nothing in this proposal is intended to amend the |
| 58 | +[OCI Charter](https://www.opencontainers.org/about/governance) or |
| 59 | +[OCI Scope Table](https://www.opencontainers.org/about/oci-scope-table). |
| 60 | + |
| 61 | +*Q: Why move this out of the runc project?* |
| 62 | +A: To be able to reuse this in different container projects, while avoiding |
| 63 | +code duplication and fragmentation. This involves adding functionality and |
| 64 | +cutting releases to accomodate existing users other than runc. |
| 65 | + |
| 66 | +Here's an example: kubernetes needs PSI stats from cgroups, and while the |
| 67 | +low-level functionality needed |
| 68 | +([runc PR #3900](https://github.com/opencontainers/runc/pull/3900)) |
| 69 | +was merged in July 2023, it was only made available to kubernetes when runc |
| 70 | +v1.2.0 was tagged in October 2024. Such delays might result in using |
| 71 | +unversioned dependencies, or copying the code around and thus fragmentation. |
| 72 | + |
| 73 | +A longer term goal is make this set of packages even more modular, avoiding |
| 74 | +excessive third-party dependencies. |
| 75 | + |
| 76 | +*Q: Who are the other target users of these packages?* |
| 77 | + |
| 78 | +A: CRI-O, kubernetes, cadvisor. |
| 79 | + |
| 80 | +[code-of-conduct]: https://github.com/opencontainers/org/blob/master/CODE_OF_CONDUCT.md |
0 commit comments