Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion assets/docs/pages/about/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ The xDS server sends the xDS snapshot to the gateway proxies in the data plane.
{{< reuse "docs/snippets/discovery-about.md" >}}
To enable automatic discovery of services, see [Discovery](/docs/traffic-management/destination-types/backends/#discovery). To learn more about Backends, see [Backends](/docs/traffic-management/destination-types/backends/).
To enable automatic discovery of services, see [Discovery]({{< link-hextra path="/traffic-management/destination-types/backends/#discovery" >}}). To learn more about Backends, see [Backends]({{< link-hextra path="/traffic-management/destination-types/backends/" >}}).
The following image shows how the endpoint discovery component discovers Kubernetes services and Functions and automatically creates Backend resources for them.
Expand Down
2 changes: 1 addition & 1 deletion assets/docs/pages/about/custom-resources.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ For more information, see the [{{< reuse "docs/snippets/k8s-gateway-api-name.md"

The [Gateway](https://gateway-api.sigs.k8s.io/api-types/gateway/) custom resource is a network abstraction that defines a point of access at which traffic can be forwarded to a backend in a {{< gloss "Cluster (Kubernetes)" >}}Kubernetes cluster{{< /gloss >}}. A Gateway defines the listeners that you want to open, including the ports, protocols, and hostnames that you want to listen on for incoming traffic. You can also specify how incoming, encrypted traffic is handled. For example, encrypted traffic can be terminated at the gateway or passed through to a backend in the cluster.

To spin up a Gateway and manage its lifecycle, a gateway controller is used. The gateway controller is defined in the [GatewayClass](https://gateway-api.sigs.k8s.io/api-types/gatewayclass/) resource and manages the underlying infrastructure to ensure that traffic to endpoints is routed accordingly. When you install kgateway, a GatewayClass resource is automatically created that points to the kgateway controller. For more information, see [GatewayClass](/docs/setup/default/#gatewayclass).
To spin up a Gateway and manage its lifecycle, a gateway controller is used. The gateway controller is defined in the [GatewayClass](https://gateway-api.sigs.k8s.io/api-types/gatewayclass/) resource and manages the underlying infrastructure to ensure that traffic to endpoints is routed accordingly. When you install kgateway, a GatewayClass resource is automatically created that points to the kgateway controller. For more information, see [GatewayClass]({{< link-hextra path="/setup/default/#gatewayclass" >}}).

### HTTPRoute and TCPRoute {#httproute}

Expand Down
2 changes: 1 addition & 1 deletion assets/docs/pages/integrations/argo.md
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@
EOF
```

2. Create an HTTPRoute resource to expose the `rollouts-demo` pod on the HTTP gateway that you created as part of the [Get started guide](/docs/quickstart). The HTTP resource can serve both the stable and canary versions of your app.
2. Create an HTTPRoute resource to expose the `rollouts-demo` pod on the HTTP gateway that you created as part of the [Get started guide]({{< link-hextra path="/quickstart" >}}). The HTTP resource can serve both the stable and canary versions of your app.
```yaml
kubectl apply -f- <<EOF
kind: HTTPRoute
Expand Down
2 changes: 1 addition & 1 deletion assets/docs/pages/integrations/aws-elb.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{{< callout type="info" >}}
To learn how to pair your kgateway proxy with an NLB or ALB, see the [AWS ELB guides](/docs/setup/customize/aws-elb/).
To learn how to pair your kgateway proxy with an NLB or ALB, see the [AWS ELB guides]({{< link-hextra path="/setup/customize/aws-elb/" >}}).
{{< /callout >}}

{{< reuse "docs/snippets/aws-alb-nlb.md" >}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ cert-manager is a Kubernetes controller that helps you automate the process of o

## Configure an HTTPS listener on your gateway

1. Add the cert-manager annotation and an HTTPS listener to the `http` gateway that you set up as part of the [Get started guide](/docs/quickstart/).
1. Add the cert-manager annotation and an HTTPS listener to the `http` gateway that you set up as part of the [Get started guide]({{< link-hextra path="/quickstart/" >}}).
```yaml
kubectl apply -f- <<EOF
apiVersion: gateway.networking.k8s.io/v1
Expand Down
2 changes: 1 addition & 1 deletion assets/docs/pages/observability/control-plane-metrics.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ By default, the {{< reuse "/docs/snippets/kgateway.md" >}} control plane exposes

## View control plane metrics {#control-plane-metrics}

The following steps show you how to quickly view the metrics endpoint of the control plane deployment. To integrate the metrics into your observability stack, see the [OpenTelemetry guide](/docs/observability/otel-stack/).
The following steps show you how to quickly view the metrics endpoint of the control plane deployment. To integrate the metrics into your observability stack, see the [OpenTelemetry guide]({{< link-hextra path="/observability/otel-stack/" >}}).

1. Port-forward the control plane deployment on port 9092.

Expand Down
2 changes: 1 addition & 1 deletion assets/docs/pages/resiliency/retry/retry.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ To use retries, you need to install the experimental channel. You can also set u
EOF
```
3. Apply an access log policy to the gateway that tracks the number of retries. The key log in the following example is `response_flags`, which is used to verify that the request was retried. For more information, see the [Access logging guide](/docs/security/access-logging/) and the [Envoy access logs response flags docs](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#response-flags).
3. Apply an access log policy to the gateway that tracks the number of retries. The key log in the following example is `response_flags`, which is used to verify that the request was retried. For more information, see the [Access logging guide]({{< link-hextra path="/security/access-logging/" >}}) and the [Envoy access logs response flags docs](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#response-flags).
```yaml
kubectl apply -f- <<EOF
Expand Down
2 changes: 1 addition & 1 deletion assets/docs/pages/security/cors.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ EOF
EOF
```

2. Attach the {{< reuse "docs/snippets/trafficpolicy.md" >}} to a route or Gateway. The following example creates an HTTPRoute for the httpbin app that has the {{< reuse "docs/snippets/trafficpolicy.md" >}} attached via the `extensionRef` filter. For more information about attachment and merging rules, see the [{{< reuse "docs/snippets/trafficpolicy.md" >}} concept docs](/docs/about/policies/trafficpolicy/).
2. Attach the {{< reuse "docs/snippets/trafficpolicy.md" >}} to a route or Gateway. The following example creates an HTTPRoute for the httpbin app that has the {{< reuse "docs/snippets/trafficpolicy.md" >}} attached via the `extensionRef` filter. For more information about attachment and merging rules, see the [{{< reuse "docs/snippets/trafficpolicy.md" >}} concept docs]({{< link-hextra path="/about/policies/trafficpolicy/" >}}).

```yaml
kubectl apply -f- <<EOF
Expand Down
2 changes: 1 addition & 1 deletion assets/docs/pages/security/csrf.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Use a {{< reuse "docs/snippets/trafficpolicy.md" >}} resource to define your CSR
EOF
```

{{< reuse "docs/snippets/review-table.md" >}} For more information, see the [API docs](/docs/reference/api/#csrfpolicy).
{{< reuse "docs/snippets/review-table.md" >}} For more information, see the [API docs]({{< link-hextra path="/reference/api/#csrfpolicy" >}}).

| Field | Description |
|-------|-------------|
Expand Down
2 changes: 1 addition & 1 deletion assets/docs/pages/setup/customize/aws-elb/alb.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ The AWS Load Balancer Controller only supports the creation of an ALB through an
## Before you begin

1. Create or use an existing AWS account.
2. Follow the [Get started guide](/docs/quickstart/) to install kgateway. You do not need to set up a Gateway as you create a custom Gateway as part of this guide.
2. Follow the [Get started guide]({{< link-hextra path="/quickstart/" >}}) to install kgateway. You do not need to set up a Gateway as you create a custom Gateway as part of this guide.
3. Follow the [Sample app guide]({{< link-hextra path="/install/sample-app/" >}}) to deploy the httpbin sample app.

## Step 1: Deploy gateway proxy resources
Expand Down
2 changes: 1 addition & 1 deletion assets/docs/pages/setup/customize/aws-elb/nlb.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Keep in mind the following considerations when working with an NLB:
## Before you begin

1. Create or use an existing AWS account.
2. Follow the [Get started guide](/docs/quickstart/) to install kgateway, set up a gateway resource, and deploy the httpbin sample app.
2. Follow the [Get started guide]({{< link-hextra path="/quickstart/" >}}) to install kgateway, set up a gateway resource, and deploy the httpbin sample app.

## Step 1: Deploy the AWS Load Balancer controller

Expand Down
2 changes: 1 addition & 1 deletion assets/docs/pages/setup/listeners/sni.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ In this guide, you learn how to set up an HTTPS Gateway that serves two differen

## Deploy sample apps

Deploy the Petstore sample app. This app is used alongside the httpbin app from the [Get started](/docs/quickstart) guide to demonstrate the SNI routing capabilities.
Deploy the Petstore sample app. This app is used alongside the httpbin app from the [Get started]({{< link-hextra path="/quickstart" >}}) guide to demonstrate the SNI routing capabilities.

1. Deploy the Petstore app.
```sh
Expand Down
2 changes: 1 addition & 1 deletion assets/docs/pages/setup/listeners/tcp.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ The following guide deploys a sample TCP echo app, sets up a TCP listener on the

## Before you begin

1. Follow the [Get started guide](/docs/quickstart) to install {{< reuse "docs/snippets/kgateway.md" >}}.
1. Follow the [Get started guide]({{< link-hextra path="/quickstart" >}}) to install {{< reuse "docs/snippets/kgateway.md" >}}.

2. Install the experimental channel of the {{< reuse "docs/snippets/k8s-gateway-api-name.md" >}} so that you can use TCPRoutes.

Expand Down
2 changes: 1 addition & 1 deletion assets/docs/pages/setup/selfmanaged.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Follow the [Get started guide](/docs/quickstart/) to install kgateway. You do not need to create a Gateway resource, because you create a self-managed Gateway as part of this guide.
Follow the [Get started guide]({{< link-hextra path="/quickstart/" >}}) to install kgateway. You do not need to create a Gateway resource, because you create a self-managed Gateway as part of this guide.

## Create a self-managed gateway proxy

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ The GRPCRoute approach is more readable, less error-prone, and aligns with the G

## Before you begin

1. [Install {{< reuse "/docs/snippets/kgateway.md" >}}](/docs/quickstart/) in a cluster.
1. [Install {{< reuse "/docs/snippets/kgateway.md" >}}]({{< link-hextra path="/quickstart/" >}}) in a cluster.
2. [Install `grpcurl`](https://github.com/fullstorydev/grpcurl) for testing on your computer.

## Deploy a sample gRPC service {#sample-grpc}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Route traffic to an HTTP or HTTPS Kubernetes service.
You can route to a Kubernetes service by referencing that service in the `backendRefs` section of your HTTPRoute resource as shown in the following example.

{{< callout type="info" >}}
Most guides in this documentation route traffic to a Kubernetes service directly. If you want to route to external resources, such as a static hostname or AWS resource, create a [Backend](/docs/traffic-management/destination-types/backends/) resource.
Most guides in this documentation route traffic to a Kubernetes service directly. If you want to route to external resources, such as a static hostname or AWS resource, create a [Backend]({{< link-hextra path="/traffic-management/destination-types/backends/" >}}) resource.
{{< /callout >}}

```yaml {linenos=table,hl_lines=[13,14,15],linenostart=1,filename="k8s-service-httproute.yaml"}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Each set of routing rules is defined in a dedicated HTTPRoute resource. These HT
|Grandchild|HTTPRoute|A grandchild HTTPRoute resource receives traffic from a child HTTPRoute resource and can either bind to a specific child by using the `parentRef` section or be selected by all child HTTPRoute resources that want to delegate traffic to this grandchild. To receive traffic from a child, the grandchild must match on a path that contains the path prefix for which the child delegated traffic for. For example, if the child delegates traffic for `/route/a`, the grandchild must define a route that includes this prefix, such as `/route/a/myservice`. If traffic is further delegated to a great-grandchild HTTPRoute resource, a `PathPrefix` matcher must be used. Note that great-grandchild or great-great-grandchild behave similar to a grandchild HTTPRoute resource. |

{{< callout type="info" >}}
For an example route delegation setup with a parent, child, and grandchild HTTPRoute resource, see [Multi-level delegation](/docs/traffic-management/route-delegation/multi-level-delegation/).
For an example route delegation setup with a parent, child, and grandchild HTTPRoute resource, see [Multi-level delegation]({{< link-hextra path="/traffic-management/route-delegation/multi-level-delegation/" >}}).
{{< /callout >}}

## Benefits and use cases
Expand All @@ -38,7 +38,7 @@ Review some of the benefits that you can achieve with route delegation:

Review how policies are inherited along the route delegation chain.

For more information, see the [Policy inheritance](/docs/traffic-management/route-delegation/inheritance/) guides.
For more information, see the [Policy inheritance]({{< link-hextra path="/traffic-management/route-delegation/inheritance/" >}}) guides.

### Native Gateway API policies

Expand Down Expand Up @@ -99,11 +99,11 @@ Child HTTPRoute resources can use prefix, exact, or regex path matchers in their
```

{{< callout type="info" >}}
Keep in mind that if a child HTTPRoute delegates routing decisions to a grandchild or great-grandchild HTTPRoute, a `PathPrefix` matcher must be used for that route. Check out the [Multi-level delegation](/docs/traffic-management/route-delegation/multi-level-delegation/) guide for an example of how to set up route delegation between a parent, child, and grandchild HTTPRoute.
Keep in mind that if a child HTTPRoute delegates routing decisions to a grandchild or great-grandchild HTTPRoute, a `PathPrefix` matcher must be used for that route. Check out the [Multi-level delegation]({{< link-hextra path="/traffic-management/route-delegation/multi-level-delegation/" >}}) guide for an example of how to set up route delegation between a parent, child, and grandchild HTTPRoute.
{{< /callout >}}

{{< callout type="info" >}}
You can optionally set the `delegation.kgateway.dev/inherit-parent-matcher: "true"` annotation on the child HTTPRoute to inherit all the matchers, headers, and query parameters from the parent. To find an example, see [Header and query match](/docs/traffic-management/route-delegation/header-query/).
You can optionally set the `delegation.kgateway.dev/inherit-parent-matcher: "true"` annotation on the child HTTPRoute to inherit all the matchers, headers, and query parameters from the parent. To find an example, see [Header and query match]({{< link-hextra path="/traffic-management/route-delegation/header-query/" >}}).
{{< /callout >}}


Expand All @@ -124,7 +124,7 @@ For example, let's say you define the following parent and child HTTPRoute resou
|<ul><li>parent<ul><li>match on <code>/anything/team1</code> and delegate traffic to the <code>child</code> HTTPRoute</li><li>header1: val1</li><li>query1=val1</li></ul></li><li>child<ul><li>match on <code>/anything/team1/foo</code> and route traffic to the httpbin app </li><li>headerX: valX</li><li>queryX=valX</li><li><code>delegation.kgateway.dev/inherit-parent-matcher: "true"</code></li></ul></li></ul> | ✅ </br></br> The headers and query parameters that are specified on the child HTTPRoute do not include the header and query parameters that are specified on the parent. However, the `delegation.kgateway.dev/inherit-parent-matcher: "true"` annotation is set and allows the child HTTPRoute to inherit the matchers, headers, and query parameters from the parent. |

{{< callout type="info" >}}
For an example route delegation setup that uses header and query parameters, see [Header and query match](/docs/traffic-management/route-delegation/header-query/).
For an example route delegation setup that uses header and query parameters, see [Header and query match]({{< link-hextra path="/traffic-management/route-delegation/header-query/" >}}).
{{< /callout >}}

### Cyclic delegation
Expand Down
Loading