Skip to content

Solution template scaffold for Azure AI Foundry gallery (with azd up workaround)#94

Draft
solarrezaei11 wants to merge 3 commits into
microsoft-foundry:mainfrom
solarrezaei11:solution-template
Draft

Solution template scaffold for Azure AI Foundry gallery (with azd up workaround)#94
solarrezaei11 wants to merge 3 commits into
microsoft-foundry:mainfrom
solarrezaei11:solution-template

Conversation

@solarrezaei11

Copy link
Copy Markdown
Contributor

Draft PR for the Voice Live evaluation harness solution template so it can be onboarded to the Azure AI Foundry gallery.

What's in this PR

  • Solution template scaffold (azure.yaml, .devcontainer, .env.example, CONTRIBUTING.md)
  • DeploymentGuide.md + TRANSPARENCY_FAQ.md
  • README expansion (~236 lines) tailored for the gallery flow
  • Cross-platform pre/post provision + deploy hooks (sh + ps1) with idempotency checks

azd up workaround

We hit a role-assignment failure during azd up preprovision (inline RBAC in Bicep was racing against principal propagation). Workaround:

  • Removed inline RBAC from evaluation_agent/infra/main.bicep and modules/function-app.bicep
  • Moved role assignments to scripts/preprovision.sh / preprovision.ps1 (idempotent, retry-aware)
  • Added remoteBuild flag + OwnerAlias tag to align with Foundry gallery requirements

Status

  • Draft — finishing onboarding with Varun Dua today; will loop in Amir Zur for the gallery submission.
  • Posted from fork solarrezaei11/voicelive-evaluation since write access to upstream is currently limited.

solarrezaei11 and others added 3 commits May 19, 2026 11:09
Add root-level azure.yaml, .devcontainer, and gallery-ready README to
make the repo discoverable as an Azure AI Foundry solution template.

Changes:
- azure.yaml: Root-level AZD config with metadata.template, references
  existing evaluation_agent/infra/ Bicep and deploy/ services
- .devcontainer/devcontainer.json: Python 3.11 dev container with azd,
  Azure CLI, and Bicep support for one-click Codespaces
- README.md: Rewritten in gallery-ready format with Codespaces/Dev
  Container badges, architecture diagram, quick deploy, use case
  framing, cost/cleanup section, and sample dataset table
- docs/TRANSPARENCY_FAQ.md: Responsible AI FAQ (6 required questions)
- docs/DeploymentGuide.md: Step-by-step deployment and troubleshooting
- .gitignore: Add .azure/ directory for azd environment files

No changes to existing evaluation_harness/ or evaluation_agent/ code.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…igned improvements

Critical fixes identified by validating against the Foundry scaffold wizard
(microsoft/Foundry-AI-solution-templates-creation) quality checklist:

- scripts/preprovision.sh + .ps1: Region validation that exits non-zero for
  unsupported regions (eastus2, swedencentral confirmed)
- scripts/postprovision.sh: Invokes canonical PowerShell script via pwsh on
  Linux/Codespaces; exits non-zero if pwsh missing (prevents silent skip)
- scripts/postdeploy.sh: Real post-deploy output with fallback guidance
- azure.yaml: Added requiredVersions (azd >= 1.18.0), preprovision hook,
  proper cross-platform hook references
- .devcontainer: Added PowerShell feature so Codespaces hooks work
- CONTRIBUTING.md: Standard Microsoft contributing guide
- .env.example: Root-level environment variable reference
- README.md: Added RAI solution-accelerator callout, navigation anchors,
  fixed keyless access claim to be accurate
- docs/DeploymentGuide.md: Fixed keyless access claim

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Fixes azd up failures on team subscriptions that lack User Access
Administrator permissions:

- function-app.bicep: Remove inline roleAssignment resources (Storage
  Blob/Table Data Contributor, Website Contributor). These are already
  handled by postprovision.ps1 via az CLI, which is idempotent and
  works with broader permission sets. Comment in main.bicep (line 193)
  already documents this as the intended pattern.
- main.bicep: Add OwnerAlias tag param (required by subscription
  policies on Speech team subs) with default empty string.
- azure.yaml: Add remoteBuild: true to container app service so azd
  doesn't require local Docker Desktop.

Validated: azd up successfully provisioned RG + Storage + Functions +
App Insights + deployed Function App on Speech Services - DEV - Speech
Studio subscription.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant