Build a fail-closed evidence bundle
There is no one-command production certification. CI can assemble a reproducible bundle from stable
JSON surfaces, while real provider inventory remains an adapter-specific external assertion.
apply or candidate provisioning can create billable resources, validation sends inference, and
promotion changes traffic. Use a staging environment, pre-approved maximum cost, non-sensitive
fixtures, and an exact qualified serving combination. Run read-only plan and compatibility checks
before the first mutation.
Do not parse human CLI output. Preserve stderr separately if progress is needed; JSON stdout must
remain one document. The pipeline must fail when any of these is missing or inconsistent:
- operation ID and terminal
succeeded state;
- deployment, active/candidate revision, serving-plan, and immutable model/runtime identity;
- request ID, status, selected binding, revision/target where exposed, and content-free evidence;
- Release Guard decision for the same active/candidate pair when promotion is intended;
- one persisted provider identity per lifecycle-managed replica intent;
- zero unexplained InferCrane orphans; and
- direct provider inventory outcome from the selected adapter guide.
InferCrane cannot provide one provider-neutral command proving account inventory. Add the RunPod,
AWS, GCP, or Kubernetes read-only inventory command below as a required CI step. Capture a canonical
baseline before candidate creation and another result after rejection/deletion; a successful API
call plus byte-equal canonical inventories is the cleanup gate. An empty result is valid only when
the command succeeded. Unknown, stale, unauthorized, malformed, or incomplete inventory fails
closed. Do not promote when an
operation is only waiting, a request lacks correlation, Guard is WAIT/REJECT/INCONCLUSIVE, or
the provider outcome cannot be proven.
RunPod
AWS EC2
GCP Compute
Kubernetes or KServe
These commands list every InferCrane-managed resource visible to the configured account/project or
namespace, not only the current release. In a shared environment, compare canonical before/after
files; do not require global zero and do not delete another deployment’s resource. For RunPod,
compare both files. For Kubernetes, compare the KServe file only when the CRD existed in both runs.
Credential or permission failure must terminate CI rather than producing an empty success artifact.
Keep the bundle with the release artifact or issue an Inference Passport
after all required evidence exists. A passport signs evidence; it does not turn missing evidence into
a pass.