Propolis VMM userspace for use with illumos bhyve.
Given the current tight coupling of the bhyve-api
component to the ioctl
interface presented by the bhyve kernel component, running on recent illumos
bits is required.
Propolis works best (and its CI tests run) on AMD hosts, but it can also be used to run VMs on Intel hosts. Live migration is primarily supported on AMD hosts but may work on Intel hosts as well.
Programs:
propolis-server
API callsLibraries:
propolis-server
APIpropolis-server
and
propolis-standalone
are built around this.These are not meant as committed public interfaces, but rather internal implementation details, consumed by Propolis components.
dladm
queriespropolis-server
config filepropolis-server
) types, intergral
to the propolis
libraryPropolis uses the cargo xtask
pattern in order to conveniently expose certain
tasks to developers.
clippy
: Run suite of clippy checks. This performs more than a simple
cargo clippy
, since there are several combinations of feature flags which
must be checked.fmt
: Check style according to rustfmt
license
: Check (crudely) that files bear appropriate license headersphd
: Run the PHD test suitestyle
: Perform miscellaneous style checksprepush
: Preform pre-push checks (clippy
, fmt
, license
, style
) in a
manner which resembles (but does not exactly match) how they are run in CI.
Running tests (unit, integration, or phd) are not included and are left to
the user.It is recommended that developers run the prepush
test before pushing a
branch which will be subsequently checked by CI. Doing so currently requires
an x86_64 UNIX/Linux machine.
Unless otherwise noted, all components are licensed under the Mozilla Public License Version 2.0.