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

Implementation of resource providers and resource types registration #7967

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Commits on Sep 27, 2024

  1. Implementation of resource providers and resource types registration

    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.
    
    Signed-off-by: Ryan Nowak <nowakra@gmail.com>
    rynowak authored and ytimocin committed Sep 27, 2024
    Configuration menu
    Copy the full SHA
    9f6be61 View commit details
    Browse the repository at this point in the history