Commit Graph

155 Commits

Author SHA1 Message Date
James Sturtevant c696ce477d Release fix for cgroup parsing
Signed-off-by: James Sturtevant <jstur@microsoft.com>
2024-03-19 21:25:23 +00:00
Jiaxiao Zhou 6b9e5b28be Update crates/shim/src/cgroup.rs
Co-authored-by: James Sturtevant <jsturtevant@gmail.com>
Signed-off-by: Jiaxiao Zhou <duibao55328@gmail.com>
2024-03-18 23:27:49 +00:00
jiaxiao zhou 69a7e651ea cargo clippy
Signed-off-by: jiaxiao zhou <jiazho@microsoft.com>
2024-03-18 23:27:49 +00:00
jiaxiao zhou f4753c3493 fix: make parse_cgroups_v2_path clearer
Signed-off-by: jiaxiao zhou <jiazho@microsoft.com>
2024-03-18 23:27:49 +00:00
jiaxiao zhou a5613a27df fix: more gracefully handle multiple lines in the cgroups file
Signed-off-by: jiaxiao zhou <jiazho@microsoft.com>
2024-03-18 23:27:49 +00:00
jiaxiao zhou 85a15724d0 fix(shim): rewrite cgroups v2 parsing logic
this commit rewrites the cgroups v2 parsing logic in get_cgroup function
which is used to fetch stats of a container. The reason for the rewrite
was that in some cases the original logic would panic due to index
of bound for parsing paths like

0::/kubepods-besteffort-pod162385e5_7f69_4c38_ba9c_db0a8f02b35e.slice:cri-containerd:278a0aac1fff30dfbc41b4a32ba9de4519928fe7480213dba87aa1498838ef34

we ran into this issue in deleting a spin container in the spin shim.

the rewrite replaces index access to properly propogate the error to
the caller of the function and added a few unit tests for the parsing logic.

Signed-off-by: jiaxiao zhou <jiazho@microsoft.com>
2024-03-18 23:27:49 +00:00
James Sturtevant 7591cb8ee7 Mark Error for windows only
Signed-off-by: James Sturtevant <jstur@microsoft.com>
2024-03-15 20:37:48 +00:00
James Sturtevant 31c28428d9 Run clippy and tests on sync code in containerd-shim
Signed-off-by: James Sturtevant <jstur@microsoft.com>
2024-03-15 20:37:48 +00:00
Maksym Pavlenko 66e513a449 Fix containerd shim
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2024-03-14 17:32:51 +00:00
James Sturtevant 798ab74d20 Release 0.7.0 of Shim and 0.5.0 of client
Signed-off-by: James Sturtevant <jstur@microsoft.com>
2024-03-13 19:20:17 +00:00
James Sturtevant b15a1dd0c9 Transfer ownership of FD
Signed-off-by: James Sturtevant <jstur@microsoft.com>
2024-03-12 18:56:40 +00:00
dependabot[bot] d32d023eb3 build(deps): update command-fds requirement from 0.2.1 to 0.3.0
Updates the requirements on [command-fds](https://github.com/google/command-fds) to permit the latest version.
- [Commits](https://github.com/google/command-fds/compare/0.2.1...0.3.0)

---
updated-dependencies:
- dependency-name: command-fds
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-12 18:56:40 +00:00
James Sturtevant 9c375635b6 Remove depreciated functions
Signed-off-by: James Sturtevant <jstur@microsoft.com>
2024-03-12 05:03:06 +00:00
James Sturtevant 0e7760806f Use RUST_LOG env to configure logging if present
Signed-off-by: James Sturtevant <jstur@microsoft.com>
2024-03-06 20:28:03 +00:00
BaiQiuLi 3d4de340d8 Fix the issue of process freezing when there is a large amount of sigpipe signals occurring during containerd process restart.
Signed-off-by: BaiQiuLi <bo.qiuli@zte.com.cn>
2024-02-02 16:31:59 +00:00
jokemanfire 2236ba39d9 fmt modify 2024-01-03 19:59:52 +00:00
jokemanfire a9f1dcf777 fmt modify 2024-01-03 19:59:52 +00:00
jokemanfire 9675c9a4ab "Subsystem::Mem" add judge for the limit and swap
this error wiil ocurr
in  containerd's TestUpdateContainerResources_MemoryLimit
2024-01-03 19:59:52 +00:00
dependabot[bot] c43b1e4a41 build(deps): update windows-sys requirement from 0.48.0 to 0.52.0
Updates the requirements on [windows-sys](https://github.com/microsoft/windows-rs) to permit the latest version.
- [Release notes](https://github.com/microsoft/windows-rs/releases)
- [Commits](https://github.com/microsoft/windows-rs/compare/0.48.0...0.52.0)

---
updated-dependencies:
- dependency-name: windows-sys
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-15 22:02:09 +00:00
James Sturtevant fca511e235 Create v0.6.0 release of containerd-shim and shim-protos
Signed-off-by: James Sturtevant <jstur@microsoft.com>
2023-10-30 18:05:57 +00:00
James Sturtevant 74a67025ad use process thread group id for the process
in cgroupv2 we should use the cgroups.proc file when adding a process (https://www.man7.org/linux/man-pages/man7/cgroups.7.html).  The add_tasks function was writing to the cgroup.threads file which is only avaliable when in threaded mode.  In either case our intent is to add the process not the individual threads to we should use add_task_by_tgid. See https://github.com/kata-containers/cgroups-rs/pull/104 for when this was added

Signed-off-by: James Sturtevant <jstur@microsoft.com>
2023-10-25 02:13:26 +00:00
James Sturtevant 11a6559c39 Updates cgroup rs to latest version
Signed-off-by: James Sturtevant <jstur@microsoft.com>
2023-10-25 02:13:26 +00:00
James Sturtevant e31b3c634f fix up windows
Signed-off-by: James Sturtevant <jstur@microsoft.com>
2023-10-11 20:13:32 +00:00
James Sturtevant f446bdb64d Add support for structured logging
Signed-off-by: James Sturtevant <jstur@microsoft.com>
2023-10-11 20:13:32 +00:00
Maksym Pavlenko e8ad07d5fd
Update nix crate
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2023-10-05 11:37:27 -07:00
Maksym Pavlenko a0e042a46e
Merge pull request #208 from mxpv/docs
Simplify doc management and update READMEs
2023-10-04 11:24:21 -07:00
Maksym Pavlenko 85557745e0 Make examples compilable
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2023-10-03 20:41:38 -07:00
Maksym Pavlenko e9910f30b8 Simplify doc management
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2023-10-03 20:41:38 -07:00
James Sturtevant fd734b4e7a Use format similiar to containerd
Signed-off-by: James Sturtevant <jstur@microsoft.com>
2023-10-04 03:40:46 +00:00
James Sturtevant 75d6deeac3 Retry when pipe is busy
Signed-off-by: James Sturtevant <jstur@microsoft.com>
2023-10-04 03:36:08 +00:00
Bryant Biggs 5e1b7760a1 chore: Standardize Cargo.toml files, enable more workspace dependencies 2023-09-21 13:04:22 -04:00
Bryant Biggs d3088c42ee fix: Use `rfind` to slice string up to last `/` 2023-09-21 16:27:28 +00:00
Bryant Biggs 3489707748 feat: Replace use of regex crate 2023-09-21 16:27:28 +00:00
Bryant Biggs 2c98dae3f1 refactor: Simplify longest common prefix logic 2023-09-21 16:27:28 +00:00
Bryant Biggs 0a5bf7d816 deps: Replace `regex` with the lighter weight `regex-lite` 2023-09-21 16:27:28 +00:00
James Sturtevant fd1b235913 Bump the version for shim protos and containerd-shim
Signed-off-by: James Sturtevant <jstur@microsoft.com>
2023-08-24 16:40:16 +00:00
jiaxiao zhou deea90ff83
feat(runc-shim): add a version flag
Signed-off-by: jiaxiao zhou <jiazho@microsoft.com>
2023-08-21 21:45:01 +00:00
James Sturtevant 3e7647d620 Handle cgroup v1 or v2 to enable resource updates
Signed-off-by: James Sturtevant <jstur@microsoft.com>
2023-08-21 16:19:34 +00:00
dependabot[bot] 0f4812ca7a
build(deps): update page_size requirement from 0.5.0 to 0.6.0
Updates the requirements on [page_size](https://github.com/Elzair/page_size_rs) to permit the latest version.
- [Commits](https://github.com/Elzair/page_size_rs/commits)

---
updated-dependencies:
- dependency-name: page_size
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-09 18:18:51 +00:00
Maksym Pavlenko f1d2500c1f Fix docs link
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2023-08-08 10:07:45 -07:00
jiaxiao zhou 4528cb8fca
Merge remote-tracking branch 'upstream/main' into fix-stats 2023-08-02 22:02:16 +00:00
Maksym Pavlenko 27a503a474 [shim] Bump version to 0.4
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2023-08-02 12:37:35 -07:00
jiaxiao zhou 39532a3c00
feat: add cgroup v2 support for metrics
This commits adds cgroup v2 support for collecting metrics in the shim.

Additionally, it uses CPU controller instead of the CPUAcct controller
for reporting CPU metrics back to containerd.

Signed-off-by: jiaxiao zhou <jiazho@microsoft.com>
2023-08-02 02:43:12 +00:00
James Sturtevant 60558b7848 Pass all commandline arguments through
Because the second invocation of the shim doesn't have the containerd pipe passed to it, a shim that wants to communicate over the pipe needs to parse the arguments its own.  This makes it so the library pass all the arguments, which has already parsed the arguments allowing shims to use the containerd address.

Signed-off-by: James Sturtevant <jstur@microsoft.com>
2023-07-20 21:43:23 +00:00
Jorge Prendes 4da0055413
Add missing condition to stop reaping child procs
Signed-off-by: Jorge Prendes <jorge.prendes@gmail.com>
2023-07-05 16:54:42 +01:00
James Sturtevant bdd17eb2a5
Update to use latest ttrpc library
Signed-off-by: James Sturtevant <jstur@microsoft.com>
2023-06-22 12:14:29 -07:00
James Sturtevant 38545a7d56
Use inline platform branches
Signed-off-by: James Sturtevant <jstur@microsoft.com>
2023-06-22 10:06:40 -07:00
James Sturtevant b97955944c
Clean up signal processing
Signed-off-by: James Sturtevant <jstur@microsoft.com>
2023-06-22 10:06:39 -07:00
James Sturtevant fa4a0045e6
Make one function that works for both platforms
Signed-off-by: James Sturtevant <jstur@microsoft.com>
2023-06-22 10:06:39 -07:00
James Sturtevant bceaf4aca3
Windows support for the synchronous shim
Signed-off-by: James Sturtevant <jsturtevant@gmail.com>
Signed-off-by: James Sturtevant <jstur@microsoft.com>
2023-06-22 10:06:39 -07:00