Skip to content

Commit e36981d

Browse files
JustAGhosTclaude
andauthored
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/pipeline-setup.md

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,17 @@
22

33
The Codeflow engine deployment workflow uses GitHub Actions OIDC with a user-assigned managed identity. Do not use the legacy `AZURE_CREDENTIALS` JSON secret for the production deploy path.
44

5+
> **2026-08-19:** production resources were recreated under `celladore-sub` (`cel-*`
6+
> naming, resource group `cel-prod-codeflow-identity-rg` for the pipeline identity)
7+
> following the org transfer to celladore — see `../orchestration/infrastructure/CEL_MIGRATION_PLAN.md`.
8+
> Also worth knowing if you re-run the setup script below: the `celladore` org has
9+
> GitHub's immutable-OIDC-subject-ID behavior active, so the federated credential's
10+
> `subject` needs the `repo:<org>@<org_id>/<repo>@<repo_id>:environment:<name>` form, not
11+
> the classic `repo:<org>/<repo>:environment:<name>` string — the two are not
12+
> interchangeable and Azure does exact string matching. The current production credential
13+
> was fixed to the correct subject after hitting `AADSTS700213` on this exact mismatch;
14+
> see the migration plan's Phase 4 log for the full story.
15+
516
## Production Environment Values
617

718
Create a GitHub environment named `production` and configure these environment variables:
@@ -11,9 +22,9 @@ Create a GitHub environment named `production` and configure these environment v
1122
| `AZURE_CLIENT_ID` | Client ID of the pipeline user-assigned managed identity. |
1223
| `AZURE_TENANT_ID` | Tenant ID for the Azure subscription. |
1324
| `AZURE_SUBSCRIPTION_ID` | Subscription containing Codeflow production resources. |
14-
| `AZURE_RESOURCE_GROUP` | Production resource group, expected default: `pvc-prod-codeflow-rg`. |
15-
| `AZURE_CONTAINER_APP` | Production Container App, expected default: `pvc-prod-codeflow-api`. |
16-
| `AZURE_CONTAINER_REGISTRY` | ACR name for production images, expected default: `pvcprodcodeflowacr`. |
25+
| `AZURE_RESOURCE_GROUP` | Production resource group, expected default: `cel-prod-codeflow-rg`. |
26+
| `AZURE_CONTAINER_APP` | Production Container App, expected default: `cel-prod-codeflow-api`. |
27+
| `AZURE_CONTAINER_REGISTRY` | ACR name for production images, expected default: `celprodcodeflowacr`. |
1728

1829
The workflow deploys only to existing infrastructure. Provision or import the production Container App and ACR before running the deploy job.
1930

orchestration/infrastructure/CEL_MIGRATION_PLAN.md

Lines changed: 397 additions & 0 deletions
Large diffs are not rendered by default.

orchestration/infrastructure/README.md

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,24 @@ This directory is the canonical home for Codeflow product-specific infrastructur
1616

1717
Path: `terraform/website`
1818

19-
This stack creates the Azure Static Web App for the temporary launch hostname
20-
`codeflow.phoenixvc.tech`.
19+
This stack owns the Azure Static Web App for the production launch hostname
20+
`codeflow.celladoresystems.com` (moved from `codeflow.phoenixvc.tech` 2026-08-19
21+
following the org transfer to celladore — see `CEL_MIGRATION_PLAN.md`).
2122

2223
Use the sequence documented in [terraform/website/README.md](terraform/website/README.md):
2324

2425
1. Plan/apply the Static Web App with `enable_custom_domain=false`.
25-
2. Pass the Static Web App default hostname to the org-meta DNS stack.
26-
3. Apply the `codeflow.phoenixvc.tech` CNAME in org-meta.
26+
2. Pass the Static Web App default hostname to `celladore-org/infrastructure/dns`
27+
(Cloudflare, zone `celladoresystems.com` — DNS for this domain is owned there now,
28+
not org-meta).
29+
3. Apply the `codeflow.celladoresystems.com` CNAME via that repo's manual apply workflow.
2730
4. Re-plan this stack with `enable_custom_domain=true` for the Azure custom-domain binding.
2831

32+
As of 2026-08-19 this sequence has been executed against live resources directly via `az`
33+
CLI, not by actually applying this stack — see `terraform/website/README.md`'s banner for
34+
why (this stack has never been successfully applied; a first real apply needs
35+
`terraform import` first).
36+
2937
Do not use `codeflow.io` until domain ownership and brand risk are resolved.
3038

3139
## Legacy Bicep
@@ -44,9 +52,15 @@ exception documented next to the stack.
4452
Current Codeflow resource names follow the ADR-0027 style: structured identifiers with no trailing
4553
region suffix. Region remains expressed by the resource group location.
4654

47-
- Resource group: `pvc-prod-codeflow-rg`
48-
- Website Static Web App: `pvc-prod-codeflow-swa`
49-
- Runtime Container App: `pvc-prod-codeflow-api`
55+
As of 2026-08-19, live resources use `cel-` naming in `celladore-sub` — recreated from the
56+
original `pvc-` resources following the org transfer to celladore (cross-tenant resource
57+
`move` doesn't exist as an Azure operation, so this was a recreate-and-cutover; see
58+
`CEL_MIGRATION_PLAN.md` for the full history, including the still-pending handoff to
59+
decommission the old `pvc-*` resource groups).
60+
61+
- Resource group: `cel-prod-codeflow-rg`
62+
- Website Static Web App: `cel-prod-codeflow-swa`
63+
- Runtime Container App: `cel-prod-codeflow-api`
5064

51-
Keep future names aligned with `pvc-{env}-codeflow-{type}` unless a provider constraint requires
65+
Keep future names aligned with `cel-{env}-codeflow-{type}` unless a provider constraint requires
5266
otherwise. Storage accounts and ACR names omit dashes.

orchestration/infrastructure/terraform/runtime/README.md

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,23 @@
22

33
This stack owns the Azure Container Apps runtime for Codeflow Engine.
44

5+
> **2026-08-19:** resources recreated under `celladore-sub` (`cel-*` naming) following the
6+
> org transfer to celladore — cross-tenant resource `move` doesn't exist as an Azure
7+
> operation, so this was a recreate-and-cutover, not a rename. See
8+
> `orchestration/infrastructure/CEL_MIGRATION_PLAN.md` for the full history. The defaults
9+
> below now match the live `cel-*` resources, but **this stack has never actually been
10+
> applied against them** — they were provisioned directly via `az` CLI (see that plan's
11+
> "Nothing here is currently Terraform-managed" note). A first real apply needs
12+
> `terraform import` for each resource first, or it will try to create duplicates of
13+
> things that already exist.
14+
515
Names follow the ADR-0027-style convention used for live Codeflow resources:
616

7-
- Resource group: `pvc-prod-codeflow-rg`
8-
- Container App: `pvc-prod-codeflow-api`
9-
- Container Apps Environment: `pvc-prod-codeflow-cae`
10-
- Log Analytics Workspace: `pvc-prod-codeflow-law`
11-
- Container Registry: `pvcprodcodeflowacr`
17+
- Resource group: `cel-prod-codeflow-rg`
18+
- Container App: `cel-prod-codeflow-api`
19+
- Container Apps Environment: `cel-prod-codeflow-cae`
20+
- Log Analytics Workspace: `cel-prod-codeflow-law`
21+
- Container Registry: `celprodcodeflowacr`
1222

1323
The stack expects the Codeflow image to exist in ACR. For a first-time bootstrap before the image is
1424
available, override `initial_image` with a temporary public image, then switch it back to the ACR

orchestration/infrastructure/terraform/runtime/variables.tf

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ variable "tenant_id" {
1111
variable "resource_group_name" {
1212
description = "Existing Codeflow production resource group."
1313
type = string
14-
default = "pvc-prod-codeflow-rg"
14+
default = "cel-prod-codeflow-rg"
1515
}
1616

1717
variable "location" {
@@ -23,37 +23,37 @@ variable "location" {
2323
variable "container_app_name" {
2424
description = "Codeflow runtime Container App name."
2525
type = string
26-
default = "pvc-prod-codeflow-api"
26+
default = "cel-prod-codeflow-api"
2727
}
2828

2929
variable "container_app_environment_name" {
3030
description = "Codeflow Container Apps Environment name."
3131
type = string
32-
default = "pvc-prod-codeflow-cae"
32+
default = "cel-prod-codeflow-cae"
3333
}
3434

3535
variable "log_analytics_workspace_name" {
3636
description = "Log Analytics Workspace for Codeflow Container Apps logs."
3737
type = string
38-
default = "pvc-prod-codeflow-law"
38+
default = "cel-prod-codeflow-law"
3939
}
4040

4141
variable "container_registry_name" {
4242
description = "Globally unique Azure Container Registry name. ACR names cannot contain dashes."
4343
type = string
44-
default = "pvcprodcodeflowacr"
44+
default = "celprodcodeflowacr"
4545
}
4646

4747
variable "container_app_identity_name" {
4848
description = "User-assigned managed identity attached to the Codeflow Container App."
4949
type = string
50-
default = "pvc-prod-codeflow-api-mi"
50+
default = "cel-prod-codeflow-api-mi"
5151
}
5252

5353
variable "initial_image" {
5454
description = "Codeflow Engine image deployed by default. Override only for bootstrap scenarios."
5555
type = string
56-
default = "pvcprodcodeflowacr.azurecr.io/codeflow-engine:master"
56+
default = "celprodcodeflowacr.azurecr.io/codeflow-engine:master"
5757
}
5858

5959
variable "tags" {
@@ -62,7 +62,7 @@ variable "tags" {
6262
default = {
6363
Environment = "prod"
6464
Product = "codeflow"
65-
Owner = "phoenixvc"
65+
Owner = "celladore"
6666
ManagedBy = "terraform"
6767
}
6868
}

orchestration/infrastructure/terraform/website/README.md

Lines changed: 32 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,24 @@ This stack owns the Azure resource side of the Codeflow website launch at
55

66
> **2026-08-19:** domain moved from `codeflow.phoenixvc.tech` to
77
> `codeflow.celladoresystems.com` following the org transfer to celladore.
8-
> Only the `custom_domain` variable default changed in that update — the
9-
> existing `resource_group_name` / `static_web_app_name` defaults
10-
> (`pvc-prod-codeflow-rg` / `pvc-prod-codeflow-swa`) are the **live resource
11-
> names** and were deliberately left alone; renaming those defaults would
12-
> make Terraform plan a destroy/recreate of the resource group and the SWA
13-
> itself. `enable_custom_domain` is still `false` — see step 5 below.
8+
> Same day, the underlying SWA itself was also recreated: cross-tenant Azure
9+
> resource `move` doesn't exist, so the `pvc-prod-codeflow-swa` resource under
10+
> the old phoenixvc-owned subscription was replaced by `cel-prod-codeflow-swa`
11+
> in `celladore-sub` (recreate-and-cutover, not a rename — see
12+
> `../../CEL_MIGRATION_PLAN.md` for the full history). `resource_group_name` /
13+
> `static_web_app_name` now default to the *new* live names
14+
> (`cel-prod-codeflow-rg` / `cel-prod-codeflow-swa`). Safe to update now
15+
> specifically because this stack has **never been successfully applied**
16+
> against either the old or new resources — no backend was ever configured
17+
> (only `backend.tf.example` exists) and no state has ever tracked them, so
18+
> there's no tracked resource for a rename to plan a destroy/recreate of. A
19+
> first real apply still needs `terraform import` for the resource group and
20+
> the SWA (both already exist, provisioned out-of-band via `az` CLI — see
21+
> "Nothing here is currently Terraform-managed" in the migration plan) or it
22+
> will try to create duplicates and fail. `enable_custom_domain` now defaults
23+
> to `true`, matching the live binding (done directly via `az staticwebapp
24+
> hostname set`, not through this stack — see the resolved known-gap note
25+
> below) — but the same import caveat applies before a first real apply.
1426
1527
Boundary:
1628

@@ -31,14 +43,17 @@ Apply sequence:
3143

3244
Do not use `codeflow.io` in this stack until domain ownership and brand-collision risk are confirmed.
3345

34-
## Known gap: Azure subscription access
35-
36-
As of 2026-08-19, the SWA resource (`pvc-prod-codeflow-swa`) was not found via
37-
`az staticwebapp list` under either `celladore-sub` or `neuralliquid-sub` — the
38-
two subscriptions available in the session that made this update. It is
39-
presumably still under a phoenixvc-owned subscription that didn't transfer
40-
with the repo. Steps 1, 2, 5, and 6 above need credentials for whichever
41-
subscription actually holds this resource group; confirm that before running
42-
them. The site itself is independently confirmed live (HTTP 200 from its
43-
default hostname, `Last-Modified` current) — this gap is about Terraform/CLI
44-
access to the resource, not about whether the site is up.
46+
## Known gap: Azure subscription access — resolved 2026-08-19
47+
48+
This gap (originally: the SWA wasn't reachable from any subscription available
49+
in the session that wrote this note, presumably stranded under a
50+
phoenixvc-owned subscription) is resolved as of the same day, but not the way
51+
it originally implied. It wasn't a missing-credential problem — it was that
52+
`pvc-prod-codeflow-swa` no longer exists at all. The whole resource group was
53+
recreated under `celladore-sub` as `cel-prod-codeflow-rg` /
54+
`cel-prod-codeflow-swa` (see the banner above). `celladore-sub` credentials
55+
are available in this session and steps 1–6 are all now practically done —
56+
via direct `az` CLI, not by actually applying this stack (see the banner
57+
above for why a real apply still needs `terraform import` first). The site is
58+
confirmed live end-to-end: `curl -I https://codeflow.celladoresystems.com/`
59+
returns `200` with a valid cert and the expected security headers.

orchestration/infrastructure/terraform/website/variables.tf

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ variable "tenant_id" {
1111
variable "resource_group_name" {
1212
description = "Resource group for Codeflow website hosting."
1313
type = string
14-
default = "pvc-prod-codeflow-rg"
14+
default = "cel-prod-codeflow-rg"
1515
}
1616

1717
variable "location" {
@@ -23,7 +23,7 @@ variable "location" {
2323
variable "static_web_app_name" {
2424
description = "Azure Static Web App resource name."
2525
type = string
26-
default = "pvc-prod-codeflow-swa"
26+
default = "cel-prod-codeflow-swa"
2727
}
2828

2929
variable "custom_domain" {
@@ -33,21 +33,21 @@ variable "custom_domain" {
3333
}
3434

3535
variable "enable_custom_domain" {
36-
description = "Enable only after celladore-org/infrastructure/dns has created the CNAME to the Static Web App default hostname and it resolves."
36+
description = "Enable only after celladore-org/infrastructure/dns has created the CNAME to the Static Web App default hostname and it resolves. Live reality as of 2026-08-19: the CNAME resolves and the custom domain is bound (done directly via `az staticwebapp hostname set`, not through this stack — see README's known-gap note). Default reflects that; a real first apply still needs the SWA imported first or this will try to create a duplicate."
3737
type = bool
38-
default = false
38+
default = true
3939
}
4040

4141
variable "sku_tier" {
42-
description = "Static Web App SKU tier."
42+
description = "Static Web App SKU tier. Live resource is Free (confirmed supports up to 2 custom domains, which covers this use case) — departs from this stack's original Standard default."
4343
type = string
44-
default = "Standard"
44+
default = "Free"
4545
}
4646

4747
variable "sku_size" {
4848
description = "Static Web App SKU size."
4949
type = string
50-
default = "Standard"
50+
default = "Free"
5151
}
5252

5353
variable "tags" {
@@ -56,7 +56,7 @@ variable "tags" {
5656
default = {
5757
Environment = "Production"
5858
Product = "Codeflow"
59-
Owner = "phoenixvc"
59+
Owner = "celladore"
6060
ManagedBy = "Terraform"
6161
}
6262
}

scripts/setup-azure-auth-for-pipeline.ps1

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@ param(
55
[Parameter(Mandatory = $true)]
66
[string]$TenantId,
77

8-
[string]$IdentityResourceGroup = "pvc-prod-codeflow-identity-rg",
8+
[string]$IdentityResourceGroup = "cel-prod-codeflow-identity-rg",
99

10-
[string]$DeploymentResourceGroup = "pvc-prod-codeflow-rg",
10+
[string]$DeploymentResourceGroup = "cel-prod-codeflow-rg",
1111

12-
[string]$ContainerRegistryName = "pvcprodcodeflowacr",
12+
[string]$ContainerRegistryName = "celprodcodeflowacr",
1313

1414
[string]$Location = "southafricanorth",
1515

16-
[string]$IdentityName = "pvc-prod-codeflow-github-mi",
16+
[string]$IdentityName = "cel-prod-codeflow-github-mi",
1717

18-
[string]$GitHubOwner = "phoenixvc",
18+
[string]$GitHubOwner = "celladore",
1919

2020
[string]$GitHubRepository = "codeflow-engine",
2121

@@ -80,6 +80,14 @@ Invoke-Az role assignment create `
8080
--role AcrPush `
8181
--scope $containerRegistryId | Out-Null
8282

83+
# NOTE (2026-08-19): this classic-format subject matched what GitHub issued when this
84+
# script was first used against phoenixvc/codeflow-engine, but the celladore org has
85+
# GitHub's immutable-OIDC-subject-ID behavior active — its actual `sub` claim is
86+
# `repo:<org>@<org_id>/<repo>@<repo_id>:environment:<name>`, not this string. Azure does
87+
# exact string matching, so a fresh credential created with this subject will fail
88+
# deploys with AADSTS700213 until corrected via `az identity federated-credential
89+
# update --subject <the exact string from the error>`. Confirm which format applies
90+
# before relying on this value; see CEL_MIGRATION_PLAN.md's Phase 4 log for the story.
8391
$subject = "repo:${GitHubOwner}/${GitHubRepository}:environment:${GitHubEnvironment}"
8492

8593
Invoke-Az identity federated-credential create `
@@ -95,6 +103,8 @@ Invoke-Az identity federated-credential create `
95103
AZURE_TENANT_ID = $selectedTenantId
96104
AZURE_SUBSCRIPTION_ID = $SubscriptionId
97105
AZURE_RESOURCE_GROUP = $DeploymentResourceGroup
98-
AZURE_CONTAINER_APP = "pvc-prod-codeflow-api"
106+
# Hardcoded rather than parameterized (pre-existing; not a $DeploymentResourceGroup
107+
# derivation) — update this literal directly if the Container App name ever changes.
108+
AZURE_CONTAINER_APP = "cel-prod-codeflow-api"
99109
AZURE_CONTAINER_REGISTRY = $ContainerRegistryName
100110
} | Format-List

0 commit comments

Comments
 (0)