Move Contour routing to Gateway API recipes by default#11995
Move Contour routing to Gateway API recipes by default#11995willdavsmith wants to merge 7 commits into
Conversation
|
This PR requires exactly 1 of the following labels: pr:standard, pr:important. Label descriptions:
@willdavsmith, please add the appropriate label to this PR before merging. |
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
Unit Tests 2 files ± 0 435 suites +4 7m 41s ⏱️ +22s Results for commit ad23277. ± Comparison against base commit 47a11af. This pull request removes 3 and adds 38 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 51.41% 51.98% +0.57%
==========================================
Files 716 733 +17
Lines 45106 46429 +1323
==========================================
+ Hits 23191 24137 +946
- Misses 19719 19987 +268
- Partials 2196 2305 +109 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
This reverts commit 93bd23a.
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.
| ```bash | ||
| rad deploy contour-httpproxy-recipe-pack.bicep --group default -e default | ||
| rad env update default --recipe-packs contour-httpproxy-pack --preview | ||
| rad deploy app.bicep --application contour-httpproxy-demo -e default | ||
| ``` | ||
|
|
||
| To use Gateway API instead, users attach a different recipe pack: | ||
|
|
||
| ```bash | ||
| rad env update default --recipe-packs contour-gateway-api-pack --preview | ||
| rad deploy app.bicep --application contour-gateway-api-demo -e default -p gatewayClassName=contour | ||
| ``` |
| The default recipes should be pinned to the Radius release or another explicit artifact version. The default experience should not depend on floating latest recipe artifacts. | ||
|
|
Radius functional test overviewClick here to see the test run details
Test Status⌛ Building Radius and pushing container images for functional tests... |
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.Radius.Compute/gatewaysin the default path.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.