AutonomyOps ADK — Tutorial Pack¶
Story: Seed once, update everywhere. A node receives a signed, policy-verified update in an airgapped environment. It propagates that update to peers via deterministic outbound relay, survives a full OS replacement, reconstructs its mission runtime state from persistent storage, and continues policy-governed operation — without ever needing a network connection to a central authority.
What You Will Learn¶
Tutorial |
Capability |
|---|---|
Build a policy bundle, attach it to an OCI artifact, sign the supply chain, load it into the autonomy runtime, and observe policy enforcement at the tool boundary. |
|
Publish a desired-state release to the control plane; watch multiple nodes poll, detect the candidate, and emit verifiable lifecycle telemetry. |
|
Kill the runtime mid-operation; restart it; demonstrate that the Write-Ahead Log survives and drains in priority order with no event loss. |
|
Simulate a kernel/OS update via the edge daemon’s precheck flow; force a fingerprint mismatch; observe |
|
Current build targets, CGO status, container images, and a roadmap for RISC-V support. |
Prerequisites¶
Requirement |
Version |
Notes |
|---|---|---|
Docker + Compose Plugin |
24+ / 2.20+ |
|
Go |
1.23+ |
|
cosign |
2.x |
|
uv (Python) |
0.4+ |
|
curl |
any |
HTTP demo calls |
jq |
any |
JSON parsing in examples |
Linux x86-64 |
kernel 5.15+ |
All demos tested on Ubuntu 22.04 LTS |
Repository root:
export REPO=/home/ubuntu/vsc_workstation/autonomyops # adjust to your checkout
cd $REPO
Build the CLI once (used in every tutorial):
make build
export PATH=$REPO/bin:$PATH
autonomy --help # verify it's on PATH
Quickstart Path (Recommended Order)¶
Tutorial 01 → Tutorial 02 → Tutorial 03 → Tutorial 04
(supply chain) (fleet update) (crash recovery) (OS survival)
Tutorial 05 (portability) is standalone and can be read at any time.
For a 15-minute “show me it works” run:
make build
make demo-up # start the full Docker Compose stack
make demo-run # Tutorial 01 end-to-end (requires cosign)
# or:
make demo-run-unsigned # Tutorial 01 without cosign requirement
make demo-offline-drain # Tutorial 03 offline + drain
make demo-down
Evidence Map¶
Every major product claim is backed by a code path, test, or script:
Claim |
Evidence |
|---|---|
Activation is atomic |
|
Policy deny cannot be overridden |
|
Fail-closed: no policy → deny all |
|
WAL survives collector outage |
|
WAL is fail-hard on corruption |
|
OS fingerprint is BLAKE3-deterministic |
|
Kernel-only change triggers reconstruction |
|
Reconstruction is TOCTOU-safe |
|
Relay uses atomic file writes |
|
Relay bounded retry / dead-letter |
|
Supply-chain tamper detected |
Drill 4, |
Release polling emits lifecycle events |
Phases |
Glossary¶
Term |
Definition |
|---|---|
Segment |
Atomic unit of content in the edge relay. Identified by a content-addressed |
Activation Lock ( |
A signed, content-addressed JSON artifact binding an agent image, policy bundle, and behavioral fingerprint. Hash algorithm: BLAKE3. Stored as an OCI sidecar referrer. |
Behavioral Fingerprint |
BLAKE3 hash of the canonical (alphabetically sorted) JSON representation of the lock. CI gate: |
Policy Bundle |
A |
WAL (Write-Ahead Log) |
Length-prefixed JSONL file ( |
Safe-Point |
An 8-byte little-endian uint64 in |
Desired-State Release |
A control-plane record ( |
Release Polling |
The |
Precheck |
The |
State Root |
The persistent partition mounted at |
Boot Epoch |
A monotonic uint64 counter in |
BootEpoch Evidence |
A file written to |
LKG (Last-Known-Good) |
The policy slot promoted when |
mTLS |
Mutual TLS used by |
Success Condition |
The relay delivery guarantee: |
Repository Structure (Key Paths)¶
autonomyops/
├── cmd/autonomy/ ← CLI entry point (all subcommands)
├── orchestrator/ ← Event ingestion API + HA pgstore backend + rollout APIs
├── demo/ ← Docker Compose stack + demo scripts
│ ├── docker-compose.yml
│ ├── locks/ ← example.lock.json (template)
│ ├── policies/ ← echo_allow.rego, shell_deny.rego
│ ├── scripts/ ← 01_build.sh … 07_poll_loop.sh + lib.sh
│ └── keys/ ← cosign.key / cosign.pub (demo use only)
├── edge/ ← edged daemon + edgectl control tool
│ ├── bootstrap/ ← OS fingerprinting + RunReconstruction
│ ├── config/ ← TOML config loader + validation
│ ├── relay/ ← BoltDB ledger + executor
│ ├── storage/ ← Disk-ceiling enforcement + segment store
│ └── stateroot/ ← Persistent-partition path helpers
├── lock/ ← Lock schema + BLAKE3 fingerprint + canonicalization
├── oci/ ← OCI sidecar attach/pull + referrers probe
├── policy/ ← Bundle builder + manager (current/LKG slots)
├── runtime/ ← ToolServer + Interceptor + Poller
├── telemetry/ ← WAL + OTLP sender + bridge
└── Makefile
Supporting Documents¶
Document |
Purpose |
|---|---|
90–150 second live demo narration with exact output markers |
|
Every product claim mapped to file + symbol; known gaps documented |
|
Replicated datastore operations, leader epochs, health/readiness, and failover diagnostics |
|
Reproducible local lab for |
|
Reproducible local lab for PR-17 CLI audit emission, PR-18 support-bundle verification, PR-19 audit query/export verification, PR-20 RBAC role CLI verification, PR-21 RBAC enforcement verification, PR-22 metrics list/query verification, and PR-27 config migration verification across rollout, HA, cert, auth, relay, metrics, and config commands |