From 5a74666aa2c11b8af3d74052257ee23d8e896aa3 Mon Sep 17 00:00:00 2001 From: Prachig-Microsoft Date: Tue, 17 Mar 2026 21:12:20 +0530 Subject: [PATCH 1/5] Update parameters for AI services and remove secondary location references --- docs/CustomizingAzdParameters.md | 4 +++- infra/main.parameters.json | 8 +------- infra/main.waf.parameters.json | 8 +------- 3 files changed, 5 insertions(+), 15 deletions(-) diff --git a/docs/CustomizingAzdParameters.md b/docs/CustomizingAzdParameters.md index 7989a84..c297624 100644 --- a/docs/CustomizingAzdParameters.md +++ b/docs/CustomizingAzdParameters.md @@ -10,13 +10,15 @@ By default this template will use the environment name as the prefix to prevent | ------------------------------- | ------- | ----------------------- | ------------------------------------------------------------------------------------- | | `AZURE_ENV_NAME` | string | `conmig` | Sets the environment name prefix for all Azure resources. | | `AZURE_LOCATION` | string | `westus` | Sets the location/region for all Azure resources. | -| `AZURE_SECONDARY_LOCATION` | string | `eastus2` | Specifies a secondary Azure region. | | `AZURE_CONTAINER_REGISTRY_HOST` | string | `myregistry.azurecr.io` | Specifies the container registry from which to pull app container images. | +| `AZURE_AI_SERVICE_LOCATION` | string | `eastus2` | Specifies the Azure region for AI services (OpenAI/AI Foundry). | | `AZURE_AI_DEPLOYMENT_LOCATION` | string | `eastus2` | Specifies alternative location for AI model resources. | | `AZURE_AI_DEPLOYMENT_TYPE` | string | `GlobalStandard` | Defines the model deployment type (allowed values: `Standard`, `GlobalStandard`). | | `AZURE_AI_MODEL_NAME` | string | `o3` | Specifies the `o` model name. | | `AZURE_AI_MODEL_VERSION` | string | `2025-04-16` | Specifies the `o` model version. | | `AZURE_AI_MODEL_CAPACITY` | integer | `200` | Sets the model capacity (choose based on your subscription's available `o` capacity). | +| `AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID` | string | `` | Optional. Resource ID of an existing Log Analytics workspace to use. | +| `AZURE_EXISTING_AI_PROJECT_RESOURCE_ID` | string | `` | Optional. Resource ID of an existing AI Foundry project to use. | | `AZURE_ENV_VM_ADMIN_USERNAME` | string | `` | The administrator username for the virtual machine. | | `AZURE_ENV_VM_ADMIN_PASSWORD` | string | `` | The administrator password for the virtual machine. | | `AZURE_ENV_IMAGETAG` | string | `latest` | Specifies the container image tag to use for deployment. | diff --git a/infra/main.parameters.json b/infra/main.parameters.json index cd87169..3825805 100644 --- a/infra/main.parameters.json +++ b/infra/main.parameters.json @@ -8,9 +8,6 @@ "location": { "value": "${AZURE_LOCATION}" }, - "secondaryLocation": { - "value": "${AZURE_SECONDARY_LOCATION}" - }, "containerRegistryHost": { "value": "${AZURE_CONTAINER_REGISTRY_HOST}" }, @@ -20,9 +17,6 @@ "aiDeploymentLocation": { "value": "${AZURE_AI_DEPLOYMENT_LOCATION}" }, - "azureAiServiceLocation": { - "value": "${AZURE_AI_SERVICE_LOCATION}" - }, "aiDeploymentType": { "value": "${AZURE_AI_DEPLOYMENT_TYPE}" }, @@ -41,7 +35,7 @@ "existingLogAnalyticsWorkspaceId": { "value": "${AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID}" }, - "existingFoundryProjectResourceId":{ + "existingFoundryProjectResourceId": { "value": "${AZURE_EXISTING_AI_PROJECT_RESOURCE_ID}" }, "vmAdminUsername": { diff --git a/infra/main.waf.parameters.json b/infra/main.waf.parameters.json index c914e04..a3f350d 100644 --- a/infra/main.waf.parameters.json +++ b/infra/main.waf.parameters.json @@ -8,9 +8,6 @@ "location": { "value": "${AZURE_LOCATION}" }, - "secondaryLocation": { - "value": "${AZURE_SECONDARY_LOCATION}" - }, "containerRegistryHost": { "value": "${AZURE_CONTAINER_REGISTRY_HOST}" }, @@ -20,9 +17,6 @@ "aiDeploymentLocation": { "value": "${AZURE_AI_DEPLOYMENT_LOCATION}" }, - "azureAiServiceLocation": { - "value": "${AZURE_AI_SERVICE_LOCATION}" - }, "aiDeploymentType": { "value": "${AZURE_AI_DEPLOYMENT_TYPE}" }, @@ -56,7 +50,7 @@ "existingLogAnalyticsWorkspaceId": { "value": "${AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID}" }, - "existingFoundryProjectResourceId":{ + "existingFoundryProjectResourceId": { "value": "${AZURE_EXISTING_AI_PROJECT_RESOURCE_ID}" }, "imageTag": { From 2b564708fc6428ff2389ac9076bc0338193fc00b Mon Sep 17 00:00:00 2001 From: Prachig-Microsoft Date: Wed, 18 Mar 2026 14:40:05 +0530 Subject: [PATCH 2/5] Remove aiDeploymentLocation parameter from workflows and documentation --- .github/workflows/ci.yml | 1 - .github/workflows/job-deploy-linux.yml | 1 - .github/workflows/job-deploy-windows.yml | 1 - docs/CustomizingAzdParameters.md | 1 - infra/main.bicep | 17 +---------- infra/main.json | 36 ++++++------------------ infra/main.parameters.json | 3 -- infra/main.waf.parameters.json | 3 -- 8 files changed, 9 insertions(+), 54 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 46378ec..c286b5b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -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" \ diff --git a/.github/workflows/job-deploy-linux.yml b/.github/workflows/job-deploy-linux.yml index 8dd0b1c..4285c0f 100644 --- a/.github/workflows/job-deploy-linux.yml +++ b/.github/workflows/job-deploy-linux.yml @@ -238,7 +238,6 @@ jobs: # Set additional parameters azd env set AZURE_SUBSCRIPTION_ID="${{ secrets.AZURE_SUBSCRIPTION_ID }}" azd env set AZURE_AI_SERVICE_LOCATION="$AZURE_ENV_OPENAI_LOCATION" - azd env set AZURE_AI_DEPLOYMENT_LOCATION="$AZURE_ENV_OPENAI_LOCATION" azd env set AZURE_AI_SERVICE_LOCATION="$AZURE_ENV_OPENAI_LOCATION" azd env set AZURE_LOCATION="$AZURE_LOCATION" azd env set AZURE_RESOURCE_GROUP="$RESOURCE_GROUP_NAME" diff --git a/.github/workflows/job-deploy-windows.yml b/.github/workflows/job-deploy-windows.yml index 8b8f655..bfe00cc 100644 --- a/.github/workflows/job-deploy-windows.yml +++ b/.github/workflows/job-deploy-windows.yml @@ -239,7 +239,6 @@ jobs: # Set additional parameters azd env set AZURE_SUBSCRIPTION_ID="${{ secrets.AZURE_SUBSCRIPTION_ID }}" azd env set AZURE_AI_SERVICE_LOCATION="$env:AZURE_ENV_OPENAI_LOCATION" - azd env set AZURE_AI_DEPLOYMENT_LOCATION="$env:AZURE_ENV_OPENAI_LOCATION" azd env set AZURE_AI_SERVICE_LOCATION="$env:AZURE_ENV_OPENAI_LOCATION" azd env set AZURE_LOCATION="$env:AZURE_LOCATION" azd env set AZURE_RESOURCE_GROUP="$env:RESOURCE_GROUP_NAME" diff --git a/docs/CustomizingAzdParameters.md b/docs/CustomizingAzdParameters.md index c297624..18eae48 100644 --- a/docs/CustomizingAzdParameters.md +++ b/docs/CustomizingAzdParameters.md @@ -12,7 +12,6 @@ By default this template will use the environment name as the prefix to prevent | `AZURE_LOCATION` | string | `westus` | Sets the location/region for all Azure resources. | | `AZURE_CONTAINER_REGISTRY_HOST` | string | `myregistry.azurecr.io` | Specifies the container registry from which to pull app container images. | | `AZURE_AI_SERVICE_LOCATION` | string | `eastus2` | Specifies the Azure region for AI services (OpenAI/AI Foundry). | -| `AZURE_AI_DEPLOYMENT_LOCATION` | string | `eastus2` | Specifies alternative location for AI model resources. | | `AZURE_AI_DEPLOYMENT_TYPE` | string | `GlobalStandard` | Defines the model deployment type (allowed values: `Standard`, `GlobalStandard`). | | `AZURE_AI_MODEL_NAME` | string | `o3` | Specifies the `o` model name. | | `AZURE_AI_MODEL_VERSION` | string | `2025-04-16` | Specifies the `o` model version. | diff --git a/infra/main.bicep b/infra/main.bicep index 8fe3fee..57771e4 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -39,22 +39,7 @@ var solutionLocation = empty(location) ? resourceGroup().location : location @description('Required. Azure region for AI services (OpenAI/AI Foundry). Must be a region that supports o3 model deployment.') param azureAiServiceLocation string -@allowed([ - 'australiaeast' - 'eastus' - 'eastus2' - 'francecentral' - 'japaneast' - 'norwayeast' - 'southindia' - 'swedencentral' - 'uksouth' - 'westus' - 'westus3' -]) -@description('Required. Azure region for AI model deployment. Should match azureAiServiceLocation for optimal performance.') -#disable-next-line no-unused-params -param aiDeploymentLocation string = azureAiServiceLocation + @description('Optional. The host (excluding https://) of an existing container registry. This is the `loginServer` when using Azure Container Registry.') param containerRegistryHost string = 'containermigrationacr.azurecr.io' diff --git a/infra/main.json b/infra/main.json index 659b68a..0e88303 100644 --- a/infra/main.json +++ b/infra/main.json @@ -5,8 +5,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.40.2.10011", - "templateHash": "46164870636097653" + "version": "0.41.2.15936", + "templateHash": "14235802001827059391" } }, "parameters": { @@ -61,26 +61,6 @@ "description": "Required. Azure region for AI services (OpenAI/AI Foundry). Must be a region that supports o3 model deployment." } }, - "aiDeploymentLocation": { - "type": "string", - "defaultValue": "[parameters('azureAiServiceLocation')]", - "allowedValues": [ - "australiaeast", - "eastus", - "eastus2", - "francecentral", - "japaneast", - "norwayeast", - "southindia", - "swedencentral", - "uksouth", - "westus", - "westus3" - ], - "metadata": { - "description": "Required. Azure region for AI model deployment. Should match azureAiServiceLocation for optimal performance." - } - }, "containerRegistryHost": { "type": "string", "defaultValue": "containermigrationacr.azurecr.io", @@ -4698,8 +4678,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.40.2.10011", - "templateHash": "13184395339364197836" + "version": "0.41.2.15936", + "templateHash": "10681183203421948888" } }, "definitions": { @@ -30068,8 +30048,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.40.2.10011", - "templateHash": "8742987061721021759" + "version": "0.41.2.15936", + "templateHash": "8365054813170845685" } }, "definitions": { @@ -52099,9 +52079,9 @@ }, "dependsOn": [ "appIdentity", - "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').cognitiveServices)]", - "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').aiServices)]", "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').openAI)]", + "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').aiServices)]", + "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').cognitiveServices)]", "virtualNetwork" ] }, diff --git a/infra/main.parameters.json b/infra/main.parameters.json index 3825805..cacd6be 100644 --- a/infra/main.parameters.json +++ b/infra/main.parameters.json @@ -14,9 +14,6 @@ "azureAiServiceLocation": { "value": "${AZURE_AI_SERVICE_LOCATION}" }, - "aiDeploymentLocation": { - "value": "${AZURE_AI_DEPLOYMENT_LOCATION}" - }, "aiDeploymentType": { "value": "${AZURE_AI_DEPLOYMENT_TYPE}" }, diff --git a/infra/main.waf.parameters.json b/infra/main.waf.parameters.json index a3f350d..8188f68 100644 --- a/infra/main.waf.parameters.json +++ b/infra/main.waf.parameters.json @@ -14,9 +14,6 @@ "azureAiServiceLocation": { "value": "${AZURE_AI_SERVICE_LOCATION}" }, - "aiDeploymentLocation": { - "value": "${AZURE_AI_DEPLOYMENT_LOCATION}" - }, "aiDeploymentType": { "value": "${AZURE_AI_DEPLOYMENT_TYPE}" }, From 784f5dd09d3405472c6f97ba4ead30eac99814a6 Mon Sep 17 00:00:00 2001 From: Prachig-Microsoft Date: Fri, 20 Mar 2026 21:06:16 +0530 Subject: [PATCH 3/5] Revert environment variable naming to original format - Reverted containerRegistryHost to use AZURE_CONTAINER_REGISTRY_HOST - Reverted AI model parameters to use AZURE_AI_MODEL_NAME, AZURE_AI_MODEL_VERSION, AZURE_AI_MODEL_CAPACITY - Reverted deployment type to use AZURE_AI_DEPLOYMENT_TYPE - Removed enableTelemetry parameter customization (uses bicep default) - Updated workflow files and documentation to reflect original naming - Kept AZURE_ENV_ prefix only for: AI_SERVICE_LOCATION, LOG_ANALYTICS_WORKSPACE_RID, FOUNDRY_PROJECT_RID, VM_ADMIN credentials, IMAGETAG --- .github/workflows/job-deploy-linux.yml | 19 +++++++++---------- .github/workflows/job-deploy-windows.yml | 19 +++++++++---------- docs/CustomizingAzdParameters.md | 14 +++++++------- docs/re-use-foundry-project.md | 2 +- docs/re-use-log-analytics.md | 2 +- infra/main.parameters.json | 9 +++------ infra/main.waf.parameters.json | 6 +++--- 7 files changed, 33 insertions(+), 38 deletions(-) diff --git a/.github/workflows/job-deploy-linux.yml b/.github/workflows/job-deploy-linux.yml index 4285c0f..516a7c5 100644 --- a/.github/workflows/job-deploy-linux.yml +++ b/.github/workflows/job-deploy-linux.yml @@ -237,8 +237,7 @@ jobs: # Set additional parameters azd env set AZURE_SUBSCRIPTION_ID="${{ secrets.AZURE_SUBSCRIPTION_ID }}" - azd env set AZURE_AI_SERVICE_LOCATION="$AZURE_ENV_OPENAI_LOCATION" - azd env set AZURE_AI_SERVICE_LOCATION="$AZURE_ENV_OPENAI_LOCATION" + azd env set AZURE_ENV_AI_SERVICE_LOCATION="$AZURE_ENV_OPENAI_LOCATION" azd env set AZURE_LOCATION="$AZURE_LOCATION" azd env set AZURE_RESOURCE_GROUP="$RESOURCE_GROUP_NAME" azd env set AZURE_ENV_IMAGETAG="$IMAGE_TAG" @@ -248,9 +247,9 @@ jobs: # Extract ACR name from login server and set as environment variable ACR_NAME=$(echo "${{ secrets.ACR_TEST_LOGIN_SERVER }}") azd env set AZURE_CONTAINER_REGISTRY_HOST="$ACR_NAME" - echo "Set ACR name to: $ACR_NAME" + echo "Set ACR host to: $ACR_NAME" else - echo "Skipping ACR name configuration (using existing image)" + echo "Skipping ACR endpoint configuration (using existing image)" fi if [[ "$EXP" == "true" ]]; then @@ -260,19 +259,19 @@ jobs: if [[ -n "$AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID_INPUT" ]]; then EXP_LOG_ANALYTICS_ID="$AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID_INPUT" else - EXP_LOG_ANALYTICS_ID="${{ secrets.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}" + EXP_LOG_ANALYTICS_ID="${{ secrets.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }}" fi if [[ -n "$AZURE_EXISTING_AI_PROJECT_RESOURCE_ID_INPUT" ]]; then EXP_AI_PROJECT_ID="$AZURE_EXISTING_AI_PROJECT_RESOURCE_ID_INPUT" else - EXP_AI_PROJECT_ID="${{ secrets.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}" + EXP_AI_PROJECT_ID="${{ secrets.AZURE_ENV_FOUNDRY_PROJECT_RID }}" fi - echo "AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: $EXP_LOG_ANALYTICS_ID" - echo "AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: $EXP_AI_PROJECT_ID" - azd env set AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID="$EXP_LOG_ANALYTICS_ID" - azd env set AZURE_EXISTING_AI_PROJECT_RESOURCE_ID="$EXP_AI_PROJECT_ID" + echo "AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: $EXP_LOG_ANALYTICS_ID" + echo "AZURE_ENV_FOUNDRY_PROJECT_RID: $EXP_AI_PROJECT_ID" + azd env set AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID="$EXP_LOG_ANALYTICS_ID" + azd env set AZURE_ENV_FOUNDRY_PROJECT_RID="$EXP_AI_PROJECT_ID" else echo "❌ EXP DISABLED - Skipping EXP parameters" if [[ -n "$AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID_INPUT" ]] || [[ -n "$AZURE_EXISTING_AI_PROJECT_RESOURCE_ID_INPUT" ]]; then diff --git a/.github/workflows/job-deploy-windows.yml b/.github/workflows/job-deploy-windows.yml index bfe00cc..7653aec 100644 --- a/.github/workflows/job-deploy-windows.yml +++ b/.github/workflows/job-deploy-windows.yml @@ -238,8 +238,7 @@ jobs: # Set additional parameters azd env set AZURE_SUBSCRIPTION_ID="${{ secrets.AZURE_SUBSCRIPTION_ID }}" - azd env set AZURE_AI_SERVICE_LOCATION="$env:AZURE_ENV_OPENAI_LOCATION" - azd env set AZURE_AI_SERVICE_LOCATION="$env:AZURE_ENV_OPENAI_LOCATION" + azd env set AZURE_ENV_AI_SERVICE_LOCATION="$env:AZURE_ENV_OPENAI_LOCATION" azd env set AZURE_LOCATION="$env:AZURE_LOCATION" azd env set AZURE_RESOURCE_GROUP="$env:RESOURCE_GROUP_NAME" azd env set AZURE_ENV_IMAGETAG="$env:IMAGE_TAG" @@ -248,9 +247,9 @@ jobs: if ($env:BUILD_DOCKER_IMAGE -eq "true") { $ACR_NAME = "${{ secrets.ACR_TEST_LOGIN_SERVER }}" azd env set AZURE_CONTAINER_REGISTRY_HOST="$ACR_NAME" - Write-Host "Set ACR name to: $ACR_NAME" + Write-Host "Set ACR host to: $ACR_NAME" } else { - Write-Host "Skipping ACR name configuration (using existing image)" + Write-Host "Skipping ACR endpoint configuration (using existing image)" } if ($env:EXP -eq "true") { @@ -260,19 +259,19 @@ jobs: if ($env:AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID -ne "") { $EXP_LOG_ANALYTICS_ID = $env:AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID } else { - $EXP_LOG_ANALYTICS_ID = "${{ secrets.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}" + $EXP_LOG_ANALYTICS_ID = "${{ secrets.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }}" } if ($env:AZURE_EXISTING_AI_PROJECT_RESOURCE_ID -ne "") { $EXP_AI_PROJECT_ID = $env:AZURE_EXISTING_AI_PROJECT_RESOURCE_ID } else { - $EXP_AI_PROJECT_ID = "${{ secrets.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}" + $EXP_AI_PROJECT_ID = "${{ secrets.AZURE_ENV_FOUNDRY_PROJECT_RID }}" } - Write-Host "AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: $EXP_LOG_ANALYTICS_ID" - Write-Host "AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: $EXP_AI_PROJECT_ID" - azd env set AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID="$EXP_LOG_ANALYTICS_ID" - azd env set AZURE_EXISTING_AI_PROJECT_RESOURCE_ID="$EXP_AI_PROJECT_ID" + Write-Host "AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: $EXP_LOG_ANALYTICS_ID" + Write-Host "AZURE_ENV_FOUNDRY_PROJECT_RID: $EXP_AI_PROJECT_ID" + azd env set AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID="$EXP_LOG_ANALYTICS_ID" + azd env set AZURE_ENV_FOUNDRY_PROJECT_RID="$EXP_AI_PROJECT_ID" } else { Write-Host "❌ EXP DISABLED - Skipping EXP parameters" } diff --git a/docs/CustomizingAzdParameters.md b/docs/CustomizingAzdParameters.md index 18eae48..201065f 100644 --- a/docs/CustomizingAzdParameters.md +++ b/docs/CustomizingAzdParameters.md @@ -10,14 +10,14 @@ By default this template will use the environment name as the prefix to prevent | ------------------------------- | ------- | ----------------------- | ------------------------------------------------------------------------------------- | | `AZURE_ENV_NAME` | string | `conmig` | Sets the environment name prefix for all Azure resources. | | `AZURE_LOCATION` | string | `westus` | Sets the location/region for all Azure resources. | -| `AZURE_CONTAINER_REGISTRY_HOST` | string | `myregistry.azurecr.io` | Specifies the container registry from which to pull app container images. | -| `AZURE_AI_SERVICE_LOCATION` | string | `eastus2` | Specifies the Azure region for AI services (OpenAI/AI Foundry). | +| `AZURE_CONTAINER_REGISTRY_HOST` | string | `myregistry.azurecr.io` | Specifies the container registry host from which to pull app container images. | +| `AZURE_ENV_AI_SERVICE_LOCATION` | string | `eastus2` | Specifies the Azure region for AI services (OpenAI/AI Foundry). | | `AZURE_AI_DEPLOYMENT_TYPE` | string | `GlobalStandard` | Defines the model deployment type (allowed values: `Standard`, `GlobalStandard`). | -| `AZURE_AI_MODEL_NAME` | string | `o3` | Specifies the `o` model name. | -| `AZURE_AI_MODEL_VERSION` | string | `2025-04-16` | Specifies the `o` model version. | -| `AZURE_AI_MODEL_CAPACITY` | integer | `200` | Sets the model capacity (choose based on your subscription's available `o` capacity). | -| `AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID` | string | `` | Optional. Resource ID of an existing Log Analytics workspace to use. | -| `AZURE_EXISTING_AI_PROJECT_RESOURCE_ID` | string | `` | Optional. Resource ID of an existing AI Foundry project to use. | +| `AZURE_AI_MODEL_NAME` | string | `o3` | Specifies the AI model name. | +| `AZURE_AI_MODEL_VERSION` | string | `2025-04-16` | Specifies the AI model version. | +| `AZURE_AI_MODEL_CAPACITY` | integer | `200` | Sets the model capacity (choose based on your subscription's available capacity). | +| `AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID` | string | `` | Optional. Resource ID of an existing Log Analytics workspace to use. | +| `AZURE_ENV_FOUNDRY_PROJECT_RID` | string | `` | Optional. Resource ID of an existing AI Foundry project to use. | | `AZURE_ENV_VM_ADMIN_USERNAME` | string | `` | The administrator username for the virtual machine. | | `AZURE_ENV_VM_ADMIN_PASSWORD` | string | `` | The administrator password for the virtual machine. | | `AZURE_ENV_IMAGETAG` | string | `latest` | Specifies the container image tag to use for deployment. | diff --git a/docs/re-use-foundry-project.md b/docs/re-use-foundry-project.md index 7d33dfb..94c6083 100644 --- a/docs/re-use-foundry-project.md +++ b/docs/re-use-foundry-project.md @@ -36,7 +36,7 @@ In the left-hand menu of the project blade: ### 6. Set the Foundry Project Resource ID in Your Environment Run the following command in your terminal ```bash -azd env set AZURE_EXISTING_AI_PROJECT_RESOURCE_ID '' +azd env set AZURE_ENV_FOUNDRY_PROJECT_RID '' ``` Replace `` with the value obtained from Step 5. diff --git a/docs/re-use-log-analytics.md b/docs/re-use-log-analytics.md index 1fa7a35..7ee170f 100644 --- a/docs/re-use-log-analytics.md +++ b/docs/re-use-log-analytics.md @@ -23,7 +23,7 @@ Copy Resource ID that is your Workspace ID ### 4. Set the Workspace ID in Your Environment Run the following command in your terminal ```bash -azd env set AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID '' +azd env set AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID '' ``` Replace `` with the value obtained from Step 3. diff --git a/infra/main.parameters.json b/infra/main.parameters.json index cacd6be..d01b14c 100644 --- a/infra/main.parameters.json +++ b/infra/main.parameters.json @@ -12,7 +12,7 @@ "value": "${AZURE_CONTAINER_REGISTRY_HOST}" }, "azureAiServiceLocation": { - "value": "${AZURE_AI_SERVICE_LOCATION}" + "value": "${AZURE_ENV_AI_SERVICE_LOCATION}" }, "aiDeploymentType": { "value": "${AZURE_AI_DEPLOYMENT_TYPE}" @@ -26,14 +26,11 @@ "aiModelCapacity": { "value": "${AZURE_AI_MODEL_CAPACITY}" }, - "enableTelemetry": { - "value": true - }, "existingLogAnalyticsWorkspaceId": { - "value": "${AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID}" + "value": "${AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID}" }, "existingFoundryProjectResourceId": { - "value": "${AZURE_EXISTING_AI_PROJECT_RESOURCE_ID}" + "value": "${AZURE_ENV_FOUNDRY_PROJECT_RID}" }, "vmAdminUsername": { "value": "${AZURE_ENV_VM_ADMIN_USERNAME}" diff --git a/infra/main.waf.parameters.json b/infra/main.waf.parameters.json index 8188f68..d6671d1 100644 --- a/infra/main.waf.parameters.json +++ b/infra/main.waf.parameters.json @@ -12,7 +12,7 @@ "value": "${AZURE_CONTAINER_REGISTRY_HOST}" }, "azureAiServiceLocation": { - "value": "${AZURE_AI_SERVICE_LOCATION}" + "value": "${AZURE_ENV_AI_SERVICE_LOCATION}" }, "aiDeploymentType": { "value": "${AZURE_AI_DEPLOYMENT_TYPE}" @@ -45,10 +45,10 @@ "value": "${AZURE_ENV_VM_ADMIN_PASSWORD}" }, "existingLogAnalyticsWorkspaceId": { - "value": "${AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID}" + "value": "${AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID}" }, "existingFoundryProjectResourceId": { - "value": "${AZURE_EXISTING_AI_PROJECT_RESOURCE_ID}" + "value": "${AZURE_ENV_FOUNDRY_PROJECT_RID}" }, "imageTag": { "value": "${AZURE_ENV_IMAGETAG}" From cef52275f25c08666b599d9540f7de922fbd7299 Mon Sep 17 00:00:00 2001 From: Prachig-Microsoft Date: Mon, 23 Mar 2026 21:13:06 +0530 Subject: [PATCH 4/5] Fix Log Analytics workspace variable naming consistency - Changed all workflow inputs from AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID to AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID - Ensures consistency with parameter files and documentation - Affected files: deploy-orchestrator.yml, deploy-v2.yml, job-deploy.yml, job-deploy-linux.yml, job-deploy-windows.yml --- .github/workflows/deploy-orchestrator.yml | 4 ++-- .github/workflows/deploy-v2.yml | 8 ++++---- .github/workflows/job-deploy-linux.yml | 12 ++++++------ .github/workflows/job-deploy-windows.yml | 10 +++++----- .github/workflows/job-deploy.yml | 22 +++++++++++----------- 5 files changed, 28 insertions(+), 28 deletions(-) diff --git a/.github/workflows/deploy-orchestrator.yml b/.github/workflows/deploy-orchestrator.yml index c2918f5..099bc8d 100644 --- a/.github/workflows/deploy-orchestrator.yml +++ b/.github/workflows/deploy-orchestrator.yml @@ -37,7 +37,7 @@ on: required: false default: false type: boolean - AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: + AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: description: 'Log Analytics Workspace ID (Optional)' required: false default: '' @@ -81,7 +81,7 @@ 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_ENV_LOG_ANALYTICS_WORKSPACE_RID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }} AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }} docker_image_tag: ${{ needs.docker-build.outputs.IMAGE_TAG }} cleanup_resources: ${{ inputs.cleanup_resources }} diff --git a/.github/workflows/deploy-v2.yml b/.github/workflows/deploy-v2.yml index 8d26a81..6c6fec8 100644 --- a/.github/workflows/deploy-v2.yml +++ b/.github/workflows/deploy-v2.yml @@ -96,7 +96,7 @@ 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_env_log_analytics_workspace_rid: ${{ steps.validate.outputs.azure_env_log_analytics_workspace_rid }} azure_existing_ai_project_resource_id: ${{ steps.validate.outputs.azure_existing_ai_project_resource_id }} existing_webapp_url: ${{ steps.validate.outputs.existing_webapp_url }} steps: @@ -111,7 +111,7 @@ 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_ENV_LOG_ANALYTICS_WORKSPACE_RID: ${{ github.event.inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }} INPUT_AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ github.event.inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }} INPUT_EXISTING_WEBAPP_URL: ${{ github.event.inputs.existing_webapp_url }} run: | @@ -252,7 +252,7 @@ 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_env_log_analytics_workspace_rid=$INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID" >> $GITHUB_OUTPUT echo "azure_existing_ai_project_resource_id=$INPUT_AZURE_EXISTING_AI_PROJECT_RESOURCE_ID" >> $GITHUB_OUTPUT echo "existing_webapp_url=$INPUT_EXISTING_WEBAPP_URL" >> $GITHUB_OUTPUT @@ -268,7 +268,7 @@ 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_ENV_LOG_ANALYTICS_WORKSPACE_RID: ${{ needs.validate-inputs.outputs.azure_env_log_analytics_workspace_rid || '' }} AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ needs.validate-inputs.outputs.azure_existing_ai_project_resource_id || '' }} existing_webapp_url: ${{ needs.validate-inputs.outputs.existing_webapp_url || '' }} trigger_type: ${{ github.event_name }} diff --git a/.github/workflows/job-deploy-linux.yml b/.github/workflows/job-deploy-linux.yml index 516a7c5..d6d10da 100644 --- a/.github/workflows/job-deploy-linux.yml +++ b/.github/workflows/job-deploy-linux.yml @@ -28,7 +28,7 @@ on: required: false type: string default: 'false' - AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: + AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: required: false type: string AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: @@ -59,7 +59,7 @@ jobs: INPUT_BUILD_DOCKER_IMAGE: ${{ inputs.BUILD_DOCKER_IMAGE }} INPUT_EXP: ${{ inputs.EXP }} INPUT_WAF_ENABLED: ${{ inputs.WAF_ENABLED }} - INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }} + INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }} INPUT_AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }} run: | echo "🔍 Validating workflow input parameters..." @@ -223,7 +223,7 @@ jobs: IMAGE_TAG: ${{ inputs.IMAGE_TAG }} BUILD_DOCKER_IMAGE: ${{ inputs.BUILD_DOCKER_IMAGE }} EXP: ${{ inputs.EXP }} - AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID_INPUT: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }} + AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID_INPUT: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }} AZURE_EXISTING_AI_PROJECT_RESOURCE_ID_INPUT: ${{ inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }} run: | set -e @@ -256,8 +256,8 @@ jobs: echo "✅ EXP ENABLED - Setting EXP parameters..." # Set EXP variables dynamically - if [[ -n "$AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID_INPUT" ]]; then - EXP_LOG_ANALYTICS_ID="$AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID_INPUT" + if [[ -n "$AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID_INPUT" ]]; then + EXP_LOG_ANALYTICS_ID="$AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID_INPUT" else EXP_LOG_ANALYTICS_ID="${{ secrets.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }}" fi @@ -274,7 +274,7 @@ jobs: azd env set AZURE_ENV_FOUNDRY_PROJECT_RID="$EXP_AI_PROJECT_ID" else echo "❌ EXP DISABLED - Skipping EXP parameters" - if [[ -n "$AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID_INPUT" ]] || [[ -n "$AZURE_EXISTING_AI_PROJECT_RESOURCE_ID_INPUT" ]]; then + if [[ -n "$AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID_INPUT" ]] || [[ -n "$AZURE_EXISTING_AI_PROJECT_RESOURCE_ID_INPUT" ]]; then echo "⚠️ Warning: EXP parameter values provided but EXP is disabled. These values will be ignored." fi fi diff --git a/.github/workflows/job-deploy-windows.yml b/.github/workflows/job-deploy-windows.yml index 7653aec..3bd34cc 100644 --- a/.github/workflows/job-deploy-windows.yml +++ b/.github/workflows/job-deploy-windows.yml @@ -28,7 +28,7 @@ on: required: false type: string default: 'false' - AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: + AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: required: false type: string AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: @@ -59,7 +59,7 @@ jobs: INPUT_BUILD_DOCKER_IMAGE: ${{ inputs.BUILD_DOCKER_IMAGE }} INPUT_EXP: ${{ inputs.EXP }} INPUT_WAF_ENABLED: ${{ inputs.WAF_ENABLED }} - INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }} + INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }} INPUT_AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }} run: | echo "🔍 Validating workflow input parameters..." @@ -224,7 +224,7 @@ jobs: IMAGE_TAG: ${{ inputs.IMAGE_TAG }} BUILD_DOCKER_IMAGE: ${{ inputs.BUILD_DOCKER_IMAGE }} EXP: ${{ inputs.EXP }} - AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }} + AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }} AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }} run: | $ErrorActionPreference = "Stop" @@ -256,8 +256,8 @@ jobs: Write-Host "✅ EXP ENABLED - Setting EXP parameters..." # Set EXP variables dynamically - if ($env:AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID -ne "") { - $EXP_LOG_ANALYTICS_ID = $env:AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID + if ($env:AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID -ne "") { + $EXP_LOG_ANALYTICS_ID = $env:AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID } else { $EXP_LOG_ANALYTICS_ID = "${{ secrets.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }}" } diff --git a/.github/workflows/job-deploy.yml b/.github/workflows/job-deploy.yml index c7489cd..bd87963 100644 --- a/.github/workflows/job-deploy.yml +++ b/.github/workflows/job-deploy.yml @@ -46,7 +46,7 @@ on: required: false default: '' type: string - AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: + AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: description: 'Log Analytics Workspace ID (Optional)' required: false default: '' @@ -119,7 +119,7 @@ jobs: INPUT_WAF_ENABLED: ${{ inputs.waf_enabled }} INPUT_EXP: ${{ inputs.EXP }} INPUT_CLEANUP_RESOURCES: ${{ inputs.cleanup_resources }} - INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }} + INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }} INPUT_AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }} INPUT_EXISTING_WEBAPP_URL: ${{ inputs.existing_webapp_url }} INPUT_DOCKER_IMAGE_TAG: ${{ inputs.docker_image_tag }} @@ -205,15 +205,15 @@ jobs: echo "✅ cleanup_resources: '$INPUT_CLEANUP_RESOURCES' is valid" fi - # Validate AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID (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_LOG_ANALYTICS_WORKSPACE_RID (Azure Resource ID format) + if [[ -n "$INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID" ]]; then + if [[ ! "$INPUT_AZURE_ENV_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_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_LOG_ANALYTICS_WORKSPACE_RID'" VALIDATION_FAILED=true else - echo "✅ AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: Valid Resource ID format" + echo "✅ AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: Valid Resource ID format" fi fi @@ -269,7 +269,7 @@ jobs: shell: bash env: INPUT_EXP: ${{ inputs.EXP }} - INPUT_LOG_ANALYTICS_WORKSPACE_ID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }} + INPUT_LOG_ANALYTICS_WORKSPACE_RID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }} INPUT_AI_PROJECT_RESOURCE_ID: ${{ inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }} run: | echo "🔍 Validating EXP configuration..." @@ -510,7 +510,7 @@ jobs: BUILD_DOCKER_IMAGE: ${{ inputs.build_docker_image || 'false' }} EXP: ${{ needs.azure-setup.outputs.EXP_ENABLED }} WAF_ENABLED: ${{ inputs.waf_enabled == true && 'true' || 'false' }} - AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }} + AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }} AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }} secrets: inherit @@ -528,6 +528,6 @@ jobs: BUILD_DOCKER_IMAGE: ${{ inputs.build_docker_image || 'false' }} EXP: ${{ needs.azure-setup.outputs.EXP_ENABLED }} WAF_ENABLED: ${{ inputs.waf_enabled == true && 'true' || 'false' }} - AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }} + AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }} AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }} secrets: inherit From 1fbaf056749312706c21586ad1f972f8d64c8e39 Mon Sep 17 00:00:00 2001 From: Vamshi-Microsoft Date: Thu, 26 Mar 2026 15:25:27 +0530 Subject: [PATCH 5/5] Rename Log Analytics Workspace ID to Resource ID and update validation checks --- .github/workflows/deploy-v2.yml | 18 +++++++++--------- .github/workflows/job-deploy-linux.yml | 12 ++++++------ .github/workflows/job-deploy-windows.yml | 12 ++++++------ .github/workflows/job-deploy.yml | 7 ++++--- 4 files changed, 25 insertions(+), 24 deletions(-) diff --git a/.github/workflows/deploy-v2.yml b/.github/workflows/deploy-v2.yml index 6c6fec8..0c26a14 100644 --- a/.github/workflows/deploy-v2.yml +++ b/.github/workflows/deploy-v2.yml @@ -68,8 +68,8 @@ on: default: false type: boolean - AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: - description: 'Log Analytics Workspace ID (Optional)' + AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: + description: 'Log Analytics Workspace RID (Optional)' required: false default: '' type: string @@ -193,18 +193,18 @@ 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_LOG_ANALYTICS_WORKSPACE_RID (optional, Azure Resource ID format) + if [[ -n "$INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID" ]]; then + if [[ ! "$INPUT_AZURE_ENV_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_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_LOG_ANALYTICS_WORKSPACE_RID'" VALIDATION_FAILED=true else - echo "✅ AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: Valid Resource ID format" + echo "✅ AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: Valid Resource ID format" fi else - echo "✅ AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: Not provided (optional)" + echo "✅ AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: Not provided (optional)" fi # Validate AZURE_EXISTING_AI_PROJECT_RESOURCE_ID (optional, Azure Resource ID format) diff --git a/.github/workflows/job-deploy-linux.yml b/.github/workflows/job-deploy-linux.yml index d6d10da..cc2c110 100644 --- a/.github/workflows/job-deploy-linux.yml +++ b/.github/workflows/job-deploy-linux.yml @@ -147,15 +147,15 @@ jobs: echo "✅ WAF_ENABLED: '$INPUT_WAF_ENABLED' is valid" fi - # Validate AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID (optional, if provided must be valid Resource ID) - 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 INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID (optional, if provided must be valid Resource ID) + if [[ -n "$INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID" ]]; then + if [[ ! "$INPUT_AZURE_ENV_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_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_LOG_ANALYTICS_WORKSPACE_RID'" VALIDATION_FAILED=true else - echo "✅ AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: Valid Resource ID format" + echo "✅ AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: Valid Resource ID format" fi fi diff --git a/.github/workflows/job-deploy-windows.yml b/.github/workflows/job-deploy-windows.yml index 3bd34cc..2cc36db 100644 --- a/.github/workflows/job-deploy-windows.yml +++ b/.github/workflows/job-deploy-windows.yml @@ -147,15 +147,15 @@ jobs: echo "✅ WAF_ENABLED: '$INPUT_WAF_ENABLED' is valid" fi - # Validate AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID (optional, if provided must be valid Resource ID) - 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 INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID (optional, if provided must be valid Resource ID) + if [[ -n "$INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID" ]]; then + if [[ ! "$INPUT_AZURE_ENV_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_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_LOG_ANALYTICS_WORKSPACE_RID'" VALIDATION_FAILED=true else - echo "✅ AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: Valid Resource ID format" + echo "✅ AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: Valid Resource ID format" fi fi diff --git a/.github/workflows/job-deploy.yml b/.github/workflows/job-deploy.yml index bd87963..dfdf7fc 100644 --- a/.github/workflows/job-deploy.yml +++ b/.github/workflows/job-deploy.yml @@ -91,6 +91,7 @@ env: EXP: ${{ inputs.trigger_type == 'workflow_dispatch' && (inputs.EXP || false) || false }} CLEANUP_RESOURCES: ${{ inputs.trigger_type != 'workflow_dispatch' || inputs.cleanup_resources }} BUILD_DOCKER_IMAGE: ${{ inputs.trigger_type == 'workflow_dispatch' && (inputs.build_docker_image || false) || false }} + RG_TAGS: ${{ vars.RG_TAGS }} jobs: azure-setup: @@ -279,11 +280,11 @@ jobs: if [[ "$INPUT_EXP" == "true" ]]; then EXP_ENABLED="true" echo "✅ EXP explicitly enabled by user input" - elif [[ -n "$INPUT_LOG_ANALYTICS_WORKSPACE_ID" ]] || [[ -n "$INPUT_AI_PROJECT_RESOURCE_ID" ]]; then + elif [[ -n "$INPUT_LOG_ANALYTICS_WORKSPACE_RID" ]] || [[ -n "$INPUT_AI_PROJECT_RESOURCE_ID" ]]; then echo "🔧 AUTO-ENABLING EXP: EXP parameter values were provided but EXP was not explicitly enabled." echo "" echo "You provided values for:" - [[ -n "$INPUT_LOG_ANALYTICS_WORKSPACE_ID" ]] && echo " - Azure Log Analytics Workspace ID: '$INPUT_LOG_ANALYTICS_WORKSPACE_ID'" + [[ -n "$INPUT_LOG_ANALYTICS_WORKSPACE_RID" ]] && echo " - Azure Log Analytics Workspace ID: '$INPUT_LOG_ANALYTICS_WORKSPACE_RID'" [[ -n "$INPUT_AI_PROJECT_RESOURCE_ID" ]] && echo " - Azure AI Project Resource ID: '$INPUT_AI_PROJECT_RESOURCE_ID'" echo "" echo "✅ Automatically enabling EXP to use these values." @@ -387,7 +388,7 @@ jobs: rg_exists=$(az group exists --name $RESOURCE_GROUP_NAME) if [ "$rg_exists" = "false" ]; then echo "📦 Resource group does not exist. Creating new resource group '$RESOURCE_GROUP_NAME' in location '$AZURE_LOCATION'..." - az group create --name $RESOURCE_GROUP_NAME --location $AZURE_LOCATION || { echo "❌ Error creating resource group"; exit 1; } + az group create --name $RESOURCE_GROUP_NAME --location $AZURE_LOCATION --tags ${{ env.RG_TAGS }} || { echo "❌ Error creating resource group"; exit 1; } echo "✅ Resource group '$RESOURCE_GROUP_NAME' created successfully." else echo "✅ Resource group '$RESOURCE_GROUP_NAME' already exists. Deploying to existing resource group."