Speckit Prototype - direct module support implement#11969
Draft
Reshrahim wants to merge 25 commits into
Draft
Conversation
…eters in RecipeDefinition Agent-Logs-Url: https://github.com/radius-project/radius/sessions/31e3b677-4d45-408c-9577-3b2566d6fdbd Co-authored-by: Reshrahim <61033581+Reshrahim@users.noreply.github.com>
…RecipeDefinition Agent-Logs-Url: https://github.com/radius-project/radius/sessions/0ce85ee7-0a61-465f-a997-c744c2fa54b9 Co-authored-by: Reshrahim <61033581+Reshrahim@users.noreply.github.com>
…est data Agent-Logs-Url: https://github.com/radius-project/radius/sessions/a15d6709-011a-41b9-80e1-bb019519928d Co-authored-by: Reshrahim <61033581+Reshrahim@users.noreply.github.com>
…lainHTTP→plainHttp in converter test Agent-Logs-Url: https://github.com/radius-project/radius/sessions/410491d9-ec66-4c56-a4bd-c827e37e10b0 Co-authored-by: Reshrahim <61033581+Reshrahim@users.noreply.github.com>
…ate swagger/typespec/bicep-types JSON files Agent-Logs-Url: https://github.com/radius-project/radius/sessions/087df2c3-04e0-472e-b069-2843e058fa1c Co-authored-by: Reshrahim <61033581+Reshrahim@users.noreply.github.com>
…n→location Agent-Logs-Url: https://github.com/radius-project/radius/sessions/8181cd38-c77d-4c4e-892d-7a26a14f85b0 Co-authored-by: Reshrahim <61033581+Reshrahim@users.noreply.github.com>
…ield ordering Agent-Logs-Url: https://github.com/radius-project/radius/sessions/64db5ed2-8d6a-471b-88fa-3f5d850e789e Co-authored-by: Reshrahim <61033581+Reshrahim@users.noreply.github.com>
…d fetchRecipeDefinition Agent-Logs-Url: https://github.com/radius-project/radius/sessions/0899830b-632d-4a0e-8f45-65d39a9f85e6 Co-authored-by: Reshrahim <61033581+Reshrahim@users.noreply.github.com>
… touch points Agent-Logs-Url: https://github.com/radius-project/radius/sessions/8abda089-fdd5-46cf-9246-375f380968d4 Co-authored-by: Reshrahim <61033581+Reshrahim@users.noreply.github.com>
Signed-off-by: Reshma Abdul Rahim <61033581+Reshrahim@users.noreply.github.com>
… module support
Phase 2 - Foundational utilities:
- Add paramresolver package with ResolveParameterExpressions() for {{context.*}} template
expression resolution including single-level ternary evaluation
- Add util.ApplyOutputsMapping() for mapping module outputs to resource properties
- Add util.ShallowMergeParameters() for merging recipe parameters
- Add Outputs field to EnvironmentDefinition in types.go
Phase 3 - Terraform driver integration:
- Wire expression resolution and shallow merge into generateConfig for direct modules
- Add result vs outputs precedence logic in prepareRecipeResponse (FR-015)
- Add collectFlatOutputs helper for direct module output collection
- Add comprehensive tests for all new functionality
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Detect direct modules via absence of 'context' parameter - Add expression resolution and shallow merge for direct module params - Add outputs mapping with result/outputs precedence (FR-015) - Add collectARMOutputValues() and wrapARMParameters() helpers - Update prepareRecipeResponse signature to accept EnvironmentDefinition - Add 6 new test cases for direct module scenarios Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ameter-naming' into feature/direct-module-support-implement
…ipeline
- Add outputs (Record<string>) to RecipeDefinition in recipePacks.tsp
- Update parameters description to mention {{context.*}} expression support
- Add Outputs field to datamodel RecipeDefinition and internal RecipeDefinition
- Wire outputs through API conversion (toRecipesDataModel/fromRecipesDataModel)
- Propagate Outputs from RecipeDefinition to EnvironmentDefinition in config loader
- Add outputs to test data for round-trip conversion validation
- Regenerate API client code from updated TypeSpec model
- Merge PR radius-project#11760 (standardize recipe parameter naming)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add Test_DirectModule_Terraform: validates TF direct module with outputs
mapping and {{context.*}} expression resolution in parameters
- Add Test_DirectModule_BackwardCompat: regression test verifying wrapped
recipes (context variable + result output) work unchanged
- Add Bicep templates for both test scenarios
- Tests follow existing recipepacks_test.go patterns (namespace creation,
resource type registration, deploy executor, post-step verification)
Note: These tests require a running Radius cluster to execute.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add outputs property to RecipeDefinition in Bicep type definitions
so Bicep files can reference the outputs field without squiggles
- Add env.bicep example showing terraform-aws-modules/rds/aws as a
direct module with {{context.*}} expressions and outputs mapping
- Add main.tf example showing the refactored direct module pattern
- Fix gofmt formatting in resolver_test.go
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: Reshma Abdul Rahim <reshmarahim.abdul@microsoft.com>
Radius functional test overviewClick here to see the test run details
Test Status⌛ Building Radius and pushing container images for functional tests... |
Contributor
Author
|
@willdavsmith - Here is the prototype for the Direct Recipe Module support which also has |
Reshrahim
commented
May 20, 2026
Contributor
Author
There was a problem hiding this comment.
changes to /driver contains the direct Recipe module support
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Please explain the changes you've made.
Type of change
Fixes: #issue_number
Contributor checklist
Please verify that the PR meets the following requirements, where applicable:
eng/design-notes/in this repository, if new APIs are being introduced.