Files
soleprint/rig/standalone/README.md
2026-09-16 13:52:04 -03:00

3.2 KiB

standalone — single files for a machine the full rig is not going to

Each script here does one of rig's jobs without the rest of the tree. Copy one file onto a machine, run it, read the output. Nothing to clone, nothing to install first.

file does full-rig equivalent
rigdeps.sh installs kind, kubectl, tilt, ctlptl, jq and docker compose at rig's pins, checksum-verified, no sudo make deps (ctrl/deps.sh)
rigmini.sh reports how much memory the machine advertises and what caps it; push measures what it will actually survive make mem, and the memory section of make check

These are transitional. Where the full rig is installed, use its own targets instead; they read ctrl/versions.env and the profile, which these cannot.

Why single files

rigdeps.sh carries its pins inline, because ctrl/versions.env is not on the machine it is for. That makes two copies of the same versions and checksums. make pins compares them and fails on any difference — ctrl/versions.env is the source of truth.

rigmini.sh exists because on a container or managed workspace /proc/meminfo reports the host's memory while a cgroup cap kills processes at a fraction of it. status reads the caps; push allocates until something stops it.

Use

These two files are the whole setup. No folder to create, no PATH to edit by hand, nothing else to download first. The toolchain goes into ~/.local/bin, which Ubuntu already puts on PATH at login once the directory exists — so a new shell after install is all it takes. If it is not on PATH, install says so and prints the one line to add.

bash rigdeps.sh detect          # report, change nothing
bash rigdeps.sh install dev     # install into ~/.local/bin
bash rigmini.sh status          # advertised memory and caps; safe
bash rigmini.sh push            # allocates until it stops — not on a machine you need

The Makefile beside them is optional shorthand for exactly those calls — copy it along or don't; the scripts do not need it:

make deps                       # = rigdeps.sh detect   (reports; installing is `make deps install`)
make mem                        # = rigmini.sh status

If you wrap these scripts in a Makefile of your own, copy the calls from that file rather than guessing them. rigmini.sh measures memory; it has no on or off, and toggling a heavy service off for a smaller footprint is a job for the project's own manifests, not for this script. make selftest in the full rig fails if this Makefile ever calls a verb its script does not accept.

If an earlier setup already put these tools in some other directory on PATH, remove that directory and the line that added it — do not rely on install to notice. It only reports shadowing once ~/.local/bin is itself on PATH, which on a fresh machine it is not until the next login. After a new shell, check which copy wins:

command -v kind kubectl tilt     # each should be ~/.local/bin/...

One toolchain, in the one place everyone else will also look.

rigmini.sh push deliberately consumes memory. Run status first, and only run push somewhere it is acceptable for other processes to be squeezed.