fix(TC-500): preflight sealed Node startup configuration - #236
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The v1.17.1 Phala rollout accepted the new image at the control plane but the process exited before serving HTTP: the sealed production trust bundle still carried the legacy
https://email.tinycloud.xyzemailOrigin while the TC-500 runtime correctly requires the exact generic OpenCredentials audiencehttps://witness.credentials.org. The corrected sealed bundle restored v1.17.1 without changing the node DID.Change
tinycloud --validate-config, which invokes the same trust-bundle and database-TLS configuration resolver used by normal startup, but opens no key, dstack context, database connection, socket, or network connection.ghcr.io/tinycloudlabs/tinycloud-node@sha256:...from the build-dstack output; verify OCIorg.opencontainers.image.revisionequalsGITHUB_SHAbefore the CVM can be replaced.sslmode=verify-full.401; control routes retain400/422, and missing/server-error responses still fail deployment.Evidence
node scripts/check-deployment-policy-probes.mjsgit diff --checkcargo fmt --all -- --checkcargo test -p tinycloud-node --features dstack config::tests::v2_preflight_rejects_postgres_without_verify_full -- --exactcargo test -p tinycloud-node --features dstack config::tests::legacy_email_origin_is_startup_fatal -- --exactTINYCLOUD_STORAGE__DATABASEparsing tests under--features dstackcargo clippy -p tinycloud-node --all-targets --features dstack -- -D warningsquota::test::concurrent_stale_refresh_spawns_only_one_background_fetchflaked once under full parallel execution (0 != 1), then passed immediately in isolation; remaining 354 library tests passed with that one test skipped.No production mutation is part of this PR.