Skip to content

Promote signed executor releases through a serial canary - #359

Merged
ctfbruce merged 2 commits into
mainfrom
feat/serial-release-rollout
Oct 2, 2026
Merged

ctfbruce merged 2 commits into
mainfrom
feat/serial-release-rollout

Conversation

@ctfbruce

@ctfbruce ctfbruce commented Oct 2, 2026 •

Copy link
Copy Markdown
Collaborator

Promote a retained signed release to existing Ansible-managed executors in inventory order, starting with an explicitly selected canary. Every host must pass signature/inventory verification, existing-tree validation, required capability setup, a compatible-schema check and a clean drain before activation. A private verified state/configuration backup records the prior release and operator confirmation. Health, expected-version reconnection and a fresh completed hello measurement gate progression; failures leave later hosts untouched.

The implementation reuses the current payload role, pinned provisioner and SSH identities. It does not rebuild artifacts, create hosts, rotate credentials, apply migrations, automatically restore state or deploy co-located dispatchers. The rollback guide states the compatible-schema window and manual restore boundary. Related to #142 and #143; real signed-release and operator acceptance remain separate.

The signed release and retained archive prerequisites #308 and #322 have merged. This PR now targets main.

Validation: five isolated Aspire scenarios passed using the existing pinned provisioner without network access: serial success with verified backup digests, failed canary measurement leaving the second host untouched, incompatible-schema refusal before stopping the old service, revalidation of an existing candidate, and failure to set required capabilities. The fixture runs real Ansible, signature verification and backup operations; package payload, service manager and measurement client are local substitutes. Independent source review has no remaining findings. The same checks are wired into the existing provisioner validation command. All 16 checks passed in 37003531219 on a4cde7e0a03f9215902ff2b42e47dc7bb27fce7b.

No production deployment, signer provisioning, archive activation or real-release acceptance is claimed. The previous real v0.2.0-rc.1/v0.2.0 rollback exercise remains historical evidence, not proof of a current signed supported pair.

@ctfbruce
ctfbruce changed the base branch from feat/release-evidence-archive to main October 2, 2026 11:57
@ctfbruce
ctfbruce marked this pull request as ready for review October 2, 2026 12:05
@ctfbruce ctfbruce added the Ready to merge Reviewed and CI passed; merge in dependency order after required approval. label Oct 2, 2026
@ctfbruce
ctfbruce merged commit c800542 into main Oct 2, 2026
16 checks passed
@vincent10400094
vincent10400094 deleted the feat/serial-release-rollout branch October 8, 2026 00:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Ready to merge Reviewed and CI passed; merge in dependency order after required approval.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant