diff --git a/.github/buildomat/jobs/deploy.sh b/.github/buildomat/jobs/deploy.sh
index 6574ac839c6..30df2b6fb9a 100755
--- a/.github/buildomat/jobs/deploy.sh
+++ b/.github/buildomat/jobs/deploy.sh
@@ -291,6 +291,12 @@ pfexec chmod +x /usr/oxide/oxide
curl -sSfL -o debian-11-genericcloud-amd64.raw \
http://catacomb.eng.oxide.computer:12346/debian-11-genericcloud-amd64.raw
+#
+# Create the "omicron" project that sled-agent will inhabit.
+#
+projects -l omicron >/dev/null 2>&1 || \
+ pfexec projadd -c 'The Oxide Control Plane' omicron
+
#
# The lab-netdev target is a ramdisk system that is always cleared
# out between runs, so it has not had any state yet that requires
diff --git a/smf/sled-agent/manifest.xml b/smf/sled-agent/manifest.xml
index 5732aedd752..179341c6724 100644
--- a/smf/sled-agent/manifest.xml
+++ b/smf/sled-agent/manifest.xml
@@ -37,7 +37,7 @@
-
+
diff --git a/tools/install_runner_prerequisites.sh b/tools/install_runner_prerequisites.sh
index 2b86c4c5f4f..9a93b095e5f 100755
--- a/tools/install_runner_prerequisites.sh
+++ b/tools/install_runner_prerequisites.sh
@@ -155,6 +155,10 @@ if [[ "${HOST_OS}" == "SunOS" ]]; then
#
# create_virtual_hardware.sh will use those to setup the softnpu zone
retry ./tools/ci_download_softnpu_machinery
+
+ # Create the omicron project
+ projects -l omicron >/dev/null 2>&1 || \
+ pfexec projadd -c 'The Oxide Control Plane' omicron
fi
echo "All runner prerequisites installed successfully"