-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Plugin: Gateway API #6459
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Plugin: Gateway API #6459
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,64 @@ | ||
| --- | ||
| audience: administrator | ||
| components: | ||
| - serving | ||
| function: how-to | ||
| --- | ||
|
|
||
| # Installing Gateway API for Knative | ||
|
|
||
| This page shows how to install the Kubernetes Gateway API. You can install either the standard or experimental Gateway API channel. | ||
|
|
||
| ## Before you begin | ||
|
|
||
| This installation requires the following prerequisites: | ||
|
|
||
| - A Kubernetes cluster with the Knative Serving component installed. | ||
| - A Gateway Controller. You can install a Gateway Controller by using one of the following guides: | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should link to the Gateway API top-level guide, rather than duplicating all of the sub-guides. I think https://gateway-api.sigs.k8s.io/implementations/ is probably the best page for linking to the options (yes, there are more than a dozen GA implementations). |
||
|
|
||
| - [Simple Gateway](https://gateway-api.sigs.k8s.io/guides/simple-gateway/) (recommended) | ||
| - [HTTP routing](https://gateway-api.sigs.k8s.io/guides/http-routing/) | ||
| - [HTTP redirects and rewrites](https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/) | ||
| - [HTTP traffic splitting](https://gateway-api.sigs.k8s.io/guides/traffic-splitting/) | ||
| - [Routing across Namespaces](https://gateway-api.sigs.k8s.io/guides/multiple-ns/) | ||
| - [Configuring TLS](https://gateway-api.sigs.k8s.io/guides/tls/) | ||
| - [TCP routing](https://gateway-api.sigs.k8s.io/guides/tcp/) | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Some of these guides are for unrelated topics (TCP routing, for instance, is not relevant to Knative's scaling model). |
||
| - [gRPC routing](https://gateway-api.sigs.k8s.io/guides/grpc-routing/) | ||
| - [Migrating from Ingress](https://gateway-api.sigs.k8s.io/guides/migrating-from-ingress/) | ||
|
|
||
| Some Gateway controller setups include the installation of the Gateway API. | ||
|
|
||
| ## Install the standard Gateway API channel | ||
|
|
||
| The standard release channel includes all resources that have graduated to general availability or beta, including [GatewayClass](https://gateway-api.sigs.k8s.io/api-types/gatewayclass/), [Kubernetes Gateway API](https://kubernetes.io/docs/concepts/services-networking/gateway/), [HTTPRoute](https://gateway-api.sigs.k8s.io/api-types/httproute/), and [ReferenceGrant](https://gateway-api.sigs.k8s.io/api-types/referencegrant/). | ||
|
|
||
| Use the following command to install the standard channel: | ||
|
|
||
| ```bash | ||
| kubectl apply --server-side -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.4.0/standard-install.yaml | ||
| ``` | ||
|
|
||
| For more information about the `kubectl --server-side` command, see [Server-Side Apply](https://kubernetes.io/docs/reference/using-api/server-side-apply/). | ||
|
|
||
| ## Install the experimental Gateway API Channel | ||
|
|
||
| The experimental release channel includes everything in the standard release channel plus some experimental resources and fields. This includes TCPRoute, TLSRoute, and UDPRoute. Keep in mind that future releases of the API could introduce breaking changes as any experimental resource or field could be removed in a future release. | ||
|
|
||
| Use the following command to install the experimental channel: | ||
|
|
||
| ```bash | ||
| kubectl apply --server-side -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.4.0/experimental-install.yaml | ||
| ``` | ||
|
|
||
| Refer to the server-side apply documentation to learn more about this kubectl command option. | ||
|
|
||
| ## Uninstall the Gateway API | ||
|
|
||
| To uninstall the Gateway API, replace `kubectl apply --server-side -f` with `kubectl delete --server-side -f` in the commands above. | ||
|
|
||
| Do not uninstall if the resources are in use or if they were installed by a Gateway controller. This command uninstalls the Gateway API resources for the entire cluster. | ||
|
|
||
| ## See also | ||
|
|
||
| - [Kubernetes Gateway API](https://kubernetes.io/docs/concepts/services-networking/gateway/) | ||
| - [Getting started with Gateway API](https://gateway-api.sigs.k8s.io/guides/) | ||
|
Comment on lines
+31
to
+64
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. These should cover installing https://github.com/knative-extensions/net-gateway-api This should probably use a snippet like: 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"}}'And then using It's probably worth calling out that Istio and Contour are the currently-tested implementations, but that other Gateway API implementations should work. https://github.com/knative-extensions/net-gateway-api/blob/main/docs/test-version.md has some additional information that it may be worth incorporating or linking. Configuration for the installation is here: https://github.com/knative-extensions/net-gateway-api/blob/main/config/config-gateway.yaml |
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be documenting installing the Knative networking adapter for Gateway API.
I don't know if a picture is helpful, but here's some mermaid that might clarify:
For this, we're talking about the component that implements the "creates"