-
Notifications
You must be signed in to change notification settings - Fork 16
Recipe packs #109
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?
Recipe packs #109
Conversation
recipe/2025-08-recipe-packs.md
Outdated
| #### Registering several recipes to an environment | ||
|
|
||
| As an operator I am responsible for creating Radius Environments using which developers can deploy their applications. As part of creating the environment, I manually link recipes one by one using `rad recipe register` or by updating the environment definition. This can be error prone when there are many recipes and environments. Radius should provide a way to bulk register (and manage) recipes. | ||
|
|
||
| #### Registering recipes to multiple environments | ||
|
|
||
| As an operator I am responsible for creating Radius Environments using which developers can deploy their applications. As part of creating the environment, I manually link recipes one by one using `rad recipe register` or by updating the environment definition. I have 100s of environments which mostly use the same recipes. Piecing the same recipes together for each environment feels like rework. |
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.
I think these two scenarios describe the current state rather than scenarios that will be implemented by this design.
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.
updated.
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.
Overall looked good except for the approach to versioning.
Signed-off-by: nithyatsu <[email protected]>
Signed-off-by: nithyatsu <[email protected]>
Signed-off-by: nithyatsu <[email protected]>
Signed-off-by: nithyatsu <[email protected]>
Signed-off-by: nithyatsu <[email protected]>
Signed-off-by: nithyatsu <[email protected]>
Signed-off-by: nithyatsu <[email protected]>
Signed-off-by: nithyatsu <[email protected]>
Signed-off-by: nithyatsu <[email protected]>
Signed-off-by: nithyatsu <[email protected]>
Signed-off-by: nithyatsu <[email protected]>
Signed-off-by: nithyatsu <[email protected]>
Signed-off-by: nithyatsu <[email protected]>
Signed-off-by: nithyatsu <[email protected]>
Signed-off-by: nithyatsu <[email protected]>
Signed-off-by: nithyatsu <[email protected]>
Signed-off-by: nithyatsu <[email protected]>
Signed-off-by: nithyatsu <[email protected]>
Signed-off-by: nithyatsu <[email protected]>
Signed-off-by: nithyatsu <[email protected]>
dca4efb to
275005b
Compare
Signed-off-by: nithyatsu <[email protected]>
Signed-off-by: nithyatsu <[email protected]>
Signed-off-by: nithyatsu <[email protected]>
Signed-off-by: nithyatsu <[email protected]>
| We could delete recipe-packs that are not referenced by any environment in any resource-group. If referenced by environments, the delete should also update the environment to not have the recipepack ID in its list of recipe packs. Allowance of recipe pack deletion when there are resources refering to it is in parity with today's recipe behavior. | ||
| By default, delete looks for recipe-pack in current group. It should take in optional scope to delete recipe packs in Other scope. | ||
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.
@willtsai @zachcasper pls review. This is the behavior for recipe-packs, based on our decision to drop tagging support
| RESOURCE TYPE RECIPE KIND RECIPE LOCATION RECIPE PARAMETERS | ||
| Radius.Compute/containers terraform https://github.com/project-radius/resource-types-contrib.git//recipes/compute/containers/kubernetes?ref=v0.48 allowPlatformOptions(bool) | ||
| Radius.Security/secrets terraform https://github.com/project-radius/resource-types-contrib.git//recipes/security/secrets?ref=v0.48 | ||
| Radius.Storage/volumes terraform https://github.com/project-radius/resource-types-contrib.git//recipes/storage/volumes?ref=v0.48 |
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.
| RESOURCE TYPE RECIPE KIND RECIPE LOCATION RECIPE PARAMETERS | |
| Radius.Compute/containers terraform https://github.com/project-radius/resource-types-contrib.git//recipes/compute/containers/kubernetes?ref=v0.48 allowPlatformOptions(bool) | |
| Radius.Security/secrets terraform https://github.com/project-radius/resource-types-contrib.git//recipes/security/secrets?ref=v0.48 | |
| Radius.Storage/volumes terraform https://github.com/project-radius/resource-types-contrib.git//recipes/storage/volumes?ref=v0.48 | |
| RESOURCE TYPE RECIPE KIND RECIPE LOCATION | |
| Radius.Compute/containers terraform https://github.com/project-radius/resource-types-contrib.git//recipes/compute/containers/kubernetes?ref=v0.48 | |
| PARAMETERS: | |
| - allowPlatformOptions: true | |
| Radius.Security/secrets terraform https://github.com/project-radius/resource-types-contrib.git//recipes/security/secrets?ref=v0.48 | |
| Radius.Storage/volumes terraform https://github.com/project-radius/resource-types-contrib.git//recipes/storage/volumes?ref=v0.48 |
Parameters are not going to fit past the URL.
| @doc("Description of what this recipe pack provides") | ||
| description?: string; | ||
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.
| @doc("Description of what this recipe pack provides") | |
| description?: string; |
Why does RecipePacks have a description property when no other Radius resource have a description? I do not see a use case for why this is needed. It's not used anywhere else in this design.
| $ rad recipe-pack list [-g mygroup] | ||
| Lists all recipe packs in all scopes. | ||
| RESOURCE TYPE GROUP STATE | ||
| computeRecipePack Radius.Core/recipePacks default Succeeded | ||
| dataRecipePack Radius.Core/recipePacks default Succeeded |
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.
| $ rad recipe-pack list [-g mygroup] | |
| Lists all recipe packs in all scopes. | |
| RESOURCE TYPE GROUP STATE | |
| computeRecipePack Radius.Core/recipePacks default Succeeded | |
| dataRecipePack Radius.Core/recipePacks default Succeeded | |
| $ rad recipe-pack list | |
| RECIPE PACK GROUP | |
| computeRecipePack default | |
| dataRecipePack default | |
| myCustomPack1 myGroup1 | |
| myCustomPack2 myGroup2 |
Let's keep the UI as clean as possible. Example shown to emphasize that list should return all RecipePacks from all Resource Groups.
| RESOURCE TYPE GROUP | ||
| computeRecipePack Radius.Core/recipePacks default |
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.
| RESOURCE TYPE GROUP | |
| computeRecipePack Radius.Core/recipePacks default | |
| RECIPE PACK GROUP | |
| computeRecipePack default |
| dataRecipePack Radius.Core/recipePacks default Succeeded | ||
| ``` | ||
|
|
||
| if -g is provided, list recipe packs in that scope. |
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.
| if -g is provided, list recipe packs in that scope. | |
| if --group or -g is provided, results are filtered for the specified Resource Group. |
| We could delete recipe-packs that are not referenced by any environment in any resource-group. If referenced by environments, the delete should also update the environment to not have the recipepack ID in its list of recipe packs. Allowance of recipe pack deletion when there are resources refering to it is in parity with today's recipe behavior. | ||
| By default, delete looks for recipe-pack in current group. It should take in optional scope to delete recipe packs in Other scope. |
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.
| We could delete recipe-packs that are not referenced by any environment in any resource-group. If referenced by environments, the delete should also update the environment to not have the recipepack ID in its list of recipe packs. Allowance of recipe pack deletion when there are resources refering to it is in parity with today's recipe behavior. | |
| By default, delete looks for recipe-pack in current group. It should take in optional scope to delete recipe packs in Other scope. | |
| The delete command deletes the Recipe Pack and removes the Recipe Pack from all existing Environments. Because the Recipe is stored on each resource's status property, Radius retains details of the actual Recipe used to deploy the resource. Therefore, deleting a Recipe Pack only impacts the ability to deploy new resources using the referenced Recipes. This is in parity with today's Recipe behavior. | |
| By default, delete looks for Recipe Packs in the current Resource Group. Users can also specify the --group or -g parameter to reference a different Resource Group. |
Rewrote for clarity, but no actual changes.
| 4. Show environment | ||
|
|
||
| ``` | ||
| $ rad environment show my-env | ||
| RESOURCE TYPE GROUP STATE | ||
| my-env Radius.Core/environments default Succeeded | ||
|
|
||
| RECIPE PACKS | ||
| computeRecipePack | ||
| dataRecipePack | ||
| ``` |
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.
| 4. Show environment | |
| ``` | |
| $ rad environment show my-env | |
| RESOURCE TYPE GROUP STATE | |
| my-env Radius.Core/environments default Succeeded | |
| RECIPE PACKS | |
| computeRecipePack | |
| dataRecipePack | |
| ``` |
Duplicate with line 634.
| ``` | ||
| $ rad environment show my-env | ||
| RESOURCE TYPE GROUP STATE | ||
| my-env Radius.Core/environments default Succeeded | ||
|
|
||
| RECIPE PACK | ||
| computeRecipePack | ||
| dataRecipePack | ||
| ``` |
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.
| ``` | |
| $ rad environment show my-env | |
| RESOURCE TYPE GROUP STATE | |
| my-env Radius.Core/environments default Succeeded | |
| RECIPE PACK | |
| computeRecipePack | |
| dataRecipePack | |
| ``` | |
| $ rad environment show my-env | |
| ENVIRONMENT GROUP | |
| my-env default | |
| KUBERNETES | |
| Namespace: my-env | |
| AWS: | |
| Account ID: 1234567890123 | |
| Region: us-east-1 | |
| AZURE: | |
| Subscription ID: c95e0456-ea5b-4a22-a0cd-e3767f24725b | |
| Resource Group Name: myResourceGroup | |
| RECIPE PACKS GROUP | |
| computeRecipePack default | |
| dataRecipePack default | |
| myCustomPack1 myGroup1 | |
| myCustomPack2 myGroup2 |
| $ rad recipe list -environment my-env | ||
| RECIPE PACK RESOURCE TYPE RECIPE KIND RECIPE LOCATION | ||
| computeRecipePack Radius.Compute/containers terraform https://github.com/project-radius/resource-types-contrib.git//recipes/compute/containers/kubernetes?ref=v0.48 | ||
| computeRecipePack Radius.Security/secrets terraform https://github.com/project-radius/resource-types-contrib.git//recipes/security/secrets?ref=v0.48 | ||
| computeRecipePack Radius.Storage/volumes terraform https://github.com/project-radius/resource-types-contrib.git//recipes/storage/volumes?ref=v0.48 | ||
| dataRecipePack Radius.Data/redisCaches terraform https://github.com/project-radius/resource-types-contrib.git//recipes/data/redisCaches?ref=v0.48 | ||
| networkingRecipePack Radius.Compute/gateways terraform https://github.com/project-radius/resource-types-contrib.git//recipes/compute/gateways?ref=v0.48 |
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.
| $ rad recipe list -environment my-env | |
| RECIPE PACK RESOURCE TYPE RECIPE KIND RECIPE LOCATION | |
| computeRecipePack Radius.Compute/containers terraform https://github.com/project-radius/resource-types-contrib.git//recipes/compute/containers/kubernetes?ref=v0.48 | |
| computeRecipePack Radius.Security/secrets terraform https://github.com/project-radius/resource-types-contrib.git//recipes/security/secrets?ref=v0.48 | |
| computeRecipePack Radius.Storage/volumes terraform https://github.com/project-radius/resource-types-contrib.git//recipes/storage/volumes?ref=v0.48 | |
| dataRecipePack Radius.Data/redisCaches terraform https://github.com/project-radius/resource-types-contrib.git//recipes/data/redisCaches?ref=v0.48 | |
| networkingRecipePack Radius.Compute/gateways terraform https://github.com/project-radius/resource-types-contrib.git//recipes/compute/gateways?ref=v0.48 | |
| $ rad recipe list -environment my-env | |
| RECIPE PACK GROUP RESOURCE TYPE RECIPE KIND RECIPE LOCATION | |
| computeRecipePack default Radius.Compute/containers terraform https://github.com/project-radius/resource-types-contrib.git//recipes/compute/containers/kubernetes?ref=v0.48 | |
| computeRecipePack default Radius.Security/secrets terraform https://github.com/project-radius/resource-types-contrib.git//recipes/security/secrets?ref=v0.48 | |
| computeRecipePack default Radius.Storage/volumes terraform https://github.com/project-radius/resource-types-contrib.git//recipes/storage/volumes?ref=v0.48 | |
| dataRecipePack default Radius.Data/redisCaches terraform https://github.com/project-radius/resource-types-contrib.git//recipes/data/redisCaches?ref=v0.48 | |
| networkingRecipePack default Radius.Compute/gateways terraform https://github.com/project-radius/resource-types-contrib.git//recipes/compute/gateways?ref=v0.48 |
Recipe Pack design. Feature Spec at https://github.com/radius-project/design-notes/blob/main/features/2025-06-compute-extensibility-feature-spec.md