-
Notifications
You must be signed in to change notification settings - Fork 303
migrate azd tool out of C2C Deploy #1108
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
tools/Azure.Mcp.Tools.Deploy/src/Services/Util/ResourceLogService.cs
Outdated
Show resolved
Hide resolved
tools/Azure.Mcp.Tools.Deploy/src/Commands/App/LogsGetCommand.cs
Outdated
Show resolved
Hide resolved
tools/Azure.Mcp.Tools.Deploy/src/Options/DeployOptionDefinitions.cs
Outdated
Show resolved
Hide resolved
tools/Azure.Mcp.Tools.Deploy/tests/Azure.Mcp.Tools.Deploy.LiveTests/DeployCommandTests.cs
Outdated
Show resolved
Hide resolved
…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.
tools/Azure.Mcp.Tools.Deploy/src/Services/Util/AppLogRetriever.cs
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lets ensure that we preserve any generic bicep guidance apart from specific azd usage.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
tools/Azure.Mcp.Tools.Deploy/src/Templates/IaCRules/terraform-rules.md
Outdated
Show resolved
Hide resolved
qianwens
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IaC rules is not just designed for AZD, other deployment tool like az also support bicep.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for clarification. I'll update them.
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