Below, desk has the store directory and runs the controller. Runners and clients on other computers need no access key.
Serve the directory
desk$corbie init --store ~/corbie --ceiling all
desk$corbie init store
desk$corbie start
storesets up the store's server: other computers connect to corbie://desk:8372, with desk this computer's host name
--listen addrafter store, where it listens: 192.168.1.10:8372, and other computers are given that address
One computer has the systemd unit and the backup.
Add a runner on another computer
gpu$corbie runner card | ssh desk corbie controller enrol - --tags gpu | corbie runner trust - --ceiling exec
gpu$corbie start runner
desk$corbie check --tag gpu
corbie runner cardprints the runner's card: its name, gpu-runner after its host, and its public keys
corbie controller enrolon desk, trusts the card, gives the runner the tag gpu, and prints the controller's card and the store's address
corbie runner trustsaves both; --ceiling exec is the most this controller's jobs may be allowed on gpu
Each command prints the fingerprint of every card it reads, for two people to compare. corbie start runner must stay running. desk notifies it of each new job, so it does not poll.
Add a client on another computer
laptop$ corbie client card | ssh desk corbie controller enrol - --ceiling network | corbie client trust -
--ceiling network is the most any run this client starts may be allowed. corbie run submit and corbie run show then work on laptop.
What crosses the network
Every connection uses TLS 1.3, and each end proves it has its private key. Nothing on the network can read, change, replay or forge a request, so no VPN is needed. Requests can be delayed or blocked, and anyone who can connect can keep the port busy, so do not open it to the internet.
A runner or client removed with corbie controller remove is refused from its next request. The computers' clocks must agree within five minutes.
When the first computer is off
desk is offevery run waits; no other computer takes over
its process is restartedsafe during jobs: the other computers retry for about ten seconds
it is off for longera finished job cannot write its result, and times out
The store has no second copy. For a store that stays available, copy the directory as it is into an S3 bucket (Bucket).
A network share cannot replace a served directory: it does not reliably provide the file locks and hard links that a directory store needs.