Skip to content

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.

References