project-nomad/install/tests
Ken Eucker 40ee026938 feat(install): add offline artifact installation mode
A normal install needs the internet: the installer fetches Docker from
get.docker.com, host packages from APT, container images from registries,
and its own helper scripts from GitHub. That leaves no way to provision a
machine that has no connectivity, or to rebuild one after connectivity is
gone.

Artifact mode closes that bootstrap gap without adding a second installer.
install_nomad.sh gains --artifacts <dir> (and NOMAD_ARTIFACT_PATH); with no
such argument it behaves exactly as before. When a bundle is selected every
dependency comes from that bundle and the installer is fail-closed: it
never falls back to the network, and a missing input is an error.

build_offline_bundle.sh prepares a bundle on a connected machine from a
source checkout, resolving the package closure and discovering images from
management_compose.yaml rather than hardcoding them, so the bundle tracks
the compose file. build_offline_bundle_docker.sh wraps it so the build only
needs Docker on the host. verify_offline_bundle.sh inspects a bundle before
transfer; capture_installed_images.sh exports images from a populated host.

APT is isolated to a bundle-local file: repository so package installation
cannot resolve through a configured remote, image archives are loaded from
disk, and Compose starts with pulls disabled via a generated override that
leaves the canonical management compose file untouched.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 14:17:03 -07:00
..
offline_artifact_tests.sh feat(install): add offline artifact installation mode 2026-08-14 14:17:03 -07:00