Air-gapped Zeus OS / v9s install
For environments without outbound internet from the cluster.
Prerequisites
- Build the container image on a connected bastion, save with
podman save/docker save - Transfer image tarball + Helm chart +
ui/distbundle to the air-gap zone - Import image into cluster containerd (
ctr images importon k3s)
Configure engines offline
Set explicit URLs — auto-discovery will not reach node IPs outside the enclave:
config:
transivaUrl: "https://engines.internal:5080"
hyper2kvmUrl: "https://engines.internal:5070"
guestkitUrl: "https://engines.internal:5092"
packetwolfHost: "packetwolf.internal"
packetwolfTls: true
Deploy
./scripts/deploy-remote.sh AIRGAP_HOST admin --k3s --skip-cluster-prereqs
Skip --ui-pages-e2e if Playwright cannot run from your workstation.
Verification
kubectl get pods -n zeus-os
curl -k https://AIRGAP_HOST:30050/api/v1/health
python3 scripts/e2e-remediation-audit.py https://AIRGAP_HOST:30050
PacketWolf and migration engines are optional — v9s day-2 centers degrade gracefully when engines are unreachable.