Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
114 commits
Select commit Hold shift + click to select a range
cbc1aa6
Create config-network-adapters.md
iRaindrop Nov 19, 2025
14b81f4
Added Nav
iRaindrop Nov 19, 2025
3b315cb
Update config-network-adapters.md
iRaindrop Nov 19, 2025
9a212b2
Update config-network-adapters.md
iRaindrop Nov 19, 2025
2300e4f
Added snippet file for Kourier
iRaindrop Nov 20, 2025
e6167d0
Update config-network-adapters.md
iRaindrop Nov 20, 2025
d283146
Update config-network-adapters.md
iRaindrop Nov 20, 2025
5062101
Snippet fix
iRaindrop Nov 20, 2025
916f3b4
Update config-network-adapters.md
iRaindrop Nov 20, 2025
81fd46e
Update config-network-adapters.md
iRaindrop Nov 20, 2025
d10ab27
Update config-network-adapters.md
iRaindrop Nov 20, 2025
9aec3ac
Added Contour snippet
iRaindrop Nov 22, 2025
1c48767
Update config-network-adapters.md
iRaindrop Nov 22, 2025
205ecae
Added istio and gateway api snippet files
iRaindrop Nov 22, 2025
310d9eb
Writing and snippet work
iRaindrop Nov 23, 2025
84f0b03
Misc fixes
iRaindrop Nov 23, 2025
92d24f1
Link fixes
iRaindrop Nov 23, 2025
55a8c41
Update netadapter-istio.md
iRaindrop Nov 23, 2025
e35130c
Tab work
iRaindrop Nov 23, 2025
77cb4b8
Update config-network-adapters.md
iRaindrop Nov 23, 2025
a019583
Update config-network-adapters.md
iRaindrop Nov 23, 2025
fb9a9f0
Update config-network-adapters.md
iRaindrop Nov 24, 2025
e39c0ae
Title and edits
iRaindrop Nov 24, 2025
f346e57
Update config-network-adapters.md
iRaindrop Nov 24, 2025
c277d3d
Update config-network-adapters.md
iRaindrop Nov 24, 2025
2578283
Update config-network-adapters.md
iRaindrop Nov 24, 2025
4d49145
Update config-network-adapters.md
iRaindrop Nov 24, 2025
4fad8ae
Update config-network-adapters.md
iRaindrop Nov 24, 2025
8b39f84
Update config-network-adapters.md
iRaindrop Nov 24, 2025
8986808
Update config-network-adapters.md
iRaindrop Nov 25, 2025
761be15
Update config-network-adapters.md
iRaindrop Nov 25, 2025
f7a24a0
Update config-network-adapters.md
iRaindrop Nov 25, 2025
3905026
Update config-network-adapters.md
iRaindrop Nov 25, 2025
a4512c4
Update config-network-adapters.md
iRaindrop Nov 25, 2025
49db831
Update config-network-adapters.md
iRaindrop Nov 27, 2025
41240db
Writing and structuring
iRaindrop Nov 27, 2025
631c56f
Update config-network-adapters.md
iRaindrop Nov 27, 2025
73e845f
Update config-network-adapters.md
iRaindrop Nov 27, 2025
6dbb22a
Update netadapter-gatewayapi.md
iRaindrop Nov 27, 2025
497620d
Formatting tests
iRaindrop Nov 27, 2025
359f605
Update config-network-adapters.md
iRaindrop Nov 27, 2025
8e5bf80
Update config-network-adapters.md
iRaindrop Nov 27, 2025
5c032f4
Update config-network-adapters.md
iRaindrop Nov 27, 2025
9cf4980
Update config-network-adapters.md
iRaindrop Nov 27, 2025
187c0a1
Update config-network-adapters.md
iRaindrop Nov 27, 2025
3e2a67f
Update config-network-adapters.md
iRaindrop Nov 27, 2025
1c05b86
Update config-network-adapters.md
iRaindrop Nov 27, 2025
dddacd1
Added Ingress Gateway tab
iRaindrop Nov 29, 2025
129133a
Update config-network-adapters.md
iRaindrop Nov 29, 2025
f300403
More writing
iRaindrop Nov 30, 2025
d475c32
Update config-network-adapters.md
iRaindrop Nov 30, 2025
6f6fb4b
Update config-network-adapters.md
iRaindrop Nov 30, 2025
1eeda2e
Misc fixes
iRaindrop Nov 30, 2025
614e293
Small edit to rebuild
iRaindrop Nov 30, 2025
ee0d3f0
Update config-network-adapters.md
iRaindrop Dec 1, 2025
d70fae5
Update config-network-adapters.md
iRaindrop Dec 1, 2025
aa5c536
Misc updates
iRaindrop Dec 1, 2025
1425f02
Update config-network-adapters.md
iRaindrop Dec 1, 2025
6659e07
Update config-network-adapters.md
iRaindrop Dec 1, 2025
9059d0d
Update config-network-adapters.md
iRaindrop Dec 1, 2025
1d76ef9
Update netadapter-gatewayapi.md
iRaindrop Dec 1, 2025
7c0cb5d
Update config-network-adapters.md
iRaindrop Dec 2, 2025
d21ff02
Update config-network-adapters.md
iRaindrop Dec 2, 2025
89a5b3c
Update config-network-adapters.md
iRaindrop Dec 2, 2025
e1b403e
Update config-network-adapters.md
iRaindrop Dec 6, 2025
39b879a
Update docs/snippets/dns.md
iRaindrop Dec 6, 2025
96c2e5d
Processed reviewer edits
iRaindrop Dec 7, 2025
de084ee
Misc edits
iRaindrop Dec 8, 2025
4de8810
Update config-network-adapters.md
iRaindrop Dec 8, 2025
6240ade
Update docs/versioned/serving/config-network-adapters.md
iRaindrop Dec 9, 2025
d10aa03
Reviewer udpates
iRaindrop Dec 10, 2025
845b289
Update config-network-adapters.md
iRaindrop Dec 10, 2025
190f622
Update config-network-adapters.md
iRaindrop Dec 10, 2025
176cadf
Update config-network-adapters.md
iRaindrop Dec 10, 2025
e77ee57
Update config-network-adapters.md
iRaindrop Dec 10, 2025
003de74
Update config-network-adapters.md
iRaindrop Dec 10, 2025
aa645a3
Update config-network-adapters.md
iRaindrop Dec 10, 2025
0f1e2c6
Update config-network-adapters.md
iRaindrop Dec 11, 2025
7806497
Update config-network-adapters.md
iRaindrop Dec 11, 2025
fc76a54
Update config-network-adapters.md
iRaindrop Dec 11, 2025
93dc28b
Update config-network-adapters.md
iRaindrop Dec 11, 2025
32eb3a4
Update docs/snippets/netadapter-kourier.md
iRaindrop Dec 11, 2025
b9ee495
Update config-network-adapters.md
iRaindrop Dec 11, 2025
99a8194
Update config-network-adapters.md
iRaindrop Dec 11, 2025
94f611a
Chart work and misc fixes
iRaindrop Dec 11, 2025
73f8507
Misc updates
iRaindrop Dec 20, 2025
47883ad
Update config-network-adapters.md
iRaindrop Dec 20, 2025
f5a1367
Gateway additions and misc
iRaindrop Dec 29, 2025
9ec1cfe
Update config-network-adapters.md
iRaindrop Dec 29, 2025
d1fedb1
Update config-network-adapters.md
iRaindrop Dec 29, 2025
10035ad
Update config-network-adapters.md
iRaindrop Dec 29, 2025
1948079
Update config-network-adapters.md
iRaindrop Dec 29, 2025
48664a3
Update config-network-adapters.md
iRaindrop Dec 30, 2025
031fec0
Update config-network-adapters.md
iRaindrop Dec 30, 2025
2d0b90d
Update config-network-adapters.md
iRaindrop Dec 31, 2025
065b020
Tab test with snippets
iRaindrop Jan 4, 2026
daab253
Configured snippets
iRaindrop Jan 5, 2026
4dc3ea2
Update install-serving-with-yaml.md
iRaindrop Jan 5, 2026
dd6e4be
Snippet code formatting
iRaindrop Jan 5, 2026
7e94de4
Update install-serving-with-yaml.md
iRaindrop Jan 5, 2026
1af8870
Update install-serving-with-yaml.md
iRaindrop Jan 5, 2026
33a0b7a
Update docs/versioned/serving/config-network-adapters.md
iRaindrop Jan 8, 2026
c489ded
Update docs/versioned/serving/config-network-adapters.md
iRaindrop Jan 8, 2026
2b6b3f3
Update docs/versioned/serving/config-network-adapters.md
iRaindrop Jan 8, 2026
dd061d9
Update docs/versioned/serving/config-network-adapters.md
iRaindrop Jan 8, 2026
15884c6
Update config-network-adapters.md
iRaindrop Jan 8, 2026
5b132e9
Update config-network-adapters.md
iRaindrop Jan 8, 2026
bcc347a
Update config-network-adapters.md
iRaindrop Jan 8, 2026
aba1034
Update config-network-adapters.md
iRaindrop Jan 8, 2026
d2af6d9
Update config-network-adapters.md
iRaindrop Jan 8, 2026
c988447
Snippet references and fixes
iRaindrop Jan 8, 2026
214e7ba
Misc edits
iRaindrop Jan 8, 2026
4df6d8c
Update install-serving-with-yaml.md
iRaindrop Jan 8, 2026
92670a8
Update install-serving-with-yaml.md
iRaindrop Jan 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 3 additions & 9 deletions docs/snippets/dns.md
Original file line number Diff line number Diff line change
@@ -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 specifying the host header in curl commands, or to access the content with a web browser.

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)"

Expand All @@ -11,10 +10,5 @@ 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.
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 the [`minikube tunnel`](https://minikube.sigs.k8s.io/docs/commands/tunnel/) is running.

In these cases, see the "Real DNS" or "No DNS" tabs.
28 changes: 28 additions & 0 deletions docs/snippets/netadapter-contour.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
Use the following steps to install and enable Contour and set it as the ingress conroller.

1. Install the Knative Contour configuration:

```bash
kubectl apply -f {{ artifact(repo="net-contour",org="knative-extensions",file="contour.yaml")}}
```

1. Install the Knative Contour integration controller:

```bash
kubectl apply -f {{ artifact(repo="net-contour",org="knative-extensions",file="net-contour.yaml")}}
```

1. Configure Knative Serving to use Contour:

```bash
kubectl patch configmap/config-network \
--namespace knative-serving \
--type merge \
--patch '{"data":{"ingress-class":"contour.ingress.networking.knative.dev"}}'
```

1. Get the external IP address (FQDN) to later configure DNS:

```bash
kubectl --namespace contour-external get service envoy
```
74 changes: 74 additions & 0 deletions docs/snippets/netadapter-gatewayapi.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
Use the following steps to install and configure the Knative Gateway API adapter. Note that you need to have a [Gateway API implementation](https://gateway-api.sigs.k8s.io/implementations/) installed in your cluster. The Knative team currently tests the Istio, Contour, and Envoy-Gateway implementations of Gateway API.

1. Clone the Gateway API repo:

```bash
git clone https://github.com/knative-extensions/net-gateway-api.git
cd net-gateway-api
```
Copy link
Member

Choose a reason for hiding this comment

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

We need an additional step here (not currently well-documented) to align the config-gateway ConfigMap with the installed Gateways. Knative assumes two Gateways in the cluster: one which is externally exposed, and one which is only exposed within the cluster ("internal").

Creation of these gateways is alluded to in this section of the net-gateway-api documentation: https://github.com/knative-extensions/net-gateway-api?tab=readme-ov-file#install-a-supported-implementation (In particular, the kubectl apply -f third_party/$IMPLEMENTATION directions in each section.)

More concretely, the config-gateway ConfigMap needs two keys:

  • external-gateways
  • local-gateways

Each value is a string which contains additional YAML content (a list of objects, typically a single item) in the following format:

- class: $GATEWAY_CLASS_NAME
  gateway: $NAMESPACE/$GATEWAY_NAME
  service: $NAMESPACE/$SERVICE_NAME

Where $SERVICE_NAME is the Kubernetes Service name which points to the pods in the Gateway implementation. (Note: Kubernetes Service name, not Knative Service name.)

Copy link
Member

Choose a reason for hiding this comment

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

We still need some documentation about filling in the config-gateway Configmap with external-gateways and local-gateways objects.


1. Set environment variables:

```bash
export KO_DOCKER_REPO=kind.local
export KIND_CLUSTER_NAME=knative # (keep this if your cluster is named "knative")
```

1. Deploy Gateway API resources:

```bash
ko apply -f config/
```

1. Install the Knative Gateway API:

```bash
kubectl apply -f {{ artifact(repo="net-gateway-api",org="knative-extensions",file="net-gateway-api.yaml") }}
```

1. Configure Knative Serving to use the Knative Gateway API ingress class:

```bash
kubectl patch configmap/config-network \
--namespace knative-serving \
--type merge \
--patch '{"data":{"ingress-class":"gateway-api.ingress.networking.knative.dev"}}'
```

1. Edit the `config-gateway` ConfigMap in the knative-serving namespace to specify gateway resources for external and local traffic. For the `external-gateways` key, specify the value for `name` and for `service` as needed. Do the same for the `local gateways`. The `namespace` should be kept at `knative-serving`.

```bash
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: ConfigMap
metadata:
name: config-gateway
namespace: knative-serving
labels:
app.kubernetes.io/component: net-gateway-api
app.kubernetes.io/name: knative-serving
data:
external-gateways: |
- name: knative-ingress-gateway # Name of the external Gateway resource
namespace: knative-serving # Namespace where the Gateway is deployed
service: knative-ingress-service.knative-serving.svc.cluster.local # backing Service FQDN
local-gateways: |
- name: knative-local-gateway # Name of the local Gateway resource
namespace: knative-serving # Namespace where the Gateway is deployed
service: knative-local-service.knative-serving.svc.cluster.local # backing Service FQDN
EOF
```

1. Verify the `config-gateway` ConfigMap:

```bash
kubectl get configmap config-gateway -n knative-serving -o yaml
```

1. Get the external IP address (FQDN) to configure DNS records:

```bash
kubectl get gateway --all-namespaces
```

Look for the external Gateway (`knative-ingress-gateway`) to get status and address for DNS configuration.
33 changes: 33 additions & 0 deletions docs/snippets/netadapter-istio.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
Use the following steps to install Istio and set it as the ingress conroller.

1. Install a properly configured Istio:
Copy link
Contributor Author

Choose a reason for hiding this comment

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

The artifact "macros" are not rendering to provide the URL. I wasn't able to find this one.

Copy link
Member

Choose a reason for hiding this comment

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

You may need a space between ) }} for the macro to work. I can take a look this weekend.

Copy link
Member

Choose a reason for hiding this comment

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

Yep, I see this not working, but I haven't yet figured out why. I'm guessing it's the combination of macros and snippets that is doing it.

Copy link
Member

Choose a reason for hiding this comment

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

Okay, I figured it out. We have two ways of including snippets. --8<-- comes from pymdownx.snippets and seems to run after the macros extension. {% include ... %} comes from mkdocs-macros, and will render the macros like artifact(...) in the markdown.

You can see the use of {% include "dns.md" %} in install-serving-with-yaml.md` as an example.

Note that you may need to indent the snippet content by 4 spaces when using {% include ... %}, based on experimentation. You'll note that dns.md and no-dns.md both do this (and also include the tab header in the document).


```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:

```bash
kubectl apply -f {{ artifact(repo="net-istio",org="knative-extensions", file="net-istio.yaml") }}
```

<!-- ```bash
kubectl apply -f https://github.com/knative/net-istio/releases/download/knative-v1.20.1/net-istio.yaml
``` -->

1. Configure the `config-network` ConfigMap to use Istio:

```bash
kubectl patch configmap/config-network \
--namespace knative-serving \
--type merge \
--patch '{"data":{"ingress-class":"istio.ingress.networking.knative.dev"}}'
```

1. Get the external IP address (FQDN) to later configure DNS:

```bash
kubectl --namespace istio-system get service istio-ingressgateway
```
22 changes: 22 additions & 0 deletions docs/snippets/netadapter-kourier.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
Use the following steps to install Kourier and set it as the ingress controller.

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:

```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 later configure DNS:

```bash
kubectl --namespace kourier-system get service kourier
```
3 changes: 2 additions & 1 deletion docs/versioned/.nav.yml
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,8 @@ nav:
- Configure high-availability components: serving/config-ha.md
- Exclude namespaces from the Knative webhook: serving/webhook-customizations.md
- Networking Options:
- Configure the ingress gateway: serving/setting-up-custom-ingress-gateway.md
- Configure Knative networking: serving/config-network-adapters.md
- Configure Istio's 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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,104 +41,23 @@ To install the Knative Serving component:

## Install a networking layer

The following tabs expand to show instructions for installing a networking layer.
Follow the procedure for the networking layer of your choice:
Expand the following tabs for instructions on installing network layers. For an overview of network layer options, architecture, and configurations see [Configure Knative networking](../../../serving/config-network-adapters.md).

!!! note
**Only Kourier network plugin supported for IBM Z and IBM Power platform.**
Follow the below steps to install Kourier. Post installation, patch the envoy image based on RedHat Maistra as described in [this link](./install-serving-with-yaml-on-IBM-Z-and-IBM-P.md).

<!-- TODO: Link to document/diagram describing what is a networking layer. -->
<!-- This indentation is important for things to render properly. -->

=== "Kourier (Choose this if you are not sure)"

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"}}'
```

1. Fetch the External IP address or CNAME by running the command:

```bash
kubectl --namespace kourier-system get service kourier
```

!!! tip
Save this to use in the following [Configure DNS](#configure-dns) section.


=== "Istio"

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")}}
```

1. Fetch the External IP address or CNAME by running the command:

```bash
kubectl --namespace istio-system get service istio-ingressgateway
```

!!! tip
Save this to use in the following [Configure DNS](#configure-dns) section.
=== "Kourier"

{% include "netadapter-kourier.md" %}

=== "Contour"

The following commands install Contour and enable its Knative integration.
{% include "netadapter-contour.md" %}

1. Install a properly configured Contour by running the command:

```bash
kubectl apply -f {{ artifact(repo="net-contour",org="knative-extensions",file="contour.yaml")}}
```
<!-- TODO(https://github.com/knative-extensions/net-contour/issues/11): We need a guide on how to use/modify a pre-existing install. -->

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"}}'
```

1. Fetch the External IP address or CNAME by running the command:
=== "Istio"

```bash
kubectl --namespace contour-external get service envoy
```
--8<-- "netadapter-istio.md"

!!! tip
Save this to use in the following [Configure DNS](#configure-dns) section.
=== "Gateway API"

{% include "netadapter-gatewayapi.md" %}

## Verify the installation

Expand Down
Loading
Loading