passt and pesto; install over iris-ci put; guest agent check #7

Merged
steigr merged 1 commit from feature/passt-iris-ci-install into main 2026-11-02 20:35:24 +00:00
Owner

passt + pesto built from tag 2026_10_02.cba3570 (PASST_REF build arg; Debian's passt predates pesto). With IRIS_PASST=1 the entrypoint runs passt (restarted on exit) on /run/iris/passt.sock for iris's [network] mode = "stream", forwarding 127.0.0.1:$IRIS_SSH_PORT to guest port 22. pesto /run/iris/passt-control.sock changes forwards at run time. passt starts as root and drops to nobody, so the iris container needs SETUID/SETGID added.

Install over iris-ci put: irix-install-packages, irix-ssh-setup and the new irix-start-agent deliver files with iris-ci put (scratch volume), with no guest network or NFS. IRIS_INSTALL_VIA=auto|put|share, share as fallback. Needs [scsi.N] scratch = true, size_mb = 64.

Guest agent: irix-start-agent loads vioser and restarts the agent (no reboot needed; corrects the README). irix-check-agent does guest-sync-delimited, guest-ping and guest-info through the agent's virtio-serial Unix socket (IRIS_AGENT_SOCKET); exit 2 when no socket is configured.

irix-provision runs every step and exits 1 if any failed. The image gains netcat-openbsd.

Tested: the passt stage builds and docker buildx build --check is clean; the scripts ran end to end in a container with stub iris/iris-ci, real passt/pesto and a mock agent. Not tested: the full image build, iris-ci put on a real scratch volume, a real IRIX guest, the real agent protocol (written from its README), passt with snapshot restore. ssh still fails on the guest because openssh_modern cannot load private keys.

🤖 Generated with Claude Code

**passt + pesto** built from tag `2026_10_02.cba3570` (`PASST_REF` build arg; Debian's passt predates pesto). With `IRIS_PASST=1` the entrypoint runs passt (restarted on exit) on `/run/iris/passt.sock` for iris's `[network] mode = "stream"`, forwarding `127.0.0.1:$IRIS_SSH_PORT` to guest port 22. `pesto /run/iris/passt-control.sock` changes forwards at run time. passt starts as root and drops to nobody, so the iris container needs `SETUID`/`SETGID` added. **Install over `iris-ci put`**: `irix-install-packages`, `irix-ssh-setup` and the new `irix-start-agent` deliver files with `iris-ci put` (scratch volume), with no guest network or NFS. `IRIS_INSTALL_VIA=auto|put|share`, share as fallback. Needs `[scsi.N] scratch = true`, `size_mb = 64`. **Guest agent**: `irix-start-agent` loads vioser and restarts the agent (no reboot needed; corrects the README). `irix-check-agent` does guest-sync-delimited, guest-ping and guest-info through the agent's virtio-serial Unix socket (`IRIS_AGENT_SOCKET`); exit 2 when no socket is configured. `irix-provision` runs every step and exits 1 if any failed. The image gains `netcat-openbsd`. Tested: the passt stage builds and `docker buildx build --check` is clean; the scripts ran end to end in a container with stub iris/iris-ci, real passt/pesto and a mock agent. Not tested: the full image build, `iris-ci put` on a real scratch volume, a real IRIX guest, the real agent protocol (written from its README), passt with snapshot restore. ssh still fails on the guest because openssh_modern cannot load private keys. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Add passt and pesto; install the guest packages over iris-ci put; check the guest agent
All checks were successful
iris container image / image (push) Successful in 1m2s
fb3db41b3e
passt and pesto are built from the tagged source (Debian's passt predates
pesto). IRIS_PASST=1 makes the entrypoint run passt on /run/iris/passt.sock for
[network] mode = "stream", forwarding the ssh port; pesto changes forwards at
run time.

Packages reach the guest through iris-ci put (the scratch volume), so they
install without guest networking or NFS; the NFS share stays as a fallback
(IRIS_INSTALL_VIA). irix-start-agent loads vioser and restarts the agent
without a reboot; irix-check-agent syncs, pings and reads guest-info through
the agent's virtio-serial socket. irix-provision runs every step and reports
the failures. netcat-openbsd joins the image for the check.

Tested with stub iris/iris-ci, real passt/pesto and a mock agent; not with a
full image build or a real IRIX guest.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
steigr merged commit fb3db41b3e into main 2026-11-02 20:35:24 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
irix/iris-container!7
No description provided.