@@ -7,21 +7,30 @@ deployment model, trust model, or operational status.
77## Current Status
88
99- Terraform deploys a 3-coordinator / 3-worker real Phala Cloud
10- cluster with public provider ` phala-network/phala v0.2.0-beta.4 ` .
10+ cluster with public provider ` phala-network/phala v0.3.0-beta.1 `
11+ using the named-slot model.
1112- ` mesh-conn ` direct connectivity is enabled by default; relay-only
1213 configuration was removed.
1314- Consul server quorum, Consul clients, Envoy Connect sidecars, and
1415 Patroni HA Postgres are running through the mesh.
1516- Attestation admission gates Consul node and service token issuance
1617 through real dstack quotes and ` dstack-verifier ` .
17- - Worker preflight compose hashes are generated by Terraform and used
18- as revision evidence in the admission policy.
18+ - Worker role preflight compose hashes are generated by Terraform and
19+ used as revision evidence in the admission policy.
20+ - Admission policy checks KMS key-provider evidence. When
21+ ` production_profile = true ` , it also checks verifier-proven OS image
22+ hash evidence against the Terraform preflight hash.
1923
2024## Recently Validated
2125
2226- Full real-cluster Terraform apply with preflight-backed admission
2327 policy.
24- - Public Terraform provider path, with no local provider override.
28+ - Public Terraform provider path, with no local provider override:
29+ ` terraform init -upgrade ` , ` apply ` , no-op ` plan ` , and ` destroy `
30+ against ` phala-network/phala v0.3.0-beta.1 ` .
31+ - Production-profile real-cluster apply on prod ` dstack-0.5.7 ` , with
32+ all six CVMs reporting ` is_dev = false ` and OS image hash
33+ ` 761c05d282c81abeae2d1a8f6d5b1e039c8ce14cc95a6da020b9ed2ff1056816 ` .
2534- Real attestation path on all workers for node, webdemo, and
2635 postgres identities.
2736- Negative admission test: a valid quote claiming the wrong ` peer_id `
@@ -30,23 +39,36 @@ deployment model, trust model, or operational status.
3039 token are re-issued through attestation before the worker rejoins.
3140- Consul health after tests: zero critical checks, all coordinators
3241 and workers alive.
42+ - Broker unit tests cover KMS mismatch rejection and production OS
43+ image hash mismatch rejection.
3344
3445## Open Work
3546
36- - Terraform slot API: integrate the newly implemented Phala Cloud
37- slot API into the Terraform deployment flow. Tracking note:
38- ` design/terraform-slot-api.md ` .
39- - KMS policy: Terraform now carries the selected KMS backend and the
40- expected long-term KMS public key; admission requires the verifier
41- returned key-provider evidence to match it.
42- - Production OS policy: when a production profile is enabled, include
43- the expected OS image hash in both Phala launch config and admission
44- policy.
47+ - Terraform slot API: provider 0.3.0-beta.1 lands the named-slot
48+ resource (` phala_app_instance ` + ` phala_app.members ` ) and
49+ ` cluster-example/cluster.tf ` is migrated onto it. App-level
50+ ` docker_compose ` /` env ` /` image ` updates on a phala_app in members
51+ mode are intentionally refused at plan time by the provider until
52+ the cloud's ` /apps/{app_id}/revisions/{rev_id}/redeploy ` fan-out
53+ endpoint is wired into the provider — see
54+ ` design/terraform-slot-api.md ` for the integration path.
55+ - Rollout driver: ` cluster-example/rollout.sh ` is paused for
56+ in-place rolls. It still serves ` --plan ` and Consul-health
57+ probing; the actual ` terraform apply -target=... ` loop now exits
58+ with a clear "Unsafe update in members mode" guidance message
59+ rather than half-mutating a cluster. The eventual slot-aware
60+ rollout will drive ` /apps/{app_id}/revisions/{rev_id}/redeploy `
61+ with per-slot drains, reusing this script's leader-transfer +
62+ wait-for-quorum scaffolding.
4563- Secret lifecycle: move remaining cluster-wide-identical secrets
4664 out of Terraform env into TEE-rooted generation/distribution.
4765- Long soak: run the real cluster for at least one hour with zero ACL
4866 authorization failures, zero attestation rejections, and stable
4967 Patroni leader/replica health.
68+ - Deep prod-profile operational validation: prod OS images disable SSH,
69+ so use Phala logs/API evidence for admission and container health.
70+ Run dev-image validation when direct ` consul ` /` patronictl ` CLI access
71+ is required.
5072- Token lifecycle: keep non-expiring tokens for the first integrated
5173 version; next step is one active token per attested workload
5274 instance, then bounded TTL plus renewal once Consul, Envoy, and
0 commit comments