Skip to content

Commit 6142454

Browse files
Merge pull request #558 from microsoft/dev
feat: WAF Implementation for Document Generator
2 parents 668501d + 0c018ec commit 6142454

37 files changed

+47042
-3829
lines changed

.github/workflows/deploy.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,13 +126,13 @@ jobs:
126126
set -e
127127
# set image tag based on branch
128128
if [[ "${{ env.BRANCH_NAME }}" == "main" ]]; then
129-
IMAGE_TAG="latest"
129+
IMAGE_TAG="latest_waf"
130130
elif [[ "${{ env.BRANCH_NAME }}" == "dev" ]]; then
131131
IMAGE_TAG="dev"
132132
elif [[ "${{ env.BRANCH_NAME }}" == "demo" ]]; then
133133
IMAGE_TAG="demo"
134134
else
135-
IMAGE_TAG="latest"
135+
IMAGE_TAG="latest_waf"
136136
fi
137137
138138
az deployment group create \
@@ -148,7 +148,7 @@ jobs:
148148
gptDeploymentCapacity=${{ env.GPT_MIN_CAPACITY }} \
149149
embeddingModel="text-embedding-ada-002" \
150150
embeddingDeploymentCapacity=${{ env.TEXT_EMBEDDING_MIN_CAPACITY }} \
151-
aiDeploymentsLocation=${{ env.AZURE_LOCATION }} \
151+
azureAiServiceLocation=${{ env.AZURE_LOCATION }} \
152152
imageTag="${IMAGE_TAG}"\
153153
createdBy="Pipeline"
154154

.github/workflows/docker-build-and-push.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ jobs:
5858
id: determine_tag
5959
run: |
6060
if [[ "${{ github.ref_name }}" == "main" ]]; then
61-
echo "tagname=latest" >> $GITHUB_OUTPUT
61+
echo "tagname=latest_waf" >> $GITHUB_OUTPUT
6262
elif [[ "${{ github.ref_name }}" == "dev" ]]; then
6363
echo "tagname=dev" >> $GITHUB_OUTPUT
6464
elif [[ "${{ github.ref_name }}" == "demo" ]]; then

docs/CustomizingAzdParameters.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ By default this template will use the environment name as the prefix to prevent
1818
| `AZURE_ENV_OPENAI_API_VERSION` | string | `2025-01-01-preview` | Specifies the API version for Azure OpenAI. |
1919
| `AZURE_ENV_MODEL_CAPACITY` | integer | `30` | Sets the GPT model capacity (based on what's available in your subscription). |
2020
| `AZURE_ENV_EMBEDDING_MODEL_NAME` | string | `text-embedding-ada-002` | Sets the name of the embedding model to use. |
21-
| `AZURE_ENV_IMAGETAG` | string | `latest` | Set the Image tag Like (allowed values: latest, dev, hotfix) |
21+
| `AZURE_ENV_IMAGETAG` | string | `latest_waf` | Set the Image tag Like (allowed values: latest_waf, dev, hotfix) |
2222
| `AZURE_ENV_EMBEDDING_MODEL_CAPACITY` | integer | `80` | Sets the capacity for the embedding model deployment. |
2323
| `AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID` | string | Guide to get your [Existing Workspace ID](/docs/re-use-log-analytics.md) | Reuses an existing Log Analytics Workspace instead of creating a new one. |
2424
| `AZURE_EXISTING_AI_PROJECT_RESOURCE_ID` | string | Guid to get your existing AI Foundry Project resource ID | Reuses an existing AIFoundry and AIFoundryProject instead of creating a new one. |

docs/DeploymentGuide.md

Lines changed: 39 additions & 1 deletion
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

@@ -111,7 +149,7 @@ When you start the deployment, most parameters will have **default values**, but
111149
| **GPT Model Deployment Capacity** | Configure the capacity for **GPT model deployments** (in thousands). | `30k` |
112150
| **Embedding Model** | The embedding model used by the app. | `text-embedding-ada-002` |
113151
| **Embedding Model Capacity** | Configure the capacity for **embedding model deployments** (in thousands). | `80k` |
114-
| **Image Tag** | Image version for deployment (allowed: `latest`, `dev`, `hotfix`). | `latest` |
152+
| **Image Tag** | Image version for deployment (allowed: `latest_waf`, `dev`, `hotfix`). | `latest_waf` |
115153
| **Existing Log Analytics Workspace** | If reusing a Log Analytics Workspace, specify the ID. | *(none)* |
116154

117155

0 commit comments

Comments
 (0)