feat(resource): add container infrastructure resource types
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 21s
CI / lint (pull_request) Successful in 27s
CI / helm (pull_request) Successful in 31s
CI / typecheck (pull_request) Successful in 1m9s
CI / quality (pull_request) Successful in 3m43s
CI / security (pull_request) Successful in 4m6s
CI / integration_tests (pull_request) Successful in 6m12s
CI / unit_tests (pull_request) Successful in 7m14s
CI / docker (pull_request) Successful in 2m7s
CI / coverage (pull_request) Successful in 11m52s
CI / e2e_tests (pull_request) Successful in 21m28s
CI / status-check (pull_request) Successful in 1s
CI / benchmark-regression (pull_request) Successful in 56m15s

Add 7 container infrastructure resource types per ADR-039:
container-runtime, container-image, container-mount, container-exec-env,
container-port, container-volume, container-network.

- YAML configs under examples/resource-types/
- Bootstrap registration via _resource_registry_container.py
- Updated container-instance parent_types (container-runtime, container-image)
  and child_types (container-mount, container-exec-env, container-port)
- container-runtime is top-level with auto-discovery rules (scan_depth: 1)
- container-mount/exec-env/port inherit snapshot sandbox from instance
- container-volume is user-addable with snapshot sandbox
- container-network is read-only, no sandbox
- Handler references are forward declarations (ADR-039)
- 33 Behave BDD scenarios, 4 Robot integration tests
- Updated BUILTIN_NAMES, service docstring, CHANGELOG

ISSUES CLOSED: #831
This commit is contained in:
2026-03-18 04:37:35 +00:00
committed by Forgejo
parent f03e510a11
commit 2370e19da8
18 changed files with 1006 additions and 3 deletions
+49
View File
@@ -475,3 +475,52 @@ Sandbox: `copy_on_write`.
A hard link (link count > 1). Parent: `fs-directory`. Leaf type.
Sandbox: `copy_on_write`.
---
# Container Infrastructure Resource Types (#831)
## container-runtime
A container runtime engine (Docker, Podman, containerd, etc.).
Top-level type with no parents. Children: `container-image`,
`container-instance`, `container-volume`, `container-network`.
Auto-discovers from Docker API endpoints and docker-compose files.
User-addable. Sandbox: `none`.
## container-image
A container image identified by tag and/or digest.
Parent: `container-runtime`. Child: `container-instance`.
Auto-discovers from Dockerfiles and docker-compose files.
User-addable. Sandbox: `none`.
## container-mount
A bind mount or volume mount inside a container instance.
Parent: `container-instance`. Children: `fs-directory`, `fs-file`.
Not user-addable (auto-discovered). Sandbox: `snapshot`.
## container-exec-env
Execution environment variables and configuration inside a container.
Parent: `container-instance`. Leaf type.
Not user-addable. Sandbox: `snapshot`.
## container-port
A port mapping between host and container (e.g. 8080:80/tcp).
Parent: `container-instance`. Leaf type.
Not user-addable. Sandbox: `snapshot`.
## container-volume
A named container volume managed by the runtime engine.
Parent: `container-runtime`. Child: `fs-directory`.
User-addable. Sandbox: `snapshot`.
## container-network
A container network (bridge, host, overlay, macvlan, or none).
Parent: `container-runtime`. Leaf type.
Not user-addable. Sandbox: `none`.