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

[UDT PR 7 / N] Implement routing for UDT #8070

Merged
merged 1 commit into from
Dec 4, 2024

Conversation

rynowak
Copy link
Contributor

@rynowak rynowak commented Nov 20, 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, 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 is created, if existing samples are affected by the changes in this PR.
  • A PR for the documentation repository is created, if the changes in this PR affect the documentation or any user facing updates are made.
  • A PR for the recipes repository is created, if existing recipes are affected by the changes in this PR.

@rynowak rynowak requested review from a team as code owners November 20, 2024 01:47
@rynowak
Copy link
Contributor Author

rynowak commented Nov 20, 2024

For reviewers: this is the best place to start reviewing.

This is the core logic we use to route requests. Every other change in this PR is either glue-code or a test update 😆

/cc @lakshmimsft @nithyatsu

pkg/ucp/frontend/controller/resourcegroups/util.go Outdated Show resolved Hide resolved
pkg/ucp/frontend/controller/resourcegroups/util.go Outdated Show resolved Hide resolved
pkg/ucp/frontend/controller/resourcegroups/util.go Outdated Show resolved Hide resolved
pkg/ucp/frontend/controller/resourcegroups/util.go Outdated Show resolved Hide resolved
pkg/ucp/backend/service.go Show resolved Hide resolved
pkg/ucp/datamodel/location.go Show resolved Hide resolved
pkg/ucp/datamodel/resourceprovider_util.go Show resolved Hide resolved
pkg/ucp/datamodel/resourceprovider_util.go Show resolved Hide resolved
cmd/ucpd/ucp-dev.yaml Show resolved Hide resolved
@rynowak rynowak temporarily deployed to functional-tests November 20, 2024 18:19 — with GitHub Actions Inactive
@radius-functional-tests
Copy link

radius-functional-tests bot commented Nov 20, 2024

Radius functional test overview

🔍 Go to test action run

Name Value
Repository rynowak/radius
Commit ref fd84337
Unique ID funcba8e2e8c95
Image tag pr-funcba8e2e8c95
Click here to see the list of tools in the current test run
  • gotestsum 1.12.0
  • KinD: v0.20.0
  • Dapr: 1.12.0
  • Azure KeyVault CSI driver: 1.4.2
  • Azure Workload identity webhook: 1.3.0
  • Bicep recipe location ghcr.io/radius-project/dev/test/testrecipes/test-bicep-recipes/<name>:pr-funcba8e2e8c95
  • Terraform recipe location http://tf-module-server.radius-test-tf-module-server.svc.cluster.local/<name>.zip (in cluster)
  • applications-rp test image location: ghcr.io/radius-project/dev/applications-rp:pr-funcba8e2e8c95
  • dynamic-rp test image location: ghcr.io/radius-project/dev/dynamic-rp:pr-funcba8e2e8c95
  • controller test image location: ghcr.io/radius-project/dev/controller:pr-funcba8e2e8c95
  • ucp test image location: ghcr.io/radius-project/dev/ucpd:pr-funcba8e2e8c95
  • deployment-engine test image location: ghcr.io/radius-project/deployment-engine:latest

Test Status

⌛ Building Radius and pushing container images for functional tests...
✅ Container images build succeeded
⌛ Publishing Bicep Recipes for functional tests...
✅ Recipe publishing succeeded
⌛ Starting corerp-cloud functional tests...
⌛ Starting ucp-cloud functional tests...
❌ corerp-cloud functional test failed. Please check the logs for more details
❌ ucp-cloud functional test cancelled. Please check the logs for more details

Copy link
Contributor

@superbeeny superbeeny left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A question and a nit :)

pkg/ucp/datamodel/location.go Show resolved Hide resolved
pkg/ucp/frontend/controller/resourcegroups/util.go Outdated Show resolved Hide resolved
@rynowak
Copy link
Contributor Author

rynowak commented Dec 2, 2024

@nithyatsu @ytimocin @lakshmimsft - updated and resolved feedback.

@radius-functional-tests
Copy link

radius-functional-tests bot commented Dec 3, 2024

Radius functional test overview

🔍 Go to test action run

Name Value
Repository rynowak/radius
Commit ref 64355c9
Unique ID func0d8aa0dcd6
Image tag pr-func0d8aa0dcd6
Click here to see the list of tools in the current test run
  • gotestsum 1.12.0
  • KinD: v0.20.0
  • Dapr:
  • Azure KeyVault CSI driver: 1.4.2
  • Azure Workload identity webhook: 1.3.0
  • Bicep recipe location ghcr.io/radius-project/dev/test/testrecipes/test-bicep-recipes/<name>:pr-func0d8aa0dcd6
  • Terraform recipe location http://tf-module-server.radius-test-tf-module-server.svc.cluster.local/<name>.zip (in cluster)
  • applications-rp test image location: ghcr.io/radius-project/dev/applications-rp:pr-func0d8aa0dcd6
  • dynamic-rp test image location: ghcr.io/radius-project/dev/dynamic-rp:pr-func0d8aa0dcd6
  • controller test image location: ghcr.io/radius-project/dev/controller:pr-func0d8aa0dcd6
  • ucp test image location: ghcr.io/radius-project/dev/ucpd:pr-func0d8aa0dcd6
  • deployment-engine test image location: ghcr.io/radius-project/deployment-engine:latest

Test Status

⌛ Building Radius and pushing container images for functional tests...
✅ Container images build succeeded
⌛ Publishing Bicep Recipes for functional tests...
✅ Recipe publishing succeeded
⌛ Starting corerp-cloud functional tests...
⌛ Starting ucp-cloud functional tests...
✅ ucp-cloud functional tests succeeded
❌ corerp-cloud functional test failed. Please check the logs for more details

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.

Signed-off-by: Ryan Nowak <nowakra@gmail.com>
@radius-functional-tests
Copy link

radius-functional-tests bot commented Dec 4, 2024

Radius functional test overview

🔍 Go to test action run

Name Value
Repository rynowak/radius
Commit ref db48748
Unique ID funcd849fbcd57
Image tag pr-funcd849fbcd57
Click here to see the list of tools in the current test run
  • gotestsum 1.12.0
  • KinD: v0.20.0
  • Dapr:
  • Azure KeyVault CSI driver: 1.4.2
  • Azure Workload identity webhook: 1.3.0
  • Bicep recipe location ghcr.io/radius-project/dev/test/testrecipes/test-bicep-recipes/<name>:pr-funcd849fbcd57
  • Terraform recipe location http://tf-module-server.radius-test-tf-module-server.svc.cluster.local/<name>.zip (in cluster)
  • applications-rp test image location: ghcr.io/radius-project/dev/applications-rp:pr-funcd849fbcd57
  • dynamic-rp test image location: ghcr.io/radius-project/dev/dynamic-rp:pr-funcd849fbcd57
  • controller test image location: ghcr.io/radius-project/dev/controller:pr-funcd849fbcd57
  • ucp test image location: ghcr.io/radius-project/dev/ucpd:pr-funcd849fbcd57
  • deployment-engine test image location: ghcr.io/radius-project/deployment-engine:latest

Test Status

⌛ Building Radius and pushing container images for functional tests...
✅ Container images build succeeded
⌛ Publishing Bicep Recipes for functional tests...
✅ Recipe publishing succeeded
⌛ Starting corerp-cloud functional tests...
⌛ Starting ucp-cloud functional tests...
✅ ucp-cloud functional tests succeeded
✅ corerp-cloud functional tests succeeded

@rynowak rynowak merged commit f118751 into radius-project:main Dec 4, 2024
28 checks passed
@rynowak rynowak deleted the udt-routing branch December 4, 2024 01:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants