Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
133 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
edea5c3
Snippet and Tab fixes
iRaindrop Jan 8, 2026
25438dd
Tab fixes
iRaindrop Jan 8, 2026
b77528c
Tab fixes and reviewer edits
iRaindrop Jan 8, 2026
6365583
tab tweaks
iRaindrop Jan 8, 2026
b6c8203
tab and include test
iRaindrop Jan 8, 2026
0bd2122
tab include test
iRaindrop Jan 8, 2026
0674346
tab test
iRaindrop Jan 8, 2026
57ac62f
A hopeful test
iRaindrop Jan 8, 2026
7f0a3cd
Tab test with indent filter
iRaindrop Jan 8, 2026
087728b
Indent test
iRaindrop Jan 9, 2026
c8d8a94
Test edit to rebuild
iRaindrop Jan 9, 2026
07f9f94
Install snippets and DNS snippets
iRaindrop Jan 9, 2026
726cb82
Update install-serving-with-yaml.md
iRaindrop Jan 9, 2026
cb169ef
file name fix
iRaindrop Jan 9, 2026
75ba64c
Format fixes and rerognization
iRaindrop Jan 9, 2026
d804895
formatting fixes
iRaindrop Jan 9, 2026
ce7742e
Link improvment
iRaindrop Jan 9, 2026
1927664
link format edits
iRaindrop Jan 9, 2026
1a4ba6c
Update netadapter-gatewayapi.md
iRaindrop Jan 9, 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
27 changes: 9 additions & 18 deletions docs/snippets/dns.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,11 @@
You can configure DNS to prevent the need to run curl commands with a host header.
<!-- Referenced by:
- install/operator/knative-with-operators.md
- install/yaml-install/serving/install-serving-with-yaml.md
-->
Knative provides a Kubernetes Job called `default-domain` that configures Knative Serving to use [sslip.io](http://sslip.io) as the default DNS suffix.

The following tabs expand to show instructions for configuring DNS.
Follow the procedure for the DNS of your choice:
```bash
kubectl apply -f {{artifact(repo="serving",file="serving-default-domain.yaml")}}
```

=== "Magic DNS (sslip.io)"

Knative provides a Kubernetes Job called `default-domain` that configures Knative Serving to use [sslip.io](http://sslip.io) as the default DNS suffix.

```bash
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 the [`minikube tunnel`](https://minikube.sigs.k8s.io/docs/commands/tunnel/) is running.
31 changes: 31 additions & 0 deletions docs/snippets/netadapter-contour.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<!-- Referenced by:
- install/yaml-install/serving/install-serving-with-yaml.md
-->
Use the following steps to install and enable Contour and set it as the ingress controller.

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
```
58 changes: 58 additions & 0 deletions docs/snippets/netadapter-gatewayapi.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
<!-- Referenced by:
- install/yaml-install/serving/install-serving-with-yaml.md
-->
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. Install the Knative Gateway API:

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

Alternatively, you can also install a preconfigured Gateways for either Contour or Istio. Replace the filename in this step with either `contour-gateway.yaml` or `istio-gateway.yaml`. If you use either file you can skip the next step to configure gateway resources.
Copy link
Member

Choose a reason for hiding this comment

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

The contour-gateway.yaml and istio-gateway.yaml don't replace the net-gateway-api.yaml file, but they replace steps 2 and 3. Not sure how to make that clearer here, but right now, it reads as if you can just install those files instead of the net-gateway-api.yaml (which won't produce a working system, but the commands will succeed).


1. Configure Gateway resources for use by external ("north-south") Knative traffic, and local ("east-west") traffic. If you do not need separate routing for local traffic (or [private Knative services](../../../serving/services/private-services.md)), you can use the external Gateway for both.

Knative verifies traffic settings according to the Kubernetes namespace, the name of the Gateways, and an underlying DNS name such as a Kubernetes service DNS name that corresponds to the Gateway.

```bash
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: ConfigMap
metadata:
name: config-gateway
namespace: 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. 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. 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.
32 changes: 32 additions & 0 deletions docs/snippets/netadapter-istio.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<!-- Referenced by:
- install/yaml-install/serving/install-serving-with-yaml.md
-->
Use the following steps to install Istio and set it as the ingress controller.

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

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
```
25 changes: 25 additions & 0 deletions docs/snippets/netadapter-kourier.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<!-- Referenced by:
- install/yaml-install/serving/install-serving-with-yaml.md
-->
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
```
76 changes: 39 additions & 37 deletions docs/snippets/no-dns.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,40 +2,42 @@
- install/operator/knative-with-operators.md
- install/yaml-install/serving/install-serving-with-yaml.md
-->
=== "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,
for example, minikube locally or IPv6 clusters.

To access your application using `curl` using this method:

1. Configure Knative to use a domain reachable from outside the cluster:
```bash
kubectl patch configmap/config-domain \
--namespace knative-serving \
--type merge \
--patch '{"data":{"example.com":""}}'
```

1. After starting your application, get the URL of your application:
```bash
kubectl get ksvc
```
The output should be similar to:
```bash
NAME URL LATESTCREATED LATESTREADY READY REASON
helloworld-go http://helloworld-go.default.example.com helloworld-go-vqjlf helloworld-go-vqjlf True
```

1. Instruct `curl` to connect to the External IP or CNAME defined by the
networking layer mentioned in section 3, and use the `-H "Host:"` command-line
option to specify the Knative application's host name.
For example, if the networking layer defines your External IP and port to be `http://192.168.39.228:32198` and you wish to access the `helloworld-go` application mentioned earlier, use:
```bash
curl -H "Host: helloworld-go.default.example.com" http://192.168.39.228:32198
```
In the case of the provided `helloworld-go` sample application, using the default configuration, the output is:
```
Hello Go Sample v1!
```
Refer to the "Real DNS" method for a permanent solution.
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, you can evaluate Knative without altering your DNS configuration. You might have this need if minikube locally or IPv6 clusters.

To access your application using `curl` using this method:

1. Configure Knative to use a domain reachable from outside the cluster:

```bash
kubectl patch configmap/config-domain \
--namespace knative-serving \
--type merge \
--patch '{"data":{"example.com":""}}'
```

1. After starting your application, get the URL of your application:

```bash
kubectl get ksvc
```

The output should be similar to:

```bash
NAME URL LATESTCREATED LATESTREADY READY REASON
helloworld-go http://helloworld-go.default.example.com helloworld-go-vqjlf helloworld-go-vqjlf True
```

1. Instruct `curl` to connect to the External IP or CNAME defined by the networking layer mentioned in section 3, and use the `-H "Host:"` command-line option to specify the Knative application's host name. For example, if the networking layer defines your External IP and port to be `http://192.168.39.228:32198` and you wish to access the `helloworld-go` application mentioned earlier, use:

```bash
curl -H "Host: helloworld-go.default.example.com" http://192.168.39.228:32198
```

In the case of the provided `helloworld-go` sample application, using the default configuration, the output is:

```bash
Hello Go Sample v1!
```

Refer to the "Real DNS" method for a permanent solution.
46 changes: 22 additions & 24 deletions docs/snippets/real-dns-yaml.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,28 @@
=== "Real DNS"
<!-- Referenced by:
- install/yaml-install/serving/install-serving-with-yaml.md
-->
To configure DNS for Knative, take the External IP
or CNAME from setting up networking, and configure it with your DNS provider as
follows:

To configure DNS for Knative, take the External IP
or CNAME from setting up networking, and configure it with your DNS provider as
follows:
- If the networking layer produced an External IP address, then configure a wildcard `A` record for the domain. In the following example, `knative.example.com` is the domain suffix for a cluster.

- If the networking layer produced an External IP address, then configure a
wildcard `A` record for the domain:
```bash
*.knative.example.com == A 35.233.41.212
```

```
# Here knative.example.com is the domain suffix for your cluster
*.knative.example.com == A 35.233.41.212
```
- If the networking layer produced a CNAME, then configure a CNAME record for the domain. In the following example, `knative.example.com` is the domain suffix for a cluster.

- If the networking layer produced a CNAME, then configure a CNAME record for the domain:
```bash
*.knative.example.com == CNAME a317a278525d111e89f272a164fd35fb-1510370581.eu-central-1.elb.amazonaws.com
```

```
# Here knative.example.com is the domain suffix for your cluster
*.knative.example.com == CNAME a317a278525d111e89f272a164fd35fb-1510370581.eu-central-1.elb.amazonaws.com
```
- After your DNS provider has been configured, direct Knative to use that domain:

- Once your DNS provider has been configured, direct Knative to use that domain:

```yaml
# Replace knative.example.com with your domain suffix
kubectl patch configmap/config-domain \
--namespace knative-serving \
--type merge \
--patch '{"data":{"knative.example.com":""}}'
```
```yaml
# Replace knative.example.com with your domain suffix
kubectl patch configmap/config-domain \
--namespace knative-serving \
--type merge \
--patch '{"data":{"knative.example.com":""}}'
```
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
Loading
Loading