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
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
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
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
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
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
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
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
17ea78a0e0
Update ttrpc-rust to 0.6
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2022-01-19 08:47:43 -08: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
39065ec9ed
Rename shim-client to shim-protos
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-12-30 08:43:32 +02: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
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
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
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
141ba3bac8
Build on MacOS
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-11-16 10:45:29 -08: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
8e6bf687b2
Publisher fixes
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-07-26 18:16:16 -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
3f41003493
Update shim README
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-07-24 11:04:19 -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
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
544b5d26f5
Add empty shim crate
...
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-06-01 12:07:51 -07:00