From c7f565e9281637cd9e70bbffb81c4385b4ad70b1 Mon Sep 17 00:00:00 2001 From: willdavsmith Date: Mon, 15 Jun 2026 13:36:16 -0700 Subject: [PATCH 1/5] Add NGINX Gateway routes guide Signed-off-by: willdavsmith --- .../kubernetes/nginx-gateway-routes/index.md | 289 ++++++++++++++++++ 1 file changed, 289 insertions(+) create mode 100644 docs/content/guides/operations/kubernetes/nginx-gateway-routes/index.md diff --git a/docs/content/guides/operations/kubernetes/nginx-gateway-routes/index.md b/docs/content/guides/operations/kubernetes/nginx-gateway-routes/index.md new file mode 100644 index 000000000..897b9f131 --- /dev/null +++ b/docs/content/guides/operations/kubernetes/nginx-gateway-routes/index.md @@ -0,0 +1,289 @@ +--- +type: docs +title: "How-To: Use NGINX Gateway Fabric with Radius routes" +linkTitle: "NGINX Gateway" +description: "Install Radius without Contour and use NGINX Gateway Fabric with Radius.Compute/routes" +weight: 260 +categories: "How-To" +tags: ["Kubernetes", "Recipes", "Networking"] +--- + +This guide shows how to install Radius without the default Contour ingress controller, install [NGINX Gateway Fabric](https://docs.nginx.com/nginx-gateway-fabric/), and configure the `Radius.Compute/routes` recipe to attach application routes to an NGINX Gateway API `Gateway`. + +Use this pattern when your platform team wants to manage the Kubernetes Gateway controller separately from Radius while still letting application authors use portable Radius route resources. + +## Prerequisites + +- [Kubernetes cluster]({{< ref "guides/operations/kubernetes/overview#supported-kubernetes-clusters" >}}) +- [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) +- [Helm](https://helm.sh/docs/intro/install/) +- [rad CLI]({{< ref howto-rad-cli >}}) + +The examples use: + +- Radius environment name: `default` +- Application namespace: `nginx-radius-demo` +- Gateway name: `radius` +- Route hostname: `nginx.example.com` + +## Step 1: Install Radius without Contour + +Install Radius and skip the default Contour installation: + +```bash +rad install kubernetes --skip-contour-install +``` + +Create a resource group, workspace, and environment: + +```bash +rad group create default +rad workspace create kubernetes default --group default --force +rad group switch default + +rad env create default --preview +kubectl create namespace nginx-radius-demo +rad env update default --kubernetes-namespace nginx-radius-demo --preview +``` + +## Step 2: Install NGINX Gateway Fabric + +Install the Gateway API CRDs: + +```bash +kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.3.0/experimental-install.yaml +``` + +Install NGINX Gateway Fabric: + +```bash +helm upgrade --install ngf oci://ghcr.io/nginx/charts/nginx-gateway-fabric \ + --namespace nginx-gateway \ + --create-namespace \ + --wait + +kubectl wait --timeout=5m \ + --namespace nginx-gateway \ + deployment/ngf-nginx-gateway-fabric \ + --for=condition=Available +``` + +Create a Gateway API `Gateway` for Radius routes: + +```bash +cat <<'EOF' | kubectl apply -f - +apiVersion: gateway.networking.k8s.io/v1 +kind: Gateway +metadata: + name: radius + namespace: nginx-radius-demo +spec: + gatewayClassName: nginx + listeners: + - name: http + protocol: HTTP + port: 80 + allowedRoutes: + namespaces: + from: All +EOF + +kubectl wait --timeout=5m \ + --namespace nginx-radius-demo \ + gateway/radius \ + --for=condition=Programmed +``` + +## Step 3: Configure Bicep extensions + +Create `bicepconfig.json`: + +```json +{ + "experimentalFeaturesEnabled": { + "extensibility": true + }, + "extensions": { + "radius": "br:biceptypes.azurecr.io/radius:latest", + "radiusCompute": "br:biceptypes.azurecr.io/radiuscompute:latest" + } +} +``` + +## Step 4: Register a routes recipe pack + +Create `nginx-routes-recipe-pack.bicep`: + +```bicep +extension radius + +param recipeTag string = 'latest' + +resource recipePack 'Radius.Core/recipePacks@2025-08-01-preview' = { + name: 'nginx-gateway' + location: 'global' + properties: { + recipes: { + 'Radius.Compute/containers': { + recipeKind: 'bicep' + recipeLocation: 'ghcr.io/radius-project/kube-recipes/containers:${recipeTag}' + } + 'Radius.Compute/routes': { + recipeKind: 'bicep' + recipeLocation: 'ghcr.io/radius-project/kube-recipes/routes:${recipeTag}' + parameters: { + gatewayName: 'radius' + gatewayNamespace: 'nginx-radius-demo' + } + } + } + } +} +``` + +Deploy the recipe pack and attach it to the environment: + +```bash +ENVIRONMENT_ID="/planes/radius/local/resourcegroups/default/providers/Radius.Core/environments/default" + +rad deploy nginx-routes-recipe-pack.bicep \ + --group default \ + --environment "$ENVIRONMENT_ID" + +rad env update default --recipe-packs nginx-gateway --preview +``` + +The `gatewayName` and `gatewayNamespace` parameters tell the `Radius.Compute/routes` recipe which Kubernetes Gateway should receive generated `HTTPRoute` resources. + +## Step 5: Deploy an application with a route + +Create `app.bicep`: + +```bicep +extension radius +extension radiusCompute + +param environment string +param routeHostname string = 'nginx.example.com' + +resource app 'Radius.Core/applications@2025-08-01-preview' = { + name: 'nginx-radius-demo' + properties: { + environment: environment + } +} + +resource web 'radiusCompute:Radius.Compute/containers@2025-08-01-preview' = { + name: 'web' + properties: { + environment: environment + application: app.id + containers: { + web: { + image: 'nginx:alpine' + ports: { + http: { + containerPort: 80 + protocol: 'TCP' + } + } + } + } + } +} + +resource route 'radiusCompute:Radius.Compute/routes@2025-08-01-preview' = { + name: 'web' + properties: { + environment: environment + application: app.id + kind: 'HTTP' + hostnames: [ + routeHostname + ] + rules: [ + { + matches: [ + { + httpPath: '/' + } + ] + destinationContainer: any({ + resourceId: web.id + containerName: 'web' + containerPort: web.properties.containers.web.ports.http.containerPort + }) + } + ] + } +} +``` + +Deploy the application: + +```bash +rad deploy app.bicep \ + --application nginx-radius-demo \ + --environment "$ENVIRONMENT_ID" \ + --parameters routeHostname=nginx.example.com +``` + +Radius deploys the container through the `Radius.Compute/containers` recipe and creates a Kubernetes `HTTPRoute` through the `Radius.Compute/routes` recipe. + +## Step 6: Verify traffic + +Check that the Gateway and route are accepted: + +```bash +kubectl get gateway radius --namespace nginx-radius-demo +kubectl get httproute --namespace nginx-radius-demo +``` + +For local clusters, port-forward the NGINX Gateway service: + +```bash +SERVICE_NAME="$(kubectl get service \ + --namespace nginx-radius-demo \ + --selector gateway.networking.k8s.io/gateway-name=radius \ + --output jsonpath='{.items[0].metadata.name}')" + +kubectl port-forward \ + --namespace nginx-radius-demo \ + "service/${SERVICE_NAME}" \ + 8080:80 +``` + +In another terminal, send a request with the route hostname: + +```bash +curl -H "Host: nginx.example.com" http://127.0.0.1:8080/ +``` + +You should see the default NGINX welcome page. + +## Clean up + +Delete the application: + +```bash +rad app delete nginx-radius-demo --yes +``` + +If you no longer need the NGINX recipe pack, first update the environment to use another recipe pack or delete the environment that references it. Then delete the recipe pack: + +```bash +rad recipe-pack delete nginx-gateway --group default --yes +``` + +Uninstall NGINX Gateway Fabric: + +```bash +helm uninstall ngf --namespace nginx-gateway +kubectl delete namespace nginx-gateway +``` + +## Further reading + +- [Radius Recipes]({{< ref "/guides/recipes" >}}) +- [Kubernetes platform]({{< ref "/guides/operations/kubernetes/overview" >}}) +- [Application networking]({{< ref "/guides/author-apps/networking/overview" >}}) From ac7813459223f8227bc16dc715f57fb587ee09c6 Mon Sep 17 00:00:00 2001 From: willdavsmith Date: Mon, 15 Jun 2026 14:09:00 -0700 Subject: [PATCH 2/5] Use Gateway API standard channel in NGINX guide Signed-off-by: willdavsmith --- .../operations/kubernetes/nginx-gateway-routes/index.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/content/guides/operations/kubernetes/nginx-gateway-routes/index.md b/docs/content/guides/operations/kubernetes/nginx-gateway-routes/index.md index 897b9f131..1c191d04b 100644 --- a/docs/content/guides/operations/kubernetes/nginx-gateway-routes/index.md +++ b/docs/content/guides/operations/kubernetes/nginx-gateway-routes/index.md @@ -48,12 +48,14 @@ rad env update default --kubernetes-namespace nginx-radius-demo --preview ## Step 2: Install NGINX Gateway Fabric -Install the Gateway API CRDs: +Install the Gateway API standard channel CRDs: ```bash -kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.3.0/experimental-install.yaml +kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.5.0/standard-install.yaml ``` +The standard channel includes the `GatewayClass`, `Gateway`, and `HTTPRoute` resources used in this guide. Use the experimental channel only if your route recipes need experimental Gateway API resources such as `TLSRoute`, `TCPRoute`, or `UDPRoute`. + Install NGINX Gateway Fabric: ```bash From f2fb29057819d12319c59e40ee3dd0ae9676c358 Mon Sep 17 00:00:00 2001 From: willdavsmith Date: Mon, 15 Jun 2026 14:17:43 -0700 Subject: [PATCH 3/5] Align NGINX Gateway guide with recipes docs Signed-off-by: willdavsmith --- .../howto-nginx-gateway-routes}/index.md | 105 ++---------------- .../snippets/app.bicep | 57 ++++++++++ .../snippets/nginx-routes-recipe-pack.bicep | 24 ++++ 3 files changed, 92 insertions(+), 94 deletions(-) rename docs/content/guides/{operations/kubernetes/nginx-gateway-routes => recipes/howto-nginx-gateway-routes}/index.md (68%) create mode 100644 docs/content/guides/recipes/howto-nginx-gateway-routes/snippets/app.bicep create mode 100644 docs/content/guides/recipes/howto-nginx-gateway-routes/snippets/nginx-routes-recipe-pack.bicep diff --git a/docs/content/guides/operations/kubernetes/nginx-gateway-routes/index.md b/docs/content/guides/recipes/howto-nginx-gateway-routes/index.md similarity index 68% rename from docs/content/guides/operations/kubernetes/nginx-gateway-routes/index.md rename to docs/content/guides/recipes/howto-nginx-gateway-routes/index.md index 1c191d04b..0bb914850 100644 --- a/docs/content/guides/operations/kubernetes/nginx-gateway-routes/index.md +++ b/docs/content/guides/recipes/howto-nginx-gateway-routes/index.md @@ -1,23 +1,23 @@ --- type: docs title: "How-To: Use NGINX Gateway Fabric with Radius routes" -linkTitle: "NGINX Gateway" -description: "Install Radius without Contour and use NGINX Gateway Fabric with Radius.Compute/routes" -weight: 260 +linkTitle: "NGINX Gateway routes" +description: "Configure Radius.Compute/routes recipes to use NGINX Gateway Fabric." +weight: 300 categories: "How-To" -tags: ["Kubernetes", "Recipes", "Networking"] +tags: ["recipes", "Kubernetes", "Networking"] --- -This guide shows how to install Radius without the default Contour ingress controller, install [NGINX Gateway Fabric](https://docs.nginx.com/nginx-gateway-fabric/), and configure the `Radius.Compute/routes` recipe to attach application routes to an NGINX Gateway API `Gateway`. +This guide shows how to install Radius without the default Contour ingress controller, install [NGINX Gateway Fabric](https://docs.nginx.com/nginx-gateway-fabric/), and configure the `Radius.Compute/routes` recipe to attach application routes to a Kubernetes Gateway API `Gateway`. Use this pattern when your platform team wants to manage the Kubernetes Gateway controller separately from Radius while still letting application authors use portable Radius route resources. ## Prerequisites -- [Kubernetes cluster]({{< ref "guides/operations/kubernetes/overview#supported-kubernetes-clusters" >}}) +- [Setup a supported Kubernetes cluster]({{< ref "/guides/installation/overview#supported-clusters" >}}) - [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) - [Helm](https://helm.sh/docs/intro/install/) -- [rad CLI]({{< ref howto-rad-cli >}}) +- [rad CLI]({{< ref "installation#step-1-install-the-rad-cli" >}}) The examples use: @@ -116,32 +116,7 @@ Create `bicepconfig.json`: Create `nginx-routes-recipe-pack.bicep`: -```bicep -extension radius - -param recipeTag string = 'latest' - -resource recipePack 'Radius.Core/recipePacks@2025-08-01-preview' = { - name: 'nginx-gateway' - location: 'global' - properties: { - recipes: { - 'Radius.Compute/containers': { - recipeKind: 'bicep' - recipeLocation: 'ghcr.io/radius-project/kube-recipes/containers:${recipeTag}' - } - 'Radius.Compute/routes': { - recipeKind: 'bicep' - recipeLocation: 'ghcr.io/radius-project/kube-recipes/routes:${recipeTag}' - parameters: { - gatewayName: 'radius' - gatewayNamespace: 'nginx-radius-demo' - } - } - } - } -} -``` +{{< rad file="snippets/nginx-routes-recipe-pack.bicep" embed=true >}} Deploy the recipe pack and attach it to the environment: @@ -161,65 +136,7 @@ The `gatewayName` and `gatewayNamespace` parameters tell the `Radius.Compute/rou Create `app.bicep`: -```bicep -extension radius -extension radiusCompute - -param environment string -param routeHostname string = 'nginx.example.com' - -resource app 'Radius.Core/applications@2025-08-01-preview' = { - name: 'nginx-radius-demo' - properties: { - environment: environment - } -} - -resource web 'radiusCompute:Radius.Compute/containers@2025-08-01-preview' = { - name: 'web' - properties: { - environment: environment - application: app.id - containers: { - web: { - image: 'nginx:alpine' - ports: { - http: { - containerPort: 80 - protocol: 'TCP' - } - } - } - } - } -} - -resource route 'radiusCompute:Radius.Compute/routes@2025-08-01-preview' = { - name: 'web' - properties: { - environment: environment - application: app.id - kind: 'HTTP' - hostnames: [ - routeHostname - ] - rules: [ - { - matches: [ - { - httpPath: '/' - } - ] - destinationContainer: any({ - resourceId: web.id - containerName: 'web' - containerPort: web.properties.containers.web.ports.http.containerPort - }) - } - ] - } -} -``` +{{< rad file="snippets/app.bicep" embed=true >}} Deploy the application: @@ -287,5 +204,5 @@ kubectl delete namespace nginx-gateway ## Further reading - [Radius Recipes]({{< ref "/guides/recipes" >}}) -- [Kubernetes platform]({{< ref "/guides/operations/kubernetes/overview" >}}) -- [Application networking]({{< ref "/guides/author-apps/networking/overview" >}}) +- [Kubernetes installation]({{< ref "/guides/installation/kubernetes-install" >}}) +- [Application networking]({{< ref "/guides/applications/networking/overview" >}}) diff --git a/docs/content/guides/recipes/howto-nginx-gateway-routes/snippets/app.bicep b/docs/content/guides/recipes/howto-nginx-gateway-routes/snippets/app.bicep new file mode 100644 index 000000000..5945d728b --- /dev/null +++ b/docs/content/guides/recipes/howto-nginx-gateway-routes/snippets/app.bicep @@ -0,0 +1,57 @@ +extension radius +extension radiusCompute + +param environment string +param routeHostname string = 'nginx.example.com' + +resource app 'Radius.Core/applications@2025-08-01-preview' = { + name: 'nginx-radius-demo' + properties: { + environment: environment + } +} + +resource web 'radiusCompute:Radius.Compute/containers@2025-08-01-preview' = { + name: 'web' + properties: { + environment: environment + application: app.id + containers: { + web: { + image: 'nginx:alpine' + ports: { + http: { + containerPort: 80 + protocol: 'TCP' + } + } + } + } + } +} + +resource route 'radiusCompute:Radius.Compute/routes@2025-08-01-preview' = { + name: 'web' + properties: { + environment: environment + application: app.id + kind: 'HTTP' + hostnames: [ + routeHostname + ] + rules: [ + { + matches: [ + { + httpPath: '/' + } + ] + destinationContainer: any({ + resourceId: web.id + containerName: 'web' + containerPort: web.properties.containers.web.ports.http.containerPort + }) + } + ] + } +} diff --git a/docs/content/guides/recipes/howto-nginx-gateway-routes/snippets/nginx-routes-recipe-pack.bicep b/docs/content/guides/recipes/howto-nginx-gateway-routes/snippets/nginx-routes-recipe-pack.bicep new file mode 100644 index 000000000..94477ce09 --- /dev/null +++ b/docs/content/guides/recipes/howto-nginx-gateway-routes/snippets/nginx-routes-recipe-pack.bicep @@ -0,0 +1,24 @@ +extension radius + +param recipeTag string = 'latest' + +resource recipePack 'Radius.Core/recipePacks@2025-08-01-preview' = { + name: 'nginx-gateway' + location: 'global' + properties: { + recipes: { + 'Radius.Compute/containers': { + recipeKind: 'bicep' + recipeLocation: 'ghcr.io/radius-project/kube-recipes/containers:${recipeTag}' + } + 'Radius.Compute/routes': { + recipeKind: 'bicep' + recipeLocation: 'ghcr.io/radius-project/kube-recipes/routes:${recipeTag}' + parameters: { + gatewayName: 'radius' + gatewayNamespace: 'nginx-radius-demo' + } + } + } + } +} From 60ed9b027181be12d12fab8e9810f679a74e6a73 Mon Sep 17 00:00:00 2001 From: willdavsmith Date: Wed, 17 Jun 2026 09:07:35 -0700 Subject: [PATCH 4/5] Align NGINX routes guide with extensibility docs Signed-off-by: willdavsmith --- .../howto-nginx-gateway-routes/index.md | 38 ++++++++++--------- .../snippets/nginx-routes-recipe-pack.bicep | 2 +- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/docs/content/guides/recipes/howto-nginx-gateway-routes/index.md b/docs/content/guides/recipes/howto-nginx-gateway-routes/index.md index 0bb914850..0775e7028 100644 --- a/docs/content/guides/recipes/howto-nginx-gateway-routes/index.md +++ b/docs/content/guides/recipes/howto-nginx-gateway-routes/index.md @@ -8,7 +8,7 @@ categories: "How-To" tags: ["recipes", "Kubernetes", "Networking"] --- -This guide shows how to install Radius without the default Contour ingress controller, install [NGINX Gateway Fabric](https://docs.nginx.com/nginx-gateway-fabric/), and configure the `Radius.Compute/routes` recipe to attach application routes to a Kubernetes Gateway API `Gateway`. +This guide shows platform operators how to install Radius without the default Contour ingress controller, install [NGINX Gateway Fabric](https://docs.nginx.com/nginx-gateway-fabric/), and configure the `Radius.Compute/routes` recipe to attach application routes to a Kubernetes Gateway API `Gateway`. Use this pattern when your platform team wants to manage the Kubernetes Gateway controller separately from Radius while still letting application authors use portable Radius route resources. @@ -70,10 +70,9 @@ kubectl wait --timeout=5m \ --for=condition=Available ``` -Create a Gateway API `Gateway` for Radius routes: +Create `gateway.yaml`: -```bash -cat <<'EOF' | kubectl apply -f - +```yaml apiVersion: gateway.networking.k8s.io/v1 kind: Gateway metadata: @@ -88,8 +87,12 @@ spec: allowedRoutes: namespaces: from: All -EOF +``` +Apply the Gateway: + +```bash +kubectl apply -f gateway.yaml kubectl wait --timeout=5m \ --namespace nginx-radius-demo \ gateway/radius \ @@ -98,7 +101,7 @@ kubectl wait --timeout=5m \ ## Step 3: Configure Bicep extensions -Create `bicepconfig.json`: +Create `bicepconfig.json`. Use the current Radius release version, such as `0.58`. ```json { @@ -106,8 +109,8 @@ Create `bicepconfig.json`: "extensibility": true }, "extensions": { - "radius": "br:biceptypes.azurecr.io/radius:latest", - "radiusCompute": "br:biceptypes.azurecr.io/radiuscompute:latest" + "radius": "br:biceptypes.azurecr.io/radius:", + "radiusCompute": "br:biceptypes.azurecr.io/radiuscompute:" } } ``` @@ -121,16 +124,14 @@ Create `nginx-routes-recipe-pack.bicep`: Deploy the recipe pack and attach it to the environment: ```bash -ENVIRONMENT_ID="/planes/radius/local/resourcegroups/default/providers/Radius.Core/environments/default" - rad deploy nginx-routes-recipe-pack.bicep \ --group default \ - --environment "$ENVIRONMENT_ID" + --environment /planes/radius/local/resourceGroups/default/providers/Radius.Core/environments/default rad env update default --recipe-packs nginx-gateway --preview ``` -The `gatewayName` and `gatewayNamespace` parameters tell the `Radius.Compute/routes` recipe which Kubernetes Gateway should receive generated `HTTPRoute` resources. +The `gatewayName` and `gatewayNamespace` parameters tell the `Radius.Compute/routes` recipe which Kubernetes Gateway should receive generated `HTTPRoute` resources. This changes the route implementation in the environment without changing application code. ## Step 5: Deploy an application with a route @@ -142,8 +143,7 @@ Deploy the application: ```bash rad deploy app.bicep \ - --application nginx-radius-demo \ - --environment "$ENVIRONMENT_ID" \ + --environment /planes/radius/local/resourceGroups/default/providers/Radius.Core/environments/default \ --parameters routeHostname=nginx.example.com ``` @@ -161,14 +161,18 @@ kubectl get httproute --namespace nginx-radius-demo For local clusters, port-forward the NGINX Gateway service: ```bash -SERVICE_NAME="$(kubectl get service \ +kubectl get service \ --namespace nginx-radius-demo \ --selector gateway.networking.k8s.io/gateway-name=radius \ - --output jsonpath='{.items[0].metadata.name}')" + --output name +``` +Use the returned service name to port-forward traffic: + +```bash kubectl port-forward \ --namespace nginx-radius-demo \ - "service/${SERVICE_NAME}" \ + service/ \ 8080:80 ``` diff --git a/docs/content/guides/recipes/howto-nginx-gateway-routes/snippets/nginx-routes-recipe-pack.bicep b/docs/content/guides/recipes/howto-nginx-gateway-routes/snippets/nginx-routes-recipe-pack.bicep index 94477ce09..dc16c0a13 100644 --- a/docs/content/guides/recipes/howto-nginx-gateway-routes/snippets/nginx-routes-recipe-pack.bicep +++ b/docs/content/guides/recipes/howto-nginx-gateway-routes/snippets/nginx-routes-recipe-pack.bicep @@ -1,6 +1,6 @@ extension radius -param recipeTag string = 'latest' +param recipeTag string = '0.58' resource recipePack 'Radius.Core/recipePacks@2025-08-01-preview' = { name: 'nginx-gateway' From dc2ad26eeaa05a72be0a9b41d9c4c6eaf0e8ac47 Mon Sep 17 00:00:00 2001 From: willdavsmith Date: Wed, 17 Jun 2026 13:05:34 -0700 Subject: [PATCH 5/5] Address NGINX guide review feedback Signed-off-by: willdavsmith --- .../guides/recipes/howto-nginx-gateway-routes/index.md | 4 ++-- .../howto-nginx-gateway-routes/snippets/app.bicep | 9 ++++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/docs/content/guides/recipes/howto-nginx-gateway-routes/index.md b/docs/content/guides/recipes/howto-nginx-gateway-routes/index.md index 0775e7028..be7d91c06 100644 --- a/docs/content/guides/recipes/howto-nginx-gateway-routes/index.md +++ b/docs/content/guides/recipes/howto-nginx-gateway-routes/index.md @@ -109,8 +109,7 @@ Create `bicepconfig.json`. Use the current Radius release version, such as `0.58 "extensibility": true }, "extensions": { - "radius": "br:biceptypes.azurecr.io/radius:", - "radiusCompute": "br:biceptypes.azurecr.io/radiuscompute:" + "radius": "br:biceptypes.azurecr.io/radius:" } } ``` @@ -143,6 +142,7 @@ Deploy the application: ```bash rad deploy app.bicep \ + --group default \ --environment /planes/radius/local/resourceGroups/default/providers/Radius.Core/environments/default \ --parameters routeHostname=nginx.example.com ``` diff --git a/docs/content/guides/recipes/howto-nginx-gateway-routes/snippets/app.bicep b/docs/content/guides/recipes/howto-nginx-gateway-routes/snippets/app.bicep index 5945d728b..32f9d1ba4 100644 --- a/docs/content/guides/recipes/howto-nginx-gateway-routes/snippets/app.bicep +++ b/docs/content/guides/recipes/howto-nginx-gateway-routes/snippets/app.bicep @@ -1,5 +1,4 @@ extension radius -extension radiusCompute param environment string param routeHostname string = 'nginx.example.com' @@ -11,7 +10,7 @@ resource app 'Radius.Core/applications@2025-08-01-preview' = { } } -resource web 'radiusCompute:Radius.Compute/containers@2025-08-01-preview' = { +resource web 'Radius.Compute/containers@2025-08-01-preview' = { name: 'web' properties: { environment: environment @@ -30,7 +29,7 @@ resource web 'radiusCompute:Radius.Compute/containers@2025-08-01-preview' = { } } -resource route 'radiusCompute:Radius.Compute/routes@2025-08-01-preview' = { +resource route 'Radius.Compute/routes@2025-08-01-preview' = { name: 'web' properties: { environment: environment @@ -46,11 +45,11 @@ resource route 'radiusCompute:Radius.Compute/routes@2025-08-01-preview' = { httpPath: '/' } ] - destinationContainer: any({ + destinationContainer: { resourceId: web.id containerName: 'web' containerPort: web.properties.containers.web.ports.http.containerPort - }) + } } ] }