From cbc1aa60ef6a51c476bfc529d0b131df48c8b9a7 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Tue, 18 Nov 2025 21:50:15 -0800 Subject: [PATCH 01/64] Create config-network-adapters.md Create file - table test --- docs/versioned/serving/config-network-adapters.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 docs/versioned/serving/config-network-adapters.md diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md new file mode 100644 index 0000000000..a56515c3a3 --- /dev/null +++ b/docs/versioned/serving/config-network-adapters.md @@ -0,0 +1,12 @@ +--- +audience: administrator +components: + - serving +function: how-to +--- + +# Configuring network adapters + +| Adapter | Description | Pros | Cons | Case usage | +| --- | --- | --- | --- | --- | +| Kourier | - Knative recommended default.
- Designed for Knative Serving.
- Envoy-based.
- Lightweight. | - Simple setup.
- Resource efficient. | No Ingress API support.
- Limited Features.
- No Service Mesh. | Default choice for most users.
For developers who want a Knative-focused ingress without full service mesh complexity. | \ No newline at end of file From 14b81f442c250d2705ef90ffc79fc13eda369a1c Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Tue, 18 Nov 2025 22:00:52 -0800 Subject: [PATCH 02/64] Added Nav Added Nav and fixed H1 --- docs/versioned/.nav.yml | 1 + docs/versioned/serving/config-network-adapters.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/versioned/.nav.yml b/docs/versioned/.nav.yml index dafe945ba1..77ccc8a3f5 100644 --- a/docs/versioned/.nav.yml +++ b/docs/versioned/.nav.yml @@ -271,6 +271,7 @@ nav: - Configure domain names: serving/using-a-custom-domain.md - Istio Authorization: serving/istio-authorization.md - Extending Queue Proxy image with QPOptions: serving/queue-extensions.md + - Configure network adapters: serving/config-network-adapters.md - Serving configuration: - Configure Deployment resources: serving/configuration/deployment.md - Configure gradual rollout of traffic to Revisions: serving/configuration/rolling-out-latest-revision-configmap.md diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index a56515c3a3..4386d0750a 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -5,7 +5,7 @@ components: function: how-to --- -# Configuring network adapters +# Configure network adapters | Adapter | Description | Pros | Cons | Case usage | | --- | --- | --- | --- | --- | From 3b315cbbaf1c074d17ac16b1eba3fbfffe80d13c Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Tue, 18 Nov 2025 22:56:33 -0800 Subject: [PATCH 03/64] Update config-network-adapters.md Formatting test --- docs/versioned/serving/config-network-adapters.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 4386d0750a..d3c3081974 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -7,6 +7,8 @@ function: how-to # Configure network adapters -| Adapter | Description | Pros | Cons | Case usage | -| --- | --- | --- | --- | --- | -| Kourier | - Knative recommended default.
- Designed for Knative Serving.
- Envoy-based.
- Lightweight. | - Simple setup.
- Resource efficient. | No Ingress API support.
- Limited Features.
- No Service Mesh. | Default choice for most users.
For developers who want a Knative-focused ingress without full service mesh complexity. | \ No newline at end of file +This page describes and compares the following network adapters and options for Knative. + +- Kourier + + Designed for Knative serving, and the default choice for most users. Has a simple setup. Best for developers who want a Knative-focused ingress without full service mesh complexity. From 9a212b2912e278619c14178e6e0522a4454478b5 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Wed, 19 Nov 2025 00:17:43 -0800 Subject: [PATCH 04/64] Update config-network-adapters.md More writing --- .../serving/config-network-adapters.md | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index d3c3081974..31b6b839ed 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -7,8 +7,26 @@ function: how-to # Configure network adapters -This page describes and compares the following network adapters and options for Knative. +This page describes and provides installation and configuration guidance for the following network adapters for Knative. - Kourier - Designed for Knative serving, and the default choice for most users. Has a simple setup. Best for developers who want a Knative-focused ingress without full service mesh complexity. + Designed for Knative Serving with efficient serverless function deployment is the goal. Has a simple setup. The default choice for most users when a service mesh is not required. Has a simple setup. + +- Contour + + General-purpose Envoy-based ingress controller with full Kubernetes Ingress support. A Knative ingress controller that integrates with Project Contour, translating Knative Ingress into Contour’s HTTPProxy resources. + + A good choice for clusters that already run non-Knative apps and want to reuse a single Ingress controller as well as teams who are already using Contour/Envoy and wanting Knative integration with advanced routing but not full service mesh. + +- Istio + + A full-feature service mesh integrated with Knative that can also function as a Knative ingress. Best for enterprises already running Istio or needing advanced service mesh features alongside Knative. + +- Gateway API + + Emerging Kubernetes-native networking API (replacing Ingress) supported by Knative. Requires a compatible Gateway controller such as Contour or Istio. In beta stage of development. + + Provides a set of standardized, vendor-neutral APIs (GatewayClass, Gateway, HTTPRoute, etc.) that aim to be more expressive and extensible than traditional Ingress APIs. It is a specification, not an implementation itself. + + Best for forward-looking teams adopting Gateway API to unify ingress across Kubernetes, with Knative leveraging the same standard. From 2300e4ffefdb6818398d656241bfc33b558f9818 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Wed, 19 Nov 2025 23:58:31 -0800 Subject: [PATCH 05/64] Added snippet file for Kourier Snippet testing --- docs/snippets/netadapter-kourier.md | 18 +++++++++++ .../serving/config-network-adapters.md | 30 ++++++++++++++----- 2 files changed, 41 insertions(+), 7 deletions(-) create mode 100644 docs/snippets/netadapter-kourier.md diff --git a/docs/snippets/netadapter-kourier.md b/docs/snippets/netadapter-kourier.md new file mode 100644 index 0000000000..4b66fbe401 --- /dev/null +++ b/docs/snippets/netadapter-kourier.md @@ -0,0 +1,18 @@ + + The following commands install Kourier and enable its Knative integration. + + 1. Install the Knative Kourier controller by running the command: + ```bash + kubectl apply -f {{ artifact(repo="net-kourier",org="knative-extensions",file="kourier.yaml")}} + ``` + + 1. Configure Knative Serving to use Kourier by default by running the command: + ```bash + kubectl patch configmap/config-network \ + --namespace knative-serving \ + --type merge \ + --patch '{"data":{"ingress-class":"kourier.ingress.networking.knative.dev"}}' + ``` diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 31b6b839ed..16d9714fd6 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -9,24 +9,40 @@ function: how-to This page describes and provides installation and configuration guidance for the following network adapters for Knative. -- Kourier +#### Kourier Designed for Knative Serving with efficient serverless function deployment is the goal. Has a simple setup. The default choice for most users when a service mesh is not required. Has a simple setup. -- Contour +#### Contour General-purpose Envoy-based ingress controller with full Kubernetes Ingress support. A Knative ingress controller that integrates with Project Contour, translating Knative Ingress into Contour’s HTTPProxy resources. A good choice for clusters that already run non-Knative apps and want to reuse a single Ingress controller as well as teams who are already using Contour/Envoy and wanting Knative integration with advanced routing but not full service mesh. -- Istio +#### Istio A full-feature service mesh integrated with Knative that can also function as a Knative ingress. Best for enterprises already running Istio or needing advanced service mesh features alongside Knative. -- Gateway API +#### Gateway API - Emerging Kubernetes-native networking API (replacing Ingress) supported by Knative. Requires a compatible Gateway controller such as Contour or Istio. In beta stage of development. - - Provides a set of standardized, vendor-neutral APIs (GatewayClass, Gateway, HTTPRoute, etc.) that aim to be more expressive and extensible than traditional Ingress APIs. It is a specification, not an implementation itself. + Emerging Kubernetes-native networking API (replacing Ingress)extensible than traditional Ingress APIs. It is a specification, not an implementation itself. Best for forward-looking teams adopting Gateway API to unify ingress across Kubernetes, with Knative leveraging the same standard. + + ```mermaid + flowchart TB + subgraph s1["Gateway API"] + HR[HTTPRoute] + GW[Gateway listener] + end + KSvc["Knative Service"] -- owns --> Route + Route -- creates --> HR + Route -- creates --> GW + ``` +## Setup and configurations + +### Kourier + +--8<-- "netadapter-kourier.md" + + From e6167d0c85962dd0cc1c34f745698a8f16b3420c Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Thu, 20 Nov 2025 00:10:10 -0800 Subject: [PATCH 06/64] Update config-network-adapters.md snippet testing --- .../serving/config-network-adapters.md | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 16d9714fd6..81e2e85083 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -9,40 +9,41 @@ function: how-to This page describes and provides installation and configuration guidance for the following network adapters for Knative. -#### Kourier +- Kourier - Designed for Knative Serving with efficient serverless function deployment is the goal. Has a simple setup. The default choice for most users when a service mesh is not required. Has a simple setup. + Designed for Knative Serving with efficient serverless function deployment is the goal. Has a simple setup. The default choice for most users when a service mesh is not required. Has a simple setup. -#### Contour +- Contour - General-purpose Envoy-based ingress controller with full Kubernetes Ingress support. A Knative ingress controller that integrates with Project Contour, translating Knative Ingress into Contour’s HTTPProxy resources. + General-purpose Envoy-based ingress controller with full Kubernetes Ingress support. A Knative ingress controller that integrates with Project Contour, translating Knative Ingress into Contour’s HTTPProxy resources. - A good choice for clusters that already run non-Knative apps and want to reuse a single Ingress controller as well as teams who are already using Contour/Envoy and wanting Knative integration with advanced routing but not full service mesh. + A good choice for clusters that already run non-Knative apps and want to reuse a single Ingress controller as well as teams who are already using Contour/Envoy and wanting Knative integration with advanced routing but not full service mesh. -#### Istio +- Istio - A full-feature service mesh integrated with Knative that can also function as a Knative ingress. Best for enterprises already running Istio or needing advanced service mesh features alongside Knative. + A full-feature service mesh integrated with Knative that can also function as a Knative ingress. Best for enterprises already running Istio or needing advanced service mesh features alongside Knative. -#### Gateway API +- Gateway API - Emerging Kubernetes-native networking API (replacing Ingress)extensible than traditional Ingress APIs. It is a specification, not an implementation itself. + Emerging Kubernetes-native networking API (replacing Ingress)extensible than traditional Ingress APIs. It is a specification, not an implementation itself. - Best for forward-looking teams adopting Gateway API to unify ingress across Kubernetes, with Knative leveraging the same standard. + Best for forward-looking teams adopting Gateway API to unify ingress across Kubernetes, with Knative leveraging the same standard. - ```mermaid - flowchart TB - subgraph s1["Gateway API"] - HR[HTTPRoute] - GW[Gateway listener] - end - KSvc["Knative Service"] -- owns --> Route - Route -- creates --> HR - Route -- creates --> GW + ```mermaid + flowchart TB + subgraph s1["Gateway API"] + HR[HTTPRoute] + GW[Gateway listener] + end + KSvc["Knative Service"] -- owns --> Route + Route -- creates --> HR + Route -- creates --> GW ``` + ## Setup and configurations ### Kourier ---8<-- "netadapter-kourier.md" +--8<-- "about-eventing.md" From d283146fc3db2df08f6be5ab7f6e6cf87b551ee0 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Thu, 20 Nov 2025 07:08:53 -0800 Subject: [PATCH 07/64] Update config-network-adapters.md Snippet name fix --- .../serving/config-network-adapters.md | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 81e2e85083..50540caaf5 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -11,39 +11,39 @@ This page describes and provides installation and configuration guidance for the - Kourier - Designed for Knative Serving with efficient serverless function deployment is the goal. Has a simple setup. The default choice for most users when a service mesh is not required. Has a simple setup. + Designed for Knative Serving with efficient serverless function deployment is the goal. Has a simple setup. The default choice for most users when a service mesh is not required. Has a simple setup. - Contour - General-purpose Envoy-based ingress controller with full Kubernetes Ingress support. A Knative ingress controller that integrates with Project Contour, translating Knative Ingress into Contour’s HTTPProxy resources. + General-purpose Envoy-based ingress controller with full Kubernetes Ingress support. A Knative ingress controller that integrates with Project Contour, translating Knative Ingress into Contour’s HTTPProxy resources. - A good choice for clusters that already run non-Knative apps and want to reuse a single Ingress controller as well as teams who are already using Contour/Envoy and wanting Knative integration with advanced routing but not full service mesh. + A good choice for clusters that already run non-Knative apps and want to reuse a single Ingress controller as well as teams who are already using Contour/Envoy and wanting Knative integration with advanced routing but not full service mesh. - Istio - A full-feature service mesh integrated with Knative that can also function as a Knative ingress. Best for enterprises already running Istio or needing advanced service mesh features alongside Knative. + A full-feature service mesh integrated with Knative that can also function as a Knative ingress. Best for enterprises already running Istio or needing advanced service mesh features alongside Knative. - Gateway API - Emerging Kubernetes-native networking API (replacing Ingress)extensible than traditional Ingress APIs. It is a specification, not an implementation itself. + Emerging Kubernetes-native networking API (replacing Ingress)extensible than traditional Ingress APIs. It is a specification, not an implementation itself. - Best for forward-looking teams adopting Gateway API to unify ingress across Kubernetes, with Knative leveraging the same standard. + Best for forward-looking teams adopting Gateway API to unify ingress across Kubernetes, with Knative leveraging the same standard. - ```mermaid - flowchart TB - subgraph s1["Gateway API"] - HR[HTTPRoute] - GW[Gateway listener] - end - KSvc["Knative Service"] -- owns --> Route - Route -- creates --> HR - Route -- creates --> GW - ``` + ```mermaid + flowchart TB + subgraph s1["Gateway API"] + HR[HTTPRoute] + GW[Gateway listener] + end + KSvc["Knative Service"] -- owns --> Route + Route -- creates --> HR + Route -- creates --> GW + ``` ## Setup and configurations ### Kourier ---8<-- "about-eventing.md" +--8<-- "netadapter-kourier.md" From 5062101c9b0c97d179600a99c2f673153ecab78b Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Thu, 20 Nov 2025 09:40:05 -0800 Subject: [PATCH 08/64] Snippet fix Formatting tests --- docs/snippets/netadapter-kourier.md | 24 +++++++++---------- .../serving/config-network-adapters.md | 24 +++++++++---------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/docs/snippets/netadapter-kourier.md b/docs/snippets/netadapter-kourier.md index 4b66fbe401..d7adf3b86b 100644 --- a/docs/snippets/netadapter-kourier.md +++ b/docs/snippets/netadapter-kourier.md @@ -1,18 +1,18 @@ - The following commands install Kourier and enable its Knative integration. +The following commands install Kourier and enable its Knative integration. - 1. Install the Knative Kourier controller by running the command: +1. Install the Knative Kourier controller by running the command: +```bash +kubectl apply -f {{ artifact(repo="net-kourier",org="knative-extensions",file="kourier.yaml")}} +``` + +1. Configure Knative Serving to use Kourier by default by running the command: ```bash - kubectl apply -f {{ artifact(repo="net-kourier",org="knative-extensions",file="kourier.yaml")}} + kubectl patch configmap/config-network \ + --namespace knative-serving \ + --type merge \ + --patch '{"data":{"ingress-class":"kourier.ingress.networking.knative.dev"}}' ``` - - 1. Configure Knative Serving to use Kourier by default by running the command: - ```bash - kubectl patch configmap/config-network \ - --namespace knative-serving \ - --type merge \ - --patch '{"data":{"ingress-class":"kourier.ingress.networking.knative.dev"}}' - ``` diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 50540caaf5..906dd27717 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -29,18 +29,18 @@ This page describes and provides installation and configuration guidance for the Best for forward-looking teams adopting Gateway API to unify ingress across Kubernetes, with Knative leveraging the same standard. - ```mermaid - flowchart TB - subgraph s1["Gateway API"] - HR[HTTPRoute] - GW[Gateway listener] - end - KSvc["Knative Service"] -- owns --> Route - Route -- creates --> HR - Route -- creates --> GW - ``` - -## Setup and configurations +```mermaid +flowchart TB + subgraph s1["Gateway API"] + HR[HTTPRoute] + GW[Gateway listener] + end + KSvc["Knative Service"] -- owns --> Route + Route -- creates --> HR + Route -- creates --> GW + ``` + +## Setup and configuration ### Kourier From 916f3b4bb256ebe0e86cd51c0e16a4688a761aa3 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Thu, 20 Nov 2025 09:58:45 -0800 Subject: [PATCH 09/64] Update config-network-adapters.md Formatting fix --- .../serving/config-network-adapters.md | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 906dd27717..9681c81a43 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -30,15 +30,20 @@ This page describes and provides installation and configuration guidance for the Best for forward-looking teams adopting Gateway API to unify ingress across Kubernetes, with Knative leveraging the same standard. ```mermaid +--- +config: + theme: base + layout: elk + look: classic +--- flowchart TB - subgraph s1["Gateway API"] - HR[HTTPRoute] - GW[Gateway listener] + subgraph s1["Gateway API"] + HR["HTTPRoute"] + GW["Gateway listener"] end - KSvc["Knative Service"] -- owns --> Route - Route -- creates --> HR - Route -- creates --> GW - ``` + KSvc["Knative Service"] -- owns --> Route["Route"] + Route -- creates --> HR & GW +``` ## Setup and configuration From 81fd46ec46148652a35fe654318172afed469a36 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Thu, 20 Nov 2025 10:06:07 -0800 Subject: [PATCH 10/64] Update config-network-adapters.md Test --- docs/versioned/serving/config-network-adapters.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 9681c81a43..56ab647e2d 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -29,6 +29,8 @@ This page describes and provides installation and configuration guidance for the Best for forward-looking teams adopting Gateway API to unify ingress across Kubernetes, with Knative leveraging the same standard. +## Architectures + ```mermaid --- config: From d10ab27136437ffa476f71044cd1f4576b217701 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Thu, 20 Nov 2025 10:07:47 -0800 Subject: [PATCH 11/64] Update config-network-adapters.md Rebuild --- docs/versioned/serving/config-network-adapters.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 56ab647e2d..12871d8ae5 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -49,6 +49,8 @@ flowchart TB ## Setup and configuration +This section provides installation and configuration steps for the adapters. + ### Kourier --8<-- "netadapter-kourier.md" From 9aec3ac4efb2cd3095e4411418de1c6be3f0a72a Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Fri, 21 Nov 2025 21:21:35 -0800 Subject: [PATCH 12/64] Added Contour snippet Formmating --- docs/snippets/netadapter-contour.md | 22 +++++++++++++++++++ docs/snippets/netadapter-kourier.md | 4 ---- .../serving/config-network-adapters.md | 3 +++ 3 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 docs/snippets/netadapter-contour.md diff --git a/docs/snippets/netadapter-contour.md b/docs/snippets/netadapter-contour.md new file mode 100644 index 0000000000..64b60e7583 --- /dev/null +++ b/docs/snippets/netadapter-contour.md @@ -0,0 +1,22 @@ +The following commands install Contour and enable its Knative integration. + +1. Install a properly configured Contour by running the command: + + ```bash + kubectl apply -f {{ artifact(repo="net-contour",org="knative-extensions",file="contour.yaml")}} + ``` + + +1. Install the Knative Contour controller by running the command: + ```bash + kubectl apply -f {{ artifact(repo="net-contour",org="knative-extensions",file="net-contour.yaml")}} + ``` + +1. Configure Knative Serving to use Contour by default by running the command: + ```bash + kubectl patch configmap/config-network \ + --namespace knative-serving \ + --type merge \ + --patch '{"data":{"ingress-class":"contour.ingress.networking.knative.dev"}}' + ``` + diff --git a/docs/snippets/netadapter-kourier.md b/docs/snippets/netadapter-kourier.md index d7adf3b86b..494a9a5c13 100644 --- a/docs/snippets/netadapter-kourier.md +++ b/docs/snippets/netadapter-kourier.md @@ -1,7 +1,3 @@ - The following commands install Kourier and enable its Knative integration. 1. Install the Knative Kourier controller by running the command: diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 12871d8ae5..ac99f22b52 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -55,4 +55,7 @@ This section provides installation and configuration steps for the adapters. --8<-- "netadapter-kourier.md" +## Contour + +--8<-- "netadapter-countour.md" From 1c487670b63027acee2e1fad76e46b3c6581768f Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Fri, 21 Nov 2025 21:26:44 -0800 Subject: [PATCH 13/64] Update config-network-adapters.md Typo fix --- docs/versioned/serving/config-network-adapters.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index ac99f22b52..0937aff224 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -57,5 +57,5 @@ This section provides installation and configuration steps for the adapters. ## Contour ---8<-- "netadapter-countour.md" +--8<-- "netadapter-contour.md" From 205ecae64cd303388b5a2d815adaedb9d12360cd Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Fri, 21 Nov 2025 22:41:32 -0800 Subject: [PATCH 14/64] Added istio and gateway api snippet files Formatting --- docs/snippets/netadapter-gatewayapi.md | 15 +++++++++++++++ docs/snippets/netadapter-istio.md | 16 ++++++++++++++++ .../versioned/serving/config-network-adapters.md | 9 ++++++++- 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 docs/snippets/netadapter-gatewayapi.md create mode 100644 docs/snippets/netadapter-istio.md diff --git a/docs/snippets/netadapter-gatewayapi.md b/docs/snippets/netadapter-gatewayapi.md new file mode 100644 index 0000000000..0054f66f77 --- /dev/null +++ b/docs/snippets/netadapter-gatewayapi.md @@ -0,0 +1,15 @@ +Use the following steps to install the Knative Gateway API controller. + +1. Install the Knative Gateway API controller by running the command: + + ```bash + kubectl apply -f {{ artifact(repo="net-gateway-api",org="knative-extensions",file="net-gateawy-api.yaml")}} + ``` + +1. Configure Knative Serving to use Gateway API by default by running the command: + + ```bash + kubectl patch configmap/config-network \ + --namespace knative-serving \ + --type merge \ + --patch '{"data":{"ingress-class":"gateway-api.ingress.networking.knative.dev"}}' \ No newline at end of file diff --git a/docs/snippets/netadapter-istio.md b/docs/snippets/netadapter-istio.md new file mode 100644 index 0000000000..6ac7a1c0a3 --- /dev/null +++ b/docs/snippets/netadapter-istio.md @@ -0,0 +1,16 @@ +The following commands install Istio and enable its Knative integration. + +1. Install a properly configured Istio by following the +[Advanced Istio installation](../../installing-istio.md) instructions or by running the command: + + ```bash + kubectl apply -l knative.dev/crd-install=true -f {{ artifact(repo="net-istio",org="knative-extensions",file="istio.yaml")}} + kubectl apply -f {{ artifact(repo="net-istio",org="knative-extensions",file="istio.yaml")}} + ``` + +1. Install the Knative Istio controller by running the command: + + ```bash + kubectl apply -f {{ artifact(repo="net-istio",file="net-istio.yaml")}} + ``` + diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 0937aff224..f09d8a5a23 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -55,7 +55,14 @@ This section provides installation and configuration steps for the adapters. --8<-- "netadapter-kourier.md" -## Contour +### Contour --8<-- "netadapter-contour.md" +### Istio + +--8<-- "netadapter-istio.md" + +### Gateway API + +--8<-- "netadapter-gatewaypapi.md" From 310d9eb95d01559d710a8c99490aa25cd9507f0c Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Sat, 22 Nov 2025 19:19:31 -0800 Subject: [PATCH 15/64] Writing and snippet work Updates --- docs/snippets/netadapter-contour.md | 15 +++++++++---- docs/snippets/netadapter-gatewayapi.md | 8 ++++++- docs/snippets/netadapter-istio.md | 10 +++++++-- docs/snippets/netadapter-kourier.md | 20 ++++++++++++----- docs/snippets/no-dns.md | 4 ---- .../serving/config-network-adapters.md | 22 +++++++++++++------ 6 files changed, 55 insertions(+), 24 deletions(-) diff --git a/docs/snippets/netadapter-contour.md b/docs/snippets/netadapter-contour.md index 64b60e7583..4afb6bccb8 100644 --- a/docs/snippets/netadapter-contour.md +++ b/docs/snippets/netadapter-contour.md @@ -1,18 +1,20 @@ -The following commands install Contour and enable its Knative integration. +Use the following steps to install Contour and enable its Knative integration. -1. Install a properly configured Contour by running the command: +1. Install a properly configured Contour: ```bash kubectl apply -f {{ artifact(repo="net-contour",org="knative-extensions",file="contour.yaml")}} ``` -1. Install the Knative Contour controller by running the command: +1. Install the Knative Contour controller: + ```bash kubectl apply -f {{ artifact(repo="net-contour",org="knative-extensions",file="net-contour.yaml")}} ``` -1. Configure Knative Serving to use Contour by default by running the command: +1. Configure Knative Serving to use Contour by default: + ```bash kubectl patch configmap/config-network \ --namespace knative-serving \ @@ -20,3 +22,8 @@ The following commands install Contour and enable its Knative integration. --patch '{"data":{"ingress-class":"contour.ingress.networking.knative.dev"}}' ``` +1. Get the external IP address (FQDN) to configure DNS records: + + ```bash + kubectl --namespace contour-external get service envoy + ``` diff --git a/docs/snippets/netadapter-gatewayapi.md b/docs/snippets/netadapter-gatewayapi.md index 0054f66f77..72306818e4 100644 --- a/docs/snippets/netadapter-gatewayapi.md +++ b/docs/snippets/netadapter-gatewayapi.md @@ -12,4 +12,10 @@ Use the following steps to install the Knative Gateway API controller. kubectl patch configmap/config-network \ --namespace knative-serving \ --type merge \ - --patch '{"data":{"ingress-class":"gateway-api.ingress.networking.knative.dev"}}' \ No newline at end of file + --patch '{"data":{"ingress-class":"gateway-api.ingress.networking.knative.dev"}}' + +1. Get the external IP address (FQDN) to configure DNS records: + + ```bash + kubectl get gateway --all-namespaces + ``` diff --git a/docs/snippets/netadapter-istio.md b/docs/snippets/netadapter-istio.md index 6ac7a1c0a3..57a84c5fab 100644 --- a/docs/snippets/netadapter-istio.md +++ b/docs/snippets/netadapter-istio.md @@ -1,4 +1,4 @@ -The following commands install Istio and enable its Knative integration. +Use the following steps to install Istio and enable its Knative integration. 1. Install a properly configured Istio by following the [Advanced Istio installation](../../installing-istio.md) instructions or by running the command: @@ -8,9 +8,15 @@ The following commands install Istio and enable its Knative integration. kubectl apply -f {{ artifact(repo="net-istio",org="knative-extensions",file="istio.yaml")}} ``` -1. Install the Knative Istio controller by running the command: +1. Install the Knative Istio controller: ```bash kubectl apply -f {{ artifact(repo="net-istio",file="net-istio.yaml")}} ``` +1. Get the external IP address (FQDN) to configure DNS records: + + ```bash + kubectl --namespace istio-system get service istio-ingressgateway + ``` + \ No newline at end of file diff --git a/docs/snippets/netadapter-kourier.md b/docs/snippets/netadapter-kourier.md index 494a9a5c13..09e2220599 100644 --- a/docs/snippets/netadapter-kourier.md +++ b/docs/snippets/netadapter-kourier.md @@ -1,14 +1,22 @@ -The following commands install Kourier and enable its Knative integration. +Use the following stesp to install Kourier and enable its Knative integration. -1. Install the Knative Kourier controller by running the command: -```bash -kubectl apply -f {{ artifact(repo="net-kourier",org="knative-extensions",file="kourier.yaml")}} -``` +1. Install the Knative Kourier controller: + + ```bash + kubectl apply -f {{ artifact(repo="net-kourier",org="knative-extensions",file="kourier.yaml")}} + ``` + +1. Configure Knative Serving to use Kourier by default: -1. Configure Knative Serving to use Kourier by default by running the command: ```bash kubectl patch configmap/config-network \ --namespace knative-serving \ --type merge \ --patch '{"data":{"ingress-class":"kourier.ingress.networking.knative.dev"}}' ``` + +1. Get the external IP address (FQDN) to configure DNS records: + + ```bash + kubectl --namespace kourier-system get service kourier + ``` diff --git a/docs/snippets/no-dns.md b/docs/snippets/no-dns.md index 2a6bbd1f95..a0826e5284 100644 --- a/docs/snippets/no-dns.md +++ b/docs/snippets/no-dns.md @@ -1,7 +1,3 @@ - === "No DNS" If you are using `curl` to access [the sample applications](/docs/getting-started/first-service/), or your own Knative app, and are unable to use the "Magic DNS (sslip.io)" or "Real DNS" methods, there is a temporary approach. This is useful for those who wish to evaluate Knative without altering their DNS configuration, as per the "Real DNS" method, or cannot use the "Magic DNS" method due to using, diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index f09d8a5a23..dbec8cae1b 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -5,9 +5,9 @@ components: function: how-to --- -# Configure network adapters +# Configure network layers -This page describes and provides installation and configuration guidance for the following network adapters for Knative. +This page describes and provides installation and configuration guidance for the following networking plugins. - Kourier @@ -27,6 +27,8 @@ This page describes and provides installation and configuration guidance for the Emerging Kubernetes-native networking API (replacing Ingress)extensible than traditional Ingress APIs. It is a specification, not an implementation itself. + The Kubernetes Gateway API requires a controller or service mesh. Istio and Contour implementations are tested though other Gateway API implementations should work. For more information see [Tested Gateway API version and Ingress](https://github.com/knative-extensions/net-gateway-api/blob/main/docs/test-version.md). + Best for forward-looking teams adopting Gateway API to unify ingress across Kubernetes, with Knative leveraging the same standard. ## Architectures @@ -47,22 +49,28 @@ flowchart TB Route -- creates --> HR & GW ``` -## Setup and configuration +## Network Layer setup -This section provides installation and configuration steps for the adapters. +This section provides installation and configuration steps. -### Kourier +### Kourier controller --8<-- "netadapter-kourier.md" -### Contour +### Contour controller --8<-- "netadapter-contour.md" -### Istio +### Istio service mesh --8<-- "netadapter-istio.md" ### Gateway API --8<-- "netadapter-gatewaypapi.md" + +## Configure DNS + +--8<-- "dns.md" +--8<-- "real-dns-yaml.md" +--8<-- "no-dns.md" From 84f0b03174399188a3661ac5475e8a2eb1a2b6bd Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Sat, 22 Nov 2025 21:01:16 -0800 Subject: [PATCH 16/64] Misc fixes Snippet formatting --- docs/snippets/dns.md | 13 +++---------- docs/snippets/netadapter-contour.md | 8 ++++---- docs/snippets/netadapter-istio.md | 3 +-- 3 files changed, 8 insertions(+), 16 deletions(-) diff --git a/docs/snippets/dns.md b/docs/snippets/dns.md index b5b6d6d8ce..d71142b058 100644 --- a/docs/snippets/dns.md +++ b/docs/snippets/dns.md @@ -1,7 +1,6 @@ -You can configure DNS to prevent the need to run curl commands with a host header. +You can configure DNS to avoid running curl commands with a host header. -The following tabs expand to show instructions for configuring DNS. -Follow the procedure for the DNS of your choice: +The following tabs show instructions for configuring DNS. Follow the procedure for the DNS of your choice: === "Magic DNS (sslip.io)" @@ -11,10 +10,4 @@ Follow the procedure for the DNS of your choice: kubectl apply -f {{artifact(repo="serving",file="serving-default-domain.yaml")}} ``` - !!! warning - This will only work if the cluster `LoadBalancer` Service exposes an - IPv4 address or hostname, so it will not work with IPv6 clusters or local setups - like minikube unless [`minikube tunnel`](https://minikube.sigs.k8s.io/docs/commands/tunnel/) - is running. - - In these cases, see the "Real DNS" or "No DNS" tabs. + This configuration works only if the cluster `LoadBalancer` Service exposes an IPv4 address or hostname. It does not work with IPv6 clusters or local setups such as minikube, unless [`minikube tunnel`](https://minikube.sigs.k8s.io/docs/commands/tunnel/) is running, and should consider using the "Real DNS" or "No DNS" tabs. diff --git a/docs/snippets/netadapter-contour.md b/docs/snippets/netadapter-contour.md index 4afb6bccb8..1471862092 100644 --- a/docs/snippets/netadapter-contour.md +++ b/docs/snippets/netadapter-contour.md @@ -9,9 +9,9 @@ Use the following steps to install Contour and enable its Knative integration. 1. Install the Knative Contour controller: - ```bash - kubectl apply -f {{ artifact(repo="net-contour",org="knative-extensions",file="net-contour.yaml")}} - ``` + ```bash + kubectl apply -f {{ artifact(repo="net-contour",org="knative-extensions",file="net-contour.yaml")}} + ``` 1. Configure Knative Serving to use Contour by default: @@ -26,4 +26,4 @@ Use the following steps to install Contour and enable its Knative integration. ```bash kubectl --namespace contour-external get service envoy - ``` + ``` \ No newline at end of file diff --git a/docs/snippets/netadapter-istio.md b/docs/snippets/netadapter-istio.md index 57a84c5fab..6bfe848344 100644 --- a/docs/snippets/netadapter-istio.md +++ b/docs/snippets/netadapter-istio.md @@ -18,5 +18,4 @@ Use the following steps to install Istio and enable its Knative integration. ```bash kubectl --namespace istio-system get service istio-ingressgateway - ``` - \ No newline at end of file + ``` \ No newline at end of file From 92d24f112f1128ddc54f9a508797d30e2eb90094 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Sat, 22 Nov 2025 21:23:46 -0800 Subject: [PATCH 17/64] Link fixes Misc edits --- docs/snippets/netadapter-istio.md | 2 +- docs/versioned/serving/config-network-adapters.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/snippets/netadapter-istio.md b/docs/snippets/netadapter-istio.md index 6bfe848344..714812b83c 100644 --- a/docs/snippets/netadapter-istio.md +++ b/docs/snippets/netadapter-istio.md @@ -1,7 +1,7 @@ Use the following steps to install Istio and enable its Knative integration. 1. Install a properly configured Istio by following the -[Advanced Istio installation](../../installing-istio.md) instructions or by running the command: +[Advanced Istio installation](../versioned/install/installing-istio.md) instructions or by running the command: ```bash kubectl apply -l knative.dev/crd-install=true -f {{ artifact(repo="net-istio",org="knative-extensions",file="istio.yaml")}} diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index dbec8cae1b..c67d8d1777 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -67,7 +67,7 @@ This section provides installation and configuration steps. ### Gateway API ---8<-- "netadapter-gatewaypapi.md" +--8<-- "netadapter-gatewayapi.md" ## Configure DNS From 55a8c4122aca828983e2e904461d5ca0619af6e6 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Sat, 22 Nov 2025 21:46:44 -0800 Subject: [PATCH 18/64] Update netadapter-istio.md Link issue fix --- docs/snippets/netadapter-istio.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/snippets/netadapter-istio.md b/docs/snippets/netadapter-istio.md index 714812b83c..4ef4a2598f 100644 --- a/docs/snippets/netadapter-istio.md +++ b/docs/snippets/netadapter-istio.md @@ -1,7 +1,6 @@ Use the following steps to install Istio and enable its Knative integration. -1. Install a properly configured Istio by following the -[Advanced Istio installation](../versioned/install/installing-istio.md) instructions or by running the command: +1. Install a properly configured Istio: ```bash kubectl apply -l knative.dev/crd-install=true -f {{ artifact(repo="net-istio",org="knative-extensions",file="istio.yaml")}} From e35130cdab51db6be5a7e95e7244f6aa6171bf98 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Sat, 22 Nov 2025 22:27:46 -0800 Subject: [PATCH 19/64] Tab work Added tabs for Network layer setup --- docs/snippets/netadapter-gatewayapi.md | 17 +++++++++-------- .../serving/config-network-adapters.md | 10 ++++++---- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/docs/snippets/netadapter-gatewayapi.md b/docs/snippets/netadapter-gatewayapi.md index 72306818e4..21b533db0d 100644 --- a/docs/snippets/netadapter-gatewayapi.md +++ b/docs/snippets/netadapter-gatewayapi.md @@ -2,17 +2,18 @@ Use the following steps to install the Knative Gateway API controller. 1. Install the Knative Gateway API controller by running the command: - ```bash - kubectl apply -f {{ artifact(repo="net-gateway-api",org="knative-extensions",file="net-gateawy-api.yaml")}} - ``` + ```bash + kubectl apply -f {{ artifact(repo="net-gateway-api",org="knative-extensions",file="net-gateawy-api.yaml")}} + ``` 1. Configure Knative Serving to use Gateway API by default by running the command: - ```bash - kubectl patch configmap/config-network \ - --namespace knative-serving \ - --type merge \ - --patch '{"data":{"ingress-class":"gateway-api.ingress.networking.knative.dev"}}' + ```bash + kubectl patch configmap/config-network \ + --namespace knative-serving \ + --type merge \ + --patch '{"data":{"ingress-class":"gateway-api.ingress.networking.knative.dev"}}' + ``` 1. Get the external IP address (FQDN) to configure DNS records: diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index c67d8d1777..e530f9ab94 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -53,19 +53,21 @@ flowchart TB This section provides installation and configuration steps. -### Kourier controller +=== "Kourier controller (default choice)" --8<-- "netadapter-kourier.md" -### Contour controller +=== "Contour controller" --8<-- "netadapter-contour.md" -### Istio service mesh +=== "Istio service mesh" + +For detailed instructions, see [Install Istio for Knative](../install/installing-istio.md). --8<-- "netadapter-istio.md" -### Gateway API +=== "Gateway API" --8<-- "netadapter-gatewayapi.md" From 77cb4b8b3f0b5496ced6f3c38addd6abd5248cb4 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Sat, 22 Nov 2025 22:35:52 -0800 Subject: [PATCH 20/64] Update config-network-adapters.md Minor edit to rebuild --- docs/versioned/serving/config-network-adapters.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index e530f9ab94..1f2f237a63 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -11,7 +11,7 @@ This page describes and provides installation and configuration guidance for the - Kourier - Designed for Knative Serving with efficient serverless function deployment is the goal. Has a simple setup. The default choice for most users when a service mesh is not required. Has a simple setup. + Designed for Knative Serving with efficient serverless function deployment is the goal. Has a simple setup. Kourier is the default choice for most users, when a service mesh is not required, as it has a simple setup. - Contour From a01958329dee108ebda17dd3d59faf8053124e6f Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Sat, 22 Nov 2025 22:47:01 -0800 Subject: [PATCH 21/64] Update config-network-adapters.md tab test --- docs/versioned/serving/config-network-adapters.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 1f2f237a63..99bcf57b94 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -55,21 +55,21 @@ This section provides installation and configuration steps. === "Kourier controller (default choice)" ---8<-- "netadapter-kourier.md" + --8<-- "netadapter-kourier.md" === "Contour controller" ---8<-- "netadapter-contour.md" + --8<-- "netadapter-contour.md" === "Istio service mesh" -For detailed instructions, see [Install Istio for Knative](../install/installing-istio.md). + For detailed instructions, see [Install Istio for Knative](../install/installing-istio.md). ---8<-- "netadapter-istio.md" + --8<-- "netadapter-istio.md" === "Gateway API" ---8<-- "netadapter-gatewayapi.md" + --8<-- "netadapter-gatewayapi.md" ## Configure DNS From fb9a9f024d4c0fefd8c7deb3336fd6ad7d8ded2c Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Sun, 23 Nov 2025 22:31:39 -0800 Subject: [PATCH 22/64] Update config-network-adapters.md More writing and tab test for architecture section --- .../serving/config-network-adapters.md | 40 ++++++++++++------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 99bcf57b94..18906866af 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -23,6 +23,8 @@ This page describes and provides installation and configuration guidance for the A full-feature service mesh integrated with Knative that can also function as a Knative ingress. Best for enterprises already running Istio or needing advanced service mesh features alongside Knative. + Note that Knative has a default Istio integration without the full-feature service mesh. The `knative-ingress-gateway` in the `knative-serving` namespace is a shared Istio gateway resource that handles all incoming (north-south) traffic to Knative services. This gateway points to the underlying 1istio-ingressgateway` service in the `istio-system` namespace. You can replace this gateway with one of your own, see [Configuring the Ingress gateway](setting-up-custom-ingress-gateway.md). + - Gateway API Emerging Kubernetes-native networking API (replacing Ingress)extensible than traditional Ingress APIs. It is a specification, not an implementation itself. @@ -33,21 +35,29 @@ This page describes and provides installation and configuration guidance for the ## Architectures -```mermaid ---- -config: - theme: base - layout: elk - look: classic ---- -flowchart TB - subgraph s1["Gateway API"] - HR["HTTPRoute"] - GW["Gateway listener"] - end - KSvc["Knative Service"] -- owns --> Route["Route"] - Route -- creates --> HR & GW -``` +=== "Kourier" + +=== "Contour" + +=== "Istio" + +=== "Gateway API" + + ```mermaid + --- + config: + theme: base + layout: elk + look: classic + --- + flowchart TB + subgraph s1["Gateway API"] + HR["HTTPRoute"] + GW["Gateway listener"] + end + KSvc["Knative Service"] -- owns --> Route["Route"] + Route -- creates --> HR & GW + ``` ## Network Layer setup From e39c0ae63c47f1df1f1e12959bdae25111b70abe Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Sun, 23 Nov 2025 22:45:46 -0800 Subject: [PATCH 23/64] Title and edits Title change and format fix --- docs/versioned/.nav.yml | 2 +- .../serving/config-network-adapters.md | 42 ++++++++----------- 2 files changed, 18 insertions(+), 26 deletions(-) diff --git a/docs/versioned/.nav.yml b/docs/versioned/.nav.yml index 77ccc8a3f5..2c2ad9a631 100644 --- a/docs/versioned/.nav.yml +++ b/docs/versioned/.nav.yml @@ -267,11 +267,11 @@ nav: - Configure high-availability components: serving/config-ha.md - Exclude namespaces from the Knative webhook: serving/webhook-customizations.md - Networking Options: + - Configure Knative networking: serving/config-network-adapters.md - Configure the ingress gateway: serving/setting-up-custom-ingress-gateway.md - Configure domain names: serving/using-a-custom-domain.md - Istio Authorization: serving/istio-authorization.md - Extending Queue Proxy image with QPOptions: serving/queue-extensions.md - - Configure network adapters: serving/config-network-adapters.md - Serving configuration: - Configure Deployment resources: serving/configuration/deployment.md - Configure gradual rollout of traffic to Revisions: serving/configuration/rolling-out-latest-revision-configmap.md diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 18906866af..7701316c7d 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -5,7 +5,7 @@ components: function: how-to --- -# Configure network layers +# Configure Knative networking This page describes and provides installation and configuration guidance for the following networking plugins. @@ -33,31 +33,23 @@ This page describes and provides installation and configuration guidance for the Best for forward-looking teams adopting Gateway API to unify ingress across Kubernetes, with Knative leveraging the same standard. -## Architectures +## Architecture -=== "Kourier" - -=== "Contour" - -=== "Istio" - -=== "Gateway API" - - ```mermaid - --- - config: - theme: base - layout: elk - look: classic - --- - flowchart TB - subgraph s1["Gateway API"] - HR["HTTPRoute"] - GW["Gateway listener"] - end - KSvc["Knative Service"] -- owns --> Route["Route"] - Route -- creates --> HR & GW - ``` +```mermaid +--- +config: + theme: base + layout: elk + look: classic +--- +flowchart TB + subgraph s1["Gateway API"] + HR["HTTPRoute"] + GW["Gateway listener"] + end + KSvc["Knative Service"] -- owns --> Route["Route"] + Route -- creates --> HR & GW +``` ## Network Layer setup From f346e570e2498e5fa9060e64059c56904d606fd7 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Sun, 23 Nov 2025 22:57:16 -0800 Subject: [PATCH 24/64] Update config-network-adapters.md indented mermaid test --- .../serving/config-network-adapters.md | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 7701316c7d..4234267b98 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -35,21 +35,21 @@ This page describes and provides installation and configuration guidance for the ## Architecture -```mermaid + ```mermaid + --- + config: + theme: base + layout: elk + look: classic --- -config: - theme: base - layout: elk - look: classic ---- -flowchart TB - subgraph s1["Gateway API"] - HR["HTTPRoute"] - GW["Gateway listener"] - end - KSvc["Knative Service"] -- owns --> Route["Route"] - Route -- creates --> HR & GW -``` + flowchart TB + subgraph s1["Gateway API"] + HR["HTTPRoute"] + GW["Gateway listener"] + end + KSvc["Knative Service"] -- owns --> Route["Route"] + Route -- creates --> HR & GW + ``` ## Network Layer setup From c277d3d1875c862ef68351bbcf5dc4a34420594e Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Sun, 23 Nov 2025 23:05:01 -0800 Subject: [PATCH 25/64] Update config-network-adapters.md Mermaid tab test --- .../serving/config-network-adapters.md | 56 ++++++++++++++++++- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 4234267b98..5b077b3ca0 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -35,13 +35,65 @@ This page describes and provides installation and configuration guidance for the ## Architecture +=== "Kourier" ```mermaid --- config: theme: base layout: elk look: classic ---- + --- + flowchart TB + subgraph s1["Gateway API"] + HR["HTTPRoute"] + GW["Gateway listener"] + end + KSvc["Knative Service"] -- owns --> Route["Route"] + Route -- creates --> HR & GW + ``` + +=== "Contour" + ```mermaid + --- + config: + theme: base + layout: elk + look: classic + --- + flowchart TB + subgraph s1["Gateway API"] + HR["HTTPRoute"] + GW["Gateway listener"] + end + KSvc["Knative Service"] -- owns --> Route["Route"] + Route -- creates --> HR & GW + ``` + +=== "Istio" + ```mermaid + --- + config: + theme: base + layout: elk + look: classic + --- + flowchart TB + subgraph s1["Gateway API"] + HR["HTTPRoute"] + GW["Gateway listener"] + end + KSvc["Knative Service"] -- owns --> Route["Route"] + Route -- creates --> HR & GW + ``` + +=== "Gateway API" + ```mermaid + --- + config: + theme: base + layout: elk + look: classic + --- flowchart TB subgraph s1["Gateway API"] HR["HTTPRoute"] @@ -49,7 +101,7 @@ This page describes and provides installation and configuration guidance for the end KSvc["Knative Service"] -- owns --> Route["Route"] Route -- creates --> HR & GW - ``` + ``` ## Network Layer setup From 257828312a29fb275046319198517c8ce2577607 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Sun, 23 Nov 2025 23:16:44 -0800 Subject: [PATCH 26/64] Update config-network-adapters.md undid test --- .../serving/config-network-adapters.md | 52 ------------------- 1 file changed, 52 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 5b077b3ca0..8265c20ea0 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -35,58 +35,6 @@ This page describes and provides installation and configuration guidance for the ## Architecture -=== "Kourier" - ```mermaid - --- - config: - theme: base - layout: elk - look: classic - --- - flowchart TB - subgraph s1["Gateway API"] - HR["HTTPRoute"] - GW["Gateway listener"] - end - KSvc["Knative Service"] -- owns --> Route["Route"] - Route -- creates --> HR & GW - ``` - -=== "Contour" - ```mermaid - --- - config: - theme: base - layout: elk - look: classic - --- - flowchart TB - subgraph s1["Gateway API"] - HR["HTTPRoute"] - GW["Gateway listener"] - end - KSvc["Knative Service"] -- owns --> Route["Route"] - Route -- creates --> HR & GW - ``` - -=== "Istio" - ```mermaid - --- - config: - theme: base - layout: elk - look: classic - --- - flowchart TB - subgraph s1["Gateway API"] - HR["HTTPRoute"] - GW["Gateway listener"] - end - KSvc["Knative Service"] -- owns --> Route["Route"] - Route -- creates --> HR & GW - ``` - -=== "Gateway API" ```mermaid --- config: From 4d49145c743e143198b11712ac3c5d87d063fe02 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Sun, 23 Nov 2025 23:21:44 -0800 Subject: [PATCH 27/64] Update config-network-adapters.md Mermaid fix --- .../serving/config-network-adapters.md | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 8265c20ea0..6e9e89fcdb 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -35,21 +35,21 @@ This page describes and provides installation and configuration guidance for the ## Architecture - ```mermaid - --- - config: - theme: base - layout: elk - look: classic - --- - flowchart TB - subgraph s1["Gateway API"] - HR["HTTPRoute"] - GW["Gateway listener"] - end - KSvc["Knative Service"] -- owns --> Route["Route"] - Route -- creates --> HR & GW - ``` +```mermaid +--- +config: + theme: base + layout: elk + look: classic +--- +flowchart TB + subgraph s1["Gateway API"] + HR["HTTPRoute"] + GW["Gateway listener"] + end + KSvc["Knative Service"] -- owns --> Route["Route"] + Route -- creates --> HR & GW +``` ## Network Layer setup From 4fad8ae3f59f1e88bfd31bbf825c856fe2a2936c Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Mon, 24 Nov 2025 14:07:54 -0800 Subject: [PATCH 28/64] Update config-network-adapters.md Tab test --- .../serving/config-network-adapters.md | 45 +++++++++++++------ 1 file changed, 32 insertions(+), 13 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 6e9e89fcdb..3b1a73e0ab 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -35,21 +35,40 @@ This page describes and provides installation and configuration guidance for the ## Architecture -```mermaid ---- -config: - theme: base - layout: elk - look: classic ---- -flowchart TB - subgraph s1["Gateway API"] +=== "Test A" + + ```mermaid + --- + config: + theme: base + layout: elk + look: classic + --- + flowchart TB + subgraph s1["Gateway API"] + HR["HTTPRoute"] + GW["Gateway listener"] + end + KSvc["Knative Service"] -- owns --> Route["Route"] + Route -- creates --> HR & GW + ``` +=== "Test B" + + ```mermaid + --- + config: + theme: base + layout: elk + look: classic + --- + flowchart TB + subgraph s1["Gateway API"] HR["HTTPRoute"] GW["Gateway listener"] - end - KSvc["Knative Service"] -- owns --> Route["Route"] - Route -- creates --> HR & GW -``` + end + KSvc["Knative Service"] -- owns --> Route["Route"] + Route -- creates --> HR & GW + ``` ## Network Layer setup From 8b39f8486c5c37d2e303d2c062558756c90c4d00 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Mon, 24 Nov 2025 15:12:17 -0800 Subject: [PATCH 29/64] Update config-network-adapters.md More mermaid testing --- .../serving/config-network-adapters.md | 63 ++++++++++++++----- 1 file changed, 48 insertions(+), 15 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 3b1a73e0ab..0804cfcee8 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -35,31 +35,64 @@ This page describes and provides installation and configuration guidance for the ## Architecture -=== "Test A" +=== "Kourier" ```mermaid --- config: - theme: base + theme: default layout: elk - look: classic --- - flowchart TB - subgraph s1["Gateway API"] - HR["HTTPRoute"] - GW["Gateway listener"] + flowchart LR + subgraph Kourier["Kourier for Knative"] + K2["Creates Ingress objects"] + K1["Kourier"] + K3["Class: kourier.ingress.networking.knative.dev"] end - KSvc["Knative Service"] -- owns --> Route["Route"] - Route -- creates --> HR & GW + K1 --> K2 + K2 --> K3 + style Kourier fill:#e3f2fd ``` -=== "Test B" +=== "Courier" + + ```mermaid + --- + config: + theme: default + layout: elk + --- + flowchart LR + subgraph Contour + C1[Contour] --> C2[Creates Ingress objects] + C2 --> C3[Class: contour.ingress.networking.knative.dev] + end + style Contour fill:#fff3e0 + ``` + +=== "Istio" + + ```mermaid + --- + config: + theme: default + layout: elk + --- + flowchart LR + subgraph Contour + I1[Istio] --> I2[Creates VirtualService + Gateway] + I2 --> I3[Class: istio.ingress.networking.knative.dev] + I3 --> I4[No native Ingress objects] + end + style Contour fill:#fff3e0 + ``` + +=== "Gateway API" ```mermaid --- config: - theme: base + theme: default layout: elk - look: classic --- flowchart TB subgraph s1["Gateway API"] @@ -74,15 +107,15 @@ This page describes and provides installation and configuration guidance for the This section provides installation and configuration steps. -=== "Kourier controller (default choice)" +=== "Kourier" --8<-- "netadapter-kourier.md" -=== "Contour controller" +=== "Contour" --8<-- "netadapter-contour.md" -=== "Istio service mesh" +=== "Istio" For detailed instructions, see [Install Istio for Knative](../install/installing-istio.md). From 8986808ba2375bcfac2914b36c6ea2d85af81133 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Mon, 24 Nov 2025 17:39:56 -0800 Subject: [PATCH 30/64] Update config-network-adapters.md mermaid work --- docs/versioned/serving/config-network-adapters.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 0804cfcee8..cdd6bc76b7 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -42,6 +42,7 @@ This page describes and provides installation and configuration guidance for the config: theme: default layout: elk + look: neo --- flowchart LR subgraph Kourier["Kourier for Knative"] @@ -60,6 +61,7 @@ This page describes and provides installation and configuration guidance for the config: theme: default layout: elk + look: neo --- flowchart LR subgraph Contour @@ -76,14 +78,15 @@ This page describes and provides installation and configuration guidance for the config: theme: default layout: elk + look: neo --- flowchart LR - subgraph Contour + subgraph Istio I1[Istio] --> I2[Creates VirtualService + Gateway] I2 --> I3[Class: istio.ingress.networking.knative.dev] I3 --> I4[No native Ingress objects] end - style Contour fill:#fff3e0 + style Istio fill:#f3e5f5 ``` === "Gateway API" @@ -93,6 +96,7 @@ This page describes and provides installation and configuration guidance for the config: theme: default layout: elk + look: neo --- flowchart TB subgraph s1["Gateway API"] From 761be15e60dac83317ff2e9b69a78d3f1f49d88b Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Mon, 24 Nov 2025 21:21:32 -0800 Subject: [PATCH 31/64] Update config-network-adapters.md Formatting --- .../versioned/serving/config-network-adapters.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index cdd6bc76b7..285490f7d0 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -9,23 +9,25 @@ function: how-to This page describes and provides installation and configuration guidance for the following networking plugins. -- Kourier +## Network layers + +### Kourier controller Designed for Knative Serving with efficient serverless function deployment is the goal. Has a simple setup. Kourier is the default choice for most users, when a service mesh is not required, as it has a simple setup. -- Contour +### Contour controller General-purpose Envoy-based ingress controller with full Kubernetes Ingress support. A Knative ingress controller that integrates with Project Contour, translating Knative Ingress into Contour’s HTTPProxy resources. A good choice for clusters that already run non-Knative apps and want to reuse a single Ingress controller as well as teams who are already using Contour/Envoy and wanting Knative integration with advanced routing but not full service mesh. -- Istio +### Istio full-feature service mesh A full-feature service mesh integrated with Knative that can also function as a Knative ingress. Best for enterprises already running Istio or needing advanced service mesh features alongside Knative. Note that Knative has a default Istio integration without the full-feature service mesh. The `knative-ingress-gateway` in the `knative-serving` namespace is a shared Istio gateway resource that handles all incoming (north-south) traffic to Knative services. This gateway points to the underlying 1istio-ingressgateway` service in the `istio-system` namespace. You can replace this gateway with one of your own, see [Configuring the Ingress gateway](setting-up-custom-ingress-gateway.md). -- Gateway API +### Gateway API Emerging Kubernetes-native networking API (replacing Ingress)extensible than traditional Ingress APIs. It is a specification, not an implementation itself. @@ -64,7 +66,7 @@ This page describes and provides installation and configuration guidance for the look: neo --- flowchart LR - subgraph Contour + subgraph Contour["Contour for Knative"] C1[Contour] --> C2[Creates Ingress objects] C2 --> C3[Class: contour.ingress.networking.knative.dev] end @@ -81,7 +83,7 @@ This page describes and provides installation and configuration guidance for the look: neo --- flowchart LR - subgraph Istio + subgraph Istio["Istio full-feature service mesh for Knative"] I1[Istio] --> I2[Creates VirtualService + Gateway] I2 --> I3[Class: istio.ingress.networking.knative.dev] I3 --> I4[No native Ingress objects] @@ -99,7 +101,7 @@ This page describes and provides installation and configuration guidance for the look: neo --- flowchart TB - subgraph s1["Gateway API"] + subgraph s1["Gateway API for Knative"] HR["HTTPRoute"] GW["Gateway listener"] end From f7a24a04c186b97e7692d25a57ca837e38a450b1 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Mon, 24 Nov 2025 23:15:27 -0800 Subject: [PATCH 32/64] Update config-network-adapters.md More writing --- .../serving/config-network-adapters.md | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 285490f7d0..ea92da0019 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -11,29 +11,31 @@ This page describes and provides installation and configuration guidance for the ## Network layers +For most users, the Kourier ingress controller is sufficient with the already installed default Istio gateway resource. You can expand your capabilities with more Ingress, full-feature service mesh, and the Kubernetes Gateway API. + ### Kourier controller - Designed for Knative Serving with efficient serverless function deployment is the goal. Has a simple setup. Kourier is the default choice for most users, when a service mesh is not required, as it has a simple setup. +Designed for Knative Serving with efficient serverless function deployment is the goal. Has a simple setup. Kourier is the default ingress choice for most users, when a service mesh is not required, as it has a simple setup. ### Contour controller - General-purpose Envoy-based ingress controller with full Kubernetes Ingress support. A Knative ingress controller that integrates with Project Contour, translating Knative Ingress into Contour’s HTTPProxy resources. +General-purpose Envoy-based ingress controller with full Kubernetes Ingress support. A Knative ingress controller that integrates with Project Contour, translating Knative Ingress into Contour’s HTTPProxy resources. - A good choice for clusters that already run non-Knative apps and want to reuse a single Ingress controller as well as teams who are already using Contour/Envoy and wanting Knative integration with advanced routing but not full service mesh. +A good choice for clusters that already run non-Knative apps and want to reuse a single Ingress controller as well as teams who are already using Contour/Envoy and wanting Knative integration with advanced routing but not full service mesh. ### Istio full-feature service mesh - A full-feature service mesh integrated with Knative that can also function as a Knative ingress. Best for enterprises already running Istio or needing advanced service mesh features alongside Knative. +A full-feature service mesh integrated with Knative that can also function as a Knative ingress. Best for enterprises already running Istio or needing advanced service mesh features alongside Knative. - Note that Knative has a default Istio integration without the full-feature service mesh. The `knative-ingress-gateway` in the `knative-serving` namespace is a shared Istio gateway resource that handles all incoming (north-south) traffic to Knative services. This gateway points to the underlying 1istio-ingressgateway` service in the `istio-system` namespace. You can replace this gateway with one of your own, see [Configuring the Ingress gateway](setting-up-custom-ingress-gateway.md). +Note that Knative has a default Istio integration without the full-feature service mesh. The `knative-ingress-gateway` in the `knative-serving` namespace is a shared Istio gateway resource that handles all incoming (north-south) traffic to Knative services. This gateway points to the underlying 1istio-ingressgateway` service in the `istio-system` namespace. You can replace this gateway with one of your own, see [Configuring the Ingress gateway](setting-up-custom-ingress-gateway.md). ### Gateway API - Emerging Kubernetes-native networking API (replacing Ingress)extensible than traditional Ingress APIs. It is a specification, not an implementation itself. +Emerging Kubernetes-native networking API (replacing Ingress)extensible than traditional Ingress APIs. It is a specification, not an implementation itself. - The Kubernetes Gateway API requires a controller or service mesh. Istio and Contour implementations are tested though other Gateway API implementations should work. For more information see [Tested Gateway API version and Ingress](https://github.com/knative-extensions/net-gateway-api/blob/main/docs/test-version.md). +The Kubernetes Gateway API requires a controller or service mesh. Istio and Contour implementations are tested though other Gateway API implementations should work. For more information see [Tested Gateway API version and Ingress](https://github.com/knative-extensions/net-gateway-api/blob/main/docs/test-version.md). - Best for forward-looking teams adopting Gateway API to unify ingress across Kubernetes, with Knative leveraging the same standard. +Best for forward-looking teams adopting Gateway API to unify ingress across Kubernetes, with Knative leveraging the same standard. ## Architecture @@ -131,7 +133,15 @@ This section provides installation and configuration steps. --8<-- "netadapter-gatewayapi.md" -## Configure DNS +### Verify installations + + Monitor the Knative components until all of the components show a `STATUS` of `Running` or `Completed`. Use the `get-pods` command to determine network components and their status. + + ```bash + kubectl get pods -n knative-serving + ``` + +### Configure DNS --8<-- "dns.md" --8<-- "real-dns-yaml.md" From 39050263a7d31cfcf9dccf94ee8c39e435a384d7 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Mon, 24 Nov 2025 23:22:22 -0800 Subject: [PATCH 33/64] Update config-network-adapters.md H4s instead of H3s --- docs/versioned/serving/config-network-adapters.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index ea92da0019..a5ed2ecd08 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -13,23 +13,23 @@ This page describes and provides installation and configuration guidance for the For most users, the Kourier ingress controller is sufficient with the already installed default Istio gateway resource. You can expand your capabilities with more Ingress, full-feature service mesh, and the Kubernetes Gateway API. -### Kourier controller +#### Kourier controller Designed for Knative Serving with efficient serverless function deployment is the goal. Has a simple setup. Kourier is the default ingress choice for most users, when a service mesh is not required, as it has a simple setup. -### Contour controller +#### Contour controller General-purpose Envoy-based ingress controller with full Kubernetes Ingress support. A Knative ingress controller that integrates with Project Contour, translating Knative Ingress into Contour’s HTTPProxy resources. A good choice for clusters that already run non-Knative apps and want to reuse a single Ingress controller as well as teams who are already using Contour/Envoy and wanting Knative integration with advanced routing but not full service mesh. -### Istio full-feature service mesh +#### Istio full-feature service mesh A full-feature service mesh integrated with Knative that can also function as a Knative ingress. Best for enterprises already running Istio or needing advanced service mesh features alongside Knative. Note that Knative has a default Istio integration without the full-feature service mesh. The `knative-ingress-gateway` in the `knative-serving` namespace is a shared Istio gateway resource that handles all incoming (north-south) traffic to Knative services. This gateway points to the underlying 1istio-ingressgateway` service in the `istio-system` namespace. You can replace this gateway with one of your own, see [Configuring the Ingress gateway](setting-up-custom-ingress-gateway.md). -### Gateway API +#### Gateway API Emerging Kubernetes-native networking API (replacing Ingress)extensible than traditional Ingress APIs. It is a specification, not an implementation itself. @@ -133,7 +133,7 @@ This section provides installation and configuration steps. --8<-- "netadapter-gatewayapi.md" -### Verify installations +#### Verify installations Monitor the Knative components until all of the components show a `STATUS` of `Running` or `Completed`. Use the `get-pods` command to determine network components and their status. @@ -141,7 +141,7 @@ This section provides installation and configuration steps. kubectl get pods -n knative-serving ``` -### Configure DNS +#### Configure DNS --8<-- "dns.md" --8<-- "real-dns-yaml.md" From a4512c4cb7924516c970dcf60fdaaf80792a2629 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Tue, 25 Nov 2025 15:39:10 -0800 Subject: [PATCH 34/64] Update config-network-adapters.md Mermaid tweaks --- .../serving/config-network-adapters.md | 45 +++++++++---------- 1 file changed, 20 insertions(+), 25 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index a5ed2ecd08..9f570ebb3e 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -7,23 +7,23 @@ function: how-to # Configure Knative networking -This page describes and provides installation and configuration guidance for the following networking plugins. +This page describes and provides installation and configuration guidance for Ingress controls, service-meshes and gateways for handling networking for Knative services. -## Network layers +## Network layer options For most users, the Kourier ingress controller is sufficient with the already installed default Istio gateway resource. You can expand your capabilities with more Ingress, full-feature service mesh, and the Kubernetes Gateway API. -#### Kourier controller +#### Kourier Designed for Knative Serving with efficient serverless function deployment is the goal. Has a simple setup. Kourier is the default ingress choice for most users, when a service mesh is not required, as it has a simple setup. -#### Contour controller +#### Contour General-purpose Envoy-based ingress controller with full Kubernetes Ingress support. A Knative ingress controller that integrates with Project Contour, translating Knative Ingress into Contour’s HTTPProxy resources. A good choice for clusters that already run non-Knative apps and want to reuse a single Ingress controller as well as teams who are already using Contour/Envoy and wanting Knative integration with advanced routing but not full service mesh. -#### Istio full-feature service mesh +#### Istio A full-feature service mesh integrated with Knative that can also function as a Knative ingress. Best for enterprises already running Istio or needing advanced service mesh features alongside Knative. @@ -37,7 +37,7 @@ The Kubernetes Gateway API requires a controller or service mesh. Istio and Cont Best for forward-looking teams adopting Gateway API to unify ingress across Kubernetes, with Knative leveraging the same standard. -## Architecture +## Architectures === "Kourier" @@ -49,14 +49,10 @@ Best for forward-looking teams adopting Gateway API to unify ingress across Kube look: neo --- flowchart LR - subgraph Kourier["Kourier for Knative"] - K2["Creates Ingress objects"] - K1["Kourier"] - K3["Class: kourier.ingress.networking.knative.dev"] - end - K1 --> K2 - K2 --> K3 - style Kourier fill:#e3f2fd + K2["Creates Ingress objects"] + K3["Class: kourier.ingress.networking.knative.dev"] + K1 --> K2 + K2 --> K3 ``` === "Courier" @@ -68,11 +64,8 @@ Best for forward-looking teams adopting Gateway API to unify ingress across Kube look: neo --- flowchart LR - subgraph Contour["Contour for Knative"] - C1[Contour] --> C2[Creates Ingress objects] - C2 --> C3[Class: contour.ingress.networking.knative.dev] - end - style Contour fill:#fff3e0 + C1["Contour"] --> C2["Creates Ingress objects"] + C2 --> C3["Class: contour.ingress.networking.knative.dev"] ``` === "Istio" @@ -85,12 +78,14 @@ Best for forward-looking teams adopting Gateway API to unify ingress across Kube look: neo --- flowchart LR - subgraph Istio["Istio full-feature service mesh for Knative"] - I1[Istio] --> I2[Creates VirtualService + Gateway] - I2 --> I3[Class: istio.ingress.networking.knative.dev] - I3 --> I4[No native Ingress objects] - end - style Istio fill:#f3e5f5 + I2["Creates VirtualService + Gateway"] + I1["Istio"] + I3["Class: istio.ingress.networking.knative.dev"] + I4["No native Ingress objects"] + I1 --> I2 + I2 --> I3 + I3 --> I4 + style I1 fill:#f3e5f5 ``` === "Gateway API" From 49db831aa7de221135d052335c393b66f4fc7fc2 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Wed, 26 Nov 2025 16:10:31 -0800 Subject: [PATCH 35/64] Update config-network-adapters.md tab test --- .../serving/config-network-adapters.md | 59 ++++++++----------- 1 file changed, 25 insertions(+), 34 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 9f570ebb3e..6c3cec61f9 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -13,32 +13,6 @@ This page describes and provides installation and configuration guidance for Ing For most users, the Kourier ingress controller is sufficient with the already installed default Istio gateway resource. You can expand your capabilities with more Ingress, full-feature service mesh, and the Kubernetes Gateway API. -#### Kourier - -Designed for Knative Serving with efficient serverless function deployment is the goal. Has a simple setup. Kourier is the default ingress choice for most users, when a service mesh is not required, as it has a simple setup. - -#### Contour - -General-purpose Envoy-based ingress controller with full Kubernetes Ingress support. A Knative ingress controller that integrates with Project Contour, translating Knative Ingress into Contour’s HTTPProxy resources. - -A good choice for clusters that already run non-Knative apps and want to reuse a single Ingress controller as well as teams who are already using Contour/Envoy and wanting Knative integration with advanced routing but not full service mesh. - -#### Istio - -A full-feature service mesh integrated with Knative that can also function as a Knative ingress. Best for enterprises already running Istio or needing advanced service mesh features alongside Knative. - -Note that Knative has a default Istio integration without the full-feature service mesh. The `knative-ingress-gateway` in the `knative-serving` namespace is a shared Istio gateway resource that handles all incoming (north-south) traffic to Knative services. This gateway points to the underlying 1istio-ingressgateway` service in the `istio-system` namespace. You can replace this gateway with one of your own, see [Configuring the Ingress gateway](setting-up-custom-ingress-gateway.md). - -#### Gateway API - -Emerging Kubernetes-native networking API (replacing Ingress)extensible than traditional Ingress APIs. It is a specification, not an implementation itself. - -The Kubernetes Gateway API requires a controller or service mesh. Istio and Contour implementations are tested though other Gateway API implementations should work. For more information see [Tested Gateway API version and Ingress](https://github.com/knative-extensions/net-gateway-api/blob/main/docs/test-version.md). - -Best for forward-looking teams adopting Gateway API to unify ingress across Kubernetes, with Knative leveraging the same standard. - -## Architectures - === "Kourier" ```mermaid @@ -49,12 +23,13 @@ Best for forward-looking teams adopting Gateway API to unify ingress across Kube look: neo --- flowchart LR - K2["Creates Ingress objects"] - K3["Class: kourier.ingress.networking.knative.dev"] - K1 --> K2 - K2 --> K3 + K1["Knative
net-kourier"] -- creates --> K2["Ingress objects"] + K2 --> K3["Class: kourier.ingress.networking.knative.dev"] ``` -=== "Courier" + + Designed for Knative Serving with efficient serverless function deployment is the goal. Has a simple setup. Kourier is the default ingress choice for most users, when a service mesh is not required, as it has a simple setup. + +=== "Contour" ```mermaid --- @@ -64,10 +39,14 @@ Best for forward-looking teams adopting Gateway API to unify ingress across Kube look: neo --- flowchart LR - C1["Contour"] --> C2["Creates Ingress objects"] + C1["Knative
net-contour"] -- creates --> C2["Ingress objects"] C2 --> C3["Class: contour.ingress.networking.knative.dev"] ``` + General-purpose Envoy-based ingress controller with full Kubernetes Ingress support. A Knative ingress controller that integrates with Project Contour, translating Knative Ingress into Contour’s HTTPProxy resources. + + A good choice for clusters that already run non-Knative apps and want to reuse a single Ingress controller as well as teams who are already using Contour/Envoy and wanting Knative integration with advanced routing but not full service mesh. + === "Istio" ```mermaid @@ -78,16 +57,20 @@ Best for forward-looking teams adopting Gateway API to unify ingress across Kube look: neo --- flowchart LR - I2["Creates VirtualService + Gateway"] + I2["VirtualService + Gateway"] I1["Istio"] I3["Class: istio.ingress.networking.knative.dev"] I4["No native Ingress objects"] - I1 --> I2 + I1 -- creates --> I2 I2 --> I3 I3 --> I4 style I1 fill:#f3e5f5 ``` + A full-feature service mesh integrated with Knative that can also function as a Knative ingress. Best for enterprises already running Istio or needing advanced service mesh features alongside Knative. + + Note that Knative has a default Istio integration without the full-feature service mesh. The `knative-ingress-gateway` in the `knative-serving` namespace is a shared Istio gateway resource that handles all incoming (north-south) traffic to Knative services. This gateway points to the underlying 1istio-ingressgateway` service in the `istio-system` namespace. You can replace this gateway with one of your own, see [Configuring the Ingress gateway](setting-up-custom-ingress-gateway.md). + === "Gateway API" ```mermaid @@ -106,6 +89,12 @@ Best for forward-looking teams adopting Gateway API to unify ingress across Kube Route -- creates --> HR & GW ``` + Emerging Kubernetes-native networking API (replacing Ingress)extensible than traditional Ingress APIs. It is a specification, not an implementation itself. + + The Kubernetes Gateway API requires a controller or service mesh. Istio and Contour implementations are tested though other Gateway API implementations should work. For more information see [Tested Gateway API version and Ingress](https://github.com/knative-extensions/net-gateway-api/blob/main/docs/test-version.md). + + Best for forward-looking teams adopting Gateway API to unify ingress across Kubernetes, with Knative leveraging the same standard. + ## Network Layer setup This section provides installation and configuration steps. @@ -114,6 +103,8 @@ This section provides installation and configuration steps. --8<-- "netadapter-kourier.md" + These instructions use the latest release of [net-kourier](https://github.com/knative-extensions/net-kourier/releases) on the Knative extensions. + === "Contour" --8<-- "netadapter-contour.md" From 41240db90f5706e594438f533037107b319ebe7b Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Wed, 26 Nov 2025 19:54:57 -0800 Subject: [PATCH 36/64] Writing and structuring Trying out just one tab set --- docs/snippets/netadapter-contour.md | 11 +--- .../serving/config-network-adapters.md | 64 +++++++++---------- 2 files changed, 33 insertions(+), 42 deletions(-) diff --git a/docs/snippets/netadapter-contour.md b/docs/snippets/netadapter-contour.md index 1471862092..5890e55103 100644 --- a/docs/snippets/netadapter-contour.md +++ b/docs/snippets/netadapter-contour.md @@ -1,11 +1,4 @@ -Use the following steps to install Contour and enable its Knative integration. - -1. Install a properly configured Contour: - - ```bash - kubectl apply -f {{ artifact(repo="net-contour",org="knative-extensions",file="contour.yaml")}} - ``` - +Use the following steps to install and enable Contour and enable its Knative integration. 1. Install the Knative Contour controller: @@ -26,4 +19,4 @@ Use the following steps to install Contour and enable its Knative integration. ```bash kubectl --namespace contour-external get service envoy - ``` \ No newline at end of file + ``` diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 6c3cec61f9..0bc8817607 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -27,7 +27,13 @@ For most users, the Kourier ingress controller is sufficient with the already in K2 --> K3["Class: kourier.ingress.networking.knative.dev"] ``` - Designed for Knative Serving with efficient serverless function deployment is the goal. Has a simple setup. Kourier is the default ingress choice for most users, when a service mesh is not required, as it has a simple setup. + The Knative `net-kourier` is an Ingress for Knative Serving. Kourier is a lightweight alternative for the Istio ingress as its deployment consists only of an Envoy proxy and a control plane. + + Designed for Knative Serving with efficient serverless function deployment is the goal. Kourier is the default ingress choice for most users, when a service mesh is not required, as it has a simple setup. + + The following setup procedure automatically obtains the latest release of [net-kourier](https://github.com/knative-extensions/net-kourier/releases) on the Knative extensions. + + --8<-- "netadapter-kourier.md" === "Contour" @@ -43,10 +49,14 @@ For most users, the Kourier ingress controller is sufficient with the already in C2 --> C3["Class: contour.ingress.networking.knative.dev"] ``` - General-purpose Envoy-based ingress controller with full Kubernetes Ingress support. A Knative ingress controller that integrates with Project Contour, translating Knative Ingress into Contour’s HTTPProxy resources. + The Knative `net-contour` controller enables Contour to satisfy the networking needs of Knative Serving by bridging Knative's KIngress resources to Contour's HTTPProxy resources. A good choice for clusters that already run non-Knative apps and want to reuse a single Ingress controller as well as teams who are already using Contour/Envoy and wanting Knative integration with advanced routing but not full service mesh. + The following setup procedure automatically obtains the latest release of [net-contour](https://github.com/knative-extensions/net-contour/releases) on the Knative extensions. + + --8<-- "netadapter-contour.md" + === "Istio" ```mermaid @@ -58,19 +68,21 @@ For most users, the Kourier ingress controller is sufficient with the already in --- flowchart LR I2["VirtualService + Gateway"] - I1["Istio"] - I3["Class: istio.ingress.networking.knative.dev"] - I4["No native Ingress objects"] + I1["Knative
net-istio"] + I3["Class: istio.ingress.networking.knative.dev
"No native Ingress objects"] I1 -- creates --> I2 I2 --> I3 I3 --> I4 - style I1 fill:#f3e5f5 ``` - A full-feature service mesh integrated with Knative that can also function as a Knative ingress. Best for enterprises already running Istio or needing advanced service mesh features alongside Knative. + The Knative `net-istio` defines a KIngress controller for Istio. A full-feature service mesh integrated with Knative that can also function as a Knative ingress. Best for enterprises already running Istio or needing advanced service mesh features alongside Knative. Note that Knative has a default Istio integration without the full-feature service mesh. The `knative-ingress-gateway` in the `knative-serving` namespace is a shared Istio gateway resource that handles all incoming (north-south) traffic to Knative services. This gateway points to the underlying 1istio-ingressgateway` service in the `istio-system` namespace. You can replace this gateway with one of your own, see [Configuring the Ingress gateway](setting-up-custom-ingress-gateway.md). + The following setup procedure automatically obtains the latest release of [net-istio](https://github.com/knative-extensions/net-istio/releases) on the Knative extensions. + + --8<-- "netadapter-istio.md" + === "Gateway API" ```mermaid @@ -89,45 +101,31 @@ For most users, the Kourier ingress controller is sufficient with the already in Route -- creates --> HR & GW ``` - Emerging Kubernetes-native networking API (replacing Ingress)extensible than traditional Ingress APIs. It is a specification, not an implementation itself. + The Knative `net-gateway-api` is a KIngress implementation and testing for Knative integration with the Kubernetes Gateway API. The Kubernetes Gateway API requires a controller or service mesh. Istio and Contour implementations are tested though other Gateway API implementations should work. For more information see [Tested Gateway API version and Ingress](https://github.com/knative-extensions/net-gateway-api/blob/main/docs/test-version.md). Best for forward-looking teams adopting Gateway API to unify ingress across Kubernetes, with Knative leveraging the same standard. -## Network Layer setup - -This section provides installation and configuration steps. - -=== "Kourier" - - --8<-- "netadapter-kourier.md" - - These instructions use the latest release of [net-kourier](https://github.com/knative-extensions/net-kourier/releases) on the Knative extensions. - -=== "Contour" - - --8<-- "netadapter-contour.md" - -=== "Istio" - - For detailed instructions, see [Install Istio for Knative](../install/installing-istio.md). - - --8<-- "netadapter-istio.md" - -=== "Gateway API" + The following setup procedure automatically obtains the latest release of [net-gateway-api](https://github.com/knative-extensions/net-gateway-api/releases) on the Knative extensions. --8<-- "netadapter-gatewayapi.md" -#### Verify installations - - Monitor the Knative components until all of the components show a `STATUS` of `Running` or `Completed`. Use the `get-pods` command to determine network components and their status. +## Verify controller installations + Use the `get pods` command to monitor the Kourier, Contour, or Istio controller components for Knative until all of the components show a `STATUS` of `Running` or `Completed`. ```bash kubectl get pods -n knative-serving ``` + Here are the typical base pod names you’ll see in the `knative-serving` namespace for each of the supported Knative networking layers: + + - Kourier: `kourier-control-*`, and `kourier-gateway-*`. + - Contour: `contour-*` + - Istio: `istio-webhook-*` + + The main Istio control plane pods such as `istiod-*` are in the `istio-system` namespace, but Knative adds this webhook pod in `knative-serving` when Istio is the chosen networking layer. -#### Configure DNS +## Configure DNS --8<-- "dns.md" --8<-- "real-dns-yaml.md" From 631c56f8bbc184ea6e94a25ce14572699da519fe Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Wed, 26 Nov 2025 20:27:02 -0800 Subject: [PATCH 37/64] Update config-network-adapters.md Formatting fixes --- .../serving/config-network-adapters.md | 23 ++++++++----------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 0bc8817607..d6ced38f33 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -64,15 +64,10 @@ For most users, the Kourier ingress controller is sufficient with the already in config: theme: default layout: elk - look: neo --- flowchart LR - I2["VirtualService + Gateway"] - I1["Knative
net-istio"] - I3["Class: istio.ingress.networking.knative.dev
"No native Ingress objects"] - I1 -- creates --> I2 - I2 --> I3 - I3 --> I4 + I1["Knative net-istio"] -- creates --> I2["Service + Gateway"] + I2 --> I3["Class: istio.ingress.networking.knative.dev
No native Ingress objects"] ``` The Knative `net-istio` defines a KIngress controller for Istio. A full-feature service mesh integrated with Knative that can also function as a Knative ingress. Best for enterprises already running Istio or needing advanced service mesh features alongside Knative. @@ -88,17 +83,16 @@ For most users, the Kourier ingress controller is sufficient with the already in ```mermaid --- config: - theme: default layout: elk - look: neo + theme: default --- - flowchart TB - subgraph s1["Gateway API for Knative"] - HR["HTTPRoute"] - GW["Gateway listener"] + flowchart LR + subgraph s1["Gateway API for Knative"] + HR["HTTPRoute"] + GW["Gateway listener"] end KSvc["Knative Service"] -- owns --> Route["Route"] - Route -- creates --> HR & GW + Route -- creates --> HR & GW ``` The Knative `net-gateway-api` is a KIngress implementation and testing for Knative integration with the Kubernetes Gateway API. @@ -114,6 +108,7 @@ For most users, the Kourier ingress controller is sufficient with the already in ## Verify controller installations Use the `get pods` command to monitor the Kourier, Contour, or Istio controller components for Knative until all of the components show a `STATUS` of `Running` or `Completed`. + ```bash kubectl get pods -n knative-serving ``` From 73e845fc3c0c08390795ddfa5b376a61cc197516 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Wed, 26 Nov 2025 20:40:03 -0800 Subject: [PATCH 38/64] Update config-network-adapters.md Minor edit to rebuild --- docs/versioned/serving/config-network-adapters.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index d6ced38f33..8a0b09b12c 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -11,7 +11,7 @@ This page describes and provides installation and configuration guidance for Ing ## Network layer options -For most users, the Kourier ingress controller is sufficient with the already installed default Istio gateway resource. You can expand your capabilities with more Ingress, full-feature service mesh, and the Kubernetes Gateway API. +Review these tabs for the optimal networking layer for your cluster. For most users, the Kourier ingress controller is sufficient with the already installed default Istio gateway resource. You can expand your capabilities with more Ingress, full-feature service mesh, and the Kubernetes Gateway API. === "Kourier" From 6dbb22a8778a9333ab4bbf4c63410c3a6f2ac649 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Wed, 26 Nov 2025 20:47:21 -0800 Subject: [PATCH 39/64] Update netadapter-gatewayapi.md Formatting test --- docs/snippets/netadapter-gatewayapi.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/snippets/netadapter-gatewayapi.md b/docs/snippets/netadapter-gatewayapi.md index 21b533db0d..86f33b17c3 100644 --- a/docs/snippets/netadapter-gatewayapi.md +++ b/docs/snippets/netadapter-gatewayapi.md @@ -20,3 +20,5 @@ Use the following steps to install the Knative Gateway API controller. ```bash kubectl get gateway --all-namespaces ``` + +Next, verify the installation. From 497620db1d751d60e0b13ee317a7c3be31d2714b Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Wed, 26 Nov 2025 20:54:19 -0800 Subject: [PATCH 40/64] Formatting tests --- docs/snippets/netadapter-gatewayapi.md | 2 -- docs/versioned/serving/config-network-adapters.md | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/snippets/netadapter-gatewayapi.md b/docs/snippets/netadapter-gatewayapi.md index 86f33b17c3..21b533db0d 100644 --- a/docs/snippets/netadapter-gatewayapi.md +++ b/docs/snippets/netadapter-gatewayapi.md @@ -20,5 +20,3 @@ Use the following steps to install the Knative Gateway API controller. ```bash kubectl get gateway --all-namespaces ``` - -Next, verify the installation. diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 8a0b09b12c..4b0d6e94e8 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -107,7 +107,7 @@ Review these tabs for the optimal networking layer for your cluster. For most us ## Verify controller installations - Use the `get pods` command to monitor the Kourier, Contour, or Istio controller components for Knative until all of the components show a `STATUS` of `Running` or `Completed`. + Monitor the pod status of the Kourier, Contour, or Istio controller components for Knative until all of the components show a `STATUS` of `Running` or `Completed`. ```bash kubectl get pods -n knative-serving From 359f605cb068146f805df07a9904db7737271176 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Wed, 26 Nov 2025 20:58:43 -0800 Subject: [PATCH 41/64] Update config-network-adapters.md Formatting test --- docs/versioned/serving/config-network-adapters.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 4b0d6e94e8..7342bfb030 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -107,11 +107,12 @@ Review these tabs for the optimal networking layer for your cluster. For most us ## Verify controller installations - Monitor the pod status of the Kourier, Contour, or Istio controller components for Knative until all of the components show a `STATUS` of `Running` or `Completed`. + Monitor the pod status of the Kourier, Contour, or Istio controller components for Knative until all of the components show a STATUS of Running or Completed. ```bash kubectl get pods -n knative-serving ``` + Here are the typical base pod names you’ll see in the `knative-serving` namespace for each of the supported Knative networking layers: - Kourier: `kourier-control-*`, and `kourier-gateway-*`. From 8e5bf80055b729c2271380183883bc12a568a810 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Wed, 26 Nov 2025 21:03:41 -0800 Subject: [PATCH 42/64] Update config-network-adapters.md Format fix --- docs/versioned/serving/config-network-adapters.md | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 7342bfb030..49f892728b 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -109,17 +109,13 @@ Review these tabs for the optimal networking layer for your cluster. For most us Monitor the pod status of the Kourier, Contour, or Istio controller components for Knative until all of the components show a STATUS of Running or Completed. - ```bash - kubectl get pods -n knative-serving - ``` - - Here are the typical base pod names you’ll see in the `knative-serving` namespace for each of the supported Knative networking layers: + Here are the typical base pod names you’ll see in the knative-serving namespace for each of the supported Knative networking layers: - - Kourier: `kourier-control-*`, and `kourier-gateway-*`. - - Contour: `contour-*` - - Istio: `istio-webhook-*` + - Kourier: kourier-control-*, and kourier-gateway-*. + - Contour: contour-* + - Istio: istio-webhook-* - The main Istio control plane pods such as `istiod-*` are in the `istio-system` namespace, but Knative adds this webhook pod in `knative-serving` when Istio is the chosen networking layer. + The main Istio control plane pods such as istiod-* are in the istio-system namespace, but Knative adds this webhook pod in knative-serving when Istio is the chosen networking layer. ## Configure DNS From 5c032f4d71c90847ba8848c47072dad05382e329 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Wed, 26 Nov 2025 21:13:28 -0800 Subject: [PATCH 43/64] Update config-network-adapters.md test --- docs/versioned/serving/config-network-adapters.md | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 49f892728b..b8e49fc5c7 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -105,18 +105,6 @@ Review these tabs for the optimal networking layer for your cluster. For most us --8<-- "netadapter-gatewayapi.md" -## Verify controller installations - - Monitor the pod status of the Kourier, Contour, or Istio controller components for Knative until all of the components show a STATUS of Running or Completed. - - Here are the typical base pod names you’ll see in the knative-serving namespace for each of the supported Knative networking layers: - - - Kourier: kourier-control-*, and kourier-gateway-*. - - Contour: contour-* - - Istio: istio-webhook-* - - The main Istio control plane pods such as istiod-* are in the istio-system namespace, but Knative adds this webhook pod in knative-serving when Istio is the chosen networking layer. - ## Configure DNS --8<-- "dns.md" From 9cf49808e115fed0f50f6107dfc6b3700e294ed3 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Wed, 26 Nov 2025 21:45:55 -0800 Subject: [PATCH 44/64] Update config-network-adapters.md Put back `Verify controller installations` --- .../versioned/serving/config-network-adapters.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index b8e49fc5c7..d94116b406 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -105,6 +105,22 @@ Review these tabs for the optimal networking layer for your cluster. For most us --8<-- "netadapter-gatewayapi.md" +## Verify controller installations + +Use the following command to verify and monitor the pod status of the Kourier, Contour, or Istio controllers. All of the components should show a `STATUS` of `Running` or `Completed`. + + ```bash + kubectl get pods -n knative-serving + ``` + +Here are the typical base pod names you’ll see in the `knative-serving` namespace for each of the supported Knative networking layers: + +- Kourier: `kourier-control-*`, and `kourier-gateway-*`. +- Contour: `contour-*` +- Istio: `istio-webhook-*` + +The main Istio control plane pods such as `istiod-*` are in the `istio-system` namespace, but Knative adds the `istio-webhook-*` pod in `knative-serving` when Istio is the chosen networking layer. + ## Configure DNS --8<-- "dns.md" From 187c0a1d2ff5a4bddd29740df57c7ad9292386f4 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Wed, 26 Nov 2025 21:58:46 -0800 Subject: [PATCH 45/64] Update config-network-adapters.md Formatting --- docs/versioned/serving/config-network-adapters.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index d94116b406..0160891e2d 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -109,10 +109,10 @@ Review these tabs for the optimal networking layer for your cluster. For most us Use the following command to verify and monitor the pod status of the Kourier, Contour, or Istio controllers. All of the components should show a `STATUS` of `Running` or `Completed`. - ```bash + ```bash kubectl get pods -n knative-serving ``` - + Here are the typical base pod names you’ll see in the `knative-serving` namespace for each of the supported Knative networking layers: - Kourier: `kourier-control-*`, and `kourier-gateway-*`. From 3e2a67ff3276c9370f2263f565ebc5947c7feeb8 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Wed, 26 Nov 2025 22:03:26 -0800 Subject: [PATCH 46/64] Update config-network-adapters.md Minor fix --- docs/versioned/serving/config-network-adapters.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 0160891e2d..d9bbd9dd98 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -109,9 +109,9 @@ Review these tabs for the optimal networking layer for your cluster. For most us Use the following command to verify and monitor the pod status of the Kourier, Contour, or Istio controllers. All of the components should show a `STATUS` of `Running` or `Completed`. - ```bash - kubectl get pods -n knative-serving - ``` +```bash +kubectl get pods -n knative-serving +``` Here are the typical base pod names you’ll see in the `knative-serving` namespace for each of the supported Knative networking layers: From 1c05b868c0f2c3b5a9a519433dd4ef28036e8d5d Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Wed, 26 Nov 2025 22:16:40 -0800 Subject: [PATCH 47/64] Update config-network-adapters.md Code format fix --- docs/versioned/serving/config-network-adapters.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index d9bbd9dd98..f3f046d6d6 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -109,10 +109,10 @@ Review these tabs for the optimal networking layer for your cluster. For most us Use the following command to verify and monitor the pod status of the Kourier, Contour, or Istio controllers. All of the components should show a `STATUS` of `Running` or `Completed`. -```bash +```bash kubectl get pods -n knative-serving ``` - + Here are the typical base pod names you’ll see in the `knative-serving` namespace for each of the supported Knative networking layers: - Kourier: `kourier-control-*`, and `kourier-gateway-*`. From dddacd18377799c8f40630d89f849644f61d6656 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Sat, 29 Nov 2025 14:46:12 -0800 Subject: [PATCH 48/64] Added Ingress Gateway tab More writing --- docs/snippets/netadapter-contour.md | 2 +- .../serving/config-network-adapters.md | 57 +++++++++++++------ 2 files changed, 40 insertions(+), 19 deletions(-) diff --git a/docs/snippets/netadapter-contour.md b/docs/snippets/netadapter-contour.md index 5890e55103..89ef744aa6 100644 --- a/docs/snippets/netadapter-contour.md +++ b/docs/snippets/netadapter-contour.md @@ -3,7 +3,7 @@ Use the following steps to install and enable Contour and enable its Knative int 1. Install the Knative Contour controller: ```bash - kubectl apply -f {{ artifact(repo="net-contour",org="knative-extensions",file="net-contour.yaml")}} + kubectl apply -f https://storage.googleapis.com/knative-nightly/net-contour/latest/contour.yaml ``` 1. Configure Knative Serving to use Contour by default: diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index f3f046d6d6..bd7290166b 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -7,11 +7,27 @@ function: how-to # Configure Knative networking -This page describes and provides installation and configuration guidance for Ingress controls, service-meshes and gateways for handling networking for Knative services. +This page provides installation and configuration guidance for configuring Knative networking. These options include Ingress controls, service-meshes, and gateways. ## Network layer options -Review these tabs for the optimal networking layer for your cluster. For most users, the Kourier ingress controller is sufficient with the already installed default Istio gateway resource. You can expand your capabilities with more Ingress, full-feature service mesh, and the Kubernetes Gateway API. +Use the following command to determine which controllers are installed and their status. + +```bash +kubectl get pods -n knative-serving +``` + +The controllers have the following base names: + +- Kourier: `kourier-control-*`, and `kourier-gateway-*`. +- Contour: `contour-*` +- Istio: `istio-webhook-*` + +The main Istio control plane pods such as `istiod-*` are in the `istio-system` namespace, but Knative adds the `istio-webhook-*` pod in `knative-serving` when Istio is the chosen networking layer. + +Review the following tabs to determine the optimal networking layer for your cluster. Knative installs the Kourier controller as the default ingress. For most users, the Kourier ingress controller is sufficient with the already installed default Istio gateway resource. You can expand your capabilities with more ingress using Contour, a full-feature service mesh with Istio, and the Kubernetes Gateway API. + +The `network-config` ConfigMap specifies the controller to be used with the ingress controller key. This key is patched with the name of the new controller when you configure a new one, as described in these instructions. See [Changing the controller](#change-the-controller) for more information about the ingress controller key. === "Kourier" @@ -78,6 +94,24 @@ Review these tabs for the optimal networking layer for your cluster. For most us --8<-- "netadapter-istio.md" +=== "Ingress Gateway" + +```mermaid + --- + config: + layout: elk + theme: default + look: neo + --- + flowchart LR + Client["External Client"] --> CGW["Custom Ingress Gateway"] + CGW --> KIGW["Knative Ingress Gateway"] & Client + KIGW --> Revision["Knative Revision"] & CGW + Revision --> KIGW + ``` + + Knative uses a shared ingress gateway to serve all incoming traffic within Knative service mesh. For information on customizing the gateway, see [Configure the Ingress Gateway](/versioned/serving/setting-up-custom-ingress-gateway.md). + === "Gateway API" ```mermaid @@ -105,24 +139,11 @@ Review these tabs for the optimal networking layer for your cluster. For most us --8<-- "netadapter-gatewayapi.md" -## Verify controller installations - -Use the following command to verify and monitor the pod status of the Kourier, Contour, or Istio controllers. All of the components should show a `STATUS` of `Running` or `Completed`. - -```bash -kubectl get pods -n knative-serving -``` - -Here are the typical base pod names you’ll see in the `knative-serving` namespace for each of the supported Knative networking layers: - -- Kourier: `kourier-control-*`, and `kourier-gateway-*`. -- Contour: `contour-*` -- Istio: `istio-webhook-*` - -The main Istio control plane pods such as `istiod-*` are in the `istio-system` namespace, but Knative adds the `istio-webhook-*` pod in `knative-serving` when Istio is the chosen networking layer. - ## Configure DNS --8<-- "dns.md" --8<-- "real-dns-yaml.md" --8<-- "no-dns.md" + +## Change the controller + From 129133a5326fd6dd9c398a8a88b83779c55aab09 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Sat, 29 Nov 2025 14:49:58 -0800 Subject: [PATCH 49/64] Update config-network-adapters.md Formatting fix --- docs/versioned/serving/config-network-adapters.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index bd7290166b..7b1993f885 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -96,7 +96,7 @@ The `network-config` ConfigMap specifies the controller to be used with the ingr === "Ingress Gateway" -```mermaid + ```mermaid --- config: layout: elk From f30040340d485bfacbdd10e2657974fc6cb6f39c Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Sat, 29 Nov 2025 21:31:32 -0800 Subject: [PATCH 50/64] More writing Consistency edits --- docs/snippets/netadapter-contour.md | 12 +++++-- docs/snippets/netadapter-gatewayapi.md | 8 +---- docs/snippets/netadapter-istio.md | 6 ++++ docs/snippets/netadapter-kourier.md | 10 ++++-- .../serving/config-network-adapters.md | 33 +++++++++++-------- 5 files changed, 43 insertions(+), 26 deletions(-) diff --git a/docs/snippets/netadapter-contour.md b/docs/snippets/netadapter-contour.md index 89ef744aa6..895a7ccbec 100644 --- a/docs/snippets/netadapter-contour.md +++ b/docs/snippets/netadapter-contour.md @@ -3,18 +3,24 @@ Use the following steps to install and enable Contour and enable its Knative int 1. Install the Knative Contour controller: ```bash - kubectl apply -f https://storage.googleapis.com/knative-nightly/net-contour/latest/contour.yaml + kubectl apply -f https://github.com/knative/net-kourier/releases/latest/download/kourier.yaml ``` -1. Configure Knative Serving to use Contour by default: +1. Configure Knative Serving to use Contour: ```bash - kubectl patch configmap/config-network \ + kubectl patch configmap/config-network \ --namespace knative-serving \ --type merge \ --patch '{"data":{"ingress-class":"contour.ingress.networking.knative.dev"}}' ``` +1. Verify the installation by having a pod with the base name of `contour` in the results. + + ```bash + kubectl get pods -n knative-serving + ``` + 1. Get the external IP address (FQDN) to configure DNS records: ```bash diff --git a/docs/snippets/netadapter-gatewayapi.md b/docs/snippets/netadapter-gatewayapi.md index 21b533db0d..8c277deb49 100644 --- a/docs/snippets/netadapter-gatewayapi.md +++ b/docs/snippets/netadapter-gatewayapi.md @@ -1,12 +1,6 @@ Use the following steps to install the Knative Gateway API controller. -1. Install the Knative Gateway API controller by running the command: - - ```bash - kubectl apply -f {{ artifact(repo="net-gateway-api",org="knative-extensions",file="net-gateawy-api.yaml")}} - ``` - -1. Configure Knative Serving to use Gateway API by default by running the command: +1. Configure Knative Serving to use `net-gateway-api` controller: ```bash kubectl patch configmap/config-network \ diff --git a/docs/snippets/netadapter-istio.md b/docs/snippets/netadapter-istio.md index 4ef4a2598f..3de263ab94 100644 --- a/docs/snippets/netadapter-istio.md +++ b/docs/snippets/netadapter-istio.md @@ -13,6 +13,12 @@ Use the following steps to install Istio and enable its Knative integration. kubectl apply -f {{ artifact(repo="net-istio",file="net-istio.yaml")}} ``` +1. Verify the installation by having pods with the base name of `istio` and `istio-webhook` in the results. + + ```bash + kubectl get pods -n knative-serving + ``` + 1. Get the external IP address (FQDN) to configure DNS records: ```bash diff --git a/docs/snippets/netadapter-kourier.md b/docs/snippets/netadapter-kourier.md index 09e2220599..46077762d9 100644 --- a/docs/snippets/netadapter-kourier.md +++ b/docs/snippets/netadapter-kourier.md @@ -1,9 +1,9 @@ -Use the following stesp to install Kourier and enable its Knative integration. +Use the following steps to install Kourier and enable its Knative integration. 1. Install the Knative Kourier controller: ```bash - kubectl apply -f {{ artifact(repo="net-kourier",org="knative-extensions",file="kourier.yaml")}} + kubectl apply -f https://github.com/knative/net-kourier/releases/latest/download/kourier.yaml ``` 1. Configure Knative Serving to use Kourier by default: @@ -15,6 +15,12 @@ Use the following stesp to install Kourier and enable its Knative integration. --patch '{"data":{"ingress-class":"kourier.ingress.networking.knative.dev"}}' ``` +1. Verify the installation by having pods with the base name of `kourier-controller` and `kourier-gateway` in the results. + + ```bash + kubectl get pods -n knative-serving + ``` + 1. Get the external IP address (FQDN) to configure DNS records: ```bash diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 7b1993f885..996b6c59f8 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -13,6 +13,7 @@ This page provides installation and configuration guidance for configuring Knati Use the following command to determine which controllers are installed and their status. + ```bash kubectl get pods -n knative-serving ``` @@ -47,8 +48,6 @@ The `network-config` ConfigMap specifies the controller to be used with the ingr Designed for Knative Serving with efficient serverless function deployment is the goal. Kourier is the default ingress choice for most users, when a service mesh is not required, as it has a simple setup. - The following setup procedure automatically obtains the latest release of [net-kourier](https://github.com/knative-extensions/net-kourier/releases) on the Knative extensions. - --8<-- "netadapter-kourier.md" === "Contour" @@ -69,8 +68,6 @@ The `network-config` ConfigMap specifies the controller to be used with the ingr A good choice for clusters that already run non-Knative apps and want to reuse a single Ingress controller as well as teams who are already using Contour/Envoy and wanting Knative integration with advanced routing but not full service mesh. - The following setup procedure automatically obtains the latest release of [net-contour](https://github.com/knative-extensions/net-contour/releases) on the Knative extensions. - --8<-- "netadapter-contour.md" === "Istio" @@ -90,8 +87,6 @@ The `network-config` ConfigMap specifies the controller to be used with the ingr Note that Knative has a default Istio integration without the full-feature service mesh. The `knative-ingress-gateway` in the `knative-serving` namespace is a shared Istio gateway resource that handles all incoming (north-south) traffic to Knative services. This gateway points to the underlying 1istio-ingressgateway` service in the `istio-system` namespace. You can replace this gateway with one of your own, see [Configuring the Ingress gateway](setting-up-custom-ingress-gateway.md). - The following setup procedure automatically obtains the latest release of [net-istio](https://github.com/knative-extensions/net-istio/releases) on the Knative extensions. - --8<-- "netadapter-istio.md" === "Ingress Gateway" @@ -121,21 +116,31 @@ The `network-config` ConfigMap specifies the controller to be used with the ingr theme: default --- flowchart LR - subgraph s1["Gateway API for Knative"] + subgraph net-gateway-api["net-gateway-api controller"] + GW["Gateway"] + Route["Knative Route"] HR["HTTPRoute"] - GW["Gateway listener"] end - KSvc["Knative Service"] -- owns --> Route["Route"] - Route -- creates --> HR & GW + subgraph underlying["Underlying Controller
(Contour │ Istio │ Envoy Gateway │ …)"] + Controller["GatewayClass Controller"] + end + KSvc["Knative Service"] --> Route + Route -- translates to --> GW & HR + GW --> Controller + HR --> Controller + Controller -- routes traffic to --> Pods["Your Pods"] + + style net-gateway-api fill:#e3f2fd,stroke:#1976d2 + style underlying fill:#fff3e0,stroke:#ef6c00 ``` - The Knative `net-gateway-api` is a KIngress implementation and testing for Knative integration with the Kubernetes Gateway API. + The Knative `net-gateway-api` is a KIngress implementation and testing for Knative integration with the [Kubernetes Gateway API](https://gateway-api.sigs.k8s.io/). - The Kubernetes Gateway API requires a controller or service mesh. Istio and Contour implementations are tested though other Gateway API implementations should work. For more information see [Tested Gateway API version and Ingress](https://github.com/knative-extensions/net-gateway-api/blob/main/docs/test-version.md). + Best for forward-looking teams adopting the Gateway API to unify ingress across Kubernetes, with Knative leveraging to the same standard. - Best for forward-looking teams adopting Gateway API to unify ingress across Kubernetes, with Knative leveraging the same standard. + The Kubernetes Gateway API requires a controller or service mesh. Istio and Contour implementations are tested though other Gateway API implementations should work. Currently, there is no native Gateway API support for Kourier. For more information see [Tested Gateway API version and Ingress](https://github.com/knative-extensions/net-gateway-api/blob/main/docs/test-version.md). - The following setup procedure automatically obtains the latest release of [net-gateway-api](https://github.com/knative-extensions/net-gateway-api/releases) on the Knative extensions. + The controller Knative uses is determined by which Gateway API-compatible controller you install and configure in your cluster. --8<-- "netadapter-gatewayapi.md" From d475c323ec33aa096edbe7558ddad5f66ecdd56f Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Sat, 29 Nov 2025 21:38:50 -0800 Subject: [PATCH 51/64] Update config-network-adapters.md Format fix --- docs/versioned/serving/config-network-adapters.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 996b6c59f8..63839de8a4 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -9,27 +9,25 @@ function: how-to This page provides installation and configuration guidance for configuring Knative networking. These options include Ingress controls, service-meshes, and gateways. -## Network layer options - Use the following command to determine which controllers are installed and their status. - ```bash kubectl get pods -n knative-serving ``` -The controllers have the following base names: +The controllers tested for Knative have the following base names: - Kourier: `kourier-control-*`, and `kourier-gateway-*`. - Contour: `contour-*` - Istio: `istio-webhook-*` + - The main Istio control plane pods such as `istiod-*` are in the `istio-system` namespace, but Knative adds the `istio-webhook-*` pod in `knative-serving` when Istio is the chosen networking layer. + +The `network-config` ConfigMap specifies the controller to be used with the ingress controller key. This key is patched with the name of the new controller when you configure a new one, as described in these instructions. See [Changing the controller](#change-the-controller) for more information about the ingress controller key. -The main Istio control plane pods such as `istiod-*` are in the `istio-system` namespace, but Knative adds the `istio-webhook-*` pod in `knative-serving` when Istio is the chosen networking layer. +## Network layer options Review the following tabs to determine the optimal networking layer for your cluster. Knative installs the Kourier controller as the default ingress. For most users, the Kourier ingress controller is sufficient with the already installed default Istio gateway resource. You can expand your capabilities with more ingress using Contour, a full-feature service mesh with Istio, and the Kubernetes Gateway API. -The `network-config` ConfigMap specifies the controller to be used with the ingress controller key. This key is patched with the name of the new controller when you configure a new one, as described in these instructions. See [Changing the controller](#change-the-controller) for more information about the ingress controller key. - === "Kourier" ```mermaid From 6f6fb4bf6f638fbfcfa34289bfc0ebc6db1f2638 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Sun, 30 Nov 2025 13:43:16 -0800 Subject: [PATCH 52/64] Update config-network-adapters.md Refinement edits --- .../serving/config-network-adapters.md | 30 ++++++++----------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 63839de8a4..264e08555a 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -18,15 +18,18 @@ kubectl get pods -n knative-serving The controllers tested for Knative have the following base names: - Kourier: `kourier-control-*`, and `kourier-gateway-*`. + + Kourier is included in the Knative Serving installation should appear in the results. - Contour: `contour-*` - Istio: `istio-webhook-*` - - The main Istio control plane pods such as `istiod-*` are in the `istio-system` namespace, but Knative adds the `istio-webhook-*` pod in `knative-serving` when Istio is the chosen networking layer. -The `network-config` ConfigMap specifies the controller to be used with the ingress controller key. This key is patched with the name of the new controller when you configure a new one, as described in these instructions. See [Changing the controller](#change-the-controller) for more information about the ingress controller key. + The main Istio control plane pods such as `istiod-*` are in the `istio-system` namespace. In addition, Knative adds the `istio-webhook-*` pod in the `knative-serving` namespace when Istio is the chosen networking layer. + +The `network-config` ConfigMap specifies the controller to be used in the ingress controller key. This key is patched with the name of the new controller when you configure a new one. See [Changing the controller](#change-the-controller) for important information about using this key. ## Network layer options -Review the following tabs to determine the optimal networking layer for your cluster. Knative installs the Kourier controller as the default ingress. For most users, the Kourier ingress controller is sufficient with the already installed default Istio gateway resource. You can expand your capabilities with more ingress using Contour, a full-feature service mesh with Istio, and the Kubernetes Gateway API. +Review the following tabs to determine the optimal networking layer for your cluster. Knative installs the Kourier controller as the default ingress. For most users, the Kourier ingress controller is sufficient in conjunction the default Istio gateway that is also included in the Knative Serving installation. You can expand your capabilities with the Contour ingress, a full-feature service mesh with Istio, and the Kubernetes Gateway API. === "Kourier" @@ -42,9 +45,7 @@ Review the following tabs to determine the optimal networking layer for your clu K2 --> K3["Class: kourier.ingress.networking.knative.dev"] ``` - The Knative `net-kourier` is an Ingress for Knative Serving. Kourier is a lightweight alternative for the Istio ingress as its deployment consists only of an Envoy proxy and a control plane. - - Designed for Knative Serving with efficient serverless function deployment is the goal. Kourier is the default ingress choice for most users, when a service mesh is not required, as it has a simple setup. + The Knative `net-kourier` ingress is installed with Knative Serving. Kourier is a lightweight alternative for the Istio ingress as its deployment consists only of an Envoy proxy and a control plane. If Kourier is satisfactory, no further configurations are required. --8<-- "netadapter-kourier.md" @@ -62,9 +63,7 @@ Review the following tabs to determine the optimal networking layer for your clu C2 --> C3["Class: contour.ingress.networking.knative.dev"] ``` - The Knative `net-contour` controller enables Contour to satisfy the networking needs of Knative Serving by bridging Knative's KIngress resources to Contour's HTTPProxy resources. - - A good choice for clusters that already run non-Knative apps and want to reuse a single Ingress controller as well as teams who are already using Contour/Envoy and wanting Knative integration with advanced routing but not full service mesh. + The Knative `net-contour` controller enables Contour to satisfy the networking needs by bridging Knative's KIngress resources to Contour's HTTPProxy resources. A good choice for clusters that already run non-Knative apps, want to reuse a single Ingress controller, and for teams who are already using Contour envoy but don't need a full-feature service mesh. --8<-- "netadapter-contour.md" @@ -81,9 +80,7 @@ Review the following tabs to determine the optimal networking layer for your clu I2 --> I3["Class: istio.ingress.networking.knative.dev
No native Ingress objects"] ``` - The Knative `net-istio` defines a KIngress controller for Istio. A full-feature service mesh integrated with Knative that can also function as a Knative ingress. Best for enterprises already running Istio or needing advanced service mesh features alongside Knative. - - Note that Knative has a default Istio integration without the full-feature service mesh. The `knative-ingress-gateway` in the `knative-serving` namespace is a shared Istio gateway resource that handles all incoming (north-south) traffic to Knative services. This gateway points to the underlying 1istio-ingressgateway` service in the `istio-system` namespace. You can replace this gateway with one of your own, see [Configuring the Ingress gateway](setting-up-custom-ingress-gateway.md). + The Knative `net-istio` defines a KIngress controller for Istio. It's a full-feature service mesh integrated with Knative that also functions as a Knative ingress. Good for enterprises already running Istio or needing advanced service mesh features. --8<-- "netadapter-istio.md" @@ -103,7 +100,8 @@ Review the following tabs to determine the optimal networking layer for your clu Revision --> KIGW ``` - Knative uses a shared ingress gateway to serve all incoming traffic within Knative service mesh. For information on customizing the gateway, see [Configure the Ingress Gateway](/versioned/serving/setting-up-custom-ingress-gateway.md). + Knative has a default Istio integration without the full-feature service mesh. The `knative-ingress-gateway` in the `knative-serving` namespace is a shared Istio gateway resource that handles all incoming (north-south) traffic to Knative services. This gateway points to the underlying `istio-ingressgateway` service in the `istio-system` namespace. You can replace this gateway with one of your own, see [Configuring the Ingress gateway](setting-up-custom-ingress-gateway.md). + === "Gateway API" @@ -132,13 +130,11 @@ Review the following tabs to determine the optimal networking layer for your clu style underlying fill:#fff3e0,stroke:#ef6c00 ``` - The Knative `net-gateway-api` is a KIngress implementation and testing for Knative integration with the [Kubernetes Gateway API](https://gateway-api.sigs.k8s.io/). - - Best for forward-looking teams adopting the Gateway API to unify ingress across Kubernetes, with Knative leveraging to the same standard. + The Knative `net-gateway-api` is a KIngress implementation and testing for Knative integration with the [Kubernetes Gateway API](https://gateway-api.sigs.k8s.io/). Good for teams adopting the Gateway API to unify ingress across Kubernetes. The Kubernetes Gateway API requires a controller or service mesh. Istio and Contour implementations are tested though other Gateway API implementations should work. Currently, there is no native Gateway API support for Kourier. For more information see [Tested Gateway API version and Ingress](https://github.com/knative-extensions/net-gateway-api/blob/main/docs/test-version.md). - The controller Knative uses is determined by which Gateway API-compatible controller you install and configure in your cluster. + The controller that Knative uses is determined by which Gateway API-compatible controller you install and configure in your cluster. --8<-- "netadapter-gatewayapi.md" From 1eeda2e626f57b4f233dd97975482d73905b4fa6 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Sun, 30 Nov 2025 13:52:48 -0800 Subject: [PATCH 53/64] Misc fixes Fixes and refinements --- docs/snippets/netadapter-gatewayapi.md | 2 +- docs/versioned/serving/config-network-adapters.md | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/docs/snippets/netadapter-gatewayapi.md b/docs/snippets/netadapter-gatewayapi.md index 8c277deb49..9007675b6c 100644 --- a/docs/snippets/netadapter-gatewayapi.md +++ b/docs/snippets/netadapter-gatewayapi.md @@ -1,4 +1,4 @@ -Use the following steps to install the Knative Gateway API controller. +Use the following steps to configure the Knative Gateway API controller. 1. Configure Knative Serving to use `net-gateway-api` controller: diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 264e08555a..554a19c9c8 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -9,13 +9,15 @@ function: how-to This page provides installation and configuration guidance for configuring Knative networking. These options include Ingress controls, service-meshes, and gateways. +### Determine current state + Use the following command to determine which controllers are installed and their status. ```bash kubectl get pods -n knative-serving ``` -The controllers tested for Knative have the following base names: +The ingress controllers tested for Knative have the following base names: - Kourier: `kourier-control-*`, and `kourier-gateway-*`. @@ -25,7 +27,7 @@ The controllers tested for Knative have the following base names: The main Istio control plane pods such as `istiod-*` are in the `istio-system` namespace. In addition, Knative adds the `istio-webhook-*` pod in the `knative-serving` namespace when Istio is the chosen networking layer. -The `network-config` ConfigMap specifies the controller to be used in the ingress controller key. This key is patched with the name of the new controller when you configure a new one. See [Changing the controller](#change-the-controller) for important information about using this key. +The `network-config` ConfigMap specifies the controller to be used in the ingress controller key. This key is patched with the name of the new controller when you configure a new one. See [Changing the ingress controller](#change-the-controller) for important information about using this key. ## Network layer options @@ -47,6 +49,8 @@ Review the following tabs to determine the optimal networking layer for your clu The Knative `net-kourier` ingress is installed with Knative Serving. Kourier is a lightweight alternative for the Istio ingress as its deployment consists only of an Envoy proxy and a control plane. If Kourier is satisfactory, no further configurations are required. + *Install and configure* + --8<-- "netadapter-kourier.md" === "Contour" @@ -62,6 +66,7 @@ Review the following tabs to determine the optimal networking layer for your clu C1["Knative
net-contour"] -- creates --> C2["Ingress objects"] C2 --> C3["Class: contour.ingress.networking.knative.dev"] ``` + *Install and configure* The Knative `net-contour` controller enables Contour to satisfy the networking needs by bridging Knative's KIngress resources to Contour's HTTPProxy resources. A good choice for clusters that already run non-Knative apps, want to reuse a single Ingress controller, and for teams who are already using Contour envoy but don't need a full-feature service mesh. @@ -82,6 +87,8 @@ Review the following tabs to determine the optimal networking layer for your clu The Knative `net-istio` defines a KIngress controller for Istio. It's a full-feature service mesh integrated with Knative that also functions as a Knative ingress. Good for enterprises already running Istio or needing advanced service mesh features. + *Install and configure* + --8<-- "netadapter-istio.md" === "Ingress Gateway" @@ -136,6 +143,8 @@ Review the following tabs to determine the optimal networking layer for your clu The controller that Knative uses is determined by which Gateway API-compatible controller you install and configure in your cluster. + *Configure* + --8<-- "netadapter-gatewayapi.md" ## Configure DNS @@ -144,5 +153,5 @@ Review the following tabs to determine the optimal networking layer for your clu --8<-- "real-dns-yaml.md" --8<-- "no-dns.md" -## Change the controller +## Changing the ingress controller From 614e2933752d7b43c788cae982bfe46cc33c3b82 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Sun, 30 Nov 2025 14:15:40 -0800 Subject: [PATCH 54/64] Small edit to rebuild --- docs/versioned/serving/config-network-adapters.md | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 554a19c9c8..50ac48a1b7 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -19,13 +19,9 @@ kubectl get pods -n knative-serving The ingress controllers tested for Knative have the following base names: -- Kourier: `kourier-control-*`, and `kourier-gateway-*`. - - Kourier is included in the Knative Serving installation should appear in the results. +- Kourier: `kourier-control-*`, and `kourier-gateway-*`. Kourier is included in the Knative Serving installation should appear in the results. - Contour: `contour-*` -- Istio: `istio-webhook-*` - - The main Istio control plane pods such as `istiod-*` are in the `istio-system` namespace. In addition, Knative adds the `istio-webhook-*` pod in the `knative-serving` namespace when Istio is the chosen networking layer. +- Istio: `istio-webhook-*`. The main Istio control plane pods such as `istiod-*` are in the `istio-system` namespace. In addition, Knative adds the `istio-webhook-*` pod in the `knative-serving` namespace when Istio is the chosen networking layer. The `network-config` ConfigMap specifies the controller to be used in the ingress controller key. This key is patched with the name of the new controller when you configure a new one. See [Changing the ingress controller](#change-the-controller) for important information about using this key. @@ -154,4 +150,3 @@ Review the following tabs to determine the optimal networking layer for your clu --8<-- "no-dns.md" ## Changing the ingress controller - From ee0d3f014978a4654f1302f637a476207cf889db Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Sun, 30 Nov 2025 23:08:49 -0800 Subject: [PATCH 55/64] Update config-network-adapters.md Refinement edits --- .../serving/config-network-adapters.md | 43 ++++++++++++++++--- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 50ac48a1b7..b0226b804a 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -7,7 +7,7 @@ function: how-to # Configure Knative networking -This page provides installation and configuration guidance for configuring Knative networking. These options include Ingress controls, service-meshes, and gateways. +This page provides installation and configuration guidance for configuring Knative networking. You can configure Ingress controls, service-meshes, and gateways. ### Determine current state @@ -17,13 +17,13 @@ Use the following command to determine which controllers are installed and their kubectl get pods -n knative-serving ``` -The ingress controllers tested for Knative have the following base names: +The ingress controllers, that have been tested for Knative, have the following base names: - Kourier: `kourier-control-*`, and `kourier-gateway-*`. Kourier is included in the Knative Serving installation should appear in the results. - Contour: `contour-*` - Istio: `istio-webhook-*`. The main Istio control plane pods such as `istiod-*` are in the `istio-system` namespace. In addition, Knative adds the `istio-webhook-*` pod in the `knative-serving` namespace when Istio is the chosen networking layer. -The `network-config` ConfigMap specifies the controller to be used in the ingress controller key. This key is patched with the name of the new controller when you configure a new one. See [Changing the ingress controller](#change-the-controller) for important information about using this key. +The `network-config` ConfigMap sets which controller to use in the ingress controller key. This key is patched with the name of any new controller. See [Changing the ingress controller](#change-the-controller) for important information about using this key. ## Network layer options @@ -45,7 +45,7 @@ Review the following tabs to determine the optimal networking layer for your clu The Knative `net-kourier` ingress is installed with Knative Serving. Kourier is a lightweight alternative for the Istio ingress as its deployment consists only of an Envoy proxy and a control plane. If Kourier is satisfactory, no further configurations are required. - *Install and configure* + **Install and configure** --8<-- "netadapter-kourier.md" @@ -62,7 +62,7 @@ Review the following tabs to determine the optimal networking layer for your clu C1["Knative
net-contour"] -- creates --> C2["Ingress objects"] C2 --> C3["Class: contour.ingress.networking.knative.dev"] ``` - *Install and configure* + **Install and configure** The Knative `net-contour` controller enables Contour to satisfy the networking needs by bridging Knative's KIngress resources to Contour's HTTPProxy resources. A good choice for clusters that already run non-Knative apps, want to reuse a single Ingress controller, and for teams who are already using Contour envoy but don't need a full-feature service mesh. @@ -83,7 +83,7 @@ Review the following tabs to determine the optimal networking layer for your clu The Knative `net-istio` defines a KIngress controller for Istio. It's a full-feature service mesh integrated with Knative that also functions as a Knative ingress. Good for enterprises already running Istio or needing advanced service mesh features. - *Install and configure* + **Install and configure** --8<-- "netadapter-istio.md" @@ -139,7 +139,7 @@ Review the following tabs to determine the optimal networking layer for your clu The controller that Knative uses is determined by which Gateway API-compatible controller you install and configure in your cluster. - *Configure* + ***Configure** --8<-- "netadapter-gatewayapi.md" @@ -150,3 +150,32 @@ Review the following tabs to determine the optimal networking layer for your clu --8<-- "no-dns.md" ## Changing the ingress controller + +If you want to change the ingress controllers, simply install and configure the new controller as shown in the [Network layer options](#network-layer-options) instructions. There is no explicit need to remove ingress controllers that are not in use. + +You can verify the controller in use by examining the `config-network.yaml`: + +```bash +kubectl get cm config-network -n knative-serving -o yaml +``` + +Look for the `ingress-class` key. It could also be the `ingress.class` key with a dot. The dash usage is more current and supersedes any key with the dot. In the following example, the `ingress.class` key was initially set for the Kourier controller, but is now set to Contour because the ingress key with a dash takes precedence. + +```yml +ingress-class: contour.ingress.networking.knative.dev +ingress.class: kourier.ingress.networking.knative.dev +``` + +If you want to switch back to a previously installed controller, patch the `config-network` ConfigMap with the new controller, as shown in the following example to switch back to Kourier but this with using the dash in `ingress-class`. + +```bash +kubectl patch cm config-network -n knative-serving \ + --type merge -p '{"data":{"ingress-class":"kourier.ingress.networking.knative.dev"}}' +``` + +You can remove an unused key with a dot with the following command: + +```bash +ubectl patch configmap config-network -n knative-serving \ + --type=json -p='[{"op": "remove", "path": "/data/ingress.class"}]' +``` From d70fae55fed507497887510b66c7c3d9aece5126 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Sun, 30 Nov 2025 23:15:23 -0800 Subject: [PATCH 56/64] Update config-network-adapters.md Minor edit to rebuild --- docs/versioned/serving/config-network-adapters.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index b0226b804a..088003e0ce 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -151,9 +151,9 @@ Review the following tabs to determine the optimal networking layer for your clu ## Changing the ingress controller -If you want to change the ingress controllers, simply install and configure the new controller as shown in the [Network layer options](#network-layer-options) instructions. There is no explicit need to remove ingress controllers that are not in use. +If you want to change the ingress controllers, install and configure the new controller as shown in the [Network layer options](#network-layer-options) instructions. There is no explicit need to remove ingress controllers that are not in use. -You can verify the controller in use by examining the `config-network.yaml`: +You can determine the controller in use by examining the `config-network.yaml`: ```bash kubectl get cm config-network -n knative-serving -o yaml From aa5c536da3b7ff7e4f4a40d3eed52e2785f56f19 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Mon, 1 Dec 2025 10:21:02 -0800 Subject: [PATCH 57/64] Misc updates Copy and refinement edits --- docs/snippets/netadapter-contour.md | 2 +- docs/snippets/netadapter-istio.md | 11 ++++++++++- docs/snippets/netadapter-kourier.md | 2 +- .../versioned/serving/config-network-adapters.md | 16 ++++++++-------- 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/docs/snippets/netadapter-contour.md b/docs/snippets/netadapter-contour.md index 895a7ccbec..65ad62dbca 100644 --- a/docs/snippets/netadapter-contour.md +++ b/docs/snippets/netadapter-contour.md @@ -1,4 +1,4 @@ -Use the following steps to install and enable Contour and enable its Knative integration. +Use the following steps to install and enable Contour and set it as the ingress conroller. 1. Install the Knative Contour controller: diff --git a/docs/snippets/netadapter-istio.md b/docs/snippets/netadapter-istio.md index 3de263ab94..39be4d07c5 100644 --- a/docs/snippets/netadapter-istio.md +++ b/docs/snippets/netadapter-istio.md @@ -1,4 +1,4 @@ -Use the following steps to install Istio and enable its Knative integration. +Use the following steps to install Istio and set it as the ingress conroller. 1. Install a properly configured Istio: @@ -13,6 +13,15 @@ Use the following steps to install Istio and enable its Knative integration. kubectl apply -f {{ artifact(repo="net-istio",file="net-istio.yaml")}} ``` + + 1. Verify the installation by having pods with the base name of `istio` and `istio-webhook` in the results. ```bash diff --git a/docs/snippets/netadapter-kourier.md b/docs/snippets/netadapter-kourier.md index 46077762d9..6b3ff4108d 100644 --- a/docs/snippets/netadapter-kourier.md +++ b/docs/snippets/netadapter-kourier.md @@ -1,4 +1,4 @@ -Use the following steps to install Kourier and enable its Knative integration. +Use the following steps to install Kourier and set it as the ingress controller. 1. Install the Knative Kourier controller: diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 088003e0ce..507215d349 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -7,7 +7,7 @@ function: how-to # Configure Knative networking -This page provides installation and configuration guidance for configuring Knative networking. You can configure Ingress controls, service-meshes, and gateways. +This page provides installation and configuration guidance for Knative networking. You can configure Ingress controls, service-meshes, and gateways. ### Determine current state @@ -17,9 +17,9 @@ Use the following command to determine which controllers are installed and their kubectl get pods -n knative-serving ``` -The ingress controllers, that have been tested for Knative, have the following base names: +The ngress controllers, that have been tested for Knative, have the following base names: -- Kourier: `kourier-control-*`, and `kourier-gateway-*`. Kourier is included in the Knative Serving installation should appear in the results. +- Kourier: `kourier-control-*`, and `kourier-gateway-*`. Kourier is included in the Knative Serving installation should appear in the results when your cluster is first created. - Contour: `contour-*` - Istio: `istio-webhook-*`. The main Istio control plane pods such as `istiod-*` are in the `istio-system` namespace. In addition, Knative adds the `istio-webhook-*` pod in the `knative-serving` namespace when Istio is the chosen networking layer. @@ -27,7 +27,7 @@ The `network-config` ConfigMap sets which controller to use in the ingress contr ## Network layer options -Review the following tabs to determine the optimal networking layer for your cluster. Knative installs the Kourier controller as the default ingress. For most users, the Kourier ingress controller is sufficient in conjunction the default Istio gateway that is also included in the Knative Serving installation. You can expand your capabilities with the Contour ingress, a full-feature service mesh with Istio, and the Kubernetes Gateway API. +Review the following tabs to determine the optimal networking layer for your cluster. For most users, the Kourier ingress controller is sufficient in conjunction the default Istio gateway that is also included in the Knative Serving installation. You can expand your capabilities with the Contour ingress, a full-feature service mesh with Istio, and the Kubernetes Gateway API. === "Kourier" @@ -43,7 +43,7 @@ Review the following tabs to determine the optimal networking layer for your clu K2 --> K3["Class: kourier.ingress.networking.knative.dev"] ``` - The Knative `net-kourier` ingress is installed with Knative Serving. Kourier is a lightweight alternative for the Istio ingress as its deployment consists only of an Envoy proxy and a control plane. If Kourier is satisfactory, no further configurations are required. + The Knative `net-kourier` ingress is installed with Knative Serving. Kourier is a lightweight alternative for the Istio ingress as its deployment consists only of an envoy proxy and a control plane. If Kourier is satisfactory, no further configurations are required. **Install and configure** @@ -139,7 +139,7 @@ Review the following tabs to determine the optimal networking layer for your clu The controller that Knative uses is determined by which Gateway API-compatible controller you install and configure in your cluster. - ***Configure** + **Configure** --8<-- "netadapter-gatewayapi.md" @@ -151,7 +151,7 @@ Review the following tabs to determine the optimal networking layer for your clu ## Changing the ingress controller -If you want to change the ingress controllers, install and configure the new controller as shown in the [Network layer options](#network-layer-options) instructions. There is no explicit need to remove ingress controllers that are not in use. +If you want to change the ingress controllers, install and configure the new controller as instructed in the [Network layer options](#network-layer-options). There is no requirement to remove ingress controllers that are not in use. You can determine the controller in use by examining the `config-network.yaml`: @@ -166,7 +166,7 @@ ingress-class: contour.ingress.networking.knative.dev ingress.class: kourier.ingress.networking.knative.dev ``` -If you want to switch back to a previously installed controller, patch the `config-network` ConfigMap with the new controller, as shown in the following example to switch back to Kourier but this with using the dash in `ingress-class`. +If you want to switch back to a previously installed controller, patch the `config-network` ConfigMap with the new controller. In the following example Kourier is used because of the dash in `ingress-class`. ```bash kubectl patch cm config-network -n knative-serving \ From 1425f02750d5aceccd43cc9250180e5c41616faa Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Mon, 1 Dec 2025 10:46:21 -0800 Subject: [PATCH 58/64] Update config-network-adapters.md Added note about IBM Z and IBM Power platforms and Kourier. --- docs/versioned/serving/config-network-adapters.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 507215d349..4ada79395c 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -45,6 +45,10 @@ Review the following tabs to determine the optimal networking layer for your clu The Knative `net-kourier` ingress is installed with Knative Serving. Kourier is a lightweight alternative for the Istio ingress as its deployment consists only of an envoy proxy and a control plane. If Kourier is satisfactory, no further configurations are required. + Kourier is the only supported ingress controller for the IBM Z and IBM Power platforms, and requires additional steps to patch the envoy image as described [here](./install-serving-with-yaml-on-IBM-Z-and-IBM-P.md). + +Follow the below steps to install Kourier. Post installation, patch the envoy image based on RedHat Maistra as described in this link. + **Install and configure** --8<-- "netadapter-kourier.md" From 6659e0755bb20165325ef66e72c668d300ff68b0 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Mon, 1 Dec 2025 11:25:31 -0800 Subject: [PATCH 59/64] Update config-network-adapters.md Fixed link --- docs/versioned/serving/config-network-adapters.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index 4ada79395c..fb59c6beaf 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -45,7 +45,7 @@ Review the following tabs to determine the optimal networking layer for your clu The Knative `net-kourier` ingress is installed with Knative Serving. Kourier is a lightweight alternative for the Istio ingress as its deployment consists only of an envoy proxy and a control plane. If Kourier is satisfactory, no further configurations are required. - Kourier is the only supported ingress controller for the IBM Z and IBM Power platforms, and requires additional steps to patch the envoy image as described [here](./install-serving-with-yaml-on-IBM-Z-and-IBM-P.md). + Kourier is the only supported ingress controller for the IBM Z and IBM Power platforms, and requires additional steps as described in [Install Serving with YAML on IBM-Z and IBM-P](/versioned/install/yaml-install/serving/install-serving-with-yaml-on-IBM-Z-and-IBM-P.md). Follow the below steps to install Kourier. Post installation, patch the envoy image based on RedHat Maistra as described in this link. From 9059d0d09ed752a06cf5b266bd59a3efc3d64184 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Mon, 1 Dec 2025 11:34:15 -0800 Subject: [PATCH 60/64] Update config-network-adapters.md Format fix --- docs/versioned/serving/config-network-adapters.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index fb59c6beaf..a18a5a3df0 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -47,8 +47,6 @@ Review the following tabs to determine the optimal networking layer for your clu Kourier is the only supported ingress controller for the IBM Z and IBM Power platforms, and requires additional steps as described in [Install Serving with YAML on IBM-Z and IBM-P](/versioned/install/yaml-install/serving/install-serving-with-yaml-on-IBM-Z-and-IBM-P.md). -Follow the below steps to install Kourier. Post installation, patch the envoy image based on RedHat Maistra as described in this link. - **Install and configure** --8<-- "netadapter-kourier.md" From 1d76ef9226ee24cd7137d65bcb5f78ea0393a5a7 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Mon, 1 Dec 2025 15:53:43 -0800 Subject: [PATCH 61/64] Update netadapter-gatewayapi.md Updated Gateway API steps --- docs/snippets/netadapter-gatewayapi.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/snippets/netadapter-gatewayapi.md b/docs/snippets/netadapter-gatewayapi.md index 9007675b6c..a17ffe7c57 100644 --- a/docs/snippets/netadapter-gatewayapi.md +++ b/docs/snippets/netadapter-gatewayapi.md @@ -1,6 +1,12 @@ -Use the following steps to configure the Knative Gateway API controller. +Use the following steps to install and configure the Knative Gateway API. -1. Configure Knative Serving to use `net-gateway-api` controller: +1. Install the Knative Gateway API channel: + + ```bash + kubectl apply -f {{ artifact(repo="net-gateway-api",org="knative-extensions",file="net-gateawy-api.yaml")}} + ``` + +1. Configure Knative Serving to use Knative Gateway API channel: ```bash kubectl patch configmap/config-network \ From 7c0cb5d63bb6dd6f76407bcea29d068681754840 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Tue, 2 Dec 2025 09:20:02 -0800 Subject: [PATCH 62/64] Update config-network-adapters.md Fixed typos and tweaking --- .../serving/config-network-adapters.md | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index a18a5a3df0..b36cf40c5e 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -17,17 +17,17 @@ Use the following command to determine which controllers are installed and their kubectl get pods -n knative-serving ``` -The ngress controllers, that have been tested for Knative, have the following base names: +The ingress controllers, that have been tested for Knative, have the following base names: - Kourier: `kourier-control-*`, and `kourier-gateway-*`. Kourier is included in the Knative Serving installation should appear in the results when your cluster is first created. - Contour: `contour-*` -- Istio: `istio-webhook-*`. The main Istio control plane pods such as `istiod-*` are in the `istio-system` namespace. In addition, Knative adds the `istio-webhook-*` pod in the `knative-serving` namespace when Istio is the chosen networking layer. +- Istio: `istio-webhook-*`. The main Istio control plane pods such as `istiod-*` are in the `istio-system` namespace. Knative adds the `istio-webhook-*` pod in the `knative-serving` namespace when Istio is the chosen networking layer. -The `network-config` ConfigMap sets which controller to use in the ingress controller key. This key is patched with the name of any new controller. See [Changing the ingress controller](#change-the-controller) for important information about using this key. +The `network-config` ConfigMap sets which controller to use with the ingress controller key. This key is patched with the name of any new controller. See [Changing the ingress controller](#change-the-controller) for important information about using this key. ## Network layer options -Review the following tabs to determine the optimal networking layer for your cluster. For most users, the Kourier ingress controller is sufficient in conjunction the default Istio gateway that is also included in the Knative Serving installation. You can expand your capabilities with the Contour ingress, a full-feature service mesh with Istio, and the Kubernetes Gateway API. +Review the following tabs to determine the optimal networking layer for your cluster. For most users, the Kourier ingress controller is sufficient in conjunction the default Istio gateway, which is also included in the Knative Serving installation. You can expand your capabilities with the Contour ingress, a full-feature service mesh with Istio, and the Kubernetes Gateway API. === "Kourier" @@ -43,11 +43,11 @@ Review the following tabs to determine the optimal networking layer for your clu K2 --> K3["Class: kourier.ingress.networking.knative.dev"] ``` - The Knative `net-kourier` ingress is installed with Knative Serving. Kourier is a lightweight alternative for the Istio ingress as its deployment consists only of an envoy proxy and a control plane. If Kourier is satisfactory, no further configurations are required. + The Kourier ingress controller, `net-kourier`, is installed with Knative Serving. Kourier is a lightweight alternative for the Istio ingress as its deployment consists only of an envoy proxy and a control plane. If Kourier is satisfactory, no further configurations are required. Kourier is the only supported ingress controller for the IBM Z and IBM Power platforms, and requires additional steps as described in [Install Serving with YAML on IBM-Z and IBM-P](/versioned/install/yaml-install/serving/install-serving-with-yaml-on-IBM-Z-and-IBM-P.md). - **Install and configure** + **Install and configure Kourier** --8<-- "netadapter-kourier.md" @@ -64,9 +64,9 @@ Review the following tabs to determine the optimal networking layer for your clu C1["Knative
net-contour"] -- creates --> C2["Ingress objects"] C2 --> C3["Class: contour.ingress.networking.knative.dev"] ``` - **Install and configure** + **Install and configure Contour** - The Knative `net-contour` controller enables Contour to satisfy the networking needs by bridging Knative's KIngress resources to Contour's HTTPProxy resources. A good choice for clusters that already run non-Knative apps, want to reuse a single Ingress controller, and for teams who are already using Contour envoy but don't need a full-feature service mesh. + The Contour ingress controller, `net-contour`, bridges Knative's KIngress resources to Contour's HTTPProxy resources. A good choice for clusters that already run non-Knative apps, teams who want to use a single Ingress controller, and are already using Contour envoy but don't need a full-feature service mesh. --8<-- "netadapter-contour.md" @@ -83,7 +83,7 @@ Review the following tabs to determine the optimal networking layer for your clu I2 --> I3["Class: istio.ingress.networking.knative.dev
No native Ingress objects"] ``` - The Knative `net-istio` defines a KIngress controller for Istio. It's a full-feature service mesh integrated with Knative that also functions as a Knative ingress. Good for enterprises already running Istio or needing advanced service mesh features. + The Knative `net-istio` is a KIngress controller for Istio. It's a full-feature service mesh that also functions as a Knative ingress. Good for enterprises already running Istio or needing advanced service mesh features. **Install and configure** @@ -107,7 +107,6 @@ Review the following tabs to determine the optimal networking layer for your clu Knative has a default Istio integration without the full-feature service mesh. The `knative-ingress-gateway` in the `knative-serving` namespace is a shared Istio gateway resource that handles all incoming (north-south) traffic to Knative services. This gateway points to the underlying `istio-ingressgateway` service in the `istio-system` namespace. You can replace this gateway with one of your own, see [Configuring the Ingress gateway](setting-up-custom-ingress-gateway.md). - === "Gateway API" ```mermaid @@ -141,7 +140,7 @@ Review the following tabs to determine the optimal networking layer for your clu The controller that Knative uses is determined by which Gateway API-compatible controller you install and configure in your cluster. - **Configure** + **Install and configure Gateway API** --8<-- "netadapter-gatewayapi.md" From d21ff0211fe2f5fbd8cfb95f0c1e21952ff61fc1 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Tue, 2 Dec 2025 09:45:24 -0800 Subject: [PATCH 63/64] Update config-network-adapters.md Minor edit to rebuild --- docs/versioned/serving/config-network-adapters.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index b36cf40c5e..f3dffabfcb 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -11,7 +11,7 @@ This page provides installation and configuration guidance for Knative networkin ### Determine current state -Use the following command to determine which controllers are installed and their status. +Use the following command to determine which ingress controllers are installed and their status. ```bash kubectl get pods -n knative-serving @@ -45,7 +45,7 @@ Review the following tabs to determine the optimal networking layer for your clu The Kourier ingress controller, `net-kourier`, is installed with Knative Serving. Kourier is a lightweight alternative for the Istio ingress as its deployment consists only of an envoy proxy and a control plane. If Kourier is satisfactory, no further configurations are required. - Kourier is the only supported ingress controller for the IBM Z and IBM Power platforms, and requires additional steps as described in [Install Serving with YAML on IBM-Z and IBM-P](/versioned/install/yaml-install/serving/install-serving-with-yaml-on-IBM-Z-and-IBM-P.md). + Kourier is the only supported ingress controller for the IBM Z and IBM Power platforms, and requires additional steps as documented in [Install Serving with YAML on IBM-Z and IBM-P](/versioned/install/yaml-install/serving/install-serving-with-yaml-on-IBM-Z-and-IBM-P.md). **Install and configure Kourier** From 89a5b3cc839c1c60324715b9b6918f47370a15e8 Mon Sep 17 00:00:00 2001 From: Bruce Hamilton Date: Tue, 2 Dec 2025 09:52:56 -0800 Subject: [PATCH 64/64] Update config-network-adapters.md Consistency edits --- docs/versioned/serving/config-network-adapters.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/versioned/serving/config-network-adapters.md b/docs/versioned/serving/config-network-adapters.md index f3dffabfcb..2ee5bb87e7 100644 --- a/docs/versioned/serving/config-network-adapters.md +++ b/docs/versioned/serving/config-network-adapters.md @@ -64,10 +64,11 @@ Review the following tabs to determine the optimal networking layer for your clu C1["Knative
net-contour"] -- creates --> C2["Ingress objects"] C2 --> C3["Class: contour.ingress.networking.knative.dev"] ``` - **Install and configure Contour** The Contour ingress controller, `net-contour`, bridges Knative's KIngress resources to Contour's HTTPProxy resources. A good choice for clusters that already run non-Knative apps, teams who want to use a single Ingress controller, and are already using Contour envoy but don't need a full-feature service mesh. + **Install and configure Contour** + --8<-- "netadapter-contour.md" === "Istio" @@ -85,7 +86,7 @@ Review the following tabs to determine the optimal networking layer for your clu The Knative `net-istio` is a KIngress controller for Istio. It's a full-feature service mesh that also functions as a Knative ingress. Good for enterprises already running Istio or needing advanced service mesh features. - **Install and configure** + **Install and configure Istio** --8<-- "netadapter-istio.md" @@ -105,7 +106,11 @@ Review the following tabs to determine the optimal networking layer for your clu Revision --> KIGW ``` - Knative has a default Istio integration without the full-feature service mesh. The `knative-ingress-gateway` in the `knative-serving` namespace is a shared Istio gateway resource that handles all incoming (north-south) traffic to Knative services. This gateway points to the underlying `istio-ingressgateway` service in the `istio-system` namespace. You can replace this gateway with one of your own, see [Configuring the Ingress gateway](setting-up-custom-ingress-gateway.md). + Knative has a default Istio integration without the full-feature service mesh. The `knative-ingress-gateway` in the `knative-serving` namespace is a shared Istio gateway resource that handles all incoming (north-south) traffic to Knative services. This gateway points to the underlying `istio-ingressgateway` service in the `istio-system` namespace. You can replace this gateway with one of your own. + + **Install and configure Ingress Gateway** + + See [Configuring the Ingress gateway](setting-up-custom-ingress-gateway.md). === "Gateway API"