aboutsummaryrefslogtreecommitdiffstats
path: root/openspec/changes/archive/2026-09-24-add-uv-and-docker-runtime/specs
diff options
context:
space:
mode:
Diffstat (limited to 'openspec/changes/archive/2026-09-24-add-uv-and-docker-runtime/specs')
-rw-r--r--openspec/changes/archive/2026-09-24-add-uv-and-docker-runtime/specs/container-runtime/spec.md19
-rw-r--r--openspec/changes/archive/2026-09-24-add-uv-and-docker-runtime/specs/developer-environment/spec.md12
2 files changed, 31 insertions, 0 deletions
diff --git a/openspec/changes/archive/2026-09-24-add-uv-and-docker-runtime/specs/container-runtime/spec.md b/openspec/changes/archive/2026-09-24-add-uv-and-docker-runtime/specs/container-runtime/spec.md
new file mode 100644
index 0000000..e0565c6
--- /dev/null
+++ b/openspec/changes/archive/2026-09-24-add-uv-and-docker-runtime/specs/container-runtime/spec.md
@@ -0,0 +1,19 @@
1## Purpose
2
3Provides a working, unprivileged Docker container runtime on every NixOS host built from this flake, so the already-provisioned Docker CLI tooling has a daemon to talk to without a separately-managed installation step.
4
5## ADDED Requirements
6
7### Requirement: A rootless Docker daemon runs on every NixOS host
8Every NixOS host built from this flake's shared system module SHALL run a Docker daemon in rootless mode (as the user's own account, not as root), without requiring per-host opt-in.
9
10#### Scenario: Daemon available after boot
11- **WHEN** a NixOS host built from this flake's shared system module finishes booting and the user logs in
12- **THEN** a Docker daemon is running under that user's own account, not as root
13
14### Requirement: The Docker CLI connects to the rootless daemon without manual configuration
15A user on a NixOS host built from this flake's shared system module SHALL be able to run Docker CLI commands (e.g. `docker run`, `docker build`) against the rootless daemon without manually setting `DOCKER_HOST` or other connection configuration.
16
17#### Scenario: Docker command works out of the box
18- **WHEN** a user runs a `docker` CLI command on a NixOS host built from this flake's shared system module
19- **THEN** the command reaches the rootless daemon and executes, without the user having exported `DOCKER_HOST` or written any Docker connection config themselves
diff --git a/openspec/changes/archive/2026-09-24-add-uv-and-docker-runtime/specs/developer-environment/spec.md b/openspec/changes/archive/2026-09-24-add-uv-and-docker-runtime/specs/developer-environment/spec.md
new file mode 100644
index 0000000..8a76849
--- /dev/null
+++ b/openspec/changes/archive/2026-09-24-add-uv-and-docker-runtime/specs/developer-environment/spec.md
@@ -0,0 +1,12 @@
1## MODIFIED Requirements
2
3### Requirement: Container and cloud tools are client-only
4Container and cloud-related packages provisioned by this capability SHALL provide client/CLI functionality only; they SHALL NOT attempt to provide or manage the underlying runtime or service (e.g. a Kubernetes cluster or cloud account), with one exception: Docker's runtime is managed on NixOS hosts by the separate `container-runtime` capability. Outside of NixOS hosts, and for every other tool (`kubectl`, `awscli2`), no corresponding runtime or account is installed or managed.
5
6#### Scenario: No runtime is installed or managed
7- **WHEN** a container or cloud CLI tool other than Docker is provisioned by the shared home profile
8- **THEN** no corresponding daemon, virtual machine, or account configuration is installed or managed by this capability — the tool simply connects to whatever runtime or account is already configured on the system
9
10#### Scenario: Docker's runtime is the documented exception on NixOS
11- **WHEN** the Docker CLI is provisioned by the shared home profile on a NixOS host built from this flake's shared system module
12- **THEN** a Docker runtime is available via the separate `container-runtime` capability, rather than being left entirely unmanaged