Commit e36981d
docs(infra): plan pvc-* to cel-* migration into celladore-sub (#58)
* docs(infra): plan pvc-* to cel-* migration into celladore-sub
Full recreate-and-cutover plan for pvc-prod-codeflow-rg (website SWA,
engine Container App, ACR) plus the separate pvc-prod-codeflow-identity-rg
into celladore-sub under cel- naming. Cross-tenant move is not possible
(az resource move is single-tenant only) and neither the runtime/ nor
website/ Terraform stack has ever actually managed the live resources, so
this documents an ordered recreate sequence rather than a Terraform-apply
migration. Flags the runtime/website RG-ownership conflict (data source vs
managed resource), the previously-unaccounted identity-rg, and a separate,
more urgent open question: whether deploy-autopr-engine.yml's OIDC
federated credential subject still matches now that the repo is
celladore/codeflow-engine rather than phoenixvc/codeflow-engine.
Planning only — no Azure resources created or modified.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* docs(infra): correct workflow_dispatch claim in cel migration plan
The plan previously stated deploy-autopr-engine.yml has no workflow_dispatch
trigger. It does (line 21), and the deploy job's if-condition includes
workflow_dispatch, so a manual run triggers the real deploy. Corrects the
record and notes the classifier-blocked attempt to use it directly.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* docs(infra): record Phase 1+3 execution log for cel- migration
- Phase 1 (identity) and Phase 3 (provisioning) executed against
celladore-sub, lowest-cost tiers throughout (ACR Basic, SWA Free,
Container Apps Consumption/scale-to-zero, Log Analytics
PerGB2018/30-day floor).
- Add step 0 to Phase 4: bind Container App to celprodcodeflowacr via
az containerapp registry set before the first real image deploy,
otherwise image pull fails.
- Record known gaps: unverified role-assignment propagation (az role
assignment list blocked by classifier), confirmed-by-curl ingress
port mismatch on the placeholder image (harmless, target_port 8080
is correct for the real image), LAW shared key displayed during
retrieval, Phase 2 RG-ownership fix not yet written back into
website/main.tf.
* docs(cel-migration): record Phase 4 execution log
Phase 4 (cutover) is complete: registry bind, 6 production GitHub env
vars repointed, AZURE_STATIC_WEB_APPS_API_TOKEN rotated, both website
and engine redeployed and verified live via direct HTTP checks.
Records a real defect hit along the way: celladore has GitHub's
immutable-OIDC-subject-ID behavior active, so the federated credential
subject format from Phase 1 (repo:org/repo:environment:name) no longer
matched the presented assertion (repo:org@id/repo@id:environment:name).
Fixed via az identity federated-credential update, after explicit user
approval since it's a trust-boundary change.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* docs(cel-migration): log Phase 5 progress and resume steps
PR celladore/celladore-org#8 is open, clean, and mergeable (repoints the
codeflow CNAME at the recreated celladore-sub SWA) but this session can't
merge PRs. Document the exact resume sequence once a human merges it:
dispatch terraform-dns-apply.yml with confirm=apply (reconcile stays
blank, it's baton-specific), verify via an authoritative resolver, then
bind the Azure custom domain via direct az CLI rather than the website
Terraform stack, which has never been applied against real resources and
still defaults to the old pvc-* names.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* docs(cel-migration): log Phase 5 DNS completion, blocked on Azure domain bind
PR #8 merged, terraform-dns-apply run 32241459991 succeeded end-to-end
(including the state-commit step), and codeflow.celladoresystems.com now
resolves to the new SWA via Cloudflare's own resolver.
Attempted the Azure-side custom-domain bind (az staticwebapp hostname
set) directly per the documented decision to avoid the un-applied
website Terraform stack; blocked by the permission classifier as a live
production-resource mutation. Needs a human to run it directly.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* docs(cel-migration): close out Phase 5 — codeflow.celladoresystems.com fully live
User ran the classifier-blocked az staticwebapp hostname set command
directly; result was status: Ready with no error. Verified end-to-end:
curl -I https://codeflow.celladoresystems.com/ returns 200 with a valid
cert and the real site's security headers — no propagation-lag
cert-mismatch window was even observed. Phase 5 (DNS/domain repoint) is
now complete; Phase 6 (old-tenant decommission) still needs
source-tenant credentials this session doesn't have, Phase 7 (Terraform
default updates) is the natural next step.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* chore(cel-migration): Phase 7 — update Terraform defaults and docs to cel-* reality
Now that Phase 4/5 are live and verified, update config to describe
reality instead of the stale pvc-* defaults:
- terraform/runtime and terraform/website variables.tf defaults
(resource group, Container App, ACR, SWA, identity names, Owner tag)
- website's sku_tier/sku_size corrected to Free (matches the live SWA)
and enable_custom_domain flipped to true (matches the live binding)
- both stacks' READMEs, noting neither has ever actually been applied
against real resources — a first real apply needs terraform import
- orchestration/infrastructure/README.md's stale codeflow.phoenixvc.tech
/ org-meta DNS flow and naming table
- .azure/pipeline-setup.md defaults, plus a note on the immutable-OIDC-
subject-ID gotcha from the Phase 4 log
- scripts/setup-azure-auth-for-pipeline.ps1 defaults, plus a warning
comment on the subject-format gotcha and a fix for a hardcoded old
Container App name in its output block
terraform fmt -check -diff clean on both stacks after editing.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>1 parent c8b0afb commit e36981d
8 files changed
Lines changed: 512 additions & 55 deletions
File tree
- .azure
- orchestration/infrastructure
- terraform
- runtime
- website
- scripts
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
5 | 16 | | |
6 | 17 | | |
7 | 18 | | |
| |||
11 | 22 | | |
12 | 23 | | |
13 | 24 | | |
14 | | - | |
15 | | - | |
16 | | - | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
17 | 28 | | |
18 | 29 | | |
19 | 30 | | |
| |||
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
20 | | - | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
21 | 22 | | |
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
25 | | - | |
26 | | - | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
27 | 30 | | |
28 | 31 | | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
29 | 37 | | |
30 | 38 | | |
31 | 39 | | |
| |||
44 | 52 | | |
45 | 53 | | |
46 | 54 | | |
47 | | - | |
48 | | - | |
49 | | - | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
50 | 64 | | |
51 | | - | |
| 65 | + | |
52 | 66 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
5 | 15 | | |
6 | 16 | | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
12 | 22 | | |
13 | 23 | | |
14 | 24 | | |
| |||
Lines changed: 8 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
| 14 | + | |
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
| 26 | + | |
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | | - | |
| 32 | + | |
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
38 | | - | |
| 38 | + | |
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
| 44 | + | |
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | | - | |
| 50 | + | |
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
56 | | - | |
| 56 | + | |
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
65 | | - | |
| 65 | + | |
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
Lines changed: 32 additions & 17 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
14 | 26 | | |
15 | 27 | | |
16 | 28 | | |
| |||
31 | 43 | | |
32 | 44 | | |
33 | 45 | | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
Lines changed: 8 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
| 14 | + | |
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
| 26 | + | |
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
| 36 | + | |
37 | 37 | | |
38 | | - | |
| 38 | + | |
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | | - | |
| 42 | + | |
43 | 43 | | |
44 | | - | |
| 44 | + | |
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | | - | |
| 50 | + | |
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
59 | | - | |
| 59 | + | |
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | | - | |
| 10 | + | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | | - | |
| 16 | + | |
17 | 17 | | |
18 | | - | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| |||
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
83 | 91 | | |
84 | 92 | | |
85 | 93 | | |
| |||
95 | 103 | | |
96 | 104 | | |
97 | 105 | | |
98 | | - | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
99 | 109 | | |
100 | 110 | | |
0 commit comments