Move Contour routing to Gateway API recipes by default#11995
Move Contour routing to Gateway API recipes by default#11995willdavsmith wants to merge 11 commits into
Conversation
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
Unit Tests 2 files ±0 438 suites ±0 6m 59s ⏱️ -17s Results for commit 3ae3ba9. ± Comparison against base commit 1dbd9a1. This pull request removes 1 and adds 5 tests. Note that renamed tests count towards both.♻️ This comment has been updated with latest results. |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #11995 +/- ##
==========================================
+ Coverage 52.13% 52.20% +0.06%
==========================================
Files 734 735 +1
Lines 46704 46854 +150
==========================================
+ Hits 24350 24458 +108
- Misses 20017 20054 +37
- Partials 2337 2342 +5 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
Adds a new design note describing how Radius’ current built-in Contour (HTTPProxy) ingress rendering could be moved out of core RP and into contributed recipe packs while preserving the existing Radius.Compute/* application model and default behavior.
Changes:
- Introduces a design proposal for a Contour HTTPProxy compatibility recipe pack (
gatewaysroot proxy +routeschild proxies + existingcontainersrecipes). - Documents current Contour installation defaults and how default recipe-pack behavior could incorporate HTTPProxy parity.
- Outlines test, security (RBAC), and compatibility considerations, plus a Gateway API alternative path.
Signed-off-by: willdavsmith <willdavsmith@gmail.com>
This reverts commit 93bd23a. Signed-off-by: willdavsmith <willdavsmith@gmail.com>
Signed-off-by: willdavsmith <willdavsmith@gmail.com>
Signed-off-by: willdavsmith <willdavsmith@gmail.com>
Signed-off-by: willdavsmith <willdavsmith@gmail.com>
Signed-off-by: willdavsmith <willdavsmith@gmail.com>
Signed-off-by: willdavsmith <willdavsmith@gmail.com>
Signed-off-by: willdavsmith <willdavsmith@gmail.com>
Signed-off-by: willdavsmith <willdavsmith@gmail.com>
115307b to
edac559
Compare
Signed-off-by: willdavsmith <willdavsmith@gmail.com>
Radius functional test overviewClick here to see the test run details
Test Status⌛ Building Radius and pushing container images for functional tests... |
| } | ||
| ``` | ||
|
|
||
| The default route recipe attaches HTTP and TLS routes to `Gateway/radius` in `radius-system`. Users who want a different Gateway API controller, such as NGINX Gateway Fabric, can select a different recipe pack or pass recipe parameters that target a different Gateway. |
There was a problem hiding this comment.
Just confirming, the routes recipe has support for TCP and UDP routes depending on the application template. The expectation is that this would not be supported with a Contour installation, correct (I don't think Contour natively supports these)? i.e. we'd use either HTTP or the TLS routing with the Gateway API for default Contour installations
|
|
||
| Today the default recipe pack follows the Radius version channel, including `latest` on the edge channel. A future hardening step should pin default recipes to the Radius release or another explicit artifact version so the default experience does not depend on floating recipe artifacts. | ||
|
|
||
| If Radius later stops installing Contour by default, default Gateway creation and default route recipe selection should be revisited together. |
There was a problem hiding this comment.
Could use PM input here. We might not need to revisit the design it if the expectation is that users bring their own networking infrastructure. This would just need to be called out explicitly in documentation
Summary
This PR updates the Contour recipe-pack design and implementation direction to use Gateway API as the default Contour-backed route path.
The default model is now:
rad install kubernetescontinues installing Contour by default for now.GatewayClass/contourandGateway/radiusinradius-system.Radius.Compute/routesrecipe renders Gateway API route resources such asHTTPRouteand attaches them toradius-system/radius.The design still keeps removal of default Contour installation as a separate review decision.
Scope
Gateway.Related work
Validation
Local:
GOCACHE=/private/tmp/radius-go-build-cache go test ./pkg/cli/helm ./cmd/rad/cmdDemo e2e:
Notes for reviewers
The key design point is that Radius can keep the same application shape while moving provider-specific route rendering into recipes. Contour remains installed by default for now; the default application routing path moves to Gateway API so the same route recipe shape can work with Contour, NGINX Gateway Fabric, or another Gateway API controller.
Fixes: #12038