Live catalogue-backed Harness proof¶
Historical record
This page records a Celln development milestone (September 2026). Interfaces and limits it describes may since have changed or been replaced by the Celln fleet. For current behaviour see Celln Backend and Celln Fleet Installation.
test/integration/test-celln-catalogue-harness.sh exercises the actual Sympozium
CLI and controller binaries against an isolated Kind API, a TLS-authenticated
managed issuer, a TLS-fronted actual Celln router, a host KVM dispatcher and
DeepSeek. The model calls uppercase and then length, returning
CELLN has length 5.
This differs from the earlier explicit-artifact controller proof: runtime/tool
catalogue objects and independent grant documents use Kubernetes-assigned UIDs
and persisted specs. Composition is derived from those approved objects. The
actual celln-tool issue-run command freezes issuance and serving route in
AgentRun status before the actual controller is started.
Explicit prerequisites¶
- Existing
kind-celln-deployedkubeconfig; no default or Framework context. - The isolated
harness-proof-controllerdeployment at one replica with its local proof image, and no unfinished AgentRuns. The script temporarily pauses that deployment and restores its original UID at one replica on exit. - The current AgentRun, AgentRuntime and CellnTool CRDs installed in that cluster.
- Go, kubectl, jq, real
/dev/kvm, the Celln artifact toolchain and readable kernel. - The public signed catalogue fixture, native JSON Harness package and explicit
public-fixture materializer used by
TestComposeRealCellnArtifacts. - Permission for a billable DeepSeek test, limited to three requests and 1,536 total output tokens per run. A failure must be investigated before rerunning.
export CELLN_PAUSE_TEST_CONTROLLER=1
export CELLN_CONTROLLER_KUBECONFIG=/absolute/isolated-kubeconfig
export CELLN_COMPOSITION_FIXTURE=/absolute/public-catalogue-fixture
export CELLN_COMPOSITION_BINARY=/absolute/celln
export CELLN_ISSUANCE_MATERIALIZER=/absolute/prepare_issuance_fixture
export CELLN_HARNESS_PACKAGE=/absolute/native-json-harness-package
export CELLN_LIVE_CREDENTIAL_FILE=/absolute/host-only-deepseek-key
export CELLN_LIVE_EVIDENCE_PARENT=/absolute/existing-evidence-directory
test/integration/test-celln-catalogue-harness.sh
Alternatively, explicitly set CELLN_LIVE_DEEPSEEK_ZSHRC instead of
CELLN_LIVE_CREDENTIAL_FILE to a shell configuration containing exactly one
literal DEEPSEEK_API_KEY=sk-... assignment. The test parses only that literal;
it never sources the shell configuration or evaluates expansions. The extracted
key is written to a private temporary host file and removed with test cleanup.
No key contents enter Kubernetes, command-line arguments, the guest, or evidence.
Assertions and cleanup¶
The test verifies durable Issued status before dispatch, three model events,
the two ordered tool results, the final answer, terminal status/receipt, zero
Jobs, the matching grant and receipt in the execution audit, Dissolved, and
zero live cells. It deletes the independent model policy, waits for managed
host-profile withdrawal, requires host grant reissuance to refuse, and retrieves
the same successful owner receipt after withdrawal.
The test owns and joins all host processes and TLS listeners. Run deletion is attempted while the controller can still reconcile cancellation/finalizers; namespace deletion is UID-scoped. The outer script then restores the isolated deployment. Cleanup failures fail the test; they do not authorize stripping finalizers or deleting unrelated resources. The newly generated evidence directory retains AgentRun status, audit, node state, Job list and summary.
Portable go test skips this billable test unless CELLN_LIVE_CATALOGUE=1 is
explicitly supplied. The setup helper also has non-network tests rejecting
implicit paths and non-proof contexts.
What this does not prove¶
The controller, issuer and router run as real host processes, not deployed production pods. Both tools come from an operator-selected public signed fixture; the materializer is not a production admission/distribution service. TLS uses public test certificates restricted to loopback. This is one bounded one-shot run, not UI/YAML selection, arbitrary OCI Harness support, conversations, multi-host availability, fleet revocation, or full epic/release acceptance.