Container monitor in Rust

Related tags

Deployment conmon-rs
Overview

Conmon-rs

ci gh-pages codecov dependencies

A pod level OCI container runtime monitor.

The goal of this project is to provide a container monitor in Rust. The scope of conmon-rs encompasses the scope of the c iteration of conmon, including daemonizing, holding open container standard streams, writing the exit code.

However, the goal of conmon-rs also extends past that of conmon, attempting to become a monitor for a full pod (or a group of containers). Instead of a container engine creating a conmon per container (as well as subsequent conmons per container exec), the engine will spawn a conmon-rs instance when a pod is created. That instance will listen over gRPC for new requests to create containers, and exec processes within them.

In the future, conmon-rs may:

  • Be extended to mirror the functionality for each runtime operation.
    • Thus reducing the amount of exec calls that must happen in the container engine, and reducing the amount of memory it uses.
  • Be in charge of configuring the namespaces for the pod
    • Taking over functionality that pinns has historically done.
Comments
  • Centos and epel packages fail to build on COPR

    Centos and epel packages fail to build on COPR

    Which jobs are failing?

    The recent builds fail on each main commit: https://copr.fedorainfracloud.org/coprs/rhcontainerbot/podman-next/build/4788630/

    Which tests are failing?

    Every copr build on main

    Since when has it been failing?

    I don't think they ever worked.

    Reason for failure (if possible)

    No response

    Anything else we need to know?

    No response

    cc @rphillips @lsm5

    kind/failing-test 
    opened by saschagrunert 13
  • Add support for OpenTelemetry tracing

    Add support for OpenTelemetry tracing

    We're already using the tracing crate, which has support for Open Telemetry (OTEL) as well: https://github.com/tokio-rs/tracing/tree/master/tracing-opentelemetry

    Using the crate would probably incorporate adding those, too:

    • https://docs.rs/opentelemetry
    • https://docs.rs/opentelemetry-jaeger

    Independently how we wanna use it from a configuration perspective, having OTEL support would increase the observability of the runtime stack (together with CRI-O) by gaining much more insights about what is going on in conmon-rs.

    good first issue help wanted rust kind/feature 
    opened by saschagrunert 12
  • Fix critest

    Fix critest "runtime should support attach" test

    What type of PR is this?

    /kind bug

    What this PR does / why we need it:

    The conformance CRI test does not stop the running container after checking its output. It expects that the connection gets dropped when there is no more input to read. We now adjust the current attach behavior to stop in that case, which hopefully does not break the Podman use case.

    See: https://github.com/kubernetes-sigs/cri-tools/blob/909f652/pkg/validate/streaming.go#L266-L305

    We also strip down the size of the data packets to return the right amount of received bytes in the client.

    A debug message has been changed which correctly logs the amount of written packets.

    Which issue(s) this PR fixes:

    None

    Special notes for your reviewer:

    None

    Does this PR introduce a user-facing change?

    Fixed critest "runtime should support attach" test.
    
    approved kind/bug lgtm release-note 
    opened by saschagrunert 11
  • Add OOM integration test

    Add OOM integration test

    What type of PR is this?

    /kind ci

    What this PR does / why we need it:

    I also refactored some logs to automatically trace the PID as well as sanitized them.

    Which issue(s) this PR fixes:

    None

    Special notes for your reviewer:

    The new test cases:

    ConmonClient CreateContainer
      should catch out of memory (oom) events with terminal
      /home/runner/work/conmon-rs/conmon-rs/pkg/client/client_test.go:135
    2022-05-13T09:09:27.337145Z  INFO conmon::server: 166: Received SIGINT
    2022-05-13T09:09:27.338161Z  INFO conmon::server: 120: Using stdout logger
    2022-05-13T09:09:27.338182Z  INFO conmon::server: 130: Set log level to: debug
    2022-05-13T09:09:27.339977Z DEBUG conmon::rpc: 50: Got a version request
    2022-05-13T09:09:27.340533Z DEBUG create_container{container_id="e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf" uuid="4d244a31-43be-4081-9884-765931e0b45f"}: conmon::rpc: 74: Got a create container request
    2022-05-13T09:09:27.340586Z DEBUG create_container{container_id="e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf" uuid="4d244a31-43be-4081-9884-765931e0b45f"}: conmon::terminal: 61: Creating new terminal
    2022-05-13T09:09:27.340716Z DEBUG create_container{container_id="e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf" uuid="4d244a31-43be-4081-9884-765931e0b45f"}:listen: conmon::terminal: 137: Listening terminal socket on /tmp/conmon-term-1Xxeio4.sock
    2022-05-13T09:09:27.340936Z DEBUG create_container{container_id="e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf" uuid="4d244a31-43be-4081-9884-765931e0b45f"}: conmon::rpc: 83: PID file is /tmp/conmon-client4[275](https://github.com/containers/conmon-rs/runs/6420332913?check_suite_focus=true#step:11:275)970848/pidfile
    2022-05-13T09:09:27.340954Z DEBUG create_container{container_id="e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf" uuid="4d244a31-43be-4081-9884-765931e0b45f"}: conmon::server: 240: Runtime args "--root=/tmp/conmon-client4275970848/root create --bundle /tmp/conmon-client4275970848 --pid-file /tmp/conmon-client4275970848/pidfile --console-socket=/tmp/conmon-term-1Xxeio4.sock e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf"
    2022-05-13T09:09:27.340973Z DEBUG create_container{container_id="e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf" uuid="4d244a31-43be-4081-9884-765931e0b45f"}:promise: conmon::cri_logger: 48: Initializing CRI logger in path /tmp/conmon-client4275970848/log
    2022-05-13T09:09:27.341425Z DEBUG create_container{container_id="e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf" uuid="4d244a31-43be-4081-9884-765931e0b45f"}:promise: conmon::terminal: 100: Waiting for terminal socket connection
    2022-05-13T09:09:27.348721Z DEBUG create_container{container_id="e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf" uuid="4d244a31-43be-4081-9884-765931e0b45f"}:listen: conmon::terminal: 151: Got terminal socket stream: PollEvented { io: Some(UnixStream { fd: FileDesc(OwnedFd { fd: 13 }), local: "/proc/self/fd/11/conmon-term-1Xxeio4.sock" (pathname), peer: (unnamed) }) }
    2022-05-13T09:09:27.375075Z DEBUG create_container{container_id="e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf" uuid="4d244a31-43be-4081-9884-765931e0b45f"}:listen: conmon::terminal: 174: Removing socket path /tmp/conmon-term-1Xxeio4.sock
    2022-05-13T09:09:27.375199Z DEBUG create_container{container_id="e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf" uuid="4d244a31-43be-4081-9884-765931e0b45f"}:listen: conmon::terminal: 177: Shutting down receiver stream
    2022-05-13T09:09:27.375214Z DEBUG create_container{container_id="e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf" uuid="4d244a31-43be-4081-9884-765931e0b45f"}:listen: conmon::terminal: 185: Received terminal file descriptor
    2022-05-13T09:09:27.375221Z DEBUG create_container{container_id="e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf" uuid="4d244a31-43be-4081-9884-765931e0b45f"}:listen: conmon::terminal: 188: Changing terminal settings
    2022-05-13T09:09:27.375260Z DEBUG create_container{container_id="e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf" uuid="4d244a31-43be-4081-9884-765931e0b45f"}:listen: conmon::terminal: 226: Shutting down listener thread
    2022-05-13T09:09:28.298365Z DEBUG create_container{container_id="e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf" uuid="4d244a31-43be-4081-9884-765931e0b45f"}:promise:watch{pid=6017}:task:oom_handling_cgroup_v1{pid=6017}: conmon::oom_watcher: 309: Using cgroup path: /proc/6017/cgroup
    2022-05-13T09:09:28.299439Z DEBUG create_container{container_id="e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf" uuid="4d244a31-43be-4081-9884-765931e0b45f"}:promise:watch{pid=6017}:task: conmon::oom_watcher: 94: Setup cgroup v1 oom handling path="/sys/fs/cgroup/memory/system.slice/runner-provisioner.service/e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf/memory.oom_control"
    2022-05-13T09:09:28.300149Z DEBUG create_container{container_id="e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf" uuid="4d244a31-43be-4081-9884-765931e0b45f"}:promise:watch{pid=6017}:task: conmon::oom_watcher: 121: Successfully setup cgroup v1 oom detection
    Waiting for OOM exit path to exist
    Waiting for OOM exit path to exist
    Waiting for OOM exit path to exist
    Waiting for OOM exit path to exist
    2022-05-13T09:09:31.669855Z DEBUG create_container{container_id="e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf" uuid="4d244a31-43be-4081-9884-765931e0b45f"}:promise:watch{pid=6017}:task: conmon::oom_watcher: 132: Got oom event
    2022-05-13T09:09:31.669896Z DEBUG create_container{container_id="e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf" uuid="4d244a31-43be-4081-9884-765931e0b45f"}:promise:watch{pid=6017}:task:write_oom_file: conmon::oom_watcher: [276](https://github.com/containers/conmon-rs/runs/6420332913?check_suite_focus=true#step:11:276): Writing OOM file: /tmp/conmon-client4275970848/oom_exit
    2022-05-13T09:09:31.670044Z DEBUG create_container{container_id="e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf" uuid="4d244a31-43be-4081-9884-765931e0b45f"}:promise:watch{pid=6017}:task: conmon::oom_watcher: 136: Successfully wrote oom files
    2022-05-13T09:09:31.670054Z DEBUG create_container{container_id="e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf" uuid="4d244a31-43be-4081-9884-765931e0b45f"}:promise:watch{pid=6017}:task: conmon::oom_watcher: 144: Done watching for ooms
    VmRSS for server is 196
    2022-05-13T09:09:32.427510Z DEBUG create_container{container_id="e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf" uuid="4d244a31-43be-4081-9884-765931e0b45f"}:promise:watch{pid=6017}:wait_for_exit_code: conmon::child_reaper: 332: Signaled
    2022-05-13T09:09:32.4[277](https://github.com/containers/conmon-rs/runs/6420332913?check_suite_focus=true#step:11:277)99Z DEBUG create_container{container_id="e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf" uuid="4d244a31-43be-4081-9884-765931e0b45f"}:listen:read_loop: conmon::container_io: 245: Stopping read loop
    2022-05-13T09:09:32.428445Z DEBUG create_container{container_id="e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf" uuid="4d244a31-43be-4081-9884-765931e0b45f"}:promise:watch{pid=6017}: conmon::child_reaper: 293: Sending exit struct to channel: ExitChannelData { exit_code: 137, oomed: true, timed_out: false }
    2022-05-13T09:09:32.428880Z DEBUG create_container{container_id="e388beccf6761109b0a3b850199f6311ca34ca3fdb671c783aafe1540d0db0cf" uuid="4d244a31-43be-4081-9884-765931e0b45f"}:promise:watch{pid=6017}: conmon::child_reaper: 297: Write to exit paths: /tmp/conmon-client4275970848/exit
    ------------------------------
    • [SLOW TEST] [5.161 seconds]
    ConmonClient
    /home/runner/work/conmon-rs/conmon-rs/pkg/client/client_test.go:20
      CreateContainer
      /home/runner/work/conmon-rs/conmon-rs/pkg/client/client_test.go:52
        should catch out of memory (oom) events with terminal
        /home/runner/work/conmon-rs/conmon-rs/pkg/client/client_test.go:135
    
    

    Does this PR introduce a user-facing change?

    None
    
    approved kind/ci lgtm 
    opened by saschagrunert 9
  • build(deps): bump tower-http from 0.3.4 to 0.3.5

    build(deps): bump tower-http from 0.3.4 to 0.3.5

    Bumps tower-http from 0.3.4 to 0.3.5.

    Release notes

    Sourced from tower-http's releases.

    v0.3.5

    Added

    • Add NormalizePath middleware (#275)
    • Add ValidateRequest middleware (#289)
    • Add RequestBodyTimeout middleware (#303)

    Changed

    • Bump Minimum Supported Rust Version to 1.60 (#299)

    Fixed

    • trace: Correctly identify gRPC requests in default on_response callback (#278)
    • cors: Panic if a wildcard (*) is passed to AllowOrigin::list. Use AllowOrigin::any() instead (#285)
    • serve_dir: Call the fallback on non-uft8 request paths (#310)

    #275: tower-rs/tower-http#275 #278: tower-rs/tower-http#278 #285: tower-rs/tower-http#285 #289: tower-rs/tower-http#289 #299: tower-rs/tower-http#299 #303: tower-rs/tower-http#303 #310: tower-rs/tower-http#310

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    approved lgtm release-note-none 
    opened by dependabot[bot] 8
  • Allow CRI-O logging to stdout

    Allow CRI-O logging to stdout

    We right now use the default logger in CRI-O, which logs to systemd. It would be good to have at least a runtime monitor configuration to also log to stdout. This allows us to collect conmon and CRI-O logs in parallel.

    Q: Do we wanna make stdout logging the default? Which benefits do we gain when logging to systemd?

    good first issue help wanted question kind/feature 
    opened by saschagrunert 8
  • Add usage/release documentation

    Add usage/release documentation

    What type of PR is this?

    /kind documentation

    What this PR does / why we need it:

    Which issue(s) this PR fixes:

    None

    Special notes for your reviewer:

    We require a new CRI-O v1.25.2 to be released including the backport for conmon-rs v0.4.0: https://github.com/cri-o/cri-o/pull/6359

    Does this PR introduce a user-facing change?

    Added usage documentation.
    
    approved kind/documentation lgtm release-note 
    opened by saschagrunert 7
  • Fedora 35 i686 build fails in copr

    Fedora 35 i686 build fails in copr

    What happened?

    The builds fails since a couple of commits with the error message:

    https://download.copr.fedorainfracloud.org/results/rhcontainerbot/podman-next/fedora-35-i386/04836395-conmon-rs/root.log.gz

    DEBUG util.py:445:  No match for argument: golang-1.18.6-1.fc35.i386
    DEBUG util.py:443:  Error: Unable to find a match: golang-1.18.6-1.fc35.i386
    

    What did you expect to happen?

    The build should work like the other ones.

    How can we reproduce it (as minimally and precisely as possible)?

    Mostly on every recent commit on https://copr.fedorainfracloud.org/coprs/rhcontainerbot/podman-next/package/conmon-rs/

    Anything else we need to know?

    No response

    conmon-rs version

    $ conmonrs --version
    # paste output here
    

    OS version

    # On Linux:
    $ cat /etc/os-release
    # paste output here
    $ uname -a
    # paste output here
    

    Additional environment details (AWS, VirtualBox, physical, etc.)

    kind/bug 
    opened by saschagrunert 7
  • Attach leaks a goroutine

    Attach leaks a goroutine

    What happened?

    We print the active goroutines after each integration test. It looks like that the util.CopyDetachable still leaves a running goroutine open:

    2022-07-20T14:16:05.7893221Z 2 @ 0x44c076 0x45d112 0x4b882e 0x4b92e5 0x654416 0x6dc739 0x47dfc1
    2022-07-20T14:16:05.7893648Z #	0x4b882d	io.(*pipe).read+0x14d										/opt/hostedtoolcache/go/1.18.4/x64/src/io/pipe.go:57
    2022-07-20T14:16:05.7894140Z #	0x4b92e4	io.(*PipeReader).Read+0x64									/opt/hostedtoolcache/go/1.18.4/x64/src/io/pipe.go:136
    2022-07-20T14:16:05.7895004Z #	0x654415	github.com/containers/common/pkg/util.CopyDetachable+0xb5					/home/runner/go/pkg/mod/github.com/containers/[email protected]/pkg/util/copy.go:16
    2022-07-20T14:16:05.7895944Z #	0x6dc738	github.com/containers/conmon-rs/pkg/client.(*ConmonClient).setupStdioChannels.func2+0xb8	/home/runner/work/conmon-rs/conmon-rs/pkg/client/attach.go:201
    

    https://github.com/containers/conmon-rs/blob/13d4828464b72d0c734643c5ce405dbb60fbb6fe/pkg/client/attach.go#L198-L204

    We should find a way to cleanup the goroutine on server shutdown as well.

    What did you expect to happen?

    No running goroutines for attach after the integration tests.

    How can we reproduce it (as minimally and precisely as possible)?

    Running the integration tests reveals the issue by printing the goroutines at the end.

    Anything else we need to know?

    No

    conmon-rs version

    $ conmonrs --version
    version: 0.1.0-dev
    tag: none
    commit: 68252d0373b8e262bdf7ff8780fb2b5ab6f66c29
    build: 2022-07-20 14:13:13 +00:00
    rustc 1.62.1 (e092d0b6b 2022-07-16)
    

    OS version

    Not relevant

    Additional environment details (AWS, VirtualBox, physical, etc.)

    No

    good first issue help wanted go kind/bug 
    opened by saschagrunert 7
  • Sanitize oom watcher logs

    Sanitize oom watcher logs

    What type of PR is this?

    /kind cleanup

    What this PR does / why we need it:

    We now apply a bunch of rules, for example:

    • Start logs upper case
    • Remove redundant information like the PID (already part of the tracing span)
    • Do not print "Error" for error logs, since the level already tells us that it's an error.

    Which issue(s) this PR fixes:

    None

    Special notes for your reviewer:

    None

    Does this PR introduce a user-facing change?

    None
    
    approved kind/cleanup 
    opened by saschagrunert 7
  • Add systemd logger

    Add systemd logger

    We disconnect the stdout/err streams from conmon at a certain point of execution. Therefore it would make more sense to log to a dedicated driver instead of those streams. We now add a --log-driver option as well as a default systemd logger.

    opened by saschagrunert 7
  • build(deps): bump shadow-rs from 0.16.1 to 0.20.0

    build(deps): bump shadow-rs from 0.16.1 to 0.20.0

    Bumps shadow-rs from 0.16.1 to 0.20.0.

    Release notes

    Sourced from shadow-rs's releases.

    Add deny const

    fix #114

    Fix nightly linter

    #125 #124 #123

    Thx @​sameo

    upgrade tzdb ,refactor code

    Thanks @​Kijewski

    Improve documentation

    #118

    ShadowError implement std::error::Error

    fix #115

    Thx @​SkyfallWasTaken contribute

    make tzdb an optional dependency

    fix #112

    Bump to tzdb 0.4.3 version

    fix Kijewski/tzdb#105

    Commits
    • c4042cf Merge pull request #126 from baoyachi/deny_const
    • 68eda42 fix #114
    • 38ef356 add deny const
    • 0ec3eaf Merge pull request #125 from baoyachi/fix_clippy_warning
    • 6b996be Merge remote-tracking branch 'origin/master' into fix_clippy_warning
    • 2411391 Merge pull request #124 from sameo/topic/lint
    • 3bcbd4a fix github action ci
    • 8a78bea shadow-rs: Fix linter on generated code
    • d605a84 fix clippy warning, format github action ci
    • ade5c2e Merge pull request #123 from sameo/topic/lint
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    release-note-none 
    opened by dependabot[bot] 2
  • build(deps): bump serde from 1.0.149 to 1.0.152

    build(deps): bump serde from 1.0.149 to 1.0.152

    Bumps serde from 1.0.149 to 1.0.152.

    Release notes

    Sourced from serde's releases.

    v1.0.152

    • Documentation improvements

    v1.0.151

    • Update serde::{ser,de}::StdError to re-export core::error::Error when serde is built with feature="std" off and feature="unstable" on (#2344)

    v1.0.150

    • Relax some trait bounds from the Serialize impl of HashMap and BTreeMap (#2334)
    • Enable Serialize and Deserialize impls of std::sync::atomic types on more platforms (#2337, thanks @​badboy)
    Commits
    • ccf9c6f Release 1.0.152
    • b25d0ea Link to Hjson data format
    • 4f4557f Link to bencode data format
    • bf400d6 Link to serde_tokenstream data format
    • 4d2e36d Wrap flexbuffers bullet point to 80 columns
    • df6310e Merge pull request #2347 from dtolnay/docsrs
    • 938ab5d Replace docs.serde.rs links with intra-rustdoc links
    • ef5a0de Point documentation links to docs.rs instead of docs.serde.rs
    • 5d186c7 Opt out -Zrustdoc-scrape-examples on docs.rs
    • 44bf363 Release 1.0.151
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    release-note-none 
    opened by dependabot[bot] 1
  • build(deps): bump capnproto.org/go/capnp/v3 from 3.0.0-alpha.9 to 3.0.0-alpha.17

    build(deps): bump capnproto.org/go/capnp/v3 from 3.0.0-alpha.9 to 3.0.0-alpha.17

    Bumps capnproto.org/go/capnp/v3 from 3.0.0-alpha.9 to 3.0.0-alpha.17.

    Commits
    • ebd690c Merge pull request #397 from zenhack/without-handleBootstrap
    • 34de47d Merge pull request #396 from zenhack/handleDisembargo-locking
    • c80375e handleBootstrap: avoid a use of syncutil.Without()
    • 182cf37 Clean up/fix locking in handleDisembargo
    • 73ff1cb Merge pull request #395 from zenhack/handleReturn-locking
    • eeb7862 Hold c.lk while calling sendMessage
    • e7ad65d Clean up locking in handleReturn
    • 6b08920 Merge pull request #393 from zenhack/releaseList-fixups
    • 0358e8f Simplify releaseList use in answer.Return and handleCall
    • 5a6941d Clean up locking & releaseList use in handleFinish
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    release-note-none 
    opened by dependabot[bot] 2
  • build(deps): bump syn from 1.0.105 to 1.0.107

    build(deps): bump syn from 1.0.105 to 1.0.107

    Bumps syn from 1.0.105 to 1.0.107.

    Release notes

    Sourced from syn's releases.

    1.0.106

    • Documentation improvements
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    release-note-none 
    opened by dependabot[bot] 1
  • build(deps): bump itoa from 1.0.4 to 1.0.5

    build(deps): bump itoa from 1.0.4 to 1.0.5

    Bumps itoa from 1.0.4 to 1.0.5.

    Release notes

    Sourced from itoa's releases.

    1.0.5

    • Documentation improvements
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    release-note-none 
    opened by dependabot[bot] 1
  • build(deps): bump link-cplusplus from 1.0.7 to 1.0.8

    build(deps): bump link-cplusplus from 1.0.7 to 1.0.8

    Bumps link-cplusplus from 1.0.7 to 1.0.8.

    Release notes

    Sourced from link-cplusplus's releases.

    1.0.8

    • Documentation improvements
    Commits
    • 87adc6b Release 1.0.8
    • 74ae54c Update build status badge
    • fe82a37 Prevent build.rs rerunning unnecessarily on all source changes
    • e123d18 Time out workflows after 45 minutes
    • c114422 Add a funding file
    • b791ea6 Remove default package.readme metadata from Cargo.toml
    • 74fc2d6 GitHub Workflows security hardening
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    release-note-none 
    opened by dependabot[bot] 2
Releases(v0.4.0)
  • v0.4.0(Nov 3, 2022)

    What's Changed

    • Send only streams data if channel is not closed by @saschagrunert in https://github.com/containers/conmon-rs/pull/734
    • Remove token from ContainerIO read_loop by @saschagrunert in https://github.com/containers/conmon-rs/pull/739
    • Read once again after stdin token cancelled by @saschagrunert in https://github.com/containers/conmon-rs/pull/746
    • Make stdin optional by @saschagrunert in https://github.com/containers/conmon-rs/pull/748
    • drop stdin for exec sync by @haircommander in https://github.com/containers/conmon-rs/pull/750
    • Re-enable critest GitHub action by @saschagrunert in https://github.com/containers/conmon-rs/pull/749
    • Add support for leaving stdin open on attach by @saschagrunert in https://github.com/containers/conmon-rs/pull/751
    • Re-enable critest GitHub action by @saschagrunert in https://github.com/containers/conmon-rs/pull/754
    • Make version verbosity an enum by @saschagrunert in https://github.com/containers/conmon-rs/pull/769
    • Use fmt writer for systemd by @saschagrunert in https://github.com/containers/conmon-rs/pull/773
    • Update clap to v3.2.22 by @saschagrunert in https://github.com/containers/conmon-rs/pull/775
    • Small fixes by @saschagrunert in https://github.com/containers/conmon-rs/pull/776
    • Add native types for server LogDriver and LogLevel by @saschagrunert in https://github.com/containers/conmon-rs/pull/777
    • Add support for OpenTelemetry tracing via OTLP by @saschagrunert in https://github.com/containers/conmon-rs/pull/785
    • Add conmon-rs process ID and host name to tracing output by @saschagrunert in https://github.com/containers/conmon-rs/pull/792
    • Move telemetry code into own module by @saschagrunert in https://github.com/containers/conmon-rs/pull/797
    • Propagate existing telemetry spans to server by @saschagrunert in https://github.com/containers/conmon-rs/pull/799
    • Shutdown tracing after runtime by @saschagrunert in https://github.com/containers/conmon-rs/pull/804
    • Manually add OTEL context to both root spans by @saschagrunert in https://github.com/containers/conmon-rs/pull/807
    • OTEL: Inject context after creating debug span by @saschagrunert in https://github.com/containers/conmon-rs/pull/816
    • Allow client traces by passing a tracer by @saschagrunert in https://github.com/containers/conmon-rs/pull/822
    • Bump to v0.4.0 by @saschagrunert in https://github.com/containers/conmon-rs/pull/868

    Full Changelog: https://github.com/containers/conmon-rs/compare/v0.3.0...v0.4.0

    Source code(tar.gz)
    Source code(zip)
    conmonrs-v0.4.0-vendor.tar.gz(38.58 MB)
    conmonrs-v0.4.0.tar.gz(195.02 KB)
Owner
Containers
Open Repository for Container Tools
Containers
A tiny minimal container runtime written in Rust.

vas-quod A tiny minimal container runtime written in Rust. The idea is to support a minimal isolated containers without using existing runtimes, vas-q

flouthoc 438 Dec 26, 2022
Easy to use, extendable, OCI-compliant container runtime written in pure Rust

PURA - Lightweight & OCI-compliant container runtime Pura is an experimental Linux container runtime written in pure and dependency-minimal Rust. The

Branimir Malesevic 73 Jan 9, 2023
A secure container runtime with OCI interface

Quark Container Welcome to Quark Container. This repository is the home of Quark Containers code. What's Quark Container Quark Container is high perfo

null 175 Dec 29, 2022
A lite tool to make systemd work in any container(Windows Subsystem for Linux 2, Docker, Podman, etc.)

Angea Naming from hydrangea(アジサイ) A lite tool to make systemd work in any container(Windows Subsystem for Linux 2, Docker, Podman, etc.) WSL1 is not s

いんしさくら 16 Dec 5, 2022
insject is a tool for poking at containers. It enables you to run an arbitrary command in a container or any mix of Linux namespaces.

Insject insject is a tool for poking at containers. It enables you to run an arbitrary command in a container or any mix of Linux namespaces. It suppo

NCC Group Plc 44 Nov 9, 2022
Hot-plug devices into a Docker container as they are plugged.

container-hotplug Hot-plug (and unplug) devices into a Docker container as they are (un)plugged. Description Docker provides the --device flag to give

lowRISC 2 Oct 17, 2022
dedock is a container runtime, with a particular focus on enabling embedded software development across all platforms

dedock is a container runtime, with a particular focus on enabling embedded software development across all platforms. It supports native "containers" on both Linux and macOS.

Daniel Mangum 12 May 27, 2023
VMM-based macOS Native Container Runtime

Akari: VMM-based macOS Native Container Runtime Akari is an experimental OCI runtime aims to run macOS native containers on macOS. This runtime works

Akira Moroo 29 Jul 15, 2024
Tool to monitor the statistics and the energy consumption of docker containers

Docker Activity Docker activity is a tool to monitor the statistics of your containers and output their energy consumption. Warning It's still in earl

Jérémie Drouet 39 Dec 6, 2022
Automated builded images for rust-lang with rustup, "the ultimate way to install RUST"

rustup Automated builded images on store and hub for rust-lang with musl added, using rustup "the ultimate way to install RUST". tag changed: all3 ->

刘冲 83 Nov 30, 2022
docker-rust — the official Rust Docker image

About this Repo This is the Git repo of the Docker official image for rust. See the Docker Hub page for the full readme on how to use this Docker imag

The Rust Programming Language 321 Dec 11, 2022
Docker images for compiling static Rust binaries using musl-libc and musl-gcc, with static versions of useful C libraries. Supports openssl and diesel crates.

rust-musl-builder: Docker container for easily building static Rust binaries Source on GitHub Changelog UPDATED: Major updates in this release which m

Eric Kidd 1.3k Jan 1, 2023
Very small rust docker image

mini-docker-rust Very small rust docker image. This is an example project on how to build very small docker images for a rust project. The resulting i

null 155 Jan 1, 2023
Docker images for compiling static Rust binaries using musl-cross

rust-musl-cross Docker images for compiling static Rust binaries using musl-cross-make, inspired by rust-musl-builder Prebuilt images Currently we hav

messense 365 Dec 30, 2022
A wasm template for Rust to publish to gh-pages without npm-deploy

Wasm template for Rust hosting without npm-deploy on github pages using Travis script It automatically hosts you wasm projects on gh-pages using a tra

Siddharth Naithani 102 Dec 24, 2022
App Engine Rust boilerplate

Rust App Engine This projects is a minimal boilerplate ro run Rust web application inside Google App Engine. To deploy it use Google Cloud Shell: ```s

Denis Kolodin 48 Apr 26, 2022
A buildpack for Rust applications on Heroku, with full support for Rustup, cargo and build caching.

Heroku buildpack for Rust This is a Heroku buildpack for Rust with support for cargo and rustup. Features include: Caching of builds between deploymen

Eric Kidd 502 Nov 7, 2022
oci-image and oci-runtime spec in rust.

oci-lib Oci-Spec for your container runtime or container registry. Oci-lib is a rust port for original oci spec written in go. Following crate contain

flouthoc 12 Mar 10, 2022
Experimental implementation of the oci-runtime in Rust

youki Experimental implementation of the oci-runtime in Rust Overview youki is an implementation of runtime-spec in Rust, referring to runc. This proj

utam0k 12 Sep 23, 2022