This directory is home to a number of tools related to Omicron development.
There are some additional developer tools implemented as xtasks: Run
cargo xtask -h from the root of the repository for details.
Top-Level Directories
There are several top-level directories, including:
dtrace/: a collection of dtrace scriptsinclude/: scripts used by other scriptspopulate/: scripts to populate a running Omicron with useful guest imagesreflector/: related tooxide-reflector-botscrimlet/: related to the setup ofsoftnpu
Miscellaneous Scripts
There are a fair number of scripts in the root directory, but many of them are related to (or literally dependent on) each other.
Dependency Management
One class of scripts is related to downloading miscellaneous dependencies. These dependencies are not Rust dependencies, but instead various binaries depended upon by Omicron.
Some of these dependencies are services we are using in the control plane but didn’t write ourselves (e.g., cockroachdb, clickhouse), and some are software we wrote internally and fetch as artifacts from buildomat (e.g., dendrite, maghemite, console).
There are many scripts here related to each other, but they share some common naming. At a high-level:
\*\_checksumscontain known checksums against whichcargo xtask downloadwill verify a dependency when it is downloaded.\*\_versionfiles (such asconsole_version) specify a version that is used by thecargo xtask downloadscripts.scripts of the form
install_*.share intended to install specific dependencies (or collections of dependencies) onto a development machine of some kind, for running or deploying Omicron. A current example isinstall_prerequisites.shand the associatedinstall_{builder,runner}_prerequisites.shpair. See Running Omicron for details.
"Virtual Hardware" Management
Another class of scripts is related to the setup and teardown of "virtual
hardware", which can be useful when deploying omicron with a real sled agent.
Current examples includes the cargo xtask virtual-hardware task.
See Running Omicron for details.