migrate azd tool out of C2C Deploy#1108
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR migrates the C2C Deploy functionality away from Azure Developer CLI (azd) dependency, standardizing on Azure CLI for all deployment operations. The changes remove azd-specific parameters, templates, and service logic while simplifying the implementation to use resource groups instead of azd environment names.
Key changes:
- Removed azd-specific parameters (
provisioning-tool,azd-iac-options,azd-env-name) from commands - Replaced azd environment discovery with direct resource group specification
- Removed IaC-specific template generation logic (Bicep/Terraform rules)
- Simplified infrastructure rules to only provide Azure CLI guidance
- Updated file paths from
.azure/todocs/for generated plans and diagrams
Reviewed Changes
Copilot reviewed 42 out of 44 changed files in this pull request and generated 15 comments.
Show a summary per file
| File | Description |
|---|---|
| LogsGetOptions.cs | Replaced azd-env-name parameter with resource-group parameter |
| LogsGetCommand.cs | Updated command to use resource groups instead of azd environments |
| DeployService.cs | Changed method signature from GetAzdResourceLogsAsync to GetResourceLogsAsync |
| ResourceLogService.cs | New service replacing AzdResourceLogService, uses resource groups for log retrieval |
| AppLogRetriever.cs | Refactored to discover resources by resource group instead of azd tags |
| AzdResourceLogService.cs | Removed entire azd-specific service |
| DeploymentPlanTemplateUtil.cs | Simplified to remove azd/bicep/terraform options |
| IaCRulesTemplateUtil.cs | Removed complex template generation logic |
| PipelineGenerationUtil.cs | Removed azd pipeline configuration option |
| RulesGetCommand.cs | Simplified to load static Azure CLI rules template |
| GetCommand.cs | Removed provisioning-tool and azd-iac-options parameters |
| GuidanceGetCommand.cs | Removed use-azd-pipeline-config parameter |
| DeployOptionDefinitions.cs | Removed azd-related option definitions |
| Template files | Removed azd-specific templates (azd-steps.md, azd-pipeline.md, bicep-rules.md, terraform-rules.md, azd-rules.md) |
| Test files | Updated tests to remove azd parameters and add resource-group tests |
| Documentation files | Updated command documentation, test prompts, and tool descriptions |
| CHANGELOG.md | Added entry for this migration |
Comments suppressed due to low confidence (2)
tools/Azure.Mcp.Tools.Deploy/src/Services/Util/AppLogRetriever.cs:81
- This foreach loop implicitly filters its target sequence - consider filtering the sequence explicitly using '.Where(...)'.
tools/Azure.Mcp.Tools.Deploy/src/Services/Util/AppLogRetriever.cs:103 - These 'if' statements can be combined.
…ice.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…GetCommand.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as duplicate.
There was a problem hiding this comment.
Lets ensure that we preserve any generic bicep guidance apart from specific azd usage.
There was a problem hiding this comment.
The base-iac-rules/bicep-rules/terraform-rules is only called if azd tool is using: https://github.com/microsoft/mcp/blob/main/tools/Azure.Mcp.Tools.Deploy/src/Services/Util/IaCRulesTemplateUtil.cs#L26-#L46. I think we should remove it.
qianwens
left a comment
There was a problem hiding this comment.
There are lots of changes that not about azd. I also don't understand why this PR removed the azd support in the entire c2c deploy flow. c2c help user create a e2e deploy plan and we are maintaining the IaC rules for azure services. Could you please help schedule a meeting with our team including yungez, xiaofanzhou to discuss how should c2c leverage azd tools for deployment that using azd?
| | deploy_app_logs_get | Show me the log of the application deployed by azd | | ||
| | deploy_app_logs_get | Show me the log of the application in resource group <resource-group-name> | | ||
| | deploy_architecture_diagram_generate | Generate the azure architecture diagram for this application | | ||
| | deploy_iac_rules_get | Show me the rules to generate bicep scripts | |
There was a problem hiding this comment.
IaC rules is not just designed for AZD, other deployment tool like az also support bicep.
There was a problem hiding this comment.
Thanks for clarification. I'll update them.
|
After discussing with Catherine's team, they will handle the removal of azd tool out of C2C Deploy. Closing this PR. |
fix #1048
What does this PR do?
azd is looking to host azd mcp and want to migrate azd related tool in C2C out of Azure MCP
Remove azd related content.
For deploy_app_log_gets, it was using azure.yaml file and azd env name to identify the resource and pull logs. Since we are removing azd env name, I requested users to provide resource group name to pull the logs.
GitHub issue number?
#1048
Pre-merge Checklist
servers/Azure.Mcp.Server/CHANGELOG.mdand/orservers/Fabric.Mcp.Server/CHANGELOG.mdfor product changes (features, bug fixes, UI/UX, updated dependencies)servers/Azure.Mcp.Server/README.mdand/orservers/Fabric.Mcp.Server/README.mddocumentationeng/scripts/Process-PackageReadMe.ps1. See Package README/servers/Azure.Mcp.Server/docs/azmcp-commands.mdand/or/docs/fabric-commands.md.\eng\scripts\Update-AzCommandsMetadata.ps1to update tool metadata in azmcp-commands.md (required for CI)ToolDescriptionEvaluatorand obtained a score of0.4or more and a top 3 ranking for all related test prompts/servers/Azure.Mcp.Server/docs/e2eTestPrompts.mdcrypto mining, spam, data exfiltration, etc.)/azp run mcp - pullrequest - liveto run Live Test Pipeline