Files
kandev/docs/specs/executors/requirements/kubernetes-docker-workloads.md
T

100 lines
5.0 KiB
Markdown

---
status: draft
system: executors
created: 2026-09-13
owners:
- kandev
---
# Kubernetes Docker Workloads Requirements
## Overview
Administrators need task Pods whose agents can build source, build container
images and run Docker/Compose tests against the task checkout. The executor
system owns the Pod-template, workspace and companion-container boundaries.
This capability extends the [Kubernetes foundation](../../kubernetes-executor/spec.md)
without changing existing profiles or baseline worker presets.
## Requirements
### REQ-EXECUTORS-K8S-DOCKER-001: Explicit companion workspace access
**Intent:** A selected companion can consume the same task checkout while
Kandev retains ownership of workspace storage and private runtime material.
#### Acceptance criteria
- **AC-EXECUTORS-K8S-DOCKER-001.1:** An administrator shall be able to explicitly
grant an ordinary non-main container access to the task workspace at the same
path as the main container, with either read-only or read-write access.
- **AC-EXECUTORS-K8S-DOCKER-001.2:** Profiles without such a grant shall retain
their current mount behavior. The template shall not redefine workspace
storage, redirect a grant, or grant companion access to Kandev runtime/auth
volumes; init and ephemeral containers shall remain ineligible.
- **AC-EXECUTORS-K8S-DOCKER-001.3:** Admission that adds, removes, duplicates,
transfers or changes a workspace grant shall fail validation before agent
bootstrap. Unrelated compatible admission defaults shall remain accepted.
- **AC-EXECUTORS-K8S-DOCKER-001.4:** A replacement Pod shall use the recorded
workload's grants and storage identity. Editing a profile shall not change a
retained session's replacement workload or authorize deletion of foreign data.
### REQ-EXECUTORS-K8S-DOCKER-002: Explicit full-toolchain Docker configuration
**Intent:** Operators can prepare a full worker without mistaking installed
client commands for functioning container execution.
#### Acceptance criteria
- **AC-EXECUTORS-K8S-DOCKER-002.1:** A documented opt-in worker recipe shall
identify immutable image inputs, Linux architecture, installed language and
browser tools, runtime user, writable caches and Docker client/daemon versions.
It shall contain no task credentials or private repository contents.
- **AC-EXECUTORS-K8S-DOCKER-002.2:** The example shall give each task Pod its own
Docker daemon and local client connection, with no shared host Docker socket,
public Docker endpoint or implicit cluster credential in the workload.
- **AC-EXECUTORS-K8S-DOCKER-002.3:** Daemon privileges, resources and storage
shall be explicit operator configuration. The agent shall run non-root;
configuration shall not silently enable privileged workloads in existing
profiles or claim compatibility with restricted admission.
- **AC-EXECUTORS-K8S-DOCKER-002.4:** Docker-dependent preparation shall wait for
daemon readiness with a finite timeout and report failure if it cannot become
ready, rather than reporting a Docker-capable environment based on CLI presence.
### REQ-EXECUTORS-K8S-DOCKER-003: Verified execution and lifecycle
**Intent:** A Docker-capable task remains inspectable, resumable and reclaimable
through the existing Kandev lifecycle.
#### Acceptance criteria
- **AC-EXECUTORS-K8S-DOCKER-003.1:** Verification shall exercise actual source
tests, image build/run and a Compose service that reads and writes the same
task-workspace files seen by the agent. CLI version checks alone shall not
establish compatibility.
- **AC-EXECUTORS-K8S-DOCKER-003.2:** Ordinary Stop/Resume shall preserve the Pod
and managed workspace; documentation shall disclose retained companion
compute. Replacement shall recover workspace results while permitting loss
of explicitly disposable Docker caches and test containers.
- **AC-EXECUTORS-K8S-DOCKER-003.3:** Terminal cleanup shall remove exactly the
owned Pod and managed workspace, leave existing claims untouched, and leave
no nested compute belonging to the removed Pod. Agent results and diagnostics
shall be checked through Kandev before destructive cleanup.
- **AC-EXECUTORS-K8S-DOCKER-003.4:** Published evidence shall distinguish tested
architecture/runtime versions from untested combinations and verify resource
accounting for the agent, daemon and nested test containers. One task with a
companion shall remain one Kubernetes Pod for workload inventory purposes.
## Out of scope
- New control-plane deployments, operators, CRDs, Helm charts or release channels.
- A Docker security sandbox guarantee, automatic permission grants or a new UI.
- Cross-node migration of local PVCs, automatic suspend-to-zero or a capacity queue.
- Support for arbitrary host-path mounts, shared Docker daemons or all Docker plugins.
- Changing the security contract of the existing minimal, Node/pnpm or Python presets.
## Delivery
See the [system design](../system-design/kubernetes-docker-workloads.md) and
[implementation plan](../../../plans/kubernetes-docker-workloads/plan.md).