Repository navigation
A page to look at: serve shows its node at /, fleet serve shows the cluster from
one process, both server-rendered, refreshing without script, behind GET-only
endpoints and a strict Content-Security-Policy; the fleet view as a Nomad job, run for
real in the matrix — which found that a Consul service keeps a job off a node without
Consul from Nomad 1.3. The driver side, as before, only against a fake nvidia-smi
(GL-10, v0.6.0).
Upgrading from 0.4.0
- Every HTTP endpoint answers GET and HEAD only; anything else is now a 405.
- The job specs take
-var consul=falsefor a cluster without Consul (default on:
nothing changes where Consul runs). fleet serveanddeploy/nomad/gpuledger-fleet.nomad.hclare new; they listen on 9878.
Added
gpuledger fleet serve: polls the fleet every--intervaland serves its page (each
node linked to its own),/fleetJSON,/metricswith the cluster's totals
(gpuledger_fleet_*) and/healthz, behind the same GET-only, CSP headers; listens
on 9878 by default (GL-34).deploy/nomad/gpuledger-fleet.nomad.hcl: fleet serve as one service instance,
discovery as a variable, checksum required. The Nomad matrix runs it withnomad job runon every version, the binary of the commit served locally (GL-35).- The node's page:
serveanswers/with the GPUs, their state and since when, who
reserved and who holds each, and the findings — server-rendered HTML, light and dark,
refreshing every--intervalwithout a script (GL-33). - Safe to expose: every endpoint GET and HEAD only (405 otherwise), a
Content-Security-Policy that allows the page's own stylesheet and nothing else,
nosniff,no-referrer,X-Frame-Options: DENY,no-store; names escaped by
context, tested with a container named like a script (GL-36).
Fixed
- On a cluster without Consul, from Nomad 1.3, the system job was never placed: a Consul
serviceblock adds the constraint${attr.consul.version} >= 1.8.0. All three job
specs take-var consul=false, which leaves the registration out. Found by running
the fleet job in the Nomad matrix. - The site's navbar wrapped onto a second line and out of the header once the README
grew to seven sections. It is one line now whatever the README grows to: the sections
scroll sideways when they do not fit, with a fade only on the side that hides some,
GitHub pinned outside the scroll, and only the logo and GitHub below 900 px.