amduat-api/ops/asl-systemrescue-overlay-1.md

135 lines
2.6 KiB
Markdown
Raw Permalink Normal View History

2026-01-17 09:21:47 +01:00
# ASL/SYSTEMRESCUE-OVERLAY/1 - Intake Overlay Layout
Status: Draft
Owner: Architecture
Version: 0.1.0
SoT: No
Last Updated: 2026-01-17
Tags: [ops, rescue, overlay]
**Document ID:** `ASL/SYSTEMRESCUE-OVERLAY/1`
**Layer:** O3 - Rescue overlay profile
**Depends on (normative):**
* `ASL/HOST/1`
**Informative references:**
* `ASL/RESCUE-NODE/1`
---
## 0. Conventions
The key words **MUST**, **MUST NOT**, **REQUIRED**, **SHOULD**, and **MAY** are to be
interpreted as in RFC 2119.
---
## 1. Purpose and Scope
This overlay defines what exists at boot for a rescue intake environment. It
separates immutable tools from mutable runtime state and defines mount points
for local or remote ASL stores.
---
## 2. Overlay Layout
```
overlay/
├── usr/
│ └── local/
│ ├── bin/
│ │ ├── asl-intake
│ │ ├── asl-admin
│ │ └── asl-debug
│ └── lib/
│ └── libasl.so
├── etc/
│ └── asl/
│ ├── asl.conf
│ ├── federation.conf
│ └── logging.conf
├── etc/systemd/system/
│ ├── asl-intake.service
│ └── asl-preflight.service
├── var/
│ └── lib/
│ └── asl/
│ ├── runtime/
│ ├── cache/
│ └── locks/
├── run/
│ └── asl/
│ └── sockets/
└── mnt/
└── asl/
├── local/
└── remote/
```
---
## 3. Directory Semantics
* `/usr/local/bin` is immutable and MUST NOT be written at runtime.
* `/etc/asl` contains declarative configuration only.
* `/var/lib/asl` contains all mutable state for the rescue session.
* `/mnt/asl/local` is the mount target for a local ASL store.
* `/mnt/asl/remote` is an optional remote mount.
---
## 4. Local Store Layout (Informative)
When mounted, a local store typically exposes:
```
/mnt/asl/local/
├── blocks/
├── segments/
├── snapshots/
└── logs/
```
This internal layout is backend-defined and not mandated by this overlay.
---
## 5. Services
### 5.1 asl-preflight.service
Responsibilities:
* Detect storage backends
* Detect importable pools
* Write mode decisions to `/run/asl/mode`
### 5.2 asl-intake.service
Responsibilities:
* Read `/run/asl/mode`
* Start `asl-intake` with the selected backend
---
## 6. Configuration Defaults
`/etc/asl/asl.conf` SHOULD include at minimum:
```
mode = auto
local.mount = /mnt/asl/local
remote.endpoint = none
```
---
## 7. Versioning
Backward-incompatible overlay changes MUST bump the major version.