-
Notifications
You must be signed in to change notification settings - Fork 18
Feature spec: compute extensibility user experience #96
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
Feature spec: compute extensibility user experience #96
Conversation
Signed-off-by: Will Tsai <28876888+willtsai@users.noreply.github.com>
Signed-off-by: Will Tsai <28876888+willtsai@users.noreply.github.com>
Signed-off-by: Will Tsai <28876888+willtsai@users.noreply.github.com>
Signed-off-by: Will Tsai <28876888+willtsai@users.noreply.github.com>
… 2.5 Pro assisted in VSCode) Signed-off-by: Will Tsai <28876888+willtsai@users.noreply.github.com>
Signed-off-by: Will Tsai <28876888+willtsai@users.noreply.github.com>
Signed-off-by: Will Tsai <28876888+willtsai@users.noreply.github.com>
Signed-off-by: Will Tsai <28876888+willtsai@users.noreply.github.com>
…actions Signed-off-by: Will Tsai <28876888+willtsai@users.noreply.github.com>
Signed-off-by: Will Tsai <28876888+willtsai@users.noreply.github.com>
|
Should |
Signed-off-by: Will Tsai <28876888+willtsai@users.noreply.github.com>
Signed-off-by: Will <28876888+willtsai@users.noreply.github.com>
Signed-off-by: Will Tsai <28876888+willtsai@users.noreply.github.com>
Signed-off-by: Will Tsai <28876888+willtsai@users.noreply.github.com>
Interesting thought. I don't have strong opinions here. I lean towards keeping the set of namespaces as simple as possible—I see few benefits for breaking things down into separate namespaces. Thoughts on how to decide:
So, I would say we would have:
|
After discussion, we ended up with this. Everything that is a Radius construct gets named into
|
Signed-off-by: Will Tsai <28876888+willtsai@users.noreply.github.com>
Signed-off-by: Will Tsai <28876888+willtsai@users.noreply.github.com>
|
|
||
| #### Data model approach (PREFERRED) | ||
| Recipe packs are modeled as Radius resources, which means they are objects that get saved into the Radius datastore and thus would show up in the app graph data, etc. This approach establishes a new pattern that treats Recipe packs as core Radius resource objects while the Recipes encapsulated in the packs themselves are not. This also means that Recipe packs would be deployed at the Radius resource group level and referenced in each environment within the resource group vs. being deployed within each environment. | ||
|
|
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.
It also helps reduce bloat on the environment resource. We have many other properties that environment supports as well, and it is a good idea to refactor some of the information out so that we dont eventually have to create large environment objects close to serialization limits.
|
|
||
| ### Feature 1: RRT Implementation of Core Application Model Types | ||
| <!-- One or two sentence summary --> | ||
| Re-implement existing core types (`Applications.Core/environments`, `Applications.Core/applications`, `Applications.Core/containers`, `Applications.Core/gateways`, `Applications.Core/secrets`, `Applications.Core/volumes`) as Radius Resource Types (RRT) with new, versioned resource type names (i.e. `Radius.Core/environments`, `Radius.Core/applications`, `Radius.Compute/containers`, `Radius.Compute/gateways`, `Radius.Security/secrets`, `Radius.Storage/volumes`). These RRTs will form the basis of the extensible application model. These new core types must support Connections and may be modified by platform engineers to allow for the configuration of platform-specific capabilities (e.g. confidential containers) in the resource types themselves. |
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 we implement Applications.Core/environments and Applications.Core/applications as RRTs, would customers be able to modify them and create recipes for them? How would we handle this in the CLI and API? Environments and Applications are primary concepts in the CLI, graph, and dashboard, and have expectations about behavior and validation. What would happen if someone registered a new version of those types?
I think there could be value in allowing customers to add on or extend the Environment and Application to track data that is important to them, but that seems out of scope for this feature spec. What do you think?
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.
Apologies, I will update this. We don't want to implement env and app resources as RRTs for now as these are Radius-specific constructs that don't make sense to be extensible (for now at least).
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, please take another look @brooke-hamilton
|
Can you move this feature spec into the features directory? |
…ill be managed by container recipe Signed-off-by: Will Tsai <28876888+willtsai@users.noreply.github.com>
…ill be managed by container recipe Signed-off-by: Will Tsai <28876888+willtsai@users.noreply.github.com>
Signed-off-by: Will Tsai <28876888+willtsai@users.noreply.github.com>
@zachcasper Done. |
brooke-hamilton
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.
🚢 🚀 🎉
Add feature spec for compute extensibility to define requirements and user experience