Skip to main content

Crate xianyun_backends

Crate xianyun_backends 

Source
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 docker CLI, 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/hosts file management.
kubectl
kubectl operations.
kustomize
Kustomize build operations.