Skip to content

Commit 7de8cf8

Browse files
updated readme and paramters
1 parent a930c95 commit 7de8cf8

5 files changed

Lines changed: 74 additions & 42 deletions

File tree

docs/DeploymentGuide.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,45 @@ Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
2222

2323
This will allow the scripts to run for the current session without permanently changing your system's policy.
2424

25+
## Deployment Options & Steps
26+
27+
### Sandbox or WAF Aligned Deployment Options
28+
29+
The [`infra`](../infra) folder of the Multi Agent Solution Accelerator contains the [`main.bicep`](../infra/main.bicep) Bicep script, which defines all Azure infrastructure components for this solution.
30+
31+
By default, the `azd up` command uses the [`main.parameters.json`](../infra/main.parameters.json) file to deploy the solution. This file is pre-configured for a **sandbox environment** — ideal for development and proof-of-concept scenarios, with minimal security and cost controls for rapid iteration.
32+
33+
For **production deployments**, the repository also provides [`main.waf.parameters.json`](../infra/main.waf.parameters.json), which applies a [Well-Architected Framework (WAF) aligned](https://learn.microsoft.com/en-us/azure/well-architected/) configuration. This option enables additional Azure best practices for reliability, security, cost optimization, operational excellence, and performance efficiency, such as:
34+
35+
- Enhanced network security (e.g., Network protection with private endpoints)
36+
- Stricter access controls and managed identities
37+
- Logging, monitoring, and diagnostics enabled by default
38+
- Resource tagging and cost management recommendations
39+
40+
**How to choose your deployment configuration:**
41+
42+
* Use the default `main.parameters.json` file for a **sandbox/dev environment**
43+
* For a **WAF-aligned, production-ready deployment**, copy the contents of `main.waf.parameters.json` into `main.parameters.json` before running `azd up`
44+
45+
---
46+
47+
### VM Credentials Configuration
48+
49+
By default, the solution sets the VM administrator username and password from environment variables.
50+
51+
To set your own VM credentials before deployment, use:
52+
53+
```sh
54+
azd env set AZURE_ENV_VM_ADMIN_USERNAME <your-username>
55+
azd env set AZURE_ENV_VM_ADMIN_PASSWORD <your-password>
56+
```
57+
58+
> [!TIP]
59+
> Always review and adjust parameter values (such as region, capacity, security settings and log analytics workspace configuration) to match your organization’s requirements before deploying. For production, ensure you have sufficient quota and follow the principle of least privilege for all identities and role assignments.
60+
2561

62+
> [!IMPORTANT]
63+
> The WAF-aligned configuration is under active development. More Azure Well-Architected recommendations will be added in future updates.
2664
2765
## Deployment Options & Steps
2866

infra/main.bicep

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ param solutionName string = 'docgen'
1515
param solutionUniqueText string = substring(uniqueString(subscription().id, resourceGroup().name, solutionName), 0, 5)
1616

1717
@description('Optional. Azure location for the solution. If not provided, it defaults to the resource group location.')
18-
param AZURE_LOCATION string = ''
18+
param location string = ''
1919

2020
@minLength(3)
2121
@description('Optional. Secondary location for databases creation(example:eastus2):')
@@ -101,19 +101,19 @@ param vmAdminPassword string?
101101
param tags resourceInput<'Microsoft.Resources/resourceGroups@2025-04-01'>.tags = {}
102102

103103
@description('Optional. Enable monitoring applicable resources, aligned with the Well Architected Framework recommendations. This setting enables Application Insights and Log Analytics and configures all the resources applicable resources to send logs. Defaults to false.')
104-
param enableMonitoring bool = true
104+
param enableMonitoring bool = false
105105

106106
@description('Optional. Enable scalability for applicable resources, aligned with the Well Architected Framework recommendations. Defaults to false.')
107-
param enableScalability bool = true
107+
param enableScalability bool = false
108108

109109
@description('Optional. Enable redundancy for applicable resources, aligned with the Well Architected Framework recommendations. Defaults to false.')
110110
param enableRedundancy bool = false
111111

112112
@description('Optional. Enable private networking for applicable resources, aligned with the Well Architected Framework recommendations. Defaults to false.')
113-
param enablePrivateNetworking bool = true
113+
param enablePrivateNetworking bool = false
114114

115115
@description('Optional. The Container Registry hostname where the docker images are located.')
116-
param acrName string = 'testapwaf'
116+
param acrName string = 'testapwaf' // byocgacontainerreg
117117

118118
@description('Optional. Image Tag.')
119119
param imageTag string = 'waf'
@@ -128,7 +128,7 @@ param enablePurgeProtection bool = false
128128
// Variables //
129129
// ============== //
130130

131-
var solutionLocation = empty(AZURE_LOCATION) ? resourceGroup().location : AZURE_LOCATION
131+
var solutionLocation = empty(location) ? resourceGroup().location : location
132132
var solutionSuffix = toLower(trim(replace(
133133
replace(
134134
replace(replace(replace(replace('${solutionName}${solutionUniqueText}', '-', ''), '_', ''), '.', ''), '/', ''),

infra/main.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"_generator": {
77
"name": "bicep",
88
"version": "0.37.4.10188",
9-
"templateHash": "12437393349059250623"
9+
"templateHash": "13399541843680484715"
1010
},
1111
"name": "Document Generation Solution Accelerator",
1212
"description": "CSA CTO Gold Standard Solution Accelerator for Document Generation.\n"
@@ -29,7 +29,7 @@
2929
"description": "Optional. A unique text value for the solution. This is used to ensure resource names are unique for global resources. Defaults to a 5-character substring of the unique string generated from the subscription ID, resource group name, and solution name."
3030
}
3131
},
32-
"AZURE_LOCATION": {
32+
"location": {
3333
"type": "string",
3434
"defaultValue": "",
3535
"metadata": {
@@ -183,14 +183,14 @@
183183
},
184184
"enableMonitoring": {
185185
"type": "bool",
186-
"defaultValue": true,
186+
"defaultValue": false,
187187
"metadata": {
188188
"description": "Optional. Enable monitoring applicable resources, aligned with the Well Architected Framework recommendations. This setting enables Application Insights and Log Analytics and configures all the resources applicable resources to send logs. Defaults to false."
189189
}
190190
},
191191
"enableScalability": {
192192
"type": "bool",
193-
"defaultValue": true,
193+
"defaultValue": false,
194194
"metadata": {
195195
"description": "Optional. Enable scalability for applicable resources, aligned with the Well Architected Framework recommendations. Defaults to false."
196196
}
@@ -204,7 +204,7 @@
204204
},
205205
"enablePrivateNetworking": {
206206
"type": "bool",
207-
"defaultValue": true,
207+
"defaultValue": false,
208208
"metadata": {
209209
"description": "Optional. Enable private networking for applicable resources, aligned with the Well Architected Framework recommendations. Defaults to false."
210210
}
@@ -239,7 +239,7 @@
239239
}
240240
},
241241
"variables": {
242-
"solutionLocation": "[if(empty(parameters('AZURE_LOCATION')), resourceGroup().location, parameters('AZURE_LOCATION'))]",
242+
"solutionLocation": "[if(empty(parameters('location')), resourceGroup().location, parameters('location'))]",
243243
"solutionSuffix": "[toLower(trim(replace(replace(replace(replace(replace(replace(format('{0}{1}', parameters('solutionName'), parameters('solutionUniqueText')), '-', ''), '_', ''), '.', ''), '/', ''), ' ', ''), '*', '')))]",
244244
"cosmosDbZoneRedundantHaRegionPairs": {
245245
"australiaeast": "uksouth",

infra/main.parameters.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"gptModelVersion": {
1515
"value": "${AZURE_ENV_MODEL_VERSION}"
1616
},
17-
"deploymentType": {
17+
"gptModelDeploymentType": {
1818
"value": "${AZURE_ENV_MODEL_DEPLOYMENT_TYPE}"
1919
},
2020
"gptModelName": {
@@ -23,7 +23,7 @@
2323
"azureOpenaiAPIVersion": {
2424
"value": "${AZURE_ENV_OPENAI_API_VERSION}"
2525
},
26-
"gptDeploymentCapacity": {
26+
"gptModelCapacity": {
2727
"value": "${AZURE_ENV_MODEL_CAPACITY}"
2828
},
2929
"embeddingModel": {

infra/main.waf.parameters.json

Lines changed: 22 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -5,65 +5,59 @@
55
"solutionName": {
66
"value": "${AZURE_ENV_NAME}"
77
},
8-
"AZURE_LOCATION": {
8+
"location": {
99
"value": "${AZURE_LOCATION}"
1010
},
1111
"secondaryLocation": {
1212
"value": "${AZURE_ENV_SECONDARY_LOCATION}"
1313
},
14-
"aiDeploymentsLocation": {
15-
"value": "${AZURE_ENV_OPENAI_LOCATION}"
14+
"gptModelVersion": {
15+
"value": "${AZURE_ENV_MODEL_VERSION}"
1616
},
1717
"gptModelDeploymentType": {
1818
"value": "${AZURE_ENV_MODEL_DEPLOYMENT_TYPE}"
1919
},
2020
"gptModelName": {
2121
"value": "${AZURE_ENV_MODEL_NAME}"
2222
},
23-
"gptModelVersion": {
24-
"value": "${AZURE_ENV_MODEL_VERSION}"
23+
"azureOpenaiAPIVersion": {
24+
"value": "${AZURE_ENV_OPENAI_API_VERSION}"
2525
},
2626
"gptModelCapacity": {
2727
"value": "${AZURE_ENV_MODEL_CAPACITY}"
2828
},
2929
"embeddingModel": {
30-
"value": "${AZURE_ENV_EMBEDDING_MODEL}"
30+
"value": "${AZURE_ENV_EMBEDDING_MODEL_NAME}"
3131
},
3232
"embeddingDeploymentCapacity": {
33-
"value": "${AZURE_ENV_EMBEDDING_DEPLOYMENT_CAPACITY}"
34-
},
35-
"existingLogAnalyticsWorkspaceId": {
36-
"value": "${AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_ID}"
33+
"value": "${AZURE_ENV_EMBEDDING_MODEL_CAPACITY}"
3734
},
38-
"azureExistingAIProjectResourceId": {
39-
"value": "${AZURE_ENV_EXISTING_AI_PROJECT_RESOURCE_ID}"
35+
"imageTag": {
36+
"value": "${AZURE_ENV_IMAGETAG}"
4037
},
41-
"vmSize": {
42-
"value": "${AZURE_ENV_JUMPBOX_SIZE}"
43-
},
44-
"vmAdminUsername": {
45-
"value": "${AZURE_ENV_JUMPBOX_ADMIN_USERNAME}"
46-
},
47-
"vmAdminPassword": {
48-
"value": "${AZURE_ENV_JUMPBOX_ADMIN_PASSWORD}"
38+
"enableTelemetry": {
39+
"value": "${AZURE_ENV_ENABLE_TELEMETRY}"
4940
},
5041
"enableMonitoring": {
5142
"value": true
5243
},
53-
"enableScalability": {
44+
"enablePrivateNetworking": {
5445
"value": true
5546
},
56-
"enableRedundancy": {
47+
"enableScalability": {
5748
"value": true
5849
},
59-
"enablePrivateNetworking": {
60-
"value": true
50+
"vmAdminUsername": {
51+
"value": "${AZURE_ENV_VM_ADMIN_USERNAME}"
6152
},
62-
"enableTelemetry": {
63-
"value": "${AZURE_ENV_ENABLE_TELEMETRY}"
53+
"vmAdminPassword": {
54+
"value": "${AZURE_ENV_VM_ADMIN_PASSWORD}"
55+
},
56+
"existingLogAnalyticsWorkspaceId": {
57+
"value": "${AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID}"
6458
},
65-
"enablePurgeProtection": {
66-
"value": "${AZURE_ENV_ENABLE_PURGE_PROTECTION}"
59+
"azureExistingAIProjectResourceId":{
60+
"value": "${AZURE_EXISTING_AI_PROJECT_RESOURCE_ID}"
6761
}
6862
}
6963
}

0 commit comments

Comments
 (0)