Commit Graph

360 Commits

Author SHA1 Message Date
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
Maksym Pavlenko 8590ef8d12
Merge pull request #177 from jsturtevant/fix-update-cgroup-taskupdate
Handle cgroup v1 or v2 to enable resource updates
2023-08-21 09:52:03 -07: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
James Sturtevant 8fde77f1c8 Add Windows statistics protobuf pacakge
Signed-off-by: James Sturtevant <jstur@microsoft.com>
2023-08-21 16:18:44 +00:00
Maksym Pavlenko 0659a93663
Bump snapshots to 0.3.0
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2023-08-10 15:09:05 -07:00
Maksym Pavlenko 13ae16577a
Bump client to 0.4.0
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2023-08-10 12:58:06 -07:00
Maksym Pavlenko 32362ace1d
Merge pull request #171 from mxpv/client
Improve containerd client ergonomics
2023-08-09 15:32:32 -07:00
Maksym Pavlenko a65ec7f6df Improve containerd client ergonomics
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2023-08-09 12:03:36 -07: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
Maksym Pavlenko 77a2b87c18 [runc-shim] Move async code to package root
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2023-08-08 10:07:45 -07:00
Maksym Pavlenko 53cc80da4d Remove sync runc shim
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
Maksym Pavlenko dea1da4474 [shim-protos] Bump version
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2023-08-02 12:32:48 -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
jiaxiao zhou 5c55e352de
cargo clippy
Signed-off-by: jiaxiao zhou <jiazho@microsoft.com>
2023-08-02 02:43:05 +00:00
Tianyang Zhang 7817d7ef7b runc-shim: open read side of stdout/stderr fifo to avoid EPIPE
The "read" side of container stdout/stderr fifo has been opened
by containerd and on the other hand "write" side is opened by
container process, which is a little different with golang shim.
If containerd shutdown and closed the read fd, container process
will receive EPIPE when writing to stdout/stderr and then be
killed by SIGPIPE signal. In this commit, the "read" side is
opened again by shim so that at least there is one opened "read"
side all the time.

Signed-off-by: Tianyang Zhang <burning9699@gmail.com>
2023-07-21 17:12:16 +08: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
Maksym Pavlenko ddf49a9a52 Fix dependencies
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2023-07-11 10:47:24 -07: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
Maksym Pavlenko 35a97f17d5
Merge pull request #145 from wllenyj/sandbox
shim: add Sandbox API support
2023-05-16 13:25:35 -07:00
wanglei01 79d5d5afcf shim: add sandbox module
Added sandbox feature to enable sandbox support.

Signed-off-by: wanglei01 <wllenyj@linux.alibaba.com>
2023-05-17 01:41:23 +08:00
wanglei01 e8d11318e1 shim: add Sandbox API support
Added sandbox proto file.

Signed-off-by: wanglei01 <wllenyj@linux.alibaba.com>
2023-05-17 01:41:17 +08:00
Maksym Pavlenko 4f66aaffe7 Update tonic dependencies
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2023-05-15 10:19:35 -07:00
Maksym Pavlenko f23659c392 [client] Bump version to 0.3.0 2023-05-05 10:44:55 -07:00
Chris Rice 660d4f886b add submodule for sandbox 2023-05-05 11:05:49 -06:00
Chris Rice c9fe55ef51 add containerd.services.sandbox.v1 2023-05-05 08:40:48 -06:00
Maksym Pavlenko c54a467f16
Merge pull request #137 from simon-mo/list-request-impl
Implement the input parameters for snapshotter::list
2023-04-23 19:28:03 +02:00
Maksym Pavlenko e3c2364587
Merge pull request #138 from Burning1020/ttyfd-close
runc-shim: fix tty fd multi close error
2023-04-23 19:25:59 +02:00
Simon Mo 9bf2db776b Implement `list` for snapshotter request
This PR follows up on @wedsonaf's #126 and pass the filters through the list input.
Note that this is not backward compatible but this is a step closer to the protocol
conformance.
2023-04-21 18:39:32 +00:00
Maksym Pavlenko 16e9695e80 Bump snapshots crate
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2023-04-14 12:26:18 -07:00
Tim Zhang dc856c67bf containerd-shim: bump containerd-shim-protos to v0.3.0
Signed-off-by: Tim Zhang <tim@hyper.sh>
2023-04-14 16:02:48 +08:00
Tim Zhang 18609f2762 release containerd-shim-protos: v0.3.0
Bump containerd-shim-protos from 0.2.0 to 0.3.0 to
include changes made in #95.

Because the update in #95 is not compatible we need a major
version update.

Signed-off-by: Tim Zhang <tim@hyper.sh>
2023-04-14 15:43:13 +08:00
Zhang Tianyang ad90c998ef runc-shim: fix tty fd multi close error
use File::from_raw_fd() to create the tty io file, when the io copy
thread ends, it will drop the file object which will close the fd, but
as we made three file objects from the same fd, it will be closed
three times, if other opened files occupied this fd number, the
second or third drop of the file object may close the fds of other files.

Signed-off-by: Zhang Tianyang <burning9699@gmail.com>
2023-04-11 20:16:39 +08:00
Maksym Pavlenko dad95076c4 Move Stdio to runc-shim
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2023-03-16 11:35:03 -07:00
Maksym Pavlenko 2fcf8af423 Move processes to runc-shim
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2023-03-16 11:24:31 -07:00
Maksym Pavlenko 33d37c0c0d Move console to runc-shim
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2023-03-16 11:16:24 -07:00
Maksym Pavlenko 115029bb63
Merge pull request #127 from mxpv/refactor
Make shim / runc-shim APIs more consistent
2023-03-16 11:01:47 -07:00
Maksym Pavlenko b284957f88
Merge pull request #130 from wedsonaf/kind-eq
Derive `PartialEq` for `Kind`
2023-03-16 04:39:15 +00:00
Wedson Almeida Filho 68c227a774 Derive `PartialEq` for `Kind`
This allows us to use the `==` and `!=` operators to compare instances
of `Kind`, which is useful when we require that a snapshot be of some
specific kind (e.g., committed) before performing an operation on it.

Signed-off-by: Wedson Almeida Filho <walmeida@microsoft.com>
2023-03-16 01:16:09 -03:00
Wedson Almeida Filho 7380fe8528
Use `futures` version from workspace
Co-authored-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
Signed-off-by: Wedson Almeida Filho <wedsonaf@users.noreply.github.com>
2023-03-16 00:59:56 -03:00
Maksym Pavlenko 45c0c0d4e0 Move async container and task modules to runc-shim
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2023-03-15 14:26:15 -07:00
Wedson Almeida Filho f071faafc8 Implement `list` function
This is needed by remote snapshotters: once they report "already
exists", containerd tries to find the snapshot via `list`. If
it's not implemented, the "already exists" trick to prevent
layer download doesn't work.

This is still missing a filtering function, but allows remote
snapshotters to work.

Signed-off-by: Wedson Almeida Filho <walmeida@microsoft.com>
2023-03-14 23:59:29 -03:00
Wedson Almeida Filho af7ec66df5 Implement `Serialize` and `Deserialize` for `Kind` and `Info`
This allows us to use `serde` to serialize and deserialize the
information about a particular snapshot so that we can write it
to and read it from storage.

Signed-off-by: Wedson Almeida Filho <walmeida@microsoft.com>
2023-03-14 15:16:58 -03:00
Maksym Pavlenko 98754fd771 Update tokio
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2023-03-13 09:43:52 -07:00
dependabot[bot] 2cf2fd4a92
build(deps): update oci-spec requirement from 0.5.8 to 0.6.0
Updates the requirements on [oci-spec](https://github.com/containers/oci-spec-rs) to permit the latest version.
- [Release notes](https://github.com/containers/oci-spec-rs/releases)
- [Changelog](https://github.com/containers/oci-spec-rs/blob/main/release.md)
- [Commits](https://github.com/containers/oci-spec-rs/compare/v0.5.8...v0.6.0)

---
updated-dependencies:
- dependency-name: oci-spec
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-13 01:44:43 +00:00
Christophe de Dinechin 2d0d5c5602 docs: Update link for containerd shimv2 proto file
The `shim.proto` file is now under `api/runtime` instead of just `runtime`.

Signed-off-by: Christophe de Dinechin <dinechin@redhat.com>
2023-03-08 15:15:19 +01:00
Maksym Pavlenko 27a92fc606
Merge pull request #117 from wedsonaf/status
Add `Into<tonic::Status>` bound to `Snapshotter::Error`
2023-01-19 13:36:28 -08:00
Wedson Almeida Filho cdb52e74e5 Use `?` instead of `match` expression
This is just a simplification of the code to use `map_err` and
the question mark operator to improve readability.

Signed-off-by: Wedson Almeida Filho <walmeida@microsoft.com>
2023-01-19 16:22:50 -03:00
Wedson Almeida Filho 3aeeea0f55 Add `Into<tonic::Status>` bound to `Snapshotter::Error`
This allows implementers to express which grpc status should be
returned to clients on errors.

Prior to this patch, all errors got converted to "internal"
errors (`tonic::Status::internal`), which doesn't work when
specific status are needed. For example, remote snapshotters
need to return "already exists" to indicate that a layer
doesn't need to be downloaded.

Signed-off-by: Wedson Almeida Filho <walmeida@microsoft.com>
2023-01-19 16:18:05 -03:00
Zhang Tianyang 65921d09dc Remove unused declaration
Signed-off-by: Zhang Tianyang <burning9699@gmail.com>
2023-01-16 23:37:45 +08:00
Zhang Tianyang ffa56dbf3b runc-shim: fix leaking thread and fd
The stdin fifo fd should be closed when containerd
calls close io, otherwise, runc-shim would hold
this fd and the copy console thread forever.

Signed-off-by: Zhang Tianyang <burning9699@gmail.com>
2023-01-16 23:37:44 +08:00
Zhang Tianyang 62798a0745 runc-shim: fix leaking files for exec process
A pid file under bundle path will be created after
the exec process created, so it should also be deleted
before process deleted.

Signed-off-by: Zhang Tianyang <burning9699@gmail.com>
2023-01-08 10:57:31 +08:00
Maksym Pavlenko faf24cbd42
Merge pull request #106 from containerd/dependabot/cargo/page_size-0.5.0
build(deps): update page_size requirement from 0.4.2 to 0.5.0
2023-01-07 11:49:28 -08:00
Maksym Pavlenko 80c6d9edf0
Merge pull request #107 from containerd/dependabot/cargo/nix-0.26
build(deps): update nix requirement from 0.25 to 0.26
2023-01-07 11:49:13 -08:00
Maksym Pavlenko 07a98518d4
Merge pull request #109 from utam0k/rust-1.66
Update Rust to 1.66 and fix some lints
2023-01-07 11:48:17 -08:00
Zhang Tianyang 3822d608e9 runc-shim: retrieve OCI runtime error if OCI command failed
If an error is encountered when running the OCI command, shim process
should walk the OCI command logfile and retrieve the last error.

Signed-off-by: Zhang Tianyang <burning9699@gmail.com>
2023-01-06 21:21:13 +08:00
utam0k fe1b3b0f73
Fix the warns from clippy lints
Signed-off-by: utam0k <k0ma@utam0k.jp>
2022-12-29 21:21:55 +09:00
dependabot[bot] 8a20e3b2c3
build(deps): update page_size requirement from 0.4.2 to 0.5.0
Updates the requirements on [page_size](https://github.com/Elzair/page_size_rs) to permit the latest version.
- [Release notes](https://github.com/Elzair/page_size_rs/releases)
- [Commits](https://github.com/Elzair/page_size_rs/compare/0.4.2...0.5.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-17 23:28:10 +00:00
utam0k 909b41b4fe
Update oci-spec 2022-12-17 14:10:18 +09:00
dependabot[bot] 7558fe4c49
build(deps): update nix requirement from 0.25 to 0.26
Updates the requirements on [nix](https://github.com/nix-rust/nix) to permit the latest version.
- [Release notes](https://github.com/nix-rust/nix/releases)
- [Changelog](https://github.com/nix-rust/nix/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nix-rust/nix/compare/v0.25.0...v0.26.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-29 21:09:10 +00:00
Maksym Pavlenko 80e7945674 Use workspace inheritance to describe crates
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-11-04 14:34:49 -07:00
Maksym Pavlenko 55aa661b4d Update Rust to 1.65
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-11-04 14:34:49 -07:00
dependabot[bot] 00b836f8de
build(deps): update simple_logger requirement from 3.0 to 4.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/v3.0.0...v4.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-27 21:49:35 +00:00
dependabot[bot] 0409907ac4
build(deps): update simple_logger requirement from 2.0 to 3.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/v2.0.0...v3.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-20 21:52:22 +00:00
Zhang Tianyang 6203977cbf runc-shim: Update README with performance test
Signed-off-by: Zhang Tianyang <burning9699@gmail.com>
2022-10-16 16:41:01 +08:00
Maksym Pavlenko 5ddd3e37bb Run fmt
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-09-29 11:55:31 -07:00
Maksym Pavlenko d3d97df549 Remove generated code from shim-protos
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-09-27 08:57:33 -07:00
Maksym Pavlenko 97d00b4947
Merge pull request #95 from mxpv/ttrpc 2022-09-23 19:08:42 -07:00
Maksym Pavlenko 26ae44e5c3 Update ttrpc dependencies and switch to Protobuf 3
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-09-23 08:54:45 -07:00
Maksym Pavlenko 78cd9dda69 Fix docs
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-09-22 18:50:31 -07:00
Maksym Pavlenko 51a27ee268 Update nix dependency (fix #93)
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-09-21 11:32:39 -07:00
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