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
Maksym Pavlenko
70ae5e537a
Rename shim protos crate
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-11-16 11:07:03 -08:00
Maksym Pavlenko
0ffdbc5a48
Update CI
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-11-16 11:00:11 -08:00
Maksym Pavlenko
141ba3bac8
Build on MacOS
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-11-16 10:45:29 -08:00
Maksym Pavlenko
cab9ec91ea
Add keywords
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-07-28 22:10:42 -07:00
Maksym Pavlenko
e29b2a88ed
Add client connect
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-07-28 12:19:36 -07:00
Maksym Pavlenko
9629eac9ec
Add shim exit signal
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-07-28 11:43:22 -07:00
Maksym Pavlenko
2120de8ba8
Add task event topics
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-07-26 18:17:49 -07:00
Maksym Pavlenko
8e6bf687b2
Publisher fixes
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-07-26 18:16:16 -07:00
Maksym Pavlenko
77bfce3a50
Rename client crate
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-07-26 17:06:06 -07:00
Maksym Pavlenko
d3852a5fcd
Implement remote publisher
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-07-26 16:59:21 -07:00
Maksym Pavlenko
5453065a59
Fix linter
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-07-26 16:00:48 -07:00
Maksym Pavlenko
1d868eee45
Generate TTRPC events client
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-07-26 15:53:36 -07:00
Maksym Pavlenko
db84023f10
Fix linter
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-07-26 15:47:24 -07:00
Maksym Pavlenko
baf8effb21
Add shim client example
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-07-26 15:41:40 -07:00
Maksym Pavlenko
68a651b0e4
Add GRPC client crate
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-07-26 10:16:32 -07:00
Maksym Pavlenko
3f41003493
Update shim README
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-07-24 11:04:19 -07:00
Maksym Pavlenko
099cd2a838
Remove containerd submodule
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-07-22 13:12:11 -07:00
Maksym Pavlenko
81a57058b6
Fix shim example
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-07-22 12:39:08 -07:00
Maksym Pavlenko
bcdb1d950f
Rename crates
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-07-22 12:29:58 -07:00
Maksym Pavlenko
3fc0396355
Fix CI
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-07-22 12:20:58 -07:00
Maksym Pavlenko
8e14872cd7
Add license and repository to Cargo.toml
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-07-22 12:03:45 -07:00
Maksym Pavlenko
622b40a1f2
Add shim logger crate
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-07-22 12:01:04 -07:00
Maksym Pavlenko
cce1a7e04c
Update repository README
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-06-08 18:00:51 -07:00
Maksym Pavlenko
26bfc6cbe7
Add default shim start implementation
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-06-08 17:50:20 -07:00
Maksym Pavlenko
7624bc7608
Add reaper
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-06-01 17:14:22 -07:00
Maksym Pavlenko
45c72c34a7
Implement FIFO logger
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-06-01 16:59:45 -07:00
Maksym Pavlenko
f48d018c32
Add example skeleton
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-06-01 16:46:52 -07:00
Maksym Pavlenko
e4b51a3b86
Initial shim bootstrapper implementation
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-06-01 16:40:17 -07:00
Maksym Pavlenko
edf0975ba6
Add shim entry point
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-06-01 16:02:19 -07:00
Maksym Pavlenko
20b0d1b7f3
Add protos crate
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-06-01 15:14:39 -07:00
Maksym Pavlenko
544b5d26f5
Add empty shim crate
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-06-01 12:07:51 -07:00