Skip to content
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

Fix broken doc links #2776

Merged
merged 1 commit into from
Feb 17, 2024
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
8 changes: 4 additions & 4 deletions geps/gep-1426/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ A controller could create a matching selector-less `Service` (i.e. no endpoints)

Ownership/trust would remain based on naming pattern: `serviceName.namespace.svc.[USER_DOMAIN]`

Separate `HttpService`, `TlsService` and `TcpService` resources could have the benefit of allowing us to define protocol specific elements to the spec along with an embedded `CommonServiceSpec`, similar to [`CommonRouteSpec`](https://gateway-api.sigs.k8s.io/v1alpha2/reference/spec/#gateway.networking.k8s.io/v1beta1.CommonRouteSpec), and keep similar patterns as `Service`.
Separate `HttpService`, `TlsService` and `TcpService` resources could have the benefit of allowing us to define protocol specific elements to the spec along with an embedded `CommonServiceSpec`, similar to [`CommonRouteSpec`](https://gateway-api.sigs.k8s.io/v1alpha2/reference/spec/#gateway.networking.k8s.io/v1.CommonRouteSpec), and keep similar patterns as `Service`.

##### Drawbacks

Expand Down Expand Up @@ -298,7 +298,7 @@ spec:
name: cool-mesh
```

It is currently undefined how this approach may interact with either explicitly configured [`hostnames`](https://gateway-api.sigs.k8s.io/v1alpha2/reference/spec/#gateway.networking.k8s.io/v1beta1.HTTPRouteSpec) or implicit "transparent proxy" routing for Kubernetes `Services` to determine how traffic should be intercepted and redirected.
It is currently undefined how this approach may interact with either explicitly configured [`hostnames`](https://gateway-api.sigs.k8s.io/v1alpha2/reference/spec/#gateway.networking.k8s.io/v1.HTTPRouteSpec) or implicit "transparent proxy" routing for Kubernetes `Services` to determine how traffic should be intercepted and redirected.

This approach is not entirely abandoned, as it could supplement the proposed approach if explicit attachment to a specific mesh is deemed necessary. Additionally, this approach may offer a future option for attaching an `HTTPRoute` to a mesh, but not a specific service (e.g. to implement mesh-wide egress functionality for all requests to a specific hostname).

Expand All @@ -319,7 +319,7 @@ spec:

* Would require separate `HTTPRoute` resources to explicitly define _different_ traffic routing rules for the same service on different meshes.

#### Nested `services` and `hostnames` fields in [`ParentReference`](https://gateway-api.sigs.k8s.io/v1alpha2/reference/spec/#gateway.networking.k8s.io/v1beta1.ParentReference)
#### Nested `services` and `hostnames` fields in [`ParentReference`](https://gateway-api.sigs.k8s.io/v1alpha2/reference/spec/#gateway.networking.k8s.io/v1.ParentReference)

In core conformance, the `services` would only be valid for `Mesh` types, and `hostnames` field only for `Gateway`. Mesh implementations could still use a `Host` header match if they wanted limit rules to specific hostnames.

Expand Down Expand Up @@ -359,7 +359,7 @@ This is done by configuring the `parentRef`, to point to the `istio` `Mesh`. Thi

### New field on `HTTPRoute` for `Service` binding

A new field `serviceBinding` would be added to `HTTPRoute` to attach to the `Service`. Alternatively, this could be a new field in [`HTTPRouteMatch`](https://gateway-api.sigs.k8s.io/v1alpha2/reference/spec/#gateway.networking.k8s.io/v1beta1.HTTPRouteMatch). As with the proposed implementation, this approach could be combined with a `Mesh` resource or similar as the `parentRef`, which would just define that the route would be applied to a mesh.
A new field `serviceBinding` would be added to `HTTPRoute` to attach to the `Service`. Alternatively, this could be a new field in [`HTTPRouteMatch`](https://gateway-api.sigs.k8s.io/v1alpha2/reference/spec/#gateway.networking.k8s.io/v1.HTTPRouteMatch). As with the proposed implementation, this approach could be combined with a `Mesh` resource or similar as the `parentRef`, which would just define that the route would be applied to a mesh.

```
spec:
Expand Down
2 changes: 1 addition & 1 deletion site-src/api-types/backendtlspolicy.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,5 +140,5 @@ uses `PolicyAncestorStatus` to allow you to know which parentReference set that
[tls]: /references/spec/#gateway.networking.k8s.io/v1alpha2.BackendTLSPolicy.TLS
[caCertRefs]: /references/spec/#gateway.networking.k8s.io/v1alpha2.BackendTLSPolicyConfig.CACertRefs
[wellKnownCACerts]: /references/spec/#gateway.networking.k8s.io/v1alpha2.BackendTLSPolicyConfig.WellKnownCACerts
[hostname]: /references/spec/#gateway.networking.k8s.io/v1beta1.PreciseHostname
[hostname]: /references/spec/#gateway.networking.k8s.io/v1.PreciseHostname
[targetRef]: /references/spec/#gateway.networking.k8s.io/v1alpha2.PolicyTargetReference
2 changes: 1 addition & 1 deletion site-src/api-types/gatewayclass.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,5 +139,5 @@ example.net/gateway/v2.1 // Use version 2.1
example.net/gateway // Use the default version
```

[gatewayclass]: /reference/spec/#gateway.networking.k8s.io/v1beta1.GatewayClass
[gatewayclass]: /reference/spec/#gateway.networking.k8s.io/v1.GatewayClass
[ingress-class-api]: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class
4 changes: 2 additions & 2 deletions site-src/api-types/grpcroute.md
Original file line number Diff line number Diff line change
Expand Up @@ -260,10 +260,10 @@ resolution applies to merging, refer to the [API specification][grpcrouterule].

[grpcroute]: /reference/spec/#gateway.networking.k8s.io/v1alpha2.GRPCPRoute
[grpcrouterule]: /reference/spec/#gateway.networking.k8s.io/v1alpha2.GRPCRouteRule
[hostname]: /reference/spec/#gateway.networking.k8s.io/v1beta1.Hostname
[hostname]: /reference/spec/#gateway.networking.k8s.io/v1.Hostname
[rfc-3986]: https://tools.ietf.org/html/rfc3986
[matches]: /reference/spec/#gateway.networking.k8s.io/v1alpha2.GRPCRouteMatch
[filters]: /reference/spec/#gateway.networking.k8s.io/v1alpha2.GRPCRouteFilter
[backendRef]: /reference/spec/#gateway.networking.k8s.io/v1alpha2.GRPCBackendRef
[parentRef]: /reference/spec/#gateway.networking.k8s.io/v1beta1.ParentRef
[parentRef]: /reference/spec/#gateway.networking.k8s.io/v1.ParentRef

14 changes: 7 additions & 7 deletions site-src/api-types/httproute.md
Original file line number Diff line number Diff line change
Expand Up @@ -302,13 +302,13 @@ only one Route rule may match each request. For more information on how conflict
resolution applies to merging, refer to the [API specification][httprouterule].


[httproute]: /reference/spec/#gateway.networking.k8s.io/v1beta1.HTTPRoute
[httprouterule]: /reference/spec/#gateway.networking.k8s.io/v1beta1.HTTPRouteRule
[hostname]: /reference/spec/#gateway.networking.k8s.io/v1beta1.Hostname
[httproute]: /reference/spec/#gateway.networking.k8s.io/v1.HTTPRoute
[httprouterule]: /reference/spec/#gateway.networking.k8s.io/v1.HTTPRouteRule
[hostname]: /reference/spec/#gateway.networking.k8s.io/v1.Hostname
[rfc-3986]: https://tools.ietf.org/html/rfc3986
[matches]: /reference/spec/#gateway.networking.k8s.io/v1beta1.HTTPRouteMatch
[filters]: /reference/spec/#gateway.networking.k8s.io/v1beta1.HTTPRouteFilter
[backendRef]: /reference/spec/#gateway.networking.k8s.io/v1beta1.HTTPBackendRef
[parentRef]: /reference/spec/#gateway.networking.k8s.io/v1beta1.ParentRef
[matches]: /reference/spec/#gateway.networking.k8s.io/v1.HTTPRouteMatch
[filters]: /reference/spec/#gateway.networking.k8s.io/v1.HTTPRouteFilter
[backendRef]: /reference/spec/#gateway.networking.k8s.io/v1.HTTPBackendRef
[parentRef]: /reference/spec/#gateway.networking.k8s.io/v1.ParentRef
[timeouts]: /reference/spec/#gateway.networking.k8s.io/v1.HTTPRouteTimeouts
[appProtocol]: https://kubernetes.io/docs/concepts/services-networking/service/#application-protocol
2 changes: 1 addition & 1 deletion site-src/guides/grpc-routing.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,6 @@ been considered.
{% include 'experimental/v1alpha2/grpc-routing/reflection-grpcroute.yaml' %}
```

[gateway]: /reference/spec/#gateway.networking.k8s.io/v1beta1.Gateway
[gateway]: /reference/spec/#gateway.networking.k8s.io/v1.Gateway
[spec]: /reference/spec/#gateway.networking.k8s.io%2fv1alpha2.GRPCRouteSpec
[svc]:https://kubernetes.io/docs/concepts/services-networking/service/
4 changes: 2 additions & 2 deletions site-src/guides/http-redirect-rewrite.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ use both filter types at once.

Redirects return HTTP 3XX responses to a client, instructing it to retrieve a
different resource. [`RequestRedirect` rule
filters](/reference/spec/#gateway.networking.k8s.io/v1beta1.HTTPRequestRedirectFilter)
filters](/reference/spec/#gateway.networking.k8s.io/v1.HTTPRequestRedirectFilter)
instruct Gateways to emit a redirect response to requests matching a filtered
HTTPRoute rule.

Expand Down Expand Up @@ -87,7 +87,7 @@ https://redirect.example/paprika/teaspoon` response headers.

Rewrites modify components of a client request before proxying it upstream. A
[`URLRewrite`
filter](/reference/spec/#gateway.networking.k8s.io/v1beta1.HTTPURLRewriteFilter)
filter](/reference/spec/#gateway.networking.k8s.io/v1.HTTPURLRewriteFilter)
can change the upstream request hostname and/or path. For example, the
following HTTPRoute will accept a request for
`https://rewrite.example/cardamom` and send it upstream to `example-svc` with
Expand Down
4 changes: 2 additions & 2 deletions site-src/guides/http-routing.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,6 @@ missing or not `canary` then it'll be forwarded to `bar-svc`.
{% include 'standard/http-routing/bar-httproute.yaml' %}
```

[gateway]: /reference/spec/#gateway.networking.k8s.io/v1beta1.Gateway
[spec]: /reference/spec/#gateway.networking.k8s.io/v1beta1.HTTPRouteSpec
[gateway]: /reference/spec/#gateway.networking.k8s.io/v1.Gateway
[spec]: /reference/spec/#gateway.networking.k8s.io/v1.HTTPRouteSpec
[svc]:https://kubernetes.io/docs/concepts/services-networking/service/
22 changes: 11 additions & 11 deletions site-src/guides/migrating-from-ingress.md
Original file line number Diff line number Diff line change
Expand Up @@ -147,20 +147,20 @@ Gateway API has the following primary extension points:
* *External references.* A feature (field) of a Gateway API resource can
reference a custom resource specific to the Gateway implementation that
configures that feature. For example:
* [HTTPRouteFilter](/reference/spec/#gateway.networking.k8s.io/v1beta1.HTTPRouteFilter)
* [HTTPRouteFilter](/reference/spec/#gateway.networking.k8s.io/v1.HTTPRouteFilter)
can reference an external resource via the `extensionRef` field, thus
configuring an implementation-specific filter.
* [BackendObjectReference](/reference/spec/#gateway.networking.k8s.io/v1beta1.BackendObjectReference)
* [BackendObjectReference](/reference/spec/#gateway.networking.k8s.io/v1.BackendObjectReference)
supports resources other than Services.
* [SecretObjectReference](/reference/spec/#gateway.networking.k8s.io/v1beta1.SecretObjectReference)
* [SecretObjectReference](/reference/spec/#gateway.networking.k8s.io/v1.SecretObjectReference)
supports resources other than Secrets.
* *Custom implementations*. For some features, it is left up to an
implementation to define how to support them. Those features correspond to the
implementation-specific
(custom) [conformance level](/concepts/conformance/#2-support-levels). For
example:
* The `RegularExpression` type of
the [HTTPPathMatch](/reference/spec/#gateway.networking.k8s.io/v1beta1.HTTPPathMatch).
the [HTTPPathMatch](/reference/spec/#gateway.networking.k8s.io/v1.HTTPPathMatch).
* *Policies.* A Gateway implementation can define custom resources called
Policies for exposing data plane features like authentication. Gateway API
does not prescribe the details of those resources. However, it prescribes a
Expand Down Expand Up @@ -194,7 +194,7 @@ resource will get dedicated entry points.
In Gateway API, entry points must be explicitly defined in
a [Gateway](/api-types/gateway/) resource. For example, if you want the data
plane to handle HTTP traffic on port 80, you need to define
a [listener](/reference/spec/#gateway.networking.k8s.io/v1beta1.Listener) for
a [listener](/reference/spec/#gateway.networking.k8s.io/v1.Listener) for
that traffic. Typically, a Gateway implementation provides a dedicated data
plane for each Gateway resource.

Expand All @@ -207,7 +207,7 @@ the [TLS section](https://kubernetes.io/docs/concepts/services-networking/ingres
where the TLS certificate and key are stored in a Secret.

In Gateway API, TLS termination is a property of
the [Gateway listener](/reference/spec/#gateway.networking.k8s.io/v1beta1.Listener),
the [Gateway listener](/reference/spec/#gateway.networking.k8s.io/v1.Listener),
and similarly to the Ingress, a TLS certificate and key are also stored in a
Secret.

Expand All @@ -218,21 +218,21 @@ application admin own TLS termination.

The [path-based routing rules](https://kubernetes.io/docs/concepts/services-networking/ingress/#path-types)
of the Ingress resource map directly to
the [routing rules](/reference/spec/#gateway.networking.k8s.io/v1beta1.HTTPRouteRule)
the [routing rules](/reference/spec/#gateway.networking.k8s.io/v1.HTTPRouteRule)
of the [HTTPRoute](/api-types/httproute/).

The [host-header-based routing rules](https://kubernetes.io/docs/concepts/services-networking/ingress/#name-based-virtual-hosting)
map to
the [hostnames](/reference/spec/#gateway.networking.k8s.io/v1beta1.Hostname) of
the [hostnames](/reference/spec/#gateway.networking.k8s.io/v1.Hostname) of
the HTTPRoute. However, note that in the Ingress, each hostname has separate
routing rules, while in the HTTPRoute the routing rules apply to all hostnames.

> The Ingress API uses the term host while Gateway API uses the hostname.
> This guide will use Gateway API term to refer to the Ingress host.

> The `hostnames` of an HTTPRoute must match the `hostname` of the [Gateway listener](/reference/spec/#gateway.networking.k8s.io/v1beta1.Listener).
> The `hostnames` of an HTTPRoute must match the `hostname` of the [Gateway listener](/reference/spec/#gateway.networking.k8s.io/v1.Listener).
> Otherwise, the listener will ignore the routing rules for the unmatched
> hostnames. See the [HTTPRoute documentation](/reference/spec/#gateway.networking.k8s.io/v1beta1.HTTPRouteSpec).
> hostnames. See the [HTTPRoute documentation](/reference/spec/#gateway.networking.k8s.io/v1.HTTPRouteSpec).

HTTPRoutes are owned by the application developer.

Expand Down Expand Up @@ -270,7 +270,7 @@ An Ingress resource must specify
a [class](https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class)
to select which Ingress controller to use. An HTTPRoute must specify which
Gateway (or Gateways) to attach to via
a [parentRef](/reference/spec/#gateway.networking.k8s.io/v1beta1.ParentRef).
a [parentRef](/reference/spec/#gateway.networking.k8s.io/v1.ParentRef).

### Implementation-Specific Ingress Features (Annotations)

Expand Down
2 changes: 1 addition & 1 deletion site-src/guides/multiple-ns.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ Gateway that these Routes want to attach to.

After these three Routes are deployed, they will all be attached to the
`shared-gateway` Gateway. The Gateway merges these Routes into a single flat
list of routing rules. [Routing precedence](/reference/spec/#gateway.networking.k8s.io/v1beta1.HTTPRouteRule)
list of routing rules. [Routing precedence](/reference/spec/#gateway.networking.k8s.io/v1.HTTPRouteRule)
between these routing rules is determined by most specific match and
conflicts are handled according to [conflict
resolution](/concepts/guidelines#conflicts). This provides predictable and
Expand Down
2 changes: 1 addition & 1 deletion site-src/guides/traffic-splitting.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ production user traffic for `foo.example.com`. The following HTTPRoute has no
receive 100% of the traffic matched by each of their route rules. A canary
route rule is used (matching the header `traffic=test`) to send synthetic test
traffic before splitting any production user traffic to `foo-v2`.
[Routing precedence](/reference/spec/#gateway.networking.k8s.io/v1beta1.HTTPRouteRule)
[Routing precedence](/reference/spec/#gateway.networking.k8s.io/v1.HTTPRouteRule)
ensures that all traffic with the matching host and header
(the most specific match) will be sent to `foo-v2`.

Expand Down