Skip to content

Improved support for cgroupfs and systemd, system workloads and nested RunCVM

Compare
Choose a tag to compare
@struanb struanb released this 21 Jan 13:42
· 23 commits to main since this release

This release brings:

  1. Improved support for cgroupfs and Systemd.
    • Previously, a RunCVM VM image would be responsible for mounting cgroupfs filesystems. This is a good model for system images like those running systemd, but for non-systemd images it is more convenient if an appropriate cgroupfs is automatically mounted, so that for example dockerd can be run immediately.
    • This release introduces automatic detection of the most suitable default cgroupfs behaviour for the image, and an environment variable RUNCVM_CGROUPFS which allows that default to be overridden.
  2. More tolerant 'docker exec' during container+VM startup
    • Rather than fail immediately on absence of dropbear sshd key or network parameters, docker exec now retries checking for these up to 30x every 0.5s, providing better results when RunCVM is used as a Dockside runtime
    • In the event these prerequisites are not found immediately, an extra 2s delay is allowed before making the ssh connection to the VM, to allow time for the dropbear sshd to launch
  3. /.dockerenv renamed on VM startup so that systemd-detect-virt does not return docker, allowing systemd to run units normally prevented from running in a container environment
  4. New 'System workload' examples demonstrate running:
    1. Ubuntu running Systemd and Docker with the Sysbox runtime
    2. Ubuntu running Systemd and Docker with RunCVM runtime installed - running RunCVM in RunCVM, a nested RunCVM demo
    3. OpenWrt
  5. Document the process for testing RunCVM installation and/execution using nested RunCVM

Short log

2e9d7e6 Document process for testing RunCVM within a RunCVM VM
8ceee8f Improve readability of system workload examples, link to Asciinema replays
42c60ba Improve 'Quick start' documentation clarity
9edb8b2 Update README.md with Asciinema cast
c1546b2 Bugfix: make 'docker exec' more tolerant during container+VM startup
a729618 Add README examples for two system loads
cf4c3a6 Make 'docker exec' more tolerant during container+VM startup
946feab Suppress unneeded logging when mounting fstab filesystems (incl. any RUNCVM_DISKS)
eb7b7a8 Enable systemd startup logging by default (on systemd-enabled systems)
29eb732 Suppress unneeded mke2fs logging
a046735 Rename /.dockerenv, improving systemd support
6377890 Add '--no-dockerd' option to installer to allow installation where dockerd is not present, e.g. via 'docker build'
99f0e91 cgroupfs v1 and v2 support for better integration with Docker and Systemd
a3477f0 Correctly add not just files but any subdirectories
6cb1e19 Support OpenWRT
53a334f Update README.md to explain RunCVM/Kata motivations

Full Changelog: v1.2.0...v1.3.0