-
Notifications
You must be signed in to change notification settings - Fork 120
Open
Labels
featureThis issue describes a feature request in RadiusThis issue describes a feature request in RadiustriagedThis issue has been reviewed and triagedThis issue has been reviewed and triaged
Description
Overview of feature request
Externalize Radius Terraform and Bicep recipe configuration into dedicated settings resources (Radius.Core/terraformSettings and Radius.Core/bicepSettings), centralize Terraform binary lifecycle, and let platform teams supply Terraform settings exactly as they do today.
Key changes:
- New
terraformSettingsresource:.terraformrc, backend config, env vars, logging - New
bicepSettingsresource: registry authentication (BasicAuth, Azure WI, AWS IRSA) - Installer async pipeline for Terraform binary lifecycle (
rad terraform install|uninstall|status) - Environments reference settings resources instead of embedded
recipeConfig
Acceptance criteria
- Platform engineers can install/uninstall Terraform via CLI with version pinning
- Settings resources are reusable across multiple environments
- Legacy
recipeConfigcontinues working with deprecation warnings - Sequential installs are queued and processed in order
- Uninstall blocks when Terraform executions are in progress
Additional context
- Feature spec: Terraform and Bicep Settings Feature Spec design-notes#107
- Design notes: Design for Terraform/Bicep Settings design-notes#117
- Related issue: Terraform/Bicep Settings Lifecycle #10615
Tasks
Phase 1 - Core Implementation
- Add REST controllers for
Radius.Core/terraformSettingsandRadius.Core/bicepSettingswith CRUD operations (Add env terraform/bicep settings schema #11013) - Add TypeSpec definitions, regenerate SDKs, update datamodel converters (Add env terraform/bicep settings schema #11013)
- Implement installer status storage and REST endpoints (install/uninstall/status) (feat: Terraform controller for install/uninstall/status #11014)
- Register installer queue/worker with
MaxOperationConcurrency=1and async handler (feat: Terraform controller for install/uninstall/status #11014) - Implement binary lifecycle helpers (mirror downloads, checksum validation, PVC layout, symlink management) (feat: Terraform controller for install/uninstall/status #11014)
- Add CLI commands:
rad terraform install|uninstall|statuswith--waitsemantics (feat: Add rad terraform CLI commands #11049) - Wire
Radius.Core/environmentscontroller to consume new settings resources - Add migration scaffolding (warnings, legacy compatibility checks)
- Update Helm charts (PVC mounts, remove init-container, installer queue config)
Metadata
Metadata
Assignees
Labels
featureThis issue describes a feature request in RadiusThis issue describes a feature request in RadiustriagedThis issue has been reviewed and triagedThis issue has been reviewed and triaged