Bind External Workloads to a Verified Compute Lifecycle¶
Status¶
Accepted: An external workload is admitted by an exact source revision, declared execution inputs, required result paths, and retained acceptance evidence. Compute replacement is evaluated against that same binding.
Context¶
A repository can define its own topology, operation, and acceptance suite, but a successful run on one host does not establish continuity after that compute is released. Branch names, mutable image tags, console output, and an available checkout are insufficient identities for a before-and-after comparison.
The workload must remain responsible for its technical result. The surrounding compute lifecycle needs a stable record of what ran, where it ran, and which declared results survived beyond the target.
Decision¶
The workload contract requires a full Git commit SHA, a repository-relative entry point, an explicit target, and declared evidence paths. Execution records the resolved commit, exit status, target identity, declared container-image identities, and SHA-256 of the retained evidence bundle.
The controller retains the declared result paths outside disposable compute. A non-zero entry point, revision mismatch, image-identity mismatch, or missing evidence path fails closed and retains the target for diagnosis.
A compute lifecycle comparison repeats the same acceptance path after managed rebuild or target replacement. The workload repository continues to own its operation and acceptance semantics; HybridOps owns the binding and retained operation record.
Consequences¶
Positive¶
- Before-and-after results refer to one immutable workload revision.
- Acceptance evidence remains available after execution compute is released.
- Workload-specific validation stays with the workload that defines it.
Negative¶
- Mutable branches and abbreviated revisions are not accepted identities.
- Workloads must declare the result paths required for review.
- Large result or image archives increase transfer time and controller storage.
Alternatives considered¶
- Run the current repository branch on each host: rejected because the compared workload can change between runs.
- Retain only command output: rejected because workload-owned reports and state can be required to assess the result.