Expand description
Backend clients ported from internal/backends/{docker,git,helm,hosts,kubectl,kustomize}.
Every Go test file in scope was read and, with the exceptions logged in
each module’s PORT_NOTES.md entry, ported to an equivalent Rust test.
Every Backend trait mirrors its Go interface counterpart 1:1 so the
dependency-injection shape (managers accept Arc<dyn Backend>) carries
over unchanged. Each Client is implemented for real against its CLI
tool; see PORT_NOTES.md for the handful of narrowly-scoped exceptions.
Backends must stay stateless per the project’s AGENTS.md: each
Client holds only injected dependencies (an executor handle, a
kubeconfig string, a filesystem), never mutable operational state, and
each Backend method wraps a single CLI (or, for kustomize, in-process
library) operation.
Modules§
- docker
- Thin backend over the
dockerCLI, for caproni features that need to talk to a Docker daemon (e.g. docker-in-docker CI, or operating on containers managed by k3d). - git
- Git repository operations.
- helm
- Helm operations.
- hosts
/etc/hostsfile management.- kubectl
- kubectl operations.
- kustomize
- Kustomize build operations.