Integrate zosstorage build path and runtime orchestration

Summary:

* add openssh-client to the builder image and mount host SSH keys into the dev container when available

* switch RFS to git builds, register the zosstorage source, and document the extra Rust component

* wire zosstorage into the build: add build_zosstorage(), ship the binary in the initramfs, and extend component validation

* refresh kernel configuration to 6.12.49 while dropping Xen guest selections and enabling counted-by support

* tighten runtime configs: use cached mycelium key path, add zosstorage zinit unit, bootstrap ovsdb-server, and enable openvswitch module

* adjust the network health check ping invocation and fix the RFS pack-tree --debug flag order

* update NOTES changelog, README component list, and introduce a runit helper for qemu/cloud-hypervisor testing

* add ovsdb init script wiring under config/zinit/init and ensure zosstorage is available before mycelium
This commit is contained in:
2025-10-14 17:47:13 +02:00
parent cf05e0ca5b
commit 334821dacf
16 changed files with 441 additions and 95 deletions

View File

@@ -9,6 +9,7 @@ PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
# Container configuration
CONTAINER_NAME="zero-os-dev"
BUILDER_IMAGE="zero-os-builder:latest"
HOST_SSH_DIR="${SSH_MOUNT_DIR:-${HOME}/.ssh}"
# Default to verbose, streaming logs for dev flows unless explicitly disabled
export DEBUG="${DEBUG:-1}"
@@ -88,18 +89,32 @@ function dev_container_start() {
log_info "Creating new development container: ${CONTAINER_NAME}"
# Create persistent container with all necessary mounts and environment
safe_execute podman run -d \
--name "$CONTAINER_NAME" \
--privileged \
-v "${PROJECT_ROOT}:/workspace" \
-w /workspace \
-e DEBUG=1 \
-e ALPINE_VERSION=3.22 \
-e KERNEL_VERSION=6.12.44 \
-e RUST_TARGET=x86_64-unknown-linux-musl \
-e OPTIMIZATION_LEVEL=max \
"$BUILDER_IMAGE" \
local podman_args=(
run -d
--name "$CONTAINER_NAME"
--privileged
-v "${PROJECT_ROOT}:/workspace"
-w /workspace
-e DEBUG=1
-e ALPINE_VERSION=3.22
-e KERNEL_VERSION=6.12.44
-e RUST_TARGET=x86_64-unknown-linux-musl
-e OPTIMIZATION_LEVEL=max
)
if [[ -d "$HOST_SSH_DIR" ]]; then
log_info "Mounting SSH directory: ${HOST_SSH_DIR} -> /root/.ssh (read-only)"
podman_args+=(-v "${HOST_SSH_DIR}:/root/.ssh:ro")
else
log_warn "SSH directory not found at ${HOST_SSH_DIR}; skipping SSH mount"
fi
podman_args+=(
"$BUILDER_IMAGE"
sleep infinity
)
safe_execute podman "${podman_args[@]}"
log_info "Development container started successfully"
log_info "Container name: ${CONTAINER_NAME}"