Commit Graph

281 Commits

Author SHA1 Message Date
Zhang Tianyang 132b3fb221 shim: fix bug in mount rootfs flag
Signed-off-by: Zhang Tianyang <burning9699@gmail.com>
2022-09-20 22:16:03 +08:00
Maksym Pavlenko 9d2ad01aa7 Remove vulnerable dependency found by cargo deny
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-09-19 15:12:58 -07:00
Maksym Pavlenko de34dc8760 Update snapshots dependencies
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-09-19 15:12:52 -07:00
Maksym Pavlenko 774ef5df56 Update client dependencies
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-09-19 15:12:40 -07:00
Manu Gupta a83ff8e8d2
Update README.md
ctr pull needs to be replaced by ctr i pull for the command to work.

Signed-off-by: Manu Gupta <manugupt1@gmail.com>
2022-09-05 21:54:39 -07:00
Maksym Pavlenko d5b72ce007
Merge pull request #80 from yuqitao/support-more-overlayfs-layers
synchronous: supprt more overlayfs layers
2022-05-30 13:09:13 -07:00
yuqitao fdd5d7c7d1 synchronous: supprt more overlayfs layers
Signed-off-by: yuqitao <yuqitao1024@qq.com>
2022-05-27 15:27:08 +08:00
Zhang Tianyang be8d9d479e runc-shim: Update console copy
Signed-off-by: Zhang Tianyang <burning9699@gmail.com>
2022-05-17 22:57:58 +08:00
Maksym Pavlenko cfe09e2227 Update nix dependency
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-05-05 14:55:34 -07:00
Yuna Tomida f9ae07236d
removed unsafe codes on runc client and shim
Signed-off-by: Yuna Tomida <ytomida.mmm@gmail.com>
2022-05-04 15:39:41 +09:00
Maksym Pavlenko 83dec597de Remove docs.rs badge from runc-shim
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-05-03 13:59:15 -07:00
dependabot[bot] 9193b476c2
build(deps): update uuid requirement from 0.8.2 to 1.0.0
Updates the requirements on [uuid](https://github.com/uuid-rs/uuid) to permit the latest version.
- [Release notes](https://github.com/uuid-rs/uuid/releases)
- [Commits](https://github.com/uuid-rs/uuid/compare/0.8.2...1.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-20 21:37:17 +00:00
Maksym Pavlenko 497f88ca86 Update proto dependencies
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-04-06 09:19:21 -07:00
Feng Shaobao df87a63c8e add exit-signal for container
to exit io copy tasks when deleting container

Signed-off-by: Feng Shaobao <fshb1988@gmail.com>
2022-03-22 14:47:41 +08:00
Feng Shaobao 93cc73cf9b upgrade rust toolchain version to 1.59
the dependent path-dedot crate updated to rust edition 2021, we have to
upgrade out toolchain version to compile

Signed-off-by: Feng Shaobao <fshb1988@gmail.com>
2022-03-18 17:26:24 +08:00
Feng Shaobao 63a4e5c891 fix tokio not exit and signal handle exit issue
make all integartion tests passed

Signed-off-by: Feng Shaobao <fshb1988@gmail.com>
2022-03-18 12:39:36 +08:00
Feng Shaobao b48cc3d993 add update/stats/pids for async
Signed-off-by: Feng Shaobao <fshb1988@gmail.com>
2022-03-16 10:07:31 +08:00
Maksym Pavlenko b3ac82d9cc Fix badges
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-03-10 16:18:47 -08:00
Maksym Pavlenko 21e298aef3 Bump versions
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-03-10 15:58:28 -08:00
Maksym Pavlenko 70c7f85b45 Update runc shim README
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-03-10 15:49:59 -08:00
Maksym Pavlenko 80e6588c53 Fix runtime name for integration tests
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-03-10 15:24:10 -08:00
Maksym Pavlenko d7ceb45072 [runc-shim] Implement Connect
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-03-10 09:42:10 -08:00
Zhang Tianyang 2fd561e290 runc-shim: support remote publisher and extra some common methods
Signed-off-by: Zhang Tianyang <burning9699@gmail.com>
2022-03-10 17:23:50 +08:00
Zhang Tianyang 3ff1fc0a6d bugfix: return a tmp dir when 'XDG_RUNTIME_DIR' was not set
Signed-off-by: Zhang Tianyang <burning9699@gmail.com>
2022-03-09 23:46:47 +08:00
Zhang Tianyang 74ac192726 runc-shim: implement ShimExecutor in synchronous version
Signed-off-by: Zhang Tianyang <burning9699@gmail.com>
2022-03-09 21:17:26 +08:00
Maksym Pavlenko 6bc49c007c
Merge pull request #50 from abel-von/add-async-runc
[runc-shim] support of async runc shim
2022-03-08 12:58:18 -08:00
Feng Shaobao 1e1a6a8d97 change Executor to Spawner and make it trait object 2022-03-08 15:39:43 +08:00
Maksym Pavlenko c0baac598f [Client] Bump to 0.2.0
Close: #54

Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-03-07 11:09:02 -08:00
Feng Shaobao cdc78f7760 split async and sync codes for runc-shim and shim
Signed-off-by: Feng Shaobao <fshb1988@gmail.com>
2022-03-07 22:34:51 +08:00
Feng Shaobao 777fe2ad23 support async feature for runc shim
Signed-off-by: Feng Shaobao <fshb1988@gmail.com>
2022-03-07 16:38:19 +08:00
Feng Shaobao 01f4916f95 shim: Support async traits and helper functions
Signed-off-by: Feng Shaobao <fshb1988@gmail.com>
2022-03-07 15:33:49 +08:00
Maksym Pavlenko 3aa4a4da77
Merge pull request #48 from Burning1020/shim-cgroup
runc-shim: support shim cgroup and oom score
2022-03-05 14:50:42 -08:00
Zhang Tianyang 4e1c3a2a69 runc-shim: support shim cgroup and oom score
Signed-off-by: Zhang Tianyang <burning9699@gmail.com>
2022-03-04 15:47:29 +08:00
Zhang Tianyang fda23cd59f shim: refine set subreaper
Signed-off-by: Zhang Tianyang <burning9699@gmail.com>
2022-03-03 20:46:01 +08:00
Zhang Tianyang a06ec3df2d runc-shim: implement pids task
Signed-off-by: Zhang Tianyang <burning9699@gmail.com>
2022-03-01 19:04:12 +08:00
Zhang Tianyang 3ffe778e4b runc-shim: implement close io task
Signed-off-by: Zhang Tianyang <burning9699@gmail.com>
2022-03-01 19:02:31 +08:00
Zhang Tianyang dd90a9180f runc: Set piped stdio as default
Signed-off-by: Zhang Tianyang <burning9699@gmail.com>
2022-02-28 21:36:03 +08:00
Zhang Tianyang cdb93f2358 runc-shim: implement update task
Signed-off-by: Zhang Tianyang <burning9699@gmail.com>
2022-02-27 18:12:33 +08:00
Zhang Tianyang 9b93f39ee1 runc-shim: implement stats task
Signed-off-by: Zhang Tianyang <burning9699@gmail.com>
2022-02-27 18:12:33 +08:00
Maksym Pavlenko c630c56e57
Merge pull request #41 from mxpv/exit
Rework exit signals and task creation
2022-02-25 12:30:37 -08:00
Maksym Pavlenko fa0d72f516 Fix clippy warnings
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-02-24 11:46:22 -08:00
Maksym Pavlenko 996c8e6aa8 Rework exit signal and task creation
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-02-24 11:32:34 -08:00
Liu Jiang 33e940b9c8 runc: refine the way to setup Io
Refine the way to setup Io drivers for runC.

The capability to capture output/error messages from runc depends on
the Io driver used. Some add two more Io drivers: InheritedStdIo and
PipedStdIo. Also document whether the Io driver supports capturing
output/error messages.

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2022-02-24 18:47:08 +08:00
Liu Jiang 41c2083eac runc: simple syntax improvments
Simple syntax only improvements.

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2022-02-24 18:46:38 +08:00
Liu Jiang fc50adf2dc runc: implement sync version of ps() and stats()
Implement sync version of ps() and stats().

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2022-02-24 18:46:37 +08:00
Liu Jiang 95cda30597 runc: fix two bugs in preparing command line arguments
1) it should use "runc resume" instead of "runc pause" for resume()
2) the order of arguments to run() is wrong, other options may appear
   between "--bundle" and "bundle_id".

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2022-02-24 18:46:36 +08:00
Liu Jiang 6c6fa1ac09 runc: make async version of Runc::create() to return Response
Make async version of Runc::create() to return `Response` instead of
`()`, to keep symmetry with sync version.

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2022-02-24 18:46:35 +08:00
Liu Jiang f5f18ec52b runc: avoid unwrap() in runc::launch()
In runc::launch(), it does
        let stdout = String::from_utf8(result.stdout).unwrap();
        let stderr = String::from_utf8(result.stderr).unwrap();

This is risk of DoS attack because the content result.stdout/sterr may
contain contents generated by the container, so it may contain malicious
non-UTF8 characters.

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2022-02-24 18:46:33 +08:00
Maksym Pavlenko fa766d4e75
Merge pull request #38 from Burning1020/fix-files-leak 2022-02-23 15:47:37 -08:00
Zhang Tianyang b08e4090ea runc: fix bug that exec command leaks files
Signed-off-by: Zhang Tianyang <burning9699@gmail.com>
2022-02-23 21:16:16 +08:00
Liu Jiang 43f4702b7a shim-proto: group common proto types into types
Group generated soruce files for common protobuf source files into
src/types, also simplify the build.rs.

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
Signed-off-by: Quanwei Zhou <quanweiZhou@linux.alibaba.com>
2022-02-23 16:39:09 +08:00
Maksym Pavlenko 78521c80bf Remove runc dependency from shim crate
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-02-21 10:26:19 -08:00
Maksym Pavlenko a1b2a25987 Update Cargo.toml for runc-shim
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-02-21 09:59:16 -08:00
Maksym Pavlenko 03496c936b
Merge pull request #34 from quanweiZhou/develop
support async for containerd-shim-protos
2022-02-21 09:52:01 -08:00
Quanwei Zhou c4471c4cbf shim-proto: add async example
Fixes: #33
Signed-off-by:Quanwei Zhou <quanweiZhou@linux.alibaba.com>
2022-02-21 18:10:12 +08:00
Quanwei Zhou 6e50c8741c shim-proto: support async
Fixes: #33
Signed-off-by: Quanwei Zhou <quanweiZhou@linux.alibaba.com>
2022-02-21 16:52:45 +08:00
Zhang Tianyang 117263d9be Move Io and Console
Signed-off-by: Zhang Tianyang <burning9699@gmail.com>
2022-02-17 23:06:35 +08:00
Zhang Tianyang db4e648261 Simpify Config transmission mode
Signed-off-by: Zhang Tianyang <burning9699@gmail.com>
2022-02-17 23:02:26 +08:00
Zhang Tianyang 620ce26d59 Remove extern use and refactor naming
Signed-off-by: Zhang Tianyang <burning9699@gmail.com>
2022-02-17 23:02:26 +08:00
Zhang Tianyang 0a33f3e867 Runc shim implementation
Implement shim cli commands and some basic task APIs to run a runc container

Co-authored-by: Feng Shaobao fshb1988@gmail.com
Co-authored-by: Zhang Tianyang burning9699@gmail.com
Co-authored-by: Yu Qitao yuqitao1024@qq.com

Signed-off-by: Zhang Tianyang <burning9699@gmail.com>
2022-02-17 23:02:14 +08:00
Maksym Pavlenko 464af70dfa Remove IO impl for Arc
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-02-15 10:44:18 -08:00
Liu Jiang d453f1e38a runc: implement Io for Arc<T: Io>
Add an implementation of `impl<T: Io> Io for Arc<T>`.

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2022-02-15 14:08:13 +08:00
Liu Jiang 0dc9705d7e runc: add unit test cases for io.rs
Add unit test cases for io.rs to avoid mistake.

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2022-02-15 14:08:12 +08:00
Liu Jiang a52bcd0c7e runc: add helper PipedIo::create_pipe()
Add helper PipedIo::create_pipe() to reduce duplicated code.

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2022-02-15 14:08:11 +08:00
Liu Jiang be8046e832 runc: simplify code a bit and refine doc
Simplify code in io.rs a bit, also refine doc and simplify code.

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2022-02-15 14:08:10 +08:00
Liu Jiang 8c2a61a807 runc: introduce helper function execute()
Introduce helper function monitor.rs::execute() to avoid duplicated
code, and also correctly setup stdout/stderr for ProcessMonitor.

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2022-02-15 11:15:33 +08:00
Liu Jiang cd965aa06a runc: avoid panic when the child process get signalled
On Unix, tokio::process::ExitStatus::code() will return None if the
process was terminated by a signal. So handle to avoid panicking
caused by unwrap().

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2022-02-15 11:15:31 +08:00
Liu Jiang 8f20cfb58c runc: add test cases for process monitor 2022-02-15 11:15:27 +08:00
Liu Jiang 37975426b9 runc: enhance documentation for ProcessMonitor
Enhance documentation for ProcessMonitor, to explicitly state the
requirement of ProcessMonitor::start().

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2022-02-15 11:15:26 +08:00
Maksym Pavlenko 7a55e0f11b
Merge pull request #30 from jiangliu/globalotps
RFC: Refactor ConfigBuilder as GlobalOpts
2022-02-14 10:39:19 -08:00
Liu Jiang 8e86897ee9 shim-proto: avoid duplicated definition of Mount
There are two copies of mount.rs generated from the same protobuf file,
so unify them into one copy.

Fixed: #23

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2022-02-14 17:41:37 +08:00
Liu Jiang d170d62326 runc: add a unit test case for GlobalOpts
Add a unit test case for GlobalOpts.

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2022-02-14 16:57:05 +08:00
Liu Jiang 4b3efbc875 runc: move runc commandline constants into options.rs
Move runc commandline related constants into options.rs, so options.rs
hosts all commandline parsing related code. And util.rs only hosts
utilities.

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2022-02-14 16:57:04 +08:00
Liu Jiang cfdbb4dbcd runc: rename ConfigBuilder as GlobalOpts and moves it into options.rs
Rename ConfigBuilder as GlobalOpts and moves it into options.rs,
to follow the runc man pages.

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2022-02-14 16:48:08 +08:00
Liu Jiang 2cba19f230 runc: avoid using unwrap() in util.rs
Introduce helper path_to_string() to avoid using unwrap().

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2022-02-14 16:48:08 +08:00
Maksym Pavlenko ab45a92d6d Add async feature
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-02-13 14:23:16 -08:00
Maksym Pavlenko 0c6ca068ed
Merge pull request #26 from jiangliu/doc 2022-02-12 08:44:33 -08:00
Liu Jiang f1b90cc9b2 shim: add inline doc for set_subreaper() and SOCKET_FD
As follow-on work, add inline documentation for set_reapder(#19)
and SOCKET_FD (#20).

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2022-02-12 16:25:10 +08:00
Maksym Pavlenko 64306e3e4d Remove target checks
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-02-11 11:41:12 -08:00
Maksym Pavlenko 14dceb116f Remove duplicated config builder
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-02-11 11:18:16 -08:00
Maksym Pavlenko 3b2b00f206 Update README
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-02-11 10:10:42 -08:00
Akihiro Suda 6e17be8d75
crates/shim-protos: regenerate with rust-protobuf 2.27.1
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2022-02-06 18:33:18 +09:00
Akihiro Suda 522e26fab8
crates/runc/src/lib.rs: fix compilation on non-Linux
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2022-02-06 18:32:35 +09:00
Yuna Tomida eddd107601
remove unnecessary 'forget'
Signed-off-by: Yuna Tomida <ytomida.mmm@gmail.com>
2022-02-04 02:27:54 +00:00
Yuna Tomida 8f3e556a1b
renamed crate and applied recommended changes
Signed-off-by: Yuna Tomida <ytomida.mmm@gmail.com>
2022-02-04 00:39:39 +00:00
Yuna Tomida 8bbd4e7baf
fixed clippy warnings in shim::args and example in client
Signed-off-by: Yuna Tomida <ytomida.mmm@gmail.com>
2022-02-03 13:35:24 +00:00
Yuna Tomida 43cf334648
applied fmt
Signed-off-by: Yuna Tomida <ytomida.mmm@gmail.com>
2022-02-03 08:35:04 +00:00
Yuna Tomida 2663849a52
confirmed tests
Signed-off-by: Yuna Tomida <ytomida.mmm@gmail.com>
2022-02-03 07:04:26 +00:00
Yuna Tomida 7c2b93f187
removed chrono from dependencies and applied fmt
Signed-off-by: Yuna Tomida <ytomida.mmm@gmail.com>
2022-02-03 05:09:17 +00:00
Yuna Tomida d34fa454ad
runc client
Signed-off-by: Yuna Tomida <ytomida.mmm@gmail.com>
2022-02-03 02:19:22 +00:00
Maksym Pavlenko f035941680
Merge pull request #20 from Burning1020/fix-socket-address
[shim] Fix socket binding address
2022-02-02 10:14:26 -08:00
Burning 88882cb2e2 [shim] Fix socket binding address
As there is no need in "-socket" flag, we'd better use SOCKET_FD as the binding address of task server only.

Signed-off-by: Burning <burning9699@gmail.com>
2022-01-22 20:28:12 +08:00
Burning 7c9a6a5a25 [shim] Set the "child subreaper" attribute
The shim process can have "child subreaper" attribute when arg2 is nonzero.

Signed-off-by: Burning <burning9699@gmail.com>
2022-01-22 19:50:19 +08:00
Maksym Pavlenko 9030cffa98
Merge pull request #17 from mxpv/ttrpc
Update ttrpc-rust to 0.6
2022-01-20 10:30:30 -08:00
dependabot[bot] 62755062d3
Update simple_logger requirement from 1.16 to 2.0
Updates the requirements on [simple_logger](https://github.com/borntyping/rust-simple_logger) to permit the latest version.
- [Release notes](https://github.com/borntyping/rust-simple_logger/releases)
- [Commits](https://github.com/borntyping/rust-simple_logger/compare/v1.16.0...v2.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-19 21:37:30 +00:00
Maksym Pavlenko 17ea78a0e0 Update ttrpc-rust to 0.6
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-01-19 08:47:43 -08:00
Samuel Ortiz f2ad153965 [shim] README: Update the example to the latest API
Use the skeleton.rs code.

Signed-off-by: Samuel Ortiz <s.ortiz@apple.com>
2022-01-19 08:31:34 -08:00
Maksym Pavlenko 4e84e9b800 [logger] Update documentation
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-31 12:29:13 +02:00
Maksym Pavlenko 0befc3d4f7 [shim] Rename empty shim example
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-30 10:16:56 +02:00
Maksym Pavlenko 55cd05887d [shim] Add runtime section to README
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-30 10:06:14 +02:00
Maksym Pavlenko f43b11df48 Bump shim to 0.2.0
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-30 09:23:57 +02:00
Maksym Pavlenko 559bf7bc8d Bump shim-protos to 0.1.2
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-30 09:14:03 +02:00
Maksym Pavlenko 4ad21f61b3 [shim-protos] Update README
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-30 09:12:54 +02:00
Maksym Pavlenko 39065ec9ed Rename shim-client to shim-protos
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-30 08:43:32 +02:00
Maksym Pavlenko d901356551 Update dependencies
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-28 10:54:59 +02:00
bin liu cfca48d75c containerd-client: add example to create container and task
Add an example to show how to create/delete containers and tasks.

Signed-off-by: bin liu <bin@hyper.sh>
2021-12-19 20:09:17 -08:00
bin liu 2010a32a47 containerd-client: add task service and with_namespace macro
There is no task service included yet, add the task
service protocol file to build.rs.

Add a with_namespace maro to let user inject namespace

Signed-off-by: bin liu <bin@hyper.sh>
2021-12-19 20:09:17 -08:00
Maksym Pavlenko fcb5cc5966 Update crate description
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-18 10:39:28 -08:00
Maksym Pavlenko a6b32c32bd Add README
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-18 10:39:28 -08:00
Maksym Pavlenko e5d003c8bb Add snapshots example
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-18 10:39:28 -08:00
Maksym Pavlenko 70f7cacdc1 Implement GRPC wrapper for snapshots
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-18 10:39:28 -08:00
Maksym Pavlenko e3b7f97813 Generate GRPC bindings for snapshots
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-18 10:39:28 -08:00
Maksym Pavlenko b342a674b1 Add snapshots crate
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-18 10:39:28 -08:00
Maksym Pavlenko b7e673d7a7 Add cargo deny
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-15 20:58:32 -08:00
Liu Jiang 95e8049398 shim: distinguish between runtime id and container id
There's a misuse of runtime id and container id in Shim::new(). Both
runtime id and container id are needed by shim implentions, so add
parameter `container id` to Shim::new().

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2021-12-14 13:44:45 +08:00
bin liu c12ac9ee68 shim: update README.md to run shim examples
The content of README.md is out of date, update it
with the correct steps to run the examples.

Signed-off-by: bin liu <bin@hyper.sh>
2021-12-14 11:37:00 +08:00
bin liu e5e0ebbe36 shim: pass the correct ID of containers to shim
The ID passed from shim::run::<Service> is the shim name,
the container ID can get from command-line flags.

Signed-off-by: bin liu <bin@hyper.sh>
2021-12-13 18:14:51 +08:00
Liu Jiang 72aebb1b39 shim: trivial documentation enhancements
Trivial documentation enhancements:
1) comments for unsafe code
2) list supported platforms

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2021-12-13 10:13:05 +08:00
Liu Jiang a2bfeed2ca shim: introduce Shim::wait()
Introduce Shim::wait() to wait for a shim instance to exit, so the
`Shim` implementor could customize the way to manage exit event.

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2021-12-13 10:08:20 +08:00
Liu Jiang fdd50661f3 shim: add interface Shim::get_task_service()
Currently Containerd shimv2 runtime only provides task service, but it
may provide more service in future. So add interface
Shim::get_task_service() to get the task service object instead of
"Shim: Task".

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2021-12-13 10:08:19 +08:00
Liu Jiang 7a8fa4413e shim: implement ExitSignal with Condvar
Implement ExitSignal with Condvar instead of busy looping.

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2021-12-13 10:08:15 +08:00
Liu Jiang 04af4df73a shim: pass environment variables to spawned process
Enhanace spawn() to pass envrionment variables to child process.

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2021-12-13 10:08:15 +08:00
Liu Jiang 1b106ee38d shim: add unit test for start_listener()
Add unit test for start_listener().

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2021-12-13 10:08:14 +08:00
Liu Jiang 0c83d7c04c shim: be more careful when removing stale socket files
The function start_listener() tries to remove stale socket files when
syscall::bind() retune EADDRINUSE, let's be more careful to only remove
existing sockets instead of other types of files.

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2021-12-13 10:08:13 +08:00
Liu Jiang 63f62b9c9c shim: avoid raw fd leak in spawn()
The RawFd for the listener socket will get leaked in error handling
path in start_listener(). Use UnixListener to replace RawFd for clear
ownership and also simplify the code a bit.

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2021-12-13 10:08:12 +08:00
Liu Jiang 64d57879ce shim: add unit tests for remote publisher
Add unit tests for remote publisher.

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2021-12-13 10:08:11 +08:00
Liu Jiang 01e45800dc shim: release fd when error happens in RemotePublisher::connect()
A RawFd won't be automatically released when going out of scope,
so we need to close the just created RawFd when error happens
in RemotePublisher::connect().

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2021-12-13 10:08:11 +08:00
Liu Jiang 0eff017c40 shim: add unit test case for logger
Add unit test case for logger.

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2021-12-13 10:08:10 +08:00
Liu Jiang 5197e72f4a shim: do not panic if failed to log to FIFO
According to Linux FIFO doc, writing to a FIFO without reader may
return errors:
If all file descriptors referring to the read end of a pipe have been
closed, then a write(2) will cause a SIGPIPE signal to be generated
for the calling process. If the calling process is ignoring this
signal, then write(2) fails with the error EPIPE.

When restarting logger servers, there are small race windows that
FifoLogger::log/flush() may encounter IO error and panic. It's not
a good situation to panic due to errors in logging subsystem.

So just ignore those IO errors.

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2021-12-13 10:08:09 +08:00
Liu Jiang 4f78733008 shim-client: refine data structures exported by submodule api
Reexport auto-generated public data structures under submodule api.

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2021-12-12 22:39:33 +08:00
Liu Jiang 6d46508d3b shim-client: add unit test cases and more examples
Add unit test cases and more examples.

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2021-12-12 22:39:32 +08:00
Liu Jiang 62fd081d88 shim-client: add support for cgroup metrics
Generate rust bindings for cgroups metrics from protobuf file:
https://github.com/containerd/cgroups/blob/main/stats/v1/metrics.proto

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2021-12-12 22:39:31 +08:00
Liu Jiang 8655b0ff41 shim-client: make dependency on ttrpc-codegen as optional
Now we have feature "generate_bindings" for shim-client, and crate
ttrpc-codegen is used only when feature "generate_bindings" is enabled.
So mark ttrpc-codegen as optional.

Signed-off-by: Liu Jiang <gerry@linux.alibaba.com>
2021-12-12 22:39:30 +08:00
Liu Jiang 9d66917ce1 shim-client: docuement the way to upgrade the auto-generated code
Enhance README.md to document the way to upgrade the auto-generated
rust source code.

Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-11 15:20:53 +08:00
Maksym Pavlenko b8252e525b Bump containerd client to 0.1.2
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-10 16:01:05 -08:00
Maksym Pavlenko 8cf673677a Update containerd client dependencies
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-10 15:58:05 -08:00
Maksym Pavlenko 34ab8a1b6f Bump version to 0.1.1
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-10 15:33:15 -08:00
Maksym Pavlenko 064387518e Update authors and homepage
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-10 15:32:26 -08:00
Maksym Pavlenko 3baf235798 Include generated code for shim-client
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-10 15:25:47 -08:00
Maksym Pavlenko 97ae630389 Fix build
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-10 15:18:15 -08:00
Maksym Pavlenko 87f97f462c Add copyright headers
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-10 15:14:48 -08:00
Maksym Pavlenko e5fd8c76ae Update docs
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-10 15:06:55 -08:00
Maksym Pavlenko 8a3233f248 Don't depend on libsystemd-dev
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-10 12:02:46 -08:00
Maksym Pavlenko af24c1421c Add badges
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-10 11:35:52 -08:00
Maksym Pavlenko 1fc9ce0151 Update repositories
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-10 11:11:56 -08:00
Maksym Pavlenko 129f4f8608 Fix Cargo.toml for shim crate
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-10 11:08:35 -08:00
Maksym Pavlenko ce54afd57e Use ttrpc from crates.io
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-10 10:25:03 -08:00
Maksym Pavlenko 5e5ecc9409 Remove auto generated code
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-11-19 16:24:49 -08:00
Maksym Pavlenko 11ad93017f Allow custom error types in Shim trait
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-11-19 16:11:49 -08:00
Maksym Pavlenko 7b0f47b1ba Pass socket fd to child process
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-11-17 12:14:57 -08:00