Public release release-b215a8f6e506

Source commit: b215a8f6e506fafa38755d1c14e89e5a52c82f9f

Public tree identity: sha256:23ba19e9f6e902cbfb4ed34cd7f9e1aaa39945e9b61946b879d7254b3f033502
This commit is contained in:
Clusterflux release 2026-07-19 14:57:40 +02:00
commit f8bf4e94cc
221 changed files with 81096 additions and 0 deletions

34
docs/environments.md Normal file
View file

@ -0,0 +1,34 @@
# Environments
Declare environments in the bundle under:
~~~text
envs/<name>/Containerfile
envs/<name>/Dockerfile
~~~
Reference one by logical name:
~~~rust
use clusterflux::env;
let linux = env!("linux");
~~~
Bundle inspection reports every discovered environment and its digest:
~~~bash
clusterflux bundle inspect --project .
~~~
The bundle definition is authoritative for every spawn. The coordinator passes
the declared environment identity and digest in the TaskSpec, and the node
resolves that exact definition. A same-named local recipe with different bytes
is rejected rather than substituted.
On Linux, container-backed environments use rootless Podman. Clusterflux does
not enable privileged containers by default.
A task may use a bind-mounted local checkout for speed. That source path is
non-hermetic. Choose a source snapshot when you need a reproducible input
identity independent of the current working tree.