For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt, and this page is available as Markdown at /reference/docs/decisions/0036-icarus-runtime-laboratory.md.

0036 โ€” Isolated Icarus runtime laboratory

Status: Superseded by DD-0055 and the Icarus-hpc laboratory. Historical only; its implementation was removed from the repository. Date: 5 October 2026. Its exchange policy is superseded by the 26 October 2026 amendment to 0035; the description below records the original experiment.

The user authorised implementation and deployment of the proposed local AAI and Slurm proof on their Debian development VM. This decision governs the laboratory under dx/metallo/icarus-runtime; it assigns no production context authority.

Run/Attempt ownership and durable Site commands are exercised through an immutable revision of the external Metallo reference slice. A reproducible overlay adds canonical initiating-member identity, TLS, member consent, ephemeral credentials, Slurm execution, scratch handover and typed member projections. Production services cannot import laboratory code. Their context and route registries remain empty.

The reference retains its shared execution database across its experimental Workload, Execution and Site packages. This is inherited experimental scope, not permission for production contexts to share database authority. Member consent uses a separate private database. Runtime database roles cannot create schemas; migrations and provider topology creation run as explicit administration jobs.

A Metallo dev-box VM hosts the control-plane workloads, in the separate icarus-lab namespace with its own PostgreSQL, and native Slurm daemons. The dev-box role owns K3s. Identity comes from the local AAI of decision 0035; only the processes that call it are admitted across the namespace boundary. An ordinary pharos-runtime account opens TLS Site connections and submits member JWTs to loopback slurmrestd. It receives no offline token, provider administrator credential, SSH execution key, sudo rule or Kubernetes administration credential. Test Unix accounts are entries under ou=pharos in a host OpenLDAP directory, resolved through SSSD. Only pharos-agent may write that subtree, without passwords; ACLs, slapo-unique and slapo-constraint bound what it writes, and no directory administrator password exists. Project associations remain administration fixtures.

The local Keycloak extension emits site_username only for the Icarus exchange. The broker explicitly translates an allow-listed resource URI to stock Keycloak's audience parameter. Exact staging RFC 8707 behaviour needs separate qualification. Slurm signature/expiry validation is complemented by runtime issuer, audience and identity admission; native audience/issuer enforcement is not assumed.

The browser uses NextAuth authorisation-code/PKCE login and server-selected Centrifugo Protobuf subscriptions. Tokens are delivered separately from durable commands. Submission intents recover native bindings conservatively; an uncertain submission is never blindly repeated. Results are explicitly exported by the member through scratch ACLs. A bare test job precedes external Git/Harbor/S3 and Apptainer integration, which require their own configured resources and evidence.

Exposure

The laboratory is not part of the platform's deployment: make deploy installs no HPC, and the platform's catalogue, chart, Argo bootstrap and edge name no laboratory (decision 0038, Laboratory routes). make metallo-icarus, run after make deploy, brings the laboratory's own routes in dx/metallo/icarus-runtime/routes.yaml:

HostPathsAccessCaller
icarus.pharos/ web, /connection/websocket Centrifugopublicthe member's browser
icarus-site.pharos/ Site gRPC, /site/ credential and export endpointsmanagementthe Site Runtime on the VM

The Site Runtime reaches the control plane through that one host, as an HPC site would reach the platform's Site API. pharos keeps the AAI and its issuer. The platform's separate site.pharos catalogue host now serves only its native Site API prefixes; the laboratory retains icarus-site.pharos. The laboratory deploys the Runtime's endpoints itself; the platform edge restarts no laboratory process.

Scope

Promotion into product services requires explicit owner registration and a new accepted decision addressing the reference's tenancy/database constraints. The laboratory proves the local runtime flow; it does not qualify production Icarus, Daedalus SSH, Waldur provisioning through the Site Agent or offline networking between compute hosts.

Page source

Source snapshot ยท Revision f928834c8.