RELOPS-2548: Add FooFrix Azure subscription, gallery, and storage - #339
Conversation
|
Please create a Initial membership should include:
The following intended members did not have matching accounts in the Mozilla Entra directory when checked. They will need accounts provisioned and group membership added in a follow-up: Frank Doty, Andrew Creskey, Jamie Nicol, Marc Leclair, Markus Stange, and Sky Ning. This group provides the team's direct subscription access; FooFrix continues to own VM creation and deletion using its provisioning service principal. |
|
Following the FooFrix and worker-images review, please include the remaining Azure foundation pieces below in this Terraform change. The dedicated subscription, isolated
Ownership and next step: Perf owns VM provisioning/deletion and the FooFrix harness/GCP integration. RelOps supplies the Azure foundation and image-build path. Image support is tracked in RELOPS-2570 — Add FooFrix Windows image support to worker-images, linked to RELOPS-2548, assigned to Mark Cornmesser, and In Progress. We will follow TCEng's team-owned config/bootstrap approach with a dedicated authorized workflow, publishing into the isolated FooFrix gallery. Windows tooling, patched Chromium/profiling compatibility, standalone startup, and image validation are part of that follow-up; no Taskcluster pool migration is planned here. |
FooFrix keeps its launcher, scheduler, queue, results, and dashboard in GCP. This change adds a dedicated Azure DevTest subscription for Windows VMs and image builds. Perf owns VM creation, deletion, and the harness/GCP integration. RelOps supplies the Azure resources and image-build path.
RELOPS-2548. Image support is tracked in RELOPS-2570.
azure_admanages the Platform Performance group, the VM-provisioning application/service principal, and a separate image-build application/service principal.azure_foofrixmanages the subscription, resource groups, Key Vault, worker and build managed identities, gallery, image definition, private artifact storage, and role assignments. The change uses direct Terraform resources.Access:
artifacts, and Key Vault Secrets Officer. Six other members need accounts before they can be added.artifacts, and permission to attach the build managed identity. The build managed identity also has Blob Data Reader for downloads inside temporary Packer VMs.The image-build identity trusts the exact GitHub OIDC subject
repo:mozilla-platform-ops/worker-images:environment:foofrix-image-build. RELOPS-2570 must create and protect that environment and use it in the dedicated authorized workflow. The subject identifies the environment, not a workflow file. Packer must use the existing build resource group and attach the build managed identity; guest downloads need managed-identity authentication.Terraform owns the isolated
foofrixgallery andwin11_64_24h2definition. The definition uses the existing FXCI properties: Windows 11 24H2, x64, Hyper-V V2, generalized, andMicrosoftWindowsDesktop/Windows-11/win11-24h2-avd. Worker-images publishes versions. Outputs provide the gallery and image definition, build resource group, build application client ID, managed identity IDs, and artifact container URL.The private
artifactscontainer holds source, binaries, and image-build files in Standard LRS storage. Test results remain in GCS. FooFrix uses the existing Mozilla billing profile and invoice section; the daily cost exports have no subscription filter.Validation:
azure_adhas an existing directory-role deprecation warning.Nothing has been applied. Apply
azure_adfirst. Subscription creation requires a targeted plan forazurerm_subscription.foofrix, followed by a full plan. No full live plan or image build was run for these additions. Client-secret creation and private credential handoff remain deployment tasks.GCS authentication still needs agreement with Perf. If Azure managed identity to Google Workload Identity Federation is selected, the Entra audience application belongs in
azure_ad; Google trust and bucket grants belong in GCP. Windows tooling, profiling compatibility, startup, and image validation remain in RELOPS-2570. This PR does not create VMs or change Taskcluster pools.Integration requirements from dpalmeiro/foofrix:
foofrix, bucketfoofrix-findings, launcher identityfoofrix-worker-launcher@foofrix.iam.gserviceaccount.com, and worker identityfoofrix-worker@foofrix.iam.gserviceaccount.com. These are repository defaults, not a live GCP inventory.gcloud storageand the Google Storage SDK for results and queue state. Azure workers need credentials for both paths, including object updates/deletes and bucket metadata reads. Azure Blob Storage does not replace this integration automatically.is_debug=false,is_official_build=true,symbol_level=2, andenable_profiling=true. The image scripts target Linux/GCE. Chromium marker output excludes Windows, and the Samply wrapper uses Bash. Windows image work must include validation or changes for these paths.