Run VM disk images using Podman / Docker / Kubernetes.
Go to file
Alberto Faria dc4616c19d create: Auto-detect image architecture
When combined with --emulated, this enables running VMs with an
architecture different from the host's.

Closes #62.

Signed-off-by: Alberto Faria <afaria@redhat.com>
2024-05-08 22:45:50 +01:00
.fmf Reinstate testing farm tests 2024-04-28 16:56:11 +01:00
.github/workflows Move lint.sh under tests/ 2024-04-23 11:46:10 +01:00
docs create: Auto-detect image architecture 2024-05-08 22:45:50 +01:00
embed Add --bootc-disk-size option 2024-05-08 22:26:08 +01:00
examples Switch to Fedora 40 everywhere 2024-04-25 01:10:54 +01:00
plans Add support for running bootc bootable containers 2024-05-08 22:04:09 +01:00
src create: Auto-detect image architecture 2024-05-08 22:45:50 +01:00
tests tests/env.sh: Expose TEST_ID variable to tests 2024-05-08 22:26:09 +01:00
util util/extract-vm-image.sh: Clarify "Extracting ..." message 2024-04-23 11:31:31 +01:00
.editorconfig .editorconfig: Use 2-space indentation for XML files 2023-12-11 12:52:08 +00:00
.gitignore maint: Ignore more build artifacts 2024-01-26 09:20:34 -06:00
.packit.yaml Disable COPR builds for now 2024-05-08 21:15:35 +01:00
Cargo.lock Release 0.2.0 2024-04-28 16:57:51 +01:00
Cargo.toml Release 0.2.0 2024-04-28 16:57:51 +01:00
LICENSE Relicense as GPLv2 or later 2023-12-15 16:35:35 +00:00
Makefile Simplify Makefile 2024-04-23 11:46:10 +01:00
README.md Drop options --vfio-pci and --vfio-pci-mdev 2024-03-21 18:38:58 +00:00
build.rs Link against libselinux 2023-12-22 01:10:36 +00:00

README.md

The crun-vm OCI Runtime

crun-vm is an OCI Runtime that enables Podman, Docker, and Kubernetes to run QEMU-compatible Virtual Machine (VM) images.

  • Run VMs as easily as you run containers.
  • Manage containers and VMs together using the same standard tooling.
  • No need for in-depth knowledge on virtualization technologies like libvirt or KubeVirt.

Major features

  • Use it with Podman, Docker, or Kubernetes.
  • Launch VMs from VM image files present on the host or packaged into container images.
  • Control VM CPU and memory allocation.
  • Provide cloud-init and Ignition configurations to VMs.
  • Mount directories into VMs.
  • Pass block devices through to VMs.
  • Expose qcow2 files and other disk images to VMs as block devices.
  • Forward ports from the host to VMs.
  • podman exec/docker exec/kubectl exec into VMs.

Documentation

  1. Installing crun-vm
  2. Using crun-vm as a Podman or Docker runtime
  3. Using crun-vm as a Kubernetes runtime

[!TIP] See also how you can combine crun-vm and Podman Quadlet to easily manage both containers and VMs through systemd.

License

This project is released under the GPL 2.0 (or later) license. See LICENSE.