Skip to content
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

User-Defined Resource Types #6688

Open
Tracked by #14
AaronCrawfis opened this issue Nov 10, 2023 · 5 comments · Fixed by #8049 or #8161
Open
Tracked by #14

User-Defined Resource Types #6688

AaronCrawfis opened this issue Nov 10, 2023 · 5 comments · Fixed by #8049 or #8161
Labels
feature This issue describes a feature request in Radius triaged This issue has been reviewed and triaged

Comments

@AaronCrawfis
Copy link
Contributor

AaronCrawfis commented Nov 10, 2023

Overview of feature request

Today, there are a fixed set of portable Radius resources:

  • Applications.Dapr/stateStores
  • Applications.Dapr/pubSubBrokers
  • Applications.Datastores/redisCaches
  • Applications.Datastores/sqlDatabases
  • ...

These resources have a fixed schema and it allows teams to only select from a pre-defined list.

What's missing is a way for a team at an organization like Contoso to model their own schema and abstractions to work with.

For example, Contoso may want a resource type like:

resource storage 'Contoso.Storage/database' = {
  name: 'inventory'
  properties: {...}
}

This would allow developers to select from resource types that are custom to Contoso. This also doesn't have to be limited to storage/messaging resources. Custom types could also encapsulate entire services or dependencies such as:

resource storage 'Contoso.Monitoring/diagnostics' = {
  name: 'inventory'
  properties: {...}
}

Acceptance criteria

  • Users can define their own types + schema
  • These resources can be modeled in Bicep, acting as a key/value store for the properties
  • Recipes should work with the resources, allowing IT operators to define Recipe templates that spin up the actual backing infrastructure.

Additional context

AB#10284

Tasks

Preview Give feedback
No tasks being tracked yet.
@AaronCrawfis AaronCrawfis added the feature This issue describes a feature request in Radius label Nov 10, 2023
@radius-triage-bot
Copy link

👋 @AaronCrawfis Thanks for filing this feature request.

A project maintainer will review this feature request and get back to you soon.

We also welcome community contributions! If you would like to pick this item up sooner and submit a pull request, please visit our contribution guidelines and assign this to yourself by commenting "/assign" on this issue.

For more information on our triage process please visit our triage overview

@nicolejms nicolejms added the triaged This issue has been reviewed and triaged label Nov 13, 2023
@radius-triage-bot
Copy link

👍 We've reviewed this issue and have agreed to add it to our backlog. Please subscribe to this issue for notifications, we'll provide updates when we pick it up.

We also welcome community contributions! If you would like to pick this item up sooner and submit a pull request, please visit our contribution guidelines and assign this to yourself by commenting "/assign" on this issue.

For more information on our triage process please visit our triage overview

@nicolejms
Copy link
Contributor

on the roadmap. keeping in backlog

@AaronCrawfis AaronCrawfis changed the title Custom Resource Types User-Defined Resource Types Nov 13, 2023
@willtsai willtsai moved this to 📋 Backlog in Radius Roadmap Dec 15, 2023
rynowak added a commit that referenced this issue Jun 19, 2024
# Description

This change implements the skeleton of user-defined types. The changes
here enable the following:

- Users can author a resource of type
`System.Resources/resourceProviders` to create a user-defined-type.
- Users can use the UCP API to register and query `resourceProviders`.
- Users can use the UCP API to execute the full lifecycle of a
user-defined-type.

Right now the user-defined-type RP will use our default operation
(synchronous) controllers to implement the resource lifecycle. There is
no background processing.

The next step will include the ability to execute asynchronous
operations like recipes.

## Type of change

- This pull request fixes a bug in Radius and has an approved issue
(issue link required).
- This pull request adds or changes features of Radius and has an
approved issue (issue link required).


Part of: #6688 

## Feature Branch

**note: This change is going into a feature-branch where we can iterate
on the user-defined-type design before integrating it with main. The PR
is an FYI 😆.**

---------

Signed-off-by: ytimocin <[email protected]>
Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: willdavsmith <[email protected]>
Signed-off-by: Ryan Nowak <[email protected]>
Co-authored-by: Yetkin Timocin <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Will Smith <[email protected]>
rynowak added a commit that referenced this issue Jun 19, 2024
This change implements the skeleton of user-defined types. The changes
here enable the following:

- Users can author a resource of type
`System.Resources/resourceProviders` to create a user-defined-type.
- Users can use the UCP API to register and query `resourceProviders`.
- Users can use the UCP API to execute the full lifecycle of a
user-defined-type.

Right now the user-defined-type RP will use our default operation
(synchronous) controllers to implement the resource lifecycle. There is
no background processing.

The next step will include the ability to execute asynchronous
operations like recipes.

- This pull request fixes a bug in Radius and has an approved issue
(issue link required).
- This pull request adds or changes features of Radius and has an
approved issue (issue link required).

Part of: #6688

**note: This change is going into a feature-branch where we can iterate
on the user-defined-type design before integrating it with main. The PR
is an FYI 😆.**

---------

Signed-off-by: ytimocin <[email protected]>
Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: willdavsmith <[email protected]>
Signed-off-by: Ryan Nowak <[email protected]>
Co-authored-by: Yetkin Timocin <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Will Smith <[email protected]>
rynowak added a commit that referenced this issue Jun 20, 2024
# Description

This commit adds new commands and capabilities for working with
user-defined-types in the CLI.

Some new commands:

- `rad resourceprovider *`: CRUDL lifecycle management for a resource
provider.
- `rad resourceprovider new`: Scaffolding a template for a resource
provider.
- `rad resourcetype [show|list]`: RL lifecycle management for resource
types (read-only).
- `rad resource create`: CU lifecycle management for any resource type.

Also updated `rad resource delete` and similar commands to work with
user-defined-types. Many commands validate a fixed list of resource
types, this update allows commands to work with an arbitrary resource
type.

## Type of change

- This pull request adds or changes features of Radius and has an
approved issue (issue link required).


Part of: #6688

Signed-off-by: Ryan Nowak <[email protected]>
rynowak added a commit that referenced this issue Jun 24, 2024
This change implements the skeleton of user-defined types. The changes
here enable the following:

- Users can author a resource of type
`System.Resources/resourceProviders` to create a user-defined-type.
- Users can use the UCP API to register and query `resourceProviders`.
- Users can use the UCP API to execute the full lifecycle of a
user-defined-type.

Right now the user-defined-type RP will use our default operation
(synchronous) controllers to implement the resource lifecycle. There is
no background processing.

The next step will include the ability to execute asynchronous
operations like recipes.

- This pull request fixes a bug in Radius and has an approved issue
(issue link required).
- This pull request adds or changes features of Radius and has an
approved issue (issue link required).

Part of: #6688

**note: This change is going into a feature-branch where we can iterate
on the user-defined-type design before integrating it with main. The PR
is an FYI 😆.**

---------

Signed-off-by: ytimocin <[email protected]>
Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: willdavsmith <[email protected]>
Signed-off-by: Ryan Nowak <[email protected]>
Co-authored-by: Yetkin Timocin <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Will Smith <[email protected]>
rynowak added a commit that referenced this issue Jun 24, 2024
# Description

This commit adds new commands and capabilities for working with
user-defined-types in the CLI.

Some new commands:

- `rad resourceprovider *`: CRUDL lifecycle management for a resource
provider.
- `rad resourceprovider new`: Scaffolding a template for a resource
provider.
- `rad resourcetype [show|list]`: RL lifecycle management for resource
types (read-only).
- `rad resource create`: CU lifecycle management for any resource type.

Also updated `rad resource delete` and similar commands to work with
user-defined-types. Many commands validate a fixed list of resource
types, this update allows commands to work with an arbitrary resource
type.

## Type of change

- This pull request adds or changes features of Radius and has an
approved issue (issue link required).


Part of: #6688

Signed-off-by: Ryan Nowak <[email protected]>
rynowak added a commit that referenced this issue Jun 25, 2024
This change implements the skeleton of user-defined types. The changes
here enable the following:

- Users can author a resource of type
`System.Resources/resourceProviders` to create a user-defined-type.
- Users can use the UCP API to register and query `resourceProviders`.
- Users can use the UCP API to execute the full lifecycle of a
user-defined-type.

Right now the user-defined-type RP will use our default operation
(synchronous) controllers to implement the resource lifecycle. There is
no background processing.

The next step will include the ability to execute asynchronous
operations like recipes.

- This pull request fixes a bug in Radius and has an approved issue
(issue link required).
- This pull request adds or changes features of Radius and has an
approved issue (issue link required).

Part of: #6688

**note: This change is going into a feature-branch where we can iterate
on the user-defined-type design before integrating it with main. The PR
is an FYI 😆.**

---------

Signed-off-by: ytimocin <[email protected]>
Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: willdavsmith <[email protected]>
Signed-off-by: Ryan Nowak <[email protected]>
Co-authored-by: Yetkin Timocin <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Will Smith <[email protected]>
Signed-off-by: Ryan Nowak <[email protected]>
rynowak added a commit that referenced this issue Jun 25, 2024
This commit adds new commands and capabilities for working with
user-defined-types in the CLI.

Some new commands:

- `rad resourceprovider *`: CRUDL lifecycle management for a resource
provider.
- `rad resourceprovider new`: Scaffolding a template for a resource
provider.
- `rad resourcetype [show|list]`: RL lifecycle management for resource
types (read-only).
- `rad resource create`: CU lifecycle management for any resource type.

Also updated `rad resource delete` and similar commands to work with
user-defined-types. Many commands validate a fixed list of resource
types, this update allows commands to work with an arbitrary resource
type.

- This pull request adds or changes features of Radius and has an
approved issue (issue link required).

Part of: #6688

Signed-off-by: Ryan Nowak <[email protected]>
rynowak added a commit that referenced this issue Oct 9, 2024
…7967)

# Description

This change implements the API functionality for registering resource
providers and related child-types through the Radius API. This is the
first step towards making the Radius API surface extensible. For this
first step there is no consumer of this data or these APIs. Subsequent
changes will consume the data and implement the user-facing
functionality.

What's possible in this commit:

- CRUDL operations on resource provider and related types like:
  - resource type
  - api version (child of resource type)
  - location

Additionally, this change implements the resource provider "summary"
API. The summary API provides a combined view of the most useful data
from each resource provider and its children.

---

For reviewers there are a few important notes:

- Routing in UCP is complex, and error prone to work on. I abandoned the
existing code and rewrote it in a form that's more native to go-chi.
This was a significant improvement and made it much easier to debug the
code. UCP has good integration tests so I'm not very concerned about
regressions.
- This is our first use-case for child resources in Radius. I used the
async controllers to implement cascading deletion.
- The "summary" API uses cached data. The async controllers for resource
provider and other types update the cache. This is our first use of this
pattern, but it felt right to me.

## Type of change


- This pull request adds or changes features of Radius and has an
approved issue (issue link required).


Part of: #6688

Signed-off-by: Ryan Nowak <[email protected]>
rynowak added a commit to rynowak/radius that referenced this issue Oct 31, 2024
This change implements the skeleton of user-defined types. The changes
here enable the following:

- Users can author a resource of type
`System.Resources/resourceProviders` to create a user-defined-type.
- Users can use the UCP API to register and query `resourceProviders`.
- Users can use the UCP API to execute the full lifecycle of a
user-defined-type.

Right now the user-defined-type RP will use our default operation
(synchronous) controllers to implement the resource lifecycle. There is
no background processing.

The next step will include the ability to execute asynchronous
operations like recipes.

- This pull request fixes a bug in Radius and has an approved issue
(issue link required).
- This pull request adds or changes features of Radius and has an
approved issue (issue link required).

Part of: radius-project#6688

**note: This change is going into a feature-branch where we can iterate
on the user-defined-type design before integrating it with main. The PR
is an FYI 😆.**

---------

Signed-off-by: ytimocin <[email protected]>
Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: willdavsmith <[email protected]>
Signed-off-by: Ryan Nowak <[email protected]>
Co-authored-by: Yetkin Timocin <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Will Smith <[email protected]>
Signed-off-by: Ryan Nowak <[email protected]>
rynowak added a commit to rynowak/radius that referenced this issue Oct 31, 2024
This commit adds new commands and capabilities for working with
user-defined-types in the CLI.

Some new commands:

- `rad resourceprovider *`: CRUDL lifecycle management for a resource
provider.
- `rad resourceprovider new`: Scaffolding a template for a resource
provider.
- `rad resourcetype [show|list]`: RL lifecycle management for resource
types (read-only).
- `rad resource create`: CU lifecycle management for any resource type.

Also updated `rad resource delete` and similar commands to work with
user-defined-types. Many commands validate a fixed list of resource
types, this update allows commands to work with an arbitrary resource
type.

- This pull request adds or changes features of Radius and has an
approved issue (issue link required).

Part of: radius-project#6688

Signed-off-by: Ryan Nowak <[email protected]>
rynowak added a commit to rynowak/radius that referenced this issue Oct 31, 2024
This change implements the skeleton of user-defined types. The changes
here enable the following:

- Users can author a resource of type
`System.Resources/resourceProviders` to create a user-defined-type.
- Users can use the UCP API to register and query `resourceProviders`.
- Users can use the UCP API to execute the full lifecycle of a
user-defined-type.

Right now the user-defined-type RP will use our default operation
(synchronous) controllers to implement the resource lifecycle. There is
no background processing.

The next step will include the ability to execute asynchronous
operations like recipes.

- This pull request fixes a bug in Radius and has an approved issue
(issue link required).
- This pull request adds or changes features of Radius and has an
approved issue (issue link required).

Part of: radius-project#6688

**note: This change is going into a feature-branch where we can iterate
on the user-defined-type design before integrating it with main. The PR
is an FYI 😆.**

---------

Signed-off-by: ytimocin <[email protected]>
Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: willdavsmith <[email protected]>
Signed-off-by: Ryan Nowak <[email protected]>
Co-authored-by: Yetkin Timocin <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Will Smith <[email protected]>
Signed-off-by: Ryan Nowak <[email protected]>
rynowak added a commit to rynowak/radius that referenced this issue Oct 31, 2024
This commit adds new commands and capabilities for working with
user-defined-types in the CLI.

Some new commands:

- `rad resourceprovider *`: CRUDL lifecycle management for a resource
provider.
- `rad resourceprovider new`: Scaffolding a template for a resource
provider.
- `rad resourcetype [show|list]`: RL lifecycle management for resource
types (read-only).
- `rad resource create`: CU lifecycle management for any resource type.

Also updated `rad resource delete` and similar commands to work with
user-defined-types. Many commands validate a fixed list of resource
types, this update allows commands to work with an arbitrary resource
type.

- This pull request adds or changes features of Radius and has an
approved issue (issue link required).

Part of: radius-project#6688

Signed-off-by: Ryan Nowak <[email protected]>
rynowak added a commit to rynowak/radius that referenced this issue Nov 4, 2024
This change implements the skeleton of user-defined types. The changes
here enable the following:

- Users can author a resource of type
`System.Resources/resourceProviders` to create a user-defined-type.
- Users can use the UCP API to register and query `resourceProviders`.
- Users can use the UCP API to execute the full lifecycle of a
user-defined-type.

Right now the user-defined-type RP will use our default operation
(synchronous) controllers to implement the resource lifecycle. There is
no background processing.

The next step will include the ability to execute asynchronous
operations like recipes.

- This pull request fixes a bug in Radius and has an approved issue
(issue link required).
- This pull request adds or changes features of Radius and has an
approved issue (issue link required).

Part of: radius-project#6688

**note: This change is going into a feature-branch where we can iterate
on the user-defined-type design before integrating it with main. The PR
is an FYI 😆.**

---------

Signed-off-by: ytimocin <[email protected]>
Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: willdavsmith <[email protected]>
Signed-off-by: Ryan Nowak <[email protected]>
Co-authored-by: Yetkin Timocin <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Will Smith <[email protected]>
Signed-off-by: Ryan Nowak <[email protected]>
rynowak added a commit to rynowak/radius that referenced this issue Nov 4, 2024
This commit adds new commands and capabilities for working with
user-defined-types in the CLI.

Some new commands:

- `rad resourceprovider *`: CRUDL lifecycle management for a resource
provider.
- `rad resourceprovider new`: Scaffolding a template for a resource
provider.
- `rad resourcetype [show|list]`: RL lifecycle management for resource
types (read-only).
- `rad resource create`: CU lifecycle management for any resource type.

Also updated `rad resource delete` and similar commands to work with
user-defined-types. Many commands validate a fixed list of resource
types, this update allows commands to work with an arbitrary resource
type.

- This pull request adds or changes features of Radius and has an
approved issue (issue link required).

Part of: radius-project#6688

Signed-off-by: Ryan Nowak <[email protected]>
@rynowak rynowak mentioned this issue Nov 4, 2024
6 tasks
rynowak added a commit to rynowak/radius that referenced this issue Nov 5, 2024
This change implements the skeleton of user-defined types. The changes
here enable the following:

- Users can author a resource of type
`System.Resources/resourceProviders` to create a user-defined-type.
- Users can use the UCP API to register and query `resourceProviders`.
- Users can use the UCP API to execute the full lifecycle of a
user-defined-type.

Right now the user-defined-type RP will use our default operation
(synchronous) controllers to implement the resource lifecycle. There is
no background processing.

The next step will include the ability to execute asynchronous
operations like recipes.

- This pull request fixes a bug in Radius and has an approved issue
(issue link required).
- This pull request adds or changes features of Radius and has an
approved issue (issue link required).

Part of: radius-project#6688

**note: This change is going into a feature-branch where we can iterate
on the user-defined-type design before integrating it with main. The PR
is an FYI 😆.**

---------

Signed-off-by: ytimocin <[email protected]>
Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: willdavsmith <[email protected]>
Signed-off-by: Ryan Nowak <[email protected]>
Co-authored-by: Yetkin Timocin <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Will Smith <[email protected]>
Signed-off-by: Ryan Nowak <[email protected]>
rynowak added a commit that referenced this issue Dec 4, 2024
# Description

This change adds support routing decisions based on UDT registrations.
The logic in UCP that deals with request routing will now check for
resource types and resource provider locations, with a fallback to the
previous logic for compatibility.

This is powered by a new configuration setting in UCP's configuration,
that will be configured to the URL of dynamic-rp.

Note that there's nothing in dynamic-rp yet to serve these requests.
This will be done in a follow-up.


## Type of change


- This pull request adds or changes features of Radius and has an
approved issue (issue link required).


Part of: #6688 

## Contributor checklist
Please verify that the PR meets the following requirements, where
applicable:

- [ ] An overview of proposed schema changes is included in a linked
GitHub issue.
- [ ] A design document PR is created in the [design-notes
repository](https://github.com/radius-project/design-notes/), if new
APIs are being introduced.
- [ ] If applicable, design document has been reviewed and approved by
Radius maintainers/approvers.
- [ ] A PR for the [samples
repository](https://github.com/radius-project/samples) is created, if
existing samples are affected by the changes in this PR.
- [ ] A PR for the [documentation
repository](https://github.com/radius-project/docs) is created, if the
changes in this PR affect the documentation or any user facing updates
are made.
- [ ] A PR for the [recipes
repository](https://github.com/radius-project/recipes) is created, if
existing recipes are affected by the changes in this PR.

Signed-off-by: Ryan Nowak <[email protected]>
rynowak added a commit that referenced this issue Dec 19, 2024
# Description

This change updates implements a shared (reusable) integration test host
for the Radius control-plane services. The new integration test host
enables us to do in-memory testing of UCP and dynamic-rp using a "full
stack" approach.

This change is a significant refactor because the "glue" code in UCP had
many points of divergence with the rest of our codebase. The following
major changes are the bulk of the work:

- Defining new types for configuration + options in UCP
- Updating the UCP configuration file to match the format of other
components


## Type of change


- This pull request is a minor refactor, code cleanup, test improvement,
or other maintenance task and doesn't change the functionality of Radius
(issue link optional).

Note: this is a pretty significant refactor, not a minor one 😆 

Part of: #6688 


## Contributor checklist
Please verify that the PR meets the following requirements, where
applicable:

- [ ] An overview of proposed schema changes is included in a linked
GitHub issue.
- [ ] A design document PR is created in the [design-notes
repository](https://github.com/radius-project/design-notes/), if new
APIs are being introduced.
- [ ] If applicable, design document has been reviewed and approved by
Radius maintainers/approvers.
- [ ] A PR for the [samples
repository](https://github.com/radius-project/samples) is created, if
existing samples are affected by the changes in this PR.
- [ ] A PR for the [documentation
repository](https://github.com/radius-project/docs) is created, if the
changes in this PR affect the documentation or any user facing updates
are made.
- [ ] A PR for the [recipes
repository](https://github.com/radius-project/recipes) is created, if
existing recipes are affected by the changes in this PR.

Signed-off-by: Ryan Nowak <[email protected]>
rynowak added a commit that referenced this issue Dec 31, 2024
# Description

This change implements the standard resource provider API for dynamic
resources. This enables the dynamic-rp to serve the standard CRUDL API
functionality for user-defined types.

This change does NOT add recipe support, that will come in the next
change. The pattern that's supported by this change is an "inert"
resource which has no backend functionality. Recipe support will be a
superset of this functionality.


## Type of change


Part of: #6688 

## Contributor checklist
Please verify that the PR meets the following requirements, where
applicable:

- [ ] An overview of proposed schema changes is included in a linked
GitHub issue.
- [ ] A design document PR is created in the [design-notes
repository](https://github.com/radius-project/design-notes/), if new
APIs are being introduced.
- [ ] If applicable, design document has been reviewed and approved by
Radius maintainers/approvers.
- [ ] A PR for the [samples
repository](https://github.com/radius-project/samples) is created, if
existing samples are affected by the changes in this PR.
- [ ] A PR for the [documentation
repository](https://github.com/radius-project/docs) is created, if the
changes in this PR affect the documentation or any user facing updates
are made.
- [ ] A PR for the [recipes
repository](https://github.com/radius-project/recipes) is created, if
existing recipes are affected by the changes in this PR.

Signed-off-by: Ryan Nowak <[email protected]>
@rynowak rynowak reopened this Jan 3, 2025
@rynowak
Copy link
Contributor

rynowak commented Jan 3, 2025

xD Super not done yet

rynowak added a commit that referenced this issue Jan 4, 2025
# Description

This change adds the 'capabilities' concept to the resource type API.

- Capabilities enable resource types to indicate the schema and
behaviors they support.
- Capabilities enable clients like the `rad` CLI to understand the
behaviors of resource types dynamically.

For example, we're adding the `SupportsRecipes` capability.

- All resource types that support recipes should declare this
capability. This is how a UDT will opt-in to recipe functionality during
provisioning.
- The `rad` CLI functionality for `rad recipe register` can introspect
the resource type to validate recipe support, rather than hardcoding
which types have the support and which don't.

----

Description of the changes:

- The manifests previously supported capabilities as part of the API
version, we're moving this to the resource type for a simplification.
- The manifest entry for capabilities wasn't sent to the server. Now it
is.
- Updated API, converters, and UCP functionality.


## Type of change

- This pull request adds or changes features of Radius and has an
approved issue (issue link required).


Part of: #6688

## Contributor checklist
Please verify that the PR meets the following requirements, where
applicable:

- [ ] An overview of proposed schema changes is included in a linked
GitHub issue.
- [ ] A design document PR is created in the [design-notes
repository](https://github.com/radius-project/design-notes/), if new
APIs are being introduced.
- [ ] If applicable, design document has been reviewed and approved by
Radius maintainers/approvers.
- [ ] A PR for the [samples
repository](https://github.com/radius-project/samples) is created, if
existing samples are affected by the changes in this PR.
- [ ] A PR for the [documentation
repository](https://github.com/radius-project/docs) is created, if the
changes in this PR affect the documentation or any user facing updates
are made.
- [ ] A PR for the [recipes
repository](https://github.com/radius-project/recipes) is created, if
existing recipes are affected by the changes in this PR.

Signed-off-by: Ryan Nowak <[email protected]>
rynowak added a commit that referenced this issue Jan 5, 2025
# Description

This change adds the recipe engine to the dynamic-rp. There's no usage
of the recipe engine yet in this PR, it's a prerequisite for what's
coming next.

The main problem being solved is improving the initialization code so
that it can be used in our integration tests.

## Type of change


- This pull request is a minor refactor, code cleanup, test improvement,
or other maintenance task and doesn't change the functionality of Radius
(issue link optional).


Part of: #6688

## Contributor checklist
Please verify that the PR meets the following requirements, where
applicable:

- [ ] An overview of proposed schema changes is included in a linked
GitHub issue.
- [ ] A design document PR is created in the [design-notes
repository](https://github.com/radius-project/design-notes/), if new
APIs are being introduced.
- [ ] If applicable, design document has been reviewed and approved by
Radius maintainers/approvers.
- [ ] A PR for the [samples
repository](https://github.com/radius-project/samples) is created, if
existing samples are affected by the changes in this PR.
- [ ] A PR for the [documentation
repository](https://github.com/radius-project/docs) is created, if the
changes in this PR affect the documentation or any user facing updates
are made.
- [ ] A PR for the [recipes
repository](https://github.com/radius-project/recipes) is created, if
existing recipes are affected by the changes in this PR.

Signed-off-by: Ryan Nowak <[email protected]>
rynowak added a commit that referenced this issue Jan 5, 2025
# Description

This new command will transform a resource provider manifest into an
extension that the Bicep compiler and editor can understand. The new
command shells out to `bicep publish-extension`.

Functional testing will be covered as part of the overall test plan for
the UDT feature.


## Type of change

- This pull request adds or changes features of Radius and has an
approved issue (issue link required).


Part of: #6688

## Contributor checklist
Please verify that the PR meets the following requirements, where
applicable:

- [ ] An overview of proposed schema changes is included in a linked
GitHub issue.
- [ ] A design document PR is created in the [design-notes
repository](https://github.com/radius-project/design-notes/), if new
APIs are being introduced.
- [ ] If applicable, design document has been reviewed and approved by
Radius maintainers/approvers.
- [ ] A PR for the [samples
repository](https://github.com/radius-project/samples) is created, if
existing samples are affected by the changes in this PR.
- [ ] A PR for the [documentation
repository](https://github.com/radius-project/docs) is created, if the
changes in this PR affect the documentation or any user facing updates
are made.
- [ ] A PR for the [recipes
repository](https://github.com/radius-project/recipes) is created, if
existing recipes are affected by the changes in this PR.

Signed-off-by: Ryan Nowak <[email protected]>
lakshmimsft added a commit that referenced this issue Jan 21, 2025
# Description

1. Remove Legacy Routing. Update tests as necessary
2. Add global location, address to manifests. Include them in ucp
images.

## Type of change

- This pull request adds or changes features of Radius and has an
approved issue (#6688 ).

Part of: #6688 

## Contributor checklist
Please verify that the PR meets the following requirements, where
applicable:

- [ ] An overview of proposed schema changes is included in a linked
GitHub issue.
- [ ] A design document PR is created in the [design-notes
repository](https://github.com/radius-project/design-notes/), if new
APIs are being introduced.
- [ ] If applicable, design document has been reviewed and approved by
Radius maintainers/approvers.
- [ ] A PR for the [samples
repository](https://github.com/radius-project/samples) is created, if
existing samples are affected by the changes in this PR.
- [ ] A PR for the [documentation
repository](https://github.com/radius-project/docs) is created, if the
changes in this PR affect the documentation or any user facing updates
are made.
- [ ] A PR for the [recipes
repository](https://github.com/radius-project/recipes) is created, if
existing recipes are affected by the changes in this PR.

---------

Signed-off-by: lakshmimsft <[email protected]>
lakshmimsft added a commit that referenced this issue Jan 22, 2025
# Description

1. Remove Legacy Routing. Update tests as necessary
2. Add global location, address to manifests. Include them in ucp
images.

## Type of change

- This pull request adds or changes features of Radius and has an
approved issue (#6688 ).

Part of: #6688 

## Contributor checklist
Please verify that the PR meets the following requirements, where
applicable:

- [ ] An overview of proposed schema changes is included in a linked
GitHub issue.
- [ ] A design document PR is created in the [design-notes
repository](https://github.com/radius-project/design-notes/), if new
APIs are being introduced.
- [ ] If applicable, design document has been reviewed and approved by
Radius maintainers/approvers.
- [ ] A PR for the [samples
repository](https://github.com/radius-project/samples) is created, if
existing samples are affected by the changes in this PR.
- [ ] A PR for the [documentation
repository](https://github.com/radius-project/docs) is created, if the
changes in this PR affect the documentation or any user facing updates
are made.
- [ ] A PR for the [recipes
repository](https://github.com/radius-project/recipes) is created, if
existing recipes are affected by the changes in this PR.

---------

Signed-off-by: lakshmimsft <[email protected]>
lakshmimsft added a commit that referenced this issue Jan 22, 2025
# Description

1. Remove Legacy Routing. Update tests as necessary
2. Add global location, address to manifests. Include them in ucp
images.

## Type of change

- This pull request adds or changes features of Radius and has an
approved issue (#6688 ).

Part of: #6688 

## Contributor checklist
Please verify that the PR meets the following requirements, where
applicable:

- [ ] An overview of proposed schema changes is included in a linked
GitHub issue.
- [ ] A design document PR is created in the [design-notes
repository](https://github.com/radius-project/design-notes/), if new
APIs are being introduced.
- [ ] If applicable, design document has been reviewed and approved by
Radius maintainers/approvers.
- [ ] A PR for the [samples
repository](https://github.com/radius-project/samples) is created, if
existing samples are affected by the changes in this PR.
- [ ] A PR for the [documentation
repository](https://github.com/radius-project/docs) is created, if the
changes in this PR affect the documentation or any user facing updates
are made.
- [ ] A PR for the [recipes
repository](https://github.com/radius-project/recipes) is created, if
existing recipes are affected by the changes in this PR.

---------

Signed-off-by: lakshmimsft <[email protected]>
lakshmimsft added a commit that referenced this issue Jan 23, 2025
# Description

1. Remove Legacy Routing. Update tests as necessary
2. Add global location, address to manifests. Include them in ucp
images.

## Type of change

- This pull request adds or changes features of Radius and has an
approved issue (#6688 ).

Part of: #6688 

## Contributor checklist
Please verify that the PR meets the following requirements, where
applicable:

- [ ] An overview of proposed schema changes is included in a linked
GitHub issue.
- [ ] A design document PR is created in the [design-notes
repository](https://github.com/radius-project/design-notes/), if new
APIs are being introduced.
- [ ] If applicable, design document has been reviewed and approved by
Radius maintainers/approvers.
- [ ] A PR for the [samples
repository](https://github.com/radius-project/samples) is created, if
existing samples are affected by the changes in this PR.
- [ ] A PR for the [documentation
repository](https://github.com/radius-project/docs) is created, if the
changes in this PR affect the documentation or any user facing updates
are made.
- [ ] A PR for the [recipes
repository](https://github.com/radius-project/recipes) is created, if
existing recipes are affected by the changes in this PR.

---------

Signed-off-by: lakshmimsft <[email protected]>
nithyatsu pushed a commit that referenced this issue Jan 23, 2025
# Description
Commit for PR #8205 is being reinstated with updates to cloud and
non-cloud test workflows.
The updates to the workflows are in commit
940a693.

Original PR Description:
1. Remove Legacy Routing. Update tests as necessary
2. Add global location, address to manifests. Include them in ucp
images.

## Type of change

- This pull request adds or changes features of Radius and has an
approved issue (#6688 ).

Part of: #6688 

## Contributor checklist
Please verify that the PR meets the following requirements, where
applicable:

- [ ] An overview of proposed schema changes is included in a linked
GitHub issue.
- [ ] A design document PR is created in the [design-notes
repository](https://github.com/radius-project/design-notes/), if new
APIs are being introduced.
- [ ] If applicable, design document has been reviewed and approved by
Radius maintainers/approvers.
- [ ] A PR for the [samples
repository](https://github.com/radius-project/samples) is created, if
existing samples are affected by the changes in this PR.
- [ ] A PR for the [documentation
repository](https://github.com/radius-project/docs) is created, if the
changes in this PR affect the documentation or any user facing updates
are made.
- [ ] A PR for the [recipes
repository](https://github.com/radius-project/recipes) is created, if
existing recipes are affected by the changes in this PR.

---------

Signed-off-by: lakshmimsft <[email protected]>
nithyatsu added a commit that referenced this issue Feb 11, 2025
# Description

Since we now register resource provider manifests at startup and are in
process of enabling UDT end to end, we should not use static resource
type lists.

This PR removes static resource type lists in cli code. 

## Type of change

- This pull request adds or changes features of Radius and has an
approved issue (issue link required).

Part of #6688

## Contributor checklist
Please verify that the PR meets the following requirements, where
applicable:

- An overview of proposed schema changes is included in a linked GitHub
issue.
    - [ ] Yes
    - [X ] Not applicable
- A design document PR is created in the [design-notes
repository](https://github.com/radius-project/design-notes/), if new
APIs are being introduced.
    - [ ] Yes
    - [X ] Not applicable
- The design document has been reviewed and approved by Radius
maintainers/approvers.
    - [ ] Yes
    - [ X] Not applicable
- A PR for the [samples
repository](https://github.com/radius-project/samples) is created, if
existing samples are affected by the changes in this PR.
    - [ ] Yes
    - [X ] Not applicable
- A PR for the [documentation
repository](https://github.com/radius-project/docs) is created, if the
changes in this PR affect the documentation or any user facing updates
are made.
    - [ ] Yes
    - [X ] Not applicable
- A PR for the [recipes
repository](https://github.com/radius-project/recipes) is created, if
existing recipes are affected by the changes in this PR.
    - [ ] Yes
    - [ X] Not applicable
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature This issue describes a feature request in Radius triaged This issue has been reviewed and triaged
Projects
None yet
3 participants