Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
5a74666
Update parameters for AI services and remove secondary location refer…
Prachig-Microsoft Mar 17, 2026
2b56470
Remove aiDeploymentLocation parameter from workflows and documentation
Prachig-Microsoft Mar 18, 2026
784f5dd
Revert environment variable naming to original format
Prachig-Microsoft Mar 20, 2026
cef5227
Fix Log Analytics workspace variable naming consistency
Prachig-Microsoft Mar 23, 2026
1fbaf05
Rename Log Analytics Workspace ID to Resource ID and update validatio…
Vamshi-Microsoft Mar 26, 2026
9f37f38
Update environment variable names for consistency - AZURE_ENV_FOUNDRY…
Prachig-Microsoft Apr 9, 2026
87574a4
Update compiled bicep output (main.json) after parameter name changes
Prachig-Microsoft Apr 9, 2026
208aa30
Fix AZURE_EXISTING_AIPROJECT_RESOURCE_ID variable name mismatch in wo…
Prachig-Microsoft Apr 9, 2026
b7138e0
Add gawk to Dockerfile dependencies for uv installer checksum validation
Prachig-Microsoft Apr 9, 2026
91d33e2
Merge branch 'dev' of https://github.com/microsoft/Container-Migratio…
Prachig-Microsoft Apr 9, 2026
fec1bec
Resolve merge conflicts in main.json
Prachig-Microsoft Apr 9, 2026
484dbde
Remove duplicate gawk entries from Dockerfiles
Prachig-Microsoft Apr 9, 2026
ae79ccc
Merge latest changes from dev branch
Prachig-Microsoft Apr 14, 2026
045abc8
Standardize azd environment variable naming convention
Prachig-Microsoft Apr 14, 2026
b26a5a4
Revert GitHub secret names to existing ones to avoid workflow failures
Prachig-Microsoft Apr 14, 2026
651d317
Fix secret naming inconsistency in workflow files
Prachig-Microsoft Apr 15, 2026
4f2630d
Standardize parameter names to match azd environment variables
Prachig-Microsoft Apr 17, 2026
bf24253
Merge latest dev changes (LocalDevelopmentSetup.md updates)
Prachig-Microsoft Apr 17, 2026
749364d
Revert secret names to original dev branch names
Prachig-Microsoft Apr 17, 2026
cb053d5
Add files via upload
Thanusree-Microsoft Apr 17, 2026
6945fb7
Update authentication configuration steps in documentation
Thanusree-Microsoft Apr 17, 2026
140fc33
Add files via upload
Thanusree-Microsoft Apr 17, 2026
859d75d
install latest bicep via CLI
AjitPadhi-Microsoft Apr 28, 2026
635fafe
install latest bicep via CLI
AjitPadhi-Microsoft Apr 28, 2026
d2bd7f4
Revert "install latest bicep via CLI"
AjitPadhi-Microsoft Apr 28, 2026
9829d4f
Merge origin/dev - Keep parameter naming convention (gptModelName/gpt…
Prachig-Microsoft Apr 30, 2026
9801af1
Merge pull request #145 from microsoft/psl-prachi-params
Roopan-Microsoft May 4, 2026
ffea5af
Merge pull request #208 from microsoft/PSL-US-42068
Roopan-Microsoft May 4, 2026
633a3df
add cosmos in pyproject
Shreyas-Microsoft May 4, 2026
33f2e23
push new uv lock file
Shreyas-Microsoft May 4, 2026
87fb138
Merge pull request #217 from microsoft/psl-add-cosmos
Roopan-Microsoft May 4, 2026
fa11200
fix blank page issue
Shreyas-Microsoft May 5, 2026
cc728e0
Merge pull request #219 from microsoft/psl-blank-page-bug
Roopan-Microsoft May 6, 2026
c0d5766
fix: fixed all copilot comments
VishalS-Microsoft May 6, 2026
1b9abf6
fix: allow insecure HTTP for internal container communication
VishalS-Microsoft May 6, 2026
f6e2588
fix: standardize comments and remove telemetry parameter from deploym…
VishalS-Microsoft May 6, 2026
99bd63e
fix: update API versions and generator metadata in deployment template
VishalS-Microsoft May 6, 2026
1976a0d
fix: streamline resource group creation by consolidating tag handling
VishalS-Microsoft May 6, 2026
e3b6d65
Merge pull request #192 from microsoft/psl-imageupdate
Roopan-Microsoft May 6, 2026
7bc1fff
Merge pull request #220 from microsoft/psl-fixcopilotcomments-cmv2
Roopan-Microsoft May 6, 2026
23525d9
Merge pull request #215 from microsoft/dev
Roopan-Microsoft May 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .azuredevops/azure-pipeline-infrastructure.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ parameters:
displayName: Resource Group Name
type: string
default: 'rg-conmig-dev'
- name: containerRegistryHost
displayName: Container Registry Host (exclude https://)
- name: containerRegistryEndpoint
displayName: Container Registry Endpoint (exclude https://)
type: string
default: 'acrcontainermigrationdev.azurecr.io'
- name: tags
Expand All @@ -40,7 +40,7 @@ variables:
vmImageName: 'ubuntu-latest'
envName: ${{ parameters.environmentName }}
resourceGroupName: ${{ parameters.resourceGroupName }}
containerRegistryHost: ${{ parameters.containerRegistryHost }}
containerRegistryEndpoint: ${{ parameters.containerRegistryEndpoint }}
tags: ${{ convertToJson(parameters.tags) }}
enableMonitoring: ${{ parameters.enableMonitoring }}

Expand Down Expand Up @@ -76,14 +76,14 @@ stages:
--name "deploy.$(envName).$(Build.BuildId)" \
--resource-group $(resourceGroupName) \
--template-file $(Build.SourcesDirectory)/infra/main.bicep \
--parameters solutionName=$(envName) containerRegistryHost='$(containerRegistryHost)' tags='$(tags)' enableMonitoring=$(enableMonitoring) \
--parameters solutionName=$(envName) containerRegistryEndpoint='$(containerRegistryEndpoint)' tags='$(tags)' enableMonitoring=$(enableMonitoring) \
--query "properties.outputs" \
--output json) || {
echo "❌ ERROR: Bicep deployment failed!"
echo "Deployment name: deploy.$(envName).$(Build.BuildId)"
echo "Resource group: $(resourceGroupName)"
echo "Template file: $(Build.SourcesDirectory)/infra/main.bicep"
echo "Parameters: solutionName=$(envName) containerRegistryHost='$(containerRegistryHost)'"
echo "Parameters: solutionName=$(envName) containerRegistryEndpoint='$(containerRegistryEndpoint)'"

# Try to get deployment error details
echo "Attempting to retrieve deployment error details..."
Expand Down
6 changes: 5 additions & 1 deletion .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,11 @@
"features": {
"ghcr.io/dhoeric/features/hadolint:1": {},
"ghcr.io/jsburckhardt/devcontainer-features/uv:1": {},
"ghcr.io/devcontainers/features/azure-cli:1": {},
"ghcr.io/devcontainers/features/azure-cli:1": {
"installBicep": true,
"version": "latest",
"bicepVersion": "latest"
},
"ghcr.io/azure/azure-dev/azd:latest": {},
"ghcr.io/devcontainers/features/docker-in-docker:2": {}
},
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/azd-template-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ jobs:
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
AZURE_ENV_NAME: azd-${{ vars.AZURE_ENV_NAME }}-${{ env.HHMM }}
AZURE_LOCATION: ${{ vars.AZURE_LOCATION }}
AZURE_AI_SERVICE_LOCATION: ${{ vars.AZURE_LOCATION }}
AZURE_AI_MODEL_CAPACITY: 1 # keep low to avoid potential quota issues
AZURE_ENV_AI_SERVICE_LOCATION: ${{ vars.AZURE_LOCATION }}
AZURE_ENV_GPT_MODEL_CAPACITY: 1 # keep low to avoid potential quota issues

- name: print result
run: cat ${{ steps.validation.outputs.resultFile }}
2 changes: 1 addition & 1 deletion .github/workflows/azure-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,5 +52,5 @@ jobs:
azd env new "$AZURE_ENV_NAME" --subscription "$AZURE_SUBSCRIPTION_ID" --location "$AZURE_LOCATION" --no-prompt
fi
azd config set defaults.subscription "$AZURE_SUBSCRIPTION_ID"
azd env set AZURE_AI_SERVICE_LOCATION="$AZURE_LOCATION"
azd env set AZURE_ENV_AI_SERVICE_LOCATION="$AZURE_LOCATION"
azd up --no-prompt
1 change: 0 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,6 @@ jobs:
--template-file infra/main.bicep \
--parameters solutionName=${{env.SOLUTION_PREFIX}} \
--parameters location=${{ env.AZURE_LOCATION }} \
--parameters aiDeploymentLocation=${{ env.AZURE_LOCATION }} \
--parameters azureAiServiceLocation=${{ env.AZURE_LOCATION }} \
--parameters createdBy="pipeline" \
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/deploy-orchestrator.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,13 @@ on:
required: false
default: false
type: boolean
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID:
description: 'Log Analytics Workspace ID (Optional)'
AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID:
description: 'Log Analytics Workspace Resource ID (Optional)'
required: false
default: ''
type: string
AZURE_EXISTING_AI_PROJECT_RESOURCE_ID:
description: 'AI Project Resource ID (Optional)'
AZURE_EXISTING_AIPROJECT_RESOURCE_ID:
description: 'Existing AI Project full Azure Resource ID (Optional; must be a full Azure Resource ID, not just the project name or a GUID)'
required: false
default: ''
type: string
Expand Down Expand Up @@ -81,8 +81,8 @@ jobs:
EXP: ${{ inputs.EXP }}
build_docker_image: ${{ inputs.build_docker_image }}
existing_webapp_url: ${{ inputs.existing_webapp_url }}
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}
AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID: ${{ inputs.AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID }}
AZURE_EXISTING_AIPROJECT_RESOURCE_ID: ${{ inputs.AZURE_EXISTING_AIPROJECT_RESOURCE_ID }}
docker_image_tag: ${{ needs.docker-build.outputs.IMAGE_TAG }}
cleanup_resources: ${{ inputs.cleanup_resources }}
secrets: inherit
Expand Down
52 changes: 26 additions & 26 deletions .github/workflows/deploy-v2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,13 +84,13 @@ on:
default: false
type: boolean

AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID:
description: 'Log Analytics Workspace ID (Optional)'
AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID:
description: 'Log Analytics Workspace Resource ID (Optional)'
required: false
default: ''
type: string
AZURE_EXISTING_AI_PROJECT_RESOURCE_ID:
description: 'AI Project Resource ID (Optional)'
AZURE_EXISTING_AIPROJECT_RESOURCE_ID:
description: 'Full Azure AI Project Resource ID (Optional, format: /subscriptions/.../resourceGroups/.../providers/...)'
required: false
default: ''
type: string
Expand All @@ -112,8 +112,8 @@ jobs:
exp: ${{ steps.validate.outputs.exp }}
build_docker_image: ${{ steps.validate.outputs.build_docker_image }}
cleanup_resources: ${{ steps.validate.outputs.cleanup_resources }}
azure_env_log_analytics_workspace_id: ${{ steps.validate.outputs.azure_env_log_analytics_workspace_id }}
azure_existing_ai_project_resource_id: ${{ steps.validate.outputs.azure_existing_ai_project_resource_id }}
azure_env_existing_log_analytics_workspace_rid: ${{ steps.validate.outputs.azure_env_existing_log_analytics_workspace_rid }}
azure_existing_aiproject_resource_id: ${{ steps.validate.outputs.azure_existing_aiproject_resource_id }}
existing_webapp_url: ${{ steps.validate.outputs.existing_webapp_url }}
steps:
- name: Validate Workflow Input Parameters
Expand All @@ -127,8 +127,8 @@ jobs:
INPUT_EXP: ${{ github.event.inputs.EXP }}
INPUT_BUILD_DOCKER_IMAGE: ${{ github.event.inputs.build_docker_image }}
INPUT_CLEANUP_RESOURCES: ${{ github.event.inputs.cleanup_resources }}
INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ github.event.inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
INPUT_AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ github.event.inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}
INPUT_AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID: ${{ github.event.inputs.AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID }}
INPUT_AZURE_EXISTING_AIPROJECT_RESOURCE_ID: ${{ github.event.inputs.AZURE_EXISTING_AIPROJECT_RESOURCE_ID }}
INPUT_EXISTING_WEBAPP_URL: ${{ github.event.inputs.existing_webapp_url }}
run: |
echo "🔍 Validating workflow input parameters..."
Expand Down Expand Up @@ -209,32 +209,32 @@ jobs:
echo "✅ cleanup_resources: '$CLEANUP_RESOURCES' is valid"
fi

# Validate AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID (optional, Azure Resource ID format)
if [[ -n "$INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID" ]]; then
if [[ ! "$INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID" =~ ^/subscriptions/[a-fA-F0-9-]+/[Rr]esource[Gg]roups/[^/]+/providers/[Mm]icrosoft\.[Oo]perational[Ii]nsights/[Ww]orkspaces/[^/]+$ ]]; then
echo "❌ ERROR: AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID is invalid. Must be a valid Azure Resource ID format:"
# Validate AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID (optional, Azure Resource ID format)
if [[ -n "$INPUT_AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID" ]]; then
if [[ ! "$INPUT_AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID" =~ ^/subscriptions/[a-fA-F0-9-]+/[Rr]esource[Gg]roups/[^/]+/providers/[Mm]icrosoft\.[Oo]perational[Ii]nsights/[Ww]orkspaces/[^/]+$ ]]; then
echo "❌ ERROR: AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID is invalid. Must be a valid Azure Resource ID format:"
echo " /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}"
echo " Got: '$INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID'"
echo " Got: '$INPUT_AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID'"
VALIDATION_FAILED=true
else
echo "✅ AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: Valid Resource ID format"
echo "✅ AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID: Valid Resource ID format"
fi
else
echo "✅ AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: Not provided (optional)"
echo "✅ AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID: Not provided (optional)"
fi

# Validate AZURE_EXISTING_AI_PROJECT_RESOURCE_ID (optional, Azure Resource ID format)
if [[ -n "$INPUT_AZURE_EXISTING_AI_PROJECT_RESOURCE_ID" ]]; then
if [[ ! "$INPUT_AZURE_EXISTING_AI_PROJECT_RESOURCE_ID" =~ ^/subscriptions/[a-fA-F0-9-]+/[Rr]esource[Gg]roups/[^/]+/providers/([Mm]icrosoft\.[Mm]achine[Ll]earning[Ss]ervices/([Ww]orkspaces|[Pp]rojects)/[^/]+|[Mm]icrosoft\.[Cc]ognitive[Ss]ervices/[Aa]ccounts/[^/]+/[Pp]rojects/[^/]+)$ ]]; then
echo "❌ ERROR: AZURE_EXISTING_AI_PROJECT_RESOURCE_ID is invalid. Must be a valid Azure Resource ID format:"
# Validate AZURE_EXISTING_AIPROJECT_RESOURCE_ID (optional, Azure Resource ID format)
if [[ -n "$INPUT_AZURE_EXISTING_AIPROJECT_RESOURCE_ID" ]]; then
if [[ ! "$INPUT_AZURE_EXISTING_AIPROJECT_RESOURCE_ID" =~ ^/subscriptions/[a-fA-F0-9-]+/[Rr]esource[Gg]roups/[^/]+/providers/([Mm]icrosoft\.[Mm]achine[Ll]earning[Ss]ervices/([Ww]orkspaces|[Pp]rojects)/[^/]+|[Mm]icrosoft\.[Cc]ognitive[Ss]ervices/[Aa]ccounts/[^/]+/[Pp]rojects/[^/]+)$ ]]; then
echo "❌ ERROR: AZURE_EXISTING_AIPROJECT_RESOURCE_ID is invalid. Must be a valid Azure Resource ID format:"
echo " /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/projects/{projectName}"
echo " Got: '$INPUT_AZURE_EXISTING_AI_PROJECT_RESOURCE_ID'"
echo " Got: '$INPUT_AZURE_EXISTING_AIPROJECT_RESOURCE_ID'"
VALIDATION_FAILED=true
else
echo "✅ AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: Valid Resource ID format"
echo "✅ AZURE_EXISTING_AIPROJECT_RESOURCE_ID: Valid Resource ID format"
fi
else
echo "✅ AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: Not provided (optional)"
echo "✅ AZURE_EXISTING_AIPROJECT_RESOURCE_ID: Not provided (optional)"
fi

# Validate existing_webapp_url (optional, must start with https)
Expand Down Expand Up @@ -268,8 +268,8 @@ jobs:
echo "exp=$EXP_ENABLED" >> $GITHUB_OUTPUT
echo "build_docker_image=$BUILD_DOCKER" >> $GITHUB_OUTPUT
echo "cleanup_resources=$CLEANUP_RESOURCES" >> $GITHUB_OUTPUT
echo "azure_env_log_analytics_workspace_id=$INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID" >> $GITHUB_OUTPUT
echo "azure_existing_ai_project_resource_id=$INPUT_AZURE_EXISTING_AI_PROJECT_RESOURCE_ID" >> $GITHUB_OUTPUT
echo "azure_env_existing_log_analytics_workspace_rid=$INPUT_AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID" >> $GITHUB_OUTPUT
echo "azure_existing_aiproject_resource_id=$INPUT_AZURE_EXISTING_AIPROJECT_RESOURCE_ID" >> $GITHUB_OUTPUT
echo "existing_webapp_url=$INPUT_EXISTING_WEBAPP_URL" >> $GITHUB_OUTPUT

Run:
Expand All @@ -284,8 +284,8 @@ jobs:
EXP: ${{ needs.validate-inputs.outputs.exp == 'true' }}
build_docker_image: ${{ needs.validate-inputs.outputs.build_docker_image == 'true' }}
cleanup_resources: ${{ needs.validate-inputs.outputs.cleanup_resources == 'true' }}
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ needs.validate-inputs.outputs.azure_env_log_analytics_workspace_id || '' }}
AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ needs.validate-inputs.outputs.azure_existing_ai_project_resource_id || '' }}
AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID: ${{ needs.validate-inputs.outputs.azure_env_existing_log_analytics_workspace_rid || '' }}
AZURE_EXISTING_AIPROJECT_RESOURCE_ID: ${{ needs.validate-inputs.outputs.azure_existing_aiproject_resource_id || '' }}
existing_webapp_url: ${{ needs.validate-inputs.outputs.existing_webapp_url || '' }}
trigger_type: ${{ github.event_name }}
secrets: inherit
1 change: 0 additions & 1 deletion .github/workflows/job-cleanup-deployment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,6 @@ jobs:
azd env set AZURE_RESOURCE_GROUP "${RESOURCE_GROUP_NAME}"
azd env set AZURE_SUBSCRIPTION_ID "${{ secrets.AZURE_SUBSCRIPTION_ID }}"
azd env set AZURE_LOCATION="${AZURE_LOCATION}"
azd env set AZURE_AI_DEPLOYMENT_TYPE="${AZURE_ENV_OPENAI_LOCATION}"
fi
- name: Delete deployment using azd
Expand Down
Loading
Loading