[Feature]: Support configuring maintenance windows for Azure resources
- Dominant language
- C#
- Stars
- 6.3k
- Forks
- 991
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 196
Description
### Is there an existing issue for this?
- [x] I have searched the existing issues
### Is your feature request related to a problem? Please describe the problem.
Several provisioned Azure resources (e.g., Virtual Machine Scale Sets, Service Fabric, managed databases, AKS, Container Apps) support maintenance windows to control when platform updates and reboots occur. Aspire has no way to declare these windows in the app model, so teams either accept default (unpredictable) maintenance timing or configure it out-of-band, which drifts from the code-first infrastructure definition.
### Describe the solution you'd like
A composable API to declare maintenance windows on resources that support them:
eg:
```
builder.AddAzureServiceFabricEnvironment("sf")
.WithMaintenanceWindow(day: DayOfWeek.Sunday, startHour: 2, startMinute: 0);
```
• A shared `WithMaintenanceWindow(...)` extension surface, with per-resource support where the underlying Azure resource allows it.
• Map to the correct Bicep properties (e.g., maintenanceWindow on Service Fabric Managed Cluster, maintenanceConfigurations for AKS).
• Validation/clear errors when applied to a resource type that does not support maintenance windows.
• Time-zone handling documented explicitly.
### Additional context
• Maintenance Control on Service Fabric clusters - https://learn.microsoft.com/en-us/azure/service-fabric/how-to-managed-cluster-maintenance-control
• Maintenance control on Virtual machine Scale set - https://learn.microsoft.com/en-us/azure/virtual-machines/virtual-machine-scale-sets-maintenance-control
• Scope could start with one resource type and expand.
Contributor guide
Research direction
No source files, tests, or entry points are named. Start by reviewing Aspire's existing Azure resource integrations alongside the linked Service Fabric, VM scale set, and Azure maintenance-control documentation; done means a scoped composable API, correct Bicep mappings, unsupported-resource validation, and explicit time-zone documentation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, csharp
- Domain
- cloud, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100