From b1f5208a23dcae5e3a7d4bb1dfa1017a838e94bf Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 02:51:57 -0400
Subject: [PATCH 01/61] spelling: adding
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
CHANGELOG/1.2-CHANGELOG.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHANGELOG/1.2-CHANGELOG.md b/CHANGELOG/1.2-CHANGELOG.md
index 6eb92933a5..83cd881480 100644
--- a/CHANGELOG/1.2-CHANGELOG.md
+++ b/CHANGELOG/1.2-CHANGELOG.md
@@ -850,7 +850,7 @@ The Experimental `supportedFeatures` field in GatewayClass `status` has changed
from being a list of strings to being a list of objects/structs with a `name`
field.
-This is to allow addding in extra information to each entry at a later date.
+This is to allow adding in extra information to each entry at a later date.
Relevant PRs:
From bd35f533b5127236d9a40335aa82b5bb84448e52 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Wed, 16 Oct 2024 14:09:34 -0400
Subject: [PATCH 02/61] spelling: anymore
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-1364/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/geps/gep-1364/index.md b/geps/gep-1364/index.md
index b33fee3850..5afa356347 100644
--- a/geps/gep-1364/index.md
+++ b/geps/gep-1364/index.md
@@ -42,7 +42,7 @@ these changes.
The constants that mark the deprecated types will be also marked as deprecated,
and will no longer be tested as part of conformance. They'll still be present,
-and will work, but they won't be part of the spec any more. This should give
+and will work, but they won't be part of the spec anymore. This should give
implementations and users a release to transition to the new design (in UX terms).
This grace period should be one release (so, the constants will be removed in
v0.7.0.)
From 33fafdc6627256ebbc284da68d149bd29e763bf8 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 02:52:47 -0400
Subject: [PATCH 03/61] spelling: approach
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-1686/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/geps/gep-1686/index.md b/geps/gep-1686/index.md
index eacf2a723c..d80bdfa042 100644
--- a/geps/gep-1686/index.md
+++ b/geps/gep-1686/index.md
@@ -23,7 +23,7 @@ The goal of the initial conformance testing is to check the essential behavior a
GAMMA intends to introduce a "Mesh" [conformance profile](https://gateway-api.sigs.k8s.io/geps/gep-1709/) to isolate tests specific to East/West functionality from both existing tests focused on North/South functionality and common Gateway API functionality shared by N/S and E/W implementations. A conformance profile is a set of tests that implementations can run to check their conformance to some subset of the Gateway API spec.
-This appropach will enable service meshes to certify that an implementation follows the GAMMA spec without requiring a North/South implementation, and importantly avoid any expectation that North/South Gateway API implementations expand their scope to understand GAMMA and E/W traffic flows.
+This approach will enable service meshes to certify that an implementation follows the GAMMA spec without requiring a North/South implementation, and importantly avoid any expectation that North/South Gateway API implementations expand their scope to understand GAMMA and E/W traffic flows.
Leveraging existing tests for common functionality between N/S and E/W implementations will both ensure consistency across Gateway API implementations and help limit the maintence burden for the conformance testing suite.
From 87c738ab0bd9b1d593f12f4e138fcd009da497ea Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 02:53:39 -0400
Subject: [PATCH 04/61] spelling: attached
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-2648/index.md | 2 +-
geps/gep-2649/index.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/geps/gep-2648/index.md b/geps/gep-2648/index.md
index 681cf15ae5..ae3ebf389c 100644
--- a/geps/gep-2648/index.md
+++ b/geps/gep-2648/index.md
@@ -95,7 +95,7 @@ the Policy object, the DataplaneConfig object does not affect if the Policy is
a Direct one or not. This is because _a user can understand the state of the
hierarchy by looking at all the objects in the hierarchy_. DataplaneConfig is
_outside_ the hierarchy in terms of understanding the state of the Policy.
-Direct Attacthed Policy is intended as a way to _manage the complexity_ of
+Direct Attached Policy is intended as a way to _manage the complexity_ of
Policy objects and allow a _limited_ set of Policies to follow vastly more
simple design patterns _if they meet a set of criteria_.
diff --git a/geps/gep-2649/index.md b/geps/gep-2649/index.md
index a6f18877f7..6823cfb000 100644
--- a/geps/gep-2649/index.md
+++ b/geps/gep-2649/index.md
@@ -60,7 +60,7 @@ an Inherited Policy.
Note that the same object may be have some properties of both an Inherited Policy
_and_ a Direct Policy if it can attach to multiple points of a hierarchy, such
-as if the same Policy can be atttached to a Gateway (where it affects all Routes
+as if the same Policy can be attached to a Gateway (where it affects all Routes
attached to that Gateway) or to a Route (where it affects only that Route).
If a Policy _can be_ used as an Inherited Policy, it MUST be treated as an
From 6322a33ab62e847b35ee7982beff1d947978a329 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 02:56:53 -0400
Subject: [PATCH 05/61] spelling: because
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-1897/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/geps/gep-1897/index.md b/geps/gep-1897/index.md
index 63e3102767..9562a085da 100644
--- a/geps/gep-1897/index.md
+++ b/geps/gep-1897/index.md
@@ -342,7 +342,7 @@ Ref: [TLS Origination](https://www.getambassador.io/docs/emissary/latest/topics/
### NGINX implementation through CRDs (Comparable to Route or Policy of Gateway API) supports both TLS and mTLS
* In the Upstream section of a VirtualServer or VirtualServerRoute (equivalent to HTTPRoute) there is a simple toggle to enable TLS. This does not validate the certificate of the backend and implicitly trusts the backend in order to form the SSL tunnel. This is not about validating the certificate but obfuscating the traffic with TLS/SSL.
-* A Policy attachment can be provided when certification validation is required that is called egressMTLS (egress from the proxy to the upstream). This can be tuned to perform various certificate validation tests. It was created as a Policy becuase it implies some type of AuthN/AuthZ due to the additional checks. This was also compatible with Open Service Mesh and NGINX Service Mesh and removed the need for a sidecar at the ingress controller.
+* A Policy attachment can be provided when certification validation is required that is called egressMTLS (egress from the proxy to the upstream). This can be tuned to perform various certificate validation tests. It was created as a Policy because it implies some type of AuthN/AuthZ due to the additional checks. This was also compatible with Open Service Mesh and NGINX Service Mesh and removed the need for a sidecar at the ingress controller.
* A corresponding 'IngressMTLS' policy also exists for mTLS verification of client connections to the proxy. The Policy object is used for anything that implies AuthN/AuthZ.
Ref: [Upstream.TLS](https://docs.nginx.com/nginx-ingress-controller/configuration/virtualserver-and-virtualserverroute-resources/#upstreamtls)
From 2585a66f66df1619dc43cad89e85177630dd5ffd Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Wed, 16 Oct 2024 14:09:47 -0400
Subject: [PATCH 06/61] spelling: cannot
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
CHANGELOG/0.x-CHANGELOG.md | 4 ++--
CHANGELOG/1.0-CHANGELOG.md | 4 ++--
apis/v1/grpcroute_types.go | 2 +-
apis/v1/httproute_types.go | 4 ++--
apis/v1/shared_types.go | 6 +++---
apis/v1alpha2/shared_types.go | 4 ++--
apis/v1beta1/shared_types.go | 4 ++--
.../gateway.networking.k8s.io_grpcroutes.yaml | 2 +-
.../gateway.networking.k8s.io_httproutes.yaml | 8 ++++----
.../standard/gateway.networking.k8s.io_grpcroutes.yaml | 2 +-
.../standard/gateway.networking.k8s.io_httproutes.yaml | 8 ++++----
conformance/apis/v1/conformancereport.go | 10 +++++-----
geps/gep-922/index.md | 2 +-
site-src/api-types/grpcroute.md | 2 +-
site-src/api-types/httproute.md | 2 +-
15 files changed, 32 insertions(+), 32 deletions(-)
diff --git a/CHANGELOG/0.x-CHANGELOG.md b/CHANGELOG/0.x-CHANGELOG.md
index c6bbf4db3c..88c87dd7fc 100644
--- a/CHANGELOG/0.x-CHANGELOG.md
+++ b/CHANGELOG/0.x-CHANGELOG.md
@@ -226,7 +226,7 @@ For more information refer to
- Added the missing ReferenceGrant resource the kustomization.yaml for the
standard channel (#2084, @howardjohn)
-- Webhook validation now ensures that BackendRefs can not be specified in the
+- Webhook validation now ensures that BackendRefs cannot be specified in the
same HTTPRoute rule as a Redirect filter (#2161, @slayer321)
- GRPCRoute: The default match has been removed as it was invalid (it only
specified a type of "Exact" without a corresponding Service or Method). Note
@@ -407,7 +407,7 @@ For more information, refer to
- Added the missing ReferenceGrant resource the kustomization.yaml for the
standard channel (#2084, @howardjohn)
-- Webhook validation now ensures that BackendRefs can not be specified in the
+- Webhook validation now ensures that BackendRefs cannot be specified in the
same HTTPRoute rule as a Redirect filter (#2161, @slayer321)
# v0.7.1
diff --git a/CHANGELOG/1.0-CHANGELOG.md b/CHANGELOG/1.0-CHANGELOG.md
index 25520bb4eb..f879309752 100644
--- a/CHANGELOG/1.0-CHANGELOG.md
+++ b/CHANGELOG/1.0-CHANGELOG.md
@@ -142,7 +142,7 @@ Of course there's a lot more in this release:
- The condition reason `GatewayReasonAddressNotUsable` for `Programmed` has been
added to deal with situations where a static address has been provided for a
Gateway which is of a supported type, and is syntactically valid, but for some
- reason it can not be used for this Gateway (e.g. the address is already in use
+ reason it cannot be used for this Gateway (e.g. the address is already in use
on the network).
(#2412 @shaneutt)
@@ -332,7 +332,7 @@ Of course there's a lot more in this release:
- The condition reason `GatewayReasonAddressNotUsable` for `Programmed` has been
added to deal with situations where a static address has been provided for a
Gateway which is of a supported type, and is syntactically valid, but for some
- reason it can not be used for this Gateway (e.g. the address is already in use
+ reason it cannot be used for this Gateway (e.g. the address is already in use
on the network).
(#2412 @shaneutt)
diff --git a/apis/v1/grpcroute_types.go b/apis/v1/grpcroute_types.go
index 953ba0243b..21beb95e8a 100644
--- a/apis/v1/grpcroute_types.go
+++ b/apis/v1/grpcroute_types.go
@@ -230,7 +230,7 @@ type GRPCRouteRule struct {
// Specifying the same filter multiple times is not supported unless explicitly
// indicated in the filter.
//
- // If an implementation can not support a combination of filters, it must clearly
+ // If an implementation cannot support a combination of filters, it must clearly
// document that limitation. In cases where incompatible or unsupported
// filters are specified and cause the `Accepted` condition to be set to status
// `False`, implementations may use the `IncompatibleFilters` reason to specify
diff --git a/apis/v1/httproute_types.go b/apis/v1/httproute_types.go
index a185e3709f..c24a0edeae 100644
--- a/apis/v1/httproute_types.go
+++ b/apis/v1/httproute_types.go
@@ -210,7 +210,7 @@ type HTTPRouteRule struct {
// they are specified.
//
// Implementations MAY choose to implement this ordering strictly, rejecting
- // any combination or order of filters that can not be supported. If implementations
+ // any combination or order of filters that cannot be supported. If implementations
// choose a strict interpretation of filter ordering, they MUST clearly document
// that behavior.
//
@@ -232,7 +232,7 @@ type HTTPRouteRule struct {
//
// All filters are expected to be compatible with each other except for the
// URLRewrite and RequestRedirect filters, which may not be combined. If an
- // implementation can not support other combinations of filters, they must clearly
+ // implementation cannot support other combinations of filters, they must clearly
// document that limitation. In cases where incompatible or unsupported
// filters are specified and cause the `Accepted` condition to be set to status
// `False`, implementations may use the `IncompatibleFilters` reason to specify
diff --git a/apis/v1/shared_types.go b/apis/v1/shared_types.go
index 3c2459e3fa..cebd836f9f 100644
--- a/apis/v1/shared_types.go
+++ b/apis/v1/shared_types.go
@@ -675,7 +675,7 @@ type GatewayController string
// Invalid values include:
//
// * example~ - "~" is an invalid character
-// * example.com. - can not start or end with "."
+// * example.com. - cannot start or end with "."
//
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=253
@@ -705,7 +705,7 @@ type AnnotationValue string
// Invalid values include:
//
// * example~ - "~" is an invalid character
-// * example.com. - can not start or end with "."
+// * example.com. - cannot start or end with "."
//
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=253
@@ -771,7 +771,7 @@ const (
// (see [RFC 5952](https://tools.ietf.org/html/rfc5952)).
//
// This type is intended for specific addresses. Address ranges are not
- // supported (e.g. you can not use a CIDR range like 127.0.0.0/24 as an
+ // supported (e.g. you cannot use a CIDR range like 127.0.0.0/24 as an
// IPAddress).
//
// Support: Extended
diff --git a/apis/v1alpha2/shared_types.go b/apis/v1alpha2/shared_types.go
index af04601e41..2fb84d5f3b 100644
--- a/apis/v1alpha2/shared_types.go
+++ b/apis/v1alpha2/shared_types.go
@@ -313,7 +313,7 @@ type GatewayController = v1.GatewayController
// Invalid values include:
//
// * example~ - "~" is an invalid character
-// * example.com. - can not start or end with "."
+// * example.com. - cannot start or end with "."
//
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=253
@@ -360,7 +360,7 @@ const (
// (see [RFC 5952](https://tools.ietf.org/html/rfc5952)).
//
// This type is intended for specific addresses. Address ranges are not
- // supported (e.g. you can not use a CIDR range like 127.0.0.0/24 as an
+ // supported (e.g. you cannot use a CIDR range like 127.0.0.0/24 as an
// IPAddress).
//
// Support: Extended
diff --git a/apis/v1beta1/shared_types.go b/apis/v1beta1/shared_types.go
index 2dfbb9264a..3dbcc280fc 100644
--- a/apis/v1beta1/shared_types.go
+++ b/apis/v1beta1/shared_types.go
@@ -313,7 +313,7 @@ type GatewayController = v1.GatewayController
// Invalid values include:
//
// * example~ - "~" is an invalid character
-// * example.com. - can not start or end with "."
+// * example.com. - cannot start or end with "."
//
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=253
@@ -360,7 +360,7 @@ const (
// (see [RFC 5952](https://tools.ietf.org/html/rfc5952)).
//
// This type is intended for specific addresses. Address ranges are not
- // supported (e.g. you can not use a CIDR range like 127.0.0.0/24 as an
+ // supported (e.g. you cannot use a CIDR range like 127.0.0.0/24 as an
// IPAddress).
//
// Support: Extended
diff --git a/config/crd/experimental/gateway.networking.k8s.io_grpcroutes.yaml b/config/crd/experimental/gateway.networking.k8s.io_grpcroutes.yaml
index e30ff85b77..ea833146b1 100644
--- a/config/crd/experimental/gateway.networking.k8s.io_grpcroutes.yaml
+++ b/config/crd/experimental/gateway.networking.k8s.io_grpcroutes.yaml
@@ -1113,7 +1113,7 @@ spec:
Specifying the same filter multiple times is not supported unless explicitly
indicated in the filter.
- If an implementation can not support a combination of filters, it must clearly
+ If an implementation cannot support a combination of filters, it must clearly
document that limitation. In cases where incompatible or unsupported
filters are specified and cause the `Accepted` condition to be set to status
`False`, implementations may use the `IncompatibleFilters` reason to specify
diff --git a/config/crd/experimental/gateway.networking.k8s.io_httproutes.yaml b/config/crd/experimental/gateway.networking.k8s.io_httproutes.yaml
index 78126dd7e3..a13b030aa8 100644
--- a/config/crd/experimental/gateway.networking.k8s.io_httproutes.yaml
+++ b/config/crd/experimental/gateway.networking.k8s.io_httproutes.yaml
@@ -1369,7 +1369,7 @@ spec:
they are specified.
Implementations MAY choose to implement this ordering strictly, rejecting
- any combination or order of filters that can not be supported. If implementations
+ any combination or order of filters that cannot be supported. If implementations
choose a strict interpretation of filter ordering, they MUST clearly document
that behavior.
@@ -1391,7 +1391,7 @@ spec:
All filters are expected to be compatible with each other except for the
URLRewrite and RequestRedirect filters, which may not be combined. If an
- implementation can not support other combinations of filters, they must clearly
+ implementation cannot support other combinations of filters, they must clearly
document that limitation. In cases where incompatible or unsupported
filters are specified and cause the `Accepted` condition to be set to status
`False`, implementations may use the `IncompatibleFilters` reason to specify
@@ -4435,7 +4435,7 @@ spec:
they are specified.
Implementations MAY choose to implement this ordering strictly, rejecting
- any combination or order of filters that can not be supported. If implementations
+ any combination or order of filters that cannot be supported. If implementations
choose a strict interpretation of filter ordering, they MUST clearly document
that behavior.
@@ -4457,7 +4457,7 @@ spec:
All filters are expected to be compatible with each other except for the
URLRewrite and RequestRedirect filters, which may not be combined. If an
- implementation can not support other combinations of filters, they must clearly
+ implementation cannot support other combinations of filters, they must clearly
document that limitation. In cases where incompatible or unsupported
filters are specified and cause the `Accepted` condition to be set to status
`False`, implementations may use the `IncompatibleFilters` reason to specify
diff --git a/config/crd/standard/gateway.networking.k8s.io_grpcroutes.yaml b/config/crd/standard/gateway.networking.k8s.io_grpcroutes.yaml
index 70e58b59d7..f889c8bba7 100644
--- a/config/crd/standard/gateway.networking.k8s.io_grpcroutes.yaml
+++ b/config/crd/standard/gateway.networking.k8s.io_grpcroutes.yaml
@@ -1044,7 +1044,7 @@ spec:
Specifying the same filter multiple times is not supported unless explicitly
indicated in the filter.
- If an implementation can not support a combination of filters, it must clearly
+ If an implementation cannot support a combination of filters, it must clearly
document that limitation. In cases where incompatible or unsupported
filters are specified and cause the `Accepted` condition to be set to status
`False`, implementations may use the `IncompatibleFilters` reason to specify
diff --git a/config/crd/standard/gateway.networking.k8s.io_httproutes.yaml b/config/crd/standard/gateway.networking.k8s.io_httproutes.yaml
index d553e0dee0..3b61c35ffb 100644
--- a/config/crd/standard/gateway.networking.k8s.io_httproutes.yaml
+++ b/config/crd/standard/gateway.networking.k8s.io_httproutes.yaml
@@ -1300,7 +1300,7 @@ spec:
they are specified.
Implementations MAY choose to implement this ordering strictly, rejecting
- any combination or order of filters that can not be supported. If implementations
+ any combination or order of filters that cannot be supported. If implementations
choose a strict interpretation of filter ordering, they MUST clearly document
that behavior.
@@ -1322,7 +1322,7 @@ spec:
All filters are expected to be compatible with each other except for the
URLRewrite and RequestRedirect filters, which may not be combined. If an
- implementation can not support other combinations of filters, they must clearly
+ implementation cannot support other combinations of filters, they must clearly
document that limitation. In cases where incompatible or unsupported
filters are specified and cause the `Accepted` condition to be set to status
`False`, implementations may use the `IncompatibleFilters` reason to specify
@@ -4051,7 +4051,7 @@ spec:
they are specified.
Implementations MAY choose to implement this ordering strictly, rejecting
- any combination or order of filters that can not be supported. If implementations
+ any combination or order of filters that cannot be supported. If implementations
choose a strict interpretation of filter ordering, they MUST clearly document
that behavior.
@@ -4073,7 +4073,7 @@ spec:
All filters are expected to be compatible with each other except for the
URLRewrite and RequestRedirect filters, which may not be combined. If an
- implementation can not support other combinations of filters, they must clearly
+ implementation cannot support other combinations of filters, they must clearly
document that limitation. In cases where incompatible or unsupported
filters are specified and cause the `Accepted` condition to be set to status
`False`, implementations may use the `IncompatibleFilters` reason to specify
diff --git a/conformance/apis/v1/conformancereport.go b/conformance/apis/v1/conformancereport.go
index 94e5e8e064..9eb23704fd 100644
--- a/conformance/apis/v1/conformancereport.go
+++ b/conformance/apis/v1/conformancereport.go
@@ -90,19 +90,19 @@ type Implementation struct {
func (i *Implementation) Validate() error {
// TODO: add data validation https://github.com/kubernetes-sigs/gateway-api/issues/2178
if i.Organization == "" {
- return errors.New("implementation's organization can not be empty")
+ return errors.New("implementation's organization cannot be empty")
}
if i.Project == "" {
- return errors.New("implementation's project can not be empty")
+ return errors.New("implementation's project cannot be empty")
}
if i.URL == "" {
- return errors.New("implementation's url can not be empty")
+ return errors.New("implementation's url cannot be empty")
}
if i.Version == "" {
- return errors.New("implementation's version can not be empty")
+ return errors.New("implementation's version cannot be empty")
}
if len(i.Contact) == 0 {
- return errors.New("implementation's contact can not be empty")
+ return errors.New("implementation's contact cannot be empty")
}
return nil
}
diff --git a/geps/gep-922/index.md b/geps/gep-922/index.md
index a1afba7965..23b6153111 100644
--- a/geps/gep-922/index.md
+++ b/geps/gep-922/index.md
@@ -51,7 +51,7 @@ and/or removing old ones as part of a new bundle.
## Limitations of Webhook and CRD Validation
CRD and webhook validation is not the final validation i.e. webhook is “nice UX”
but not schema enforcement. This validation is intended to provide immediate
-feedback to users when they provide an invalid configuration, but can not
+feedback to users when they provide an invalid configuration, but cannot
completely be relied on because it:
* Is not guaranteed to be present or up to date in all clusters.
diff --git a/site-src/api-types/grpcroute.md b/site-src/api-types/grpcroute.md
index 0bb4a9b5f7..560d7fe2ef 100644
--- a/site-src/api-types/grpcroute.md
+++ b/site-src/api-types/grpcroute.md
@@ -185,7 +185,7 @@ Conformance levels are defined by the filter type:
Specifying a core filter multiple times has unspecified or custom conformance.
-If an implementation can not support a combinations of filters, they must clearly
+If an implementation cannot support a combinations of filters, they must clearly
document that limitation. In cases where incompatible or unsupported
filters are specified and cause the `Accepted` condition to be set to status
`False`, implementations may use the `IncompatibleFilters` reason to specify
diff --git a/site-src/api-types/httproute.md b/site-src/api-types/httproute.md
index 6f63506f02..46374e1973 100644
--- a/site-src/api-types/httproute.md
+++ b/site-src/api-types/httproute.md
@@ -198,7 +198,7 @@ implementation-specific conformance.
All filters are expected to be compatible with each other except for the
URLRewrite and RequestRedirect filters, which may not be combined. If an
-implementation can not support other combinations of filters, they must clearly
+implementation cannot support other combinations of filters, they must clearly
document that limitation. In cases where incompatible or unsupported
filters are specified and cause the `Accepted` condition to be set to status
`False`, implementations may use the `IncompatibleFilters` reason to specify
From fcf6976874f1b5be24aeda63bc5a3744f1acc809 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Wed, 16 Oct 2024 14:09:58 -0400
Subject: [PATCH 07/61] spelling: case-insensitive
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
apis/v1/httproute_types.go | 4 +--
.../gateway.networking.k8s.io_grpcroutes.yaml | 16 ++++-----
.../gateway.networking.k8s.io_httproutes.yaml | 36 +++++++++----------
.../gateway.networking.k8s.io_grpcroutes.yaml | 16 ++++-----
.../gateway.networking.k8s.io_httproutes.yaml | 36 +++++++++----------
5 files changed, 54 insertions(+), 54 deletions(-)
diff --git a/apis/v1/httproute_types.go b/apis/v1/httproute_types.go
index c24a0edeae..005d51f8a1 100644
--- a/apis/v1/httproute_types.go
+++ b/apis/v1/httproute_types.go
@@ -596,7 +596,7 @@ type HTTPHeaderMatch struct {
Type *HeaderMatchType `json:"type,omitempty"`
// Name is the name of the HTTP Header to be matched. Name matching MUST be
- // case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ // case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
//
// If multiple entries specify equivalent header names, only the first
// entry with an equivalent name MUST be considered for a match. Subsequent
@@ -947,7 +947,7 @@ const (
// HTTPHeader represents an HTTP Header name and value as defined by RFC 7230.
type HTTPHeader struct {
// Name is the name of the HTTP Header to be matched. Name matching MUST be
- // case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ // case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
//
// If multiple entries specify equivalent header names, the first entry with
// an equivalent name MUST be considered for a match. Subsequent entries
diff --git a/config/crd/experimental/gateway.networking.k8s.io_grpcroutes.yaml b/config/crd/experimental/gateway.networking.k8s.io_grpcroutes.yaml
index ea833146b1..a8df1d9d5e 100644
--- a/config/crd/experimental/gateway.networking.k8s.io_grpcroutes.yaml
+++ b/config/crd/experimental/gateway.networking.k8s.io_grpcroutes.yaml
@@ -542,7 +542,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -617,7 +617,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -828,7 +828,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -903,7 +903,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -1196,7 +1196,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -1270,7 +1270,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -1480,7 +1480,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -1554,7 +1554,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
diff --git a/config/crd/experimental/gateway.networking.k8s.io_httproutes.yaml b/config/crd/experimental/gateway.networking.k8s.io_httproutes.yaml
index a13b030aa8..4088c596cb 100644
--- a/config/crd/experimental/gateway.networking.k8s.io_httproutes.yaml
+++ b/config/crd/experimental/gateway.networking.k8s.io_httproutes.yaml
@@ -534,7 +534,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -609,7 +609,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -973,7 +973,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -1048,7 +1048,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -1474,7 +1474,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -1548,7 +1548,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -1911,7 +1911,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -1985,7 +1985,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -2285,7 +2285,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, only the first
entry with an equivalent name MUST be considered for a match. Subsequent
@@ -3600,7 +3600,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -3675,7 +3675,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -4039,7 +4039,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -4114,7 +4114,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -4540,7 +4540,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -4614,7 +4614,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -4977,7 +4977,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -5051,7 +5051,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -5351,7 +5351,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, only the first
entry with an equivalent name MUST be considered for a match. Subsequent
diff --git a/config/crd/standard/gateway.networking.k8s.io_grpcroutes.yaml b/config/crd/standard/gateway.networking.k8s.io_grpcroutes.yaml
index f889c8bba7..4331775179 100644
--- a/config/crd/standard/gateway.networking.k8s.io_grpcroutes.yaml
+++ b/config/crd/standard/gateway.networking.k8s.io_grpcroutes.yaml
@@ -515,7 +515,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -590,7 +590,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -759,7 +759,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -834,7 +834,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -1127,7 +1127,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -1201,7 +1201,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -1369,7 +1369,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -1443,7 +1443,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
diff --git a/config/crd/standard/gateway.networking.k8s.io_httproutes.yaml b/config/crd/standard/gateway.networking.k8s.io_httproutes.yaml
index 3b61c35ffb..3d810c1e6b 100644
--- a/config/crd/standard/gateway.networking.k8s.io_httproutes.yaml
+++ b/config/crd/standard/gateway.networking.k8s.io_httproutes.yaml
@@ -507,7 +507,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -582,7 +582,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -904,7 +904,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -979,7 +979,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -1405,7 +1405,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -1479,7 +1479,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -1800,7 +1800,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -1874,7 +1874,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -2174,7 +2174,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, only the first
entry with an equivalent name MUST be considered for a match. Subsequent
@@ -3258,7 +3258,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -3333,7 +3333,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -3655,7 +3655,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -3730,7 +3730,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -4156,7 +4156,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -4230,7 +4230,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -4551,7 +4551,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -4625,7 +4625,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, the first entry with
an equivalent name MUST be considered for a match. Subsequent entries
@@ -4925,7 +4925,7 @@ spec:
name:
description: |-
Name is the name of the HTTP Header to be matched. Name matching MUST be
- case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
+ case-insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
If multiple entries specify equivalent header names, only the first
entry with an equivalent name MUST be considered for a match. Subsequent
From 3a8e19ec07eeb2f7c6561fa8143086429af52146 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Wed, 16 Oct 2024 14:10:09 -0400
Subject: [PATCH 08/61] spelling: case-sensitive
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
apis/v1/httproute_types.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/apis/v1/httproute_types.go b/apis/v1/httproute_types.go
index 005d51f8a1..8037c4f17b 100644
--- a/apis/v1/httproute_types.go
+++ b/apis/v1/httproute_types.go
@@ -487,7 +487,7 @@ const (
PathMatchExact PathMatchType = "Exact"
// Matches based on a URL path prefix split by `/`. Matching is
- // case sensitive and done on a path element by element basis. A
+ // case-sensitive and done on a path element by element basis. A
// path element refers to the list of labels in the path split by
// the `/` separator. When specified, a trailing `/` is ignored.
//
From 74899a998659feaa4bb930032233f49d05c89349 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 02:58:54 -0400
Subject: [PATCH 09/61] spelling: certificate
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
apis/v1alpha3/backendtlspolicy_types.go | 2 +-
.../gateway.networking.k8s.io_backendtlspolicies.yaml | 2 +-
geps/gep-1897/index.md | 4 ++--
site-src/api-types/backendtlspolicy.md | 8 ++++----
4 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/apis/v1alpha3/backendtlspolicy_types.go b/apis/v1alpha3/backendtlspolicy_types.go
index 83f3b2df26..cca1ce73fe 100644
--- a/apis/v1alpha3/backendtlspolicy_types.go
+++ b/apis/v1alpha3/backendtlspolicy_types.go
@@ -102,7 +102,7 @@ type BackendTLSPolicyValidation struct {
//
// If CACertificateRefs is empty or unspecified, then WellKnownCACertificates must be
// specified. Only one of CACertificateRefs or WellKnownCACertificates may be specified,
- // not both. If CACertifcateRefs is empty or unspecified, the configuration for
+ // not both. If CACertificateRefs is empty or unspecified, the configuration for
// WellKnownCACertificates MUST be honored instead if supported by the implementation.
//
// References to a resource in a different namespace are invalid for the
diff --git a/config/crd/experimental/gateway.networking.k8s.io_backendtlspolicies.yaml b/config/crd/experimental/gateway.networking.k8s.io_backendtlspolicies.yaml
index 7cdd9f301e..319823cc3c 100644
--- a/config/crd/experimental/gateway.networking.k8s.io_backendtlspolicies.yaml
+++ b/config/crd/experimental/gateway.networking.k8s.io_backendtlspolicies.yaml
@@ -152,7 +152,7 @@ spec:
If CACertificateRefs is empty or unspecified, then WellKnownCACertificates must be
specified. Only one of CACertificateRefs or WellKnownCACertificates may be specified,
- not both. If CACertifcateRefs is empty or unspecified, the configuration for
+ not both. If CACertificateRefs is empty or unspecified, the configuration for
WellKnownCACertificates MUST be honored instead if supported by the implementation.
References to a resource in a different namespace are invalid for the
diff --git a/geps/gep-1897/index.md b/geps/gep-1897/index.md
index 9562a085da..09f6195fa5 100644
--- a/geps/gep-1897/index.md
+++ b/geps/gep-1897/index.md
@@ -216,9 +216,9 @@ specified as ""). The use and definition of system certificates is implementati
these certificates are obtained from the underlying operating system. CACertificateRefs contains one or more
references to Kubernetes objects that contain PEM-encoded TLS certificates, which are used to establish a TLS handshake
between the gateway and backend pod. References to a resource in a different namespace are invalid.
-If ClientCertifcateRefs is unspecified, then WellKnownCACertificates must be set to "System" for a valid configuration.
+If ClientCertificateRefs is unspecified, then WellKnownCACertificates must be set to "System" for a valid configuration.
If WellKnownCACertificates is unspecified, then CACertificateRefs must be specified with at least one entry for a valid configuration.
-If WellKnownCACertficates is set to "System" and there are no system trusted certificates or the implementation doesn't define system
+If WellKnownCACertificates is set to "System" and there are no system trusted certificates or the implementation doesn't define system
trusted certificates, then the associated TLS connection must fail.
The `Hostname` field is required and is to be used to configure the SNI the Gateway should use to connect to the backend.
diff --git a/site-src/api-types/backendtlspolicy.md b/site-src/api-types/backendtlspolicy.md
index 7a2e568388..617ff1f865 100644
--- a/site-src/api-types/backendtlspolicy.md
+++ b/site-src/api-types/backendtlspolicy.md
@@ -37,10 +37,10 @@ The specification of a [BackendTLSPolicy][backendtlspolicy] consists of:
WellKnownCACertificates.
- [Hostname][hostname] - Defines the Server Name Indication (SNI) that the Gateway uses to connect to the backend.
- [CACertificateRefs][caCertificateRefs] - Defines one or more references to objects that contain PEM-encoded TLS certificates,
-which are used to establish a TLS handshake between the Gateway and backend Pod. Either CACertficateRefs or
+which are used to establish a TLS handshake between the Gateway and backend Pod. Either CACertificateRefs or
WellKnownCACertificates may be specified, but not both.
- [WellKnownCACertificates][wellKnownCACertificates] - Specifies whether system CA certificates may be used in the TLS
-handshake between the Gateway and backend Pod. Either CACertficateRefs or WellKnownCACertificates may be specified, but not both.
+handshake between the Gateway and backend Pod. Either CACertificateRefs or WellKnownCACertificates may be specified, but not both.
The following chart outlines the object definitions and relationship:
```mermaid
@@ -57,7 +57,7 @@ flowchart LR
spec -->targetRefs & validation
status -->ancestorStatus
targetRefs -->service
- note[choose only one
caCerticateRefs OR wellKnownCACertificates]
+ note[choose only one
caCertificateRefs OR wellKnownCACertificates]
style note fill:#fff
validation -.- note
```
@@ -117,7 +117,7 @@ The BackendTLSPolicyValidation must contain a certificate reference of some kind
certificate to use for backend TLS, CACertificateRefs and WellKnownCACertificates. Only one of these may be used per
BackendTLSPolicyValidation.
-##### CACertficateRefs
+##### CACertificateRefs
CACertificateRefs refer to one or more PEM-encoded TLS certificates.
From 282dc8260b8f861666ff4fe4a5fce53536fc8c5a Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 02:59:03 -0400
Subject: [PATCH 10/61] spelling: certificates
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-91/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/geps/gep-91/index.md b/geps/gep-91/index.md
index cd5d50ea14..a7a1a6a9e9 100644
--- a/geps/gep-91/index.md
+++ b/geps/gep-91/index.md
@@ -149,7 +149,7 @@ spec:
This section highlights use cases that may be covered in a future iteration of this GEP
* Using system CA certificates as the trust anchor to validate the certificates presented by the frontend client.
-* Supporting a mode where validating client certficates is optional, useful for debugging and migrating to strict TLS.
+* Supporting a mode where validating client certificates is optional, useful for debugging and migrating to strict TLS.
* Supporting an optional `subjectAltNames` field within `FrontendTLSValidation` that can be used to specify one or more alternate names to verify the subject identity in the certificate presented by the client. This field falls under Authorization, the initial focus here is on Client Authentication and will be revisited when Authorization is tackled as a whole in the project.
* Specifying the verification depth in the client certificate chain. This is being deferred because the default verification depth differs across implementations.
From 723566200d49bfbe48bf13b5b5f4518469c701cb Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 03:00:58 -0400
Subject: [PATCH 11/61] spelling: configuration
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-91/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/geps/gep-91/index.md b/geps/gep-91/index.md
index a7a1a6a9e9..a1d14fbda2 100644
--- a/geps/gep-91/index.md
+++ b/geps/gep-91/index.md
@@ -37,7 +37,7 @@ This table highlights the support. Please feel free to add any missing implement
* Introduce a `FrontendValidation` field of type `FrontendTLSValidation` within [GatewayTLSConfig][] that can be used to validate the peer (frontend) with which the TLS connection is being made.
* Introduce a `caCertificateRefs` field within `FrontendTLSValidation` that can be used to specify a list of CA Certificates that can be used as a trust anchor to validate the certificates presented by the client.
-* This new field is mutually exclusive with the [BackendTLSPolicy][] configuation which is used to validate the TLS certificate presented by the backend peer on the connection between the Gateway and the backend, and this GEP is adding support for validating the TLS certificate presented by the frontend client on the connection between the Gateway and the frontend. Both these configurations can coexist at the same time without affecting one another.
+* This new field is mutually exclusive with the [BackendTLSPolicy][] configuration which is used to validate the TLS certificate presented by the backend peer on the connection between the Gateway and the backend, and this GEP is adding support for validating the TLS certificate presented by the frontend client on the connection between the Gateway and the frontend. Both these configurations can coexist at the same time without affecting one another.
* Also introduce a `ObjectReference` structure that can be used to specify `caCertificateRefs` references.
#### GO
From 5abd1820bce6f592260ced2da901fee24fcb4fdb Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 03:02:03 -0400
Subject: [PATCH 12/61] spelling: criteria
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-820/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/geps/gep-820/index.md b/geps/gep-820/index.md
index e683060ed8..78b92a9424 100644
--- a/geps/gep-820/index.md
+++ b/geps/gep-820/index.md
@@ -52,7 +52,7 @@ The following fields and all associated documentation will be removed:
- HTTPRouteMatch.ExtensionRef
- TCPRouteMatch.ExtensionRef will be removed. This results in a struct without
any members: TCPRouteMatch. The struct will be kept as it is expected that
- more match criterias might be added to L4 routes.
+ more match criteria might be added to L4 routes.
- Do the same to UDPRoute and TLSRoute
From ef2cf478a9804313d72fdeba1bda2766aece8e13 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 03:02:32 -0400
Subject: [PATCH 13/61] spelling: deterministically
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-1619/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/geps/gep-1619/index.md b/geps/gep-1619/index.md
index 389d0a72cf..12316812e7 100644
--- a/geps/gep-1619/index.md
+++ b/geps/gep-1619/index.md
@@ -978,7 +978,7 @@ spec:
This is an invalid configuration as two separate sessions cannot have the same cookie name. Implementations SHOULD
address this scenario in manner they deem appropriate. Implementations MAY choose to reject the configuration, or they
-MAY non-deterministicly allow one cookie to work (e.g. whichever cookie is configured first).
+MAY non-deterministically allow one cookie to work (e.g. whichever cookie is configured first).
#### Traffic Splitting with route rule inline sessionPersistence field
From cc1a882696020a6c75be5f493ad0740f75a2bbfe Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 03:02:45 -0400
Subject: [PATCH 14/61] spelling: discoverability
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-713/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/geps/gep-713/index.md b/geps/gep-713/index.md
index e547a12c53..f6b51e7c4c 100644
--- a/geps/gep-713/index.md
+++ b/geps/gep-713/index.md
@@ -552,7 +552,7 @@ that _every_ Policy update does not require a status update.
Because Policy Attachment is a pattern for APIs, not an API, and needs to address
all the problems above, the strategy this GEP proposes is to define a range of
-options for increasing the discoverabilty of Policy resources, and provide
+options for increasing the discoverability of Policy resources, and provide
guidelines for when they should be used.
It's likely that at some stage, the Gateway API CRDs will include some Policy
From 3b722b72aab7a38a5d99bc1f8bc192be28324aa8 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 03:03:09 -0400
Subject: [PATCH 15/61] spelling: docs
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
site-src/implementations.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/site-src/implementations.md b/site-src/implementations.md
index f642f17deb..9fd4d823c7 100644
--- a/site-src/implementations.md
+++ b/site-src/implementations.md
@@ -290,12 +290,12 @@ HAProxy Kubernetes Ingress Controller is an open-source project maintained by HA
[Consul][consul], by [HashiCorp][hashicorp], is an open source control plane for multi-cloud networking. A single Consul deployment can span bare metal, VM and container environments.
-Consul service mesh works on any Kubernetes distribution, connects multiple clusters, and Consul CRDs provide a Kubernetes native workflow to manage traffic patterns and permissions in the mesh. [Consul API Gateway][consul-api-gw-doocs] supports Gateway API for managing North-South traffic.
+Consul service mesh works on any Kubernetes distribution, connects multiple clusters, and Consul CRDs provide a Kubernetes native workflow to manage traffic patterns and permissions in the mesh. [Consul API Gateway][consul-api-gw-docs] supports Gateway API for managing North-South traffic.
-Please see the [Consul API Gateway documentation][consul-api-gw-doocs] for current information on the supported version and features of the Gateway API.
+Please see the [Consul API Gateway documentation][consul-api-gw-docs] for current information on the supported version and features of the Gateway API.
[consul]:https://consul.io
-[consul-api-gw-doocs]:https://www.consul.io/docs/api-gateway
+[consul-api-gw-docs]:https://www.consul.io/docs/api-gateway
[hashicorp]:https://www.hashicorp.com
### Istio
From 0aa20bf7571ef08a5cc83eab0d826cc52715b442 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 03:04:09 -0400
Subject: [PATCH 16/61] spelling: encapsulated
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-1016/index.md | 2 +-
site-src/api-types/grpcroute.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/geps/gep-1016/index.md b/geps/gep-1016/index.md
index afd96ef57d..8ce35205c0 100644
--- a/geps/gep-1016/index.md
+++ b/geps/gep-1016/index.md
@@ -50,7 +50,7 @@ lower layer protocol already exists. We propose the following criteria for such
an addition.
- Users of the encapsulated protocol would miss out on significant conventional features from their ecosystem if forced to route at a lower layer.
-- Users of the enapsulated protocol would experience a degraded user experience if forced to route at a lower layer.
+- Users of the encapsulated protocol would experience a degraded user experience if forced to route at a lower layer.
- The encapsulated protocol has a significant user base, particularly in the Kubernetes community.
gRPC meets _all_ of these criteria and is therefore, we contend, a strong
diff --git a/site-src/api-types/grpcroute.md b/site-src/api-types/grpcroute.md
index 560d7fe2ef..4e528bf783 100644
--- a/site-src/api-types/grpcroute.md
+++ b/site-src/api-types/grpcroute.md
@@ -33,7 +33,7 @@ level, it is acceptable to introduce a route resource at the higher layer when
the following criteria are met:
- Users of the encapsulated protocol would miss out on significant conventional features from their ecosystem if forced to route at a lower layer.
-- Users of the enapsulated protocol would experience a degraded user experience if forced to route at a lower layer.
+- Users of the encapsulated protocol would experience a degraded user experience if forced to route at a lower layer.
- The encapsulated protocol has a significant user base, particularly in the Kubernetes community.
gRPC meets all of these criteria, so the decision was made to include `GRPCRoute`in Gateway API.
From f1a68bc155b389eacbb66b40d5a448552f1032ad Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Mon, 21 Oct 2024 11:22:26 -0400
Subject: [PATCH 17/61] spelling: feature
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
conformance/utils/suite/suite_test.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/conformance/utils/suite/suite_test.go b/conformance/utils/suite/suite_test.go
index b94f879539..1a020c3475 100644
--- a/conformance/utils/suite/suite_test.go
+++ b/conformance/utils/suite/suite_test.go
@@ -181,7 +181,7 @@ func TestGetAPIVersionAndChannel(t *testing.T) {
}
const (
- coreFeature features.FeatureName = "coreFature"
+ coreFeature features.FeatureName = "coreFeature"
extendedFeature features.FeatureName = "extendedFeature"
testProfileName ConformanceProfileName = "testProfile"
From fd0ab7e35e1bdc7d6dfdd5ab51e9877e30708663 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 03:04:49 -0400
Subject: [PATCH 18/61] spelling: filesystem
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
site-src/guides/grpc-routing.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/site-src/guides/grpc-routing.md b/site-src/guides/grpc-routing.md
index acba8f1105..a0740e6e4a 100644
--- a/site-src/guides/grpc-routing.md
+++ b/site-src/guides/grpc-routing.md
@@ -69,7 +69,7 @@ missing or does not have the value `canary` then it will be forwarded to `bar-sv
Reflection](https://github.com/grpc/grpc/blob/v1.49.1/doc/server-reflection.md)
is required to use interactive clients such as
[`grpcurl`](https://github.com/fullstorydev/grpcurl) without having a local copy
-of the target service's protocol buffers present on your local filesysem. To
+of the target service's protocol buffers present on your local filesystem. To
enable this, first ensure that you have a gRPC reflection server listening on
your application pods, then add the reflection method to your `GRPCRoute`. This
is likely to be useful in development and staging environments, but this should
From f791dbdc6891b8587cf4346a40923528eb985600 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 03:05:08 -0400
Subject: [PATCH 19/61] spelling: format
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-1731/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/geps/gep-1731/index.md b/geps/gep-1731/index.md
index f7785e13d5..0eedeb3ddf 100644
--- a/geps/gep-1731/index.md
+++ b/geps/gep-1731/index.md
@@ -354,7 +354,7 @@ type HTTPRouteRetry struct {
// +kubebuilder:validation:Maximum:=999
type HTTPRouteRetryStatusCode int
-// Duration is a string value representing a duration in time. The foramat is
+// Duration is a string value representing a duration in time. The format is
// as specified in GEP-2257, a strict subset of the syntax parsed by Golang
// time.ParseDuration.
//
From bdeb813fe56745f985d2c77a2efbd3ae4b52693e Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 03:43:28 -0400
Subject: [PATCH 20/61] spelling: frankbu
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-1762/metadata.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/geps/gep-1762/metadata.yaml b/geps/gep-1762/metadata.yaml
index c38ad6a101..2f5677ef7d 100644
--- a/geps/gep-1762/metadata.yaml
+++ b/geps/gep-1762/metadata.yaml
@@ -5,7 +5,7 @@ name: In Cluster Gateway Deployments
status: Standard
authors:
- howardjohn
- - frakbu
+ - frankbu
relationships:
extendedBy:
- number: 1867
From f88fa6d5710250b2e9a07562da8926f6990122b8 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Wed, 16 Oct 2024 14:10:21 -0400
Subject: [PATCH 21/61] spelling: github
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
conformance/apis/v1/conformancereport.go | 4 ++--
conformance/reports/README.md | 2 +-
geps/gep-1709/index.md | 4 ++--
geps/gep-1731/metadata.yaml | 4 ++--
geps/gep-2648/metadata.yaml | 4 ++--
geps/gep-2649/metadata.yaml | 2 +-
geps/gep-2659/index.md | 2 +-
geps/gep-696/metadata.yaml | 4 ++--
pkg/gep/gepdetail.go | 2 +-
site-src/contributing/enhancement-requests.md | 2 +-
site-src/faq.md | 4 ++--
site-src/guides/implementers.md | 2 +-
12 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/conformance/apis/v1/conformancereport.go b/conformance/apis/v1/conformancereport.go
index 9eb23704fd..7f4f4d5325 100644
--- a/conformance/apis/v1/conformancereport.go
+++ b/conformance/apis/v1/conformancereport.go
@@ -76,10 +76,10 @@ type Implementation struct {
// Contact is contact information for the maintainers so that Gateway API
// maintainers can get ahold of them as needed. Ideally this should be
- // Github usernames (in the form of `@`) or team names (in the
+ // GitHub usernames (in the form of `@`) or team names (in the
// form of `@/`), but when that's not possible it can be email
// addresses.
- // Rather than Github usernames or email addresses you can provide a URL to the relevant
+ // Rather than GitHub usernames or email addresses you can provide a URL to the relevant
// support pages for the project. Ideally this would be something like the issue creation page
// on a repository, but for projects without a publicly exposed repository a general support
// page URL can be provided.
diff --git a/conformance/reports/README.md b/conformance/reports/README.md
index 98e8ffc34a..241ffc9d66 100644
--- a/conformance/reports/README.md
+++ b/conformance/reports/README.md
@@ -110,7 +110,7 @@ comply with the following rules:
- `contact`: it indicates the GitHub usernames of those who are responsible for
maintaining this file, so they can be easily contacted when needed (e.g. for
relevant release announcements regarding conformance, etc.). Optionally, it
- can be an email address or a support URL (e.g. Github new issue page).
+ can be an email address or a support URL (e.g. GitHub new issue page).
- `url`: it must be a valid url for a GitHub repository, or any other website with
information related to the project.
- `version`: it must be a snapshot of the project, which means it can be a commit,
diff --git a/geps/gep-1709/index.md b/geps/gep-1709/index.md
index 102a00b2ae..9914da2549 100644
--- a/geps/gep-1709/index.md
+++ b/geps/gep-1709/index.md
@@ -368,11 +368,11 @@ profiles:
> theoretically have multiple projects and should submit separate reports for
> each of them.
-> **NOTE**: The `contact` field indicates the Github usernames or team
+> **NOTE**: The `contact` field indicates the GitHub usernames or team
> names of those who are responsible for maintaining this file, so they can be
> easily contacted when needed (e.g. for relevant release announcements
> regarding conformance, e.t.c.). Optionally, it can be an email address or
-> a support URL (e.g. Github new issue page).
+> a support URL (e.g. GitHub new issue page).
The above report describes an implementation that just released `v1`, uses gateway
API `v0.8.0` `experimental` channel, and has `HTTP` `core` and `extended` and `TCP`
diff --git a/geps/gep-1731/metadata.yaml b/geps/gep-1731/metadata.yaml
index beb073820f..9b8fee555a 100644
--- a/geps/gep-1731/metadata.yaml
+++ b/geps/gep-1731/metadata.yaml
@@ -4,7 +4,7 @@ number: 1731
name: HTTPRoute Retries
status: Experimental
# Any authors who contribute to the GEP in any way should be listed here using
-# their Github handle.
+# their GitHub handle.
authors:
- mikemorris
relationships:
@@ -28,7 +28,7 @@ relationships:
name: HTTPRoute Timeouts
description: Covers some overlapping considerations around when requests should be retried.
# references is a list of hyperlinks to relevant external references.
-# It's intended to be used for storing Github discussions, Google docs, etc.
+# It's intended to be used for storing GitHub discussions, Google docs, etc.
references:
- https://www.rfc-editor.org/rfc/rfc9110
- https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
diff --git a/geps/gep-2648/metadata.yaml b/geps/gep-2648/metadata.yaml
index fe9fe84336..7e9b54a867 100644
--- a/geps/gep-2648/metadata.yaml
+++ b/geps/gep-2648/metadata.yaml
@@ -4,7 +4,7 @@ number: 2648
name: Direct Policy Attachment
status: Provisional
# Any authors who contribute to the GEP in any way should be listed here using
-# their Github handle.
+# their GitHub handle.
authors:
- youngnick
- robscott
@@ -14,7 +14,7 @@ relationships:
number: 713
description: Split out Direct Policy Attachment into its own GEP
# references is a list of hyperlinks to relevant external references.
-# It's intended to be used for storing Github discussions, Google docs, etc.
+# It's intended to be used for storing GitHub discussions, Google docs, etc.
references:
- "https://github.com/kubernetes-sigs/gateway-api/discussions/2927"
# changelog is a list of hyperlinks to PRs that make changes to the GEP, in
diff --git a/geps/gep-2649/metadata.yaml b/geps/gep-2649/metadata.yaml
index b6eda3b455..403a0c72ec 100644
--- a/geps/gep-2649/metadata.yaml
+++ b/geps/gep-2649/metadata.yaml
@@ -12,7 +12,7 @@ relationships:
number: 713
description: Split out Inherited Policy Attachment
# references is a list of hyperlinks to relevant external references.
-# It's intended to be used for storing Github discussions, Google docs, etc.
+# It's intended to be used for storing GitHub discussions, Google docs, etc.
references:
- "https://github.com/kubernetes-sigs/gateway-api/discussions/2927"
# changelog is a list of hyperlinks to PRs that make changes to the GEP, in
diff --git a/geps/gep-2659/index.md b/geps/gep-2659/index.md
index b2838a7caf..57fbd19890 100644
--- a/geps/gep-2659/index.md
+++ b/geps/gep-2659/index.md
@@ -127,7 +127,7 @@ relationships:
# covered by an existing relationship.
seeAlso: {}
# references is a list of hyperlinks to relevant external references.
-# It's intended to be used for storing Github discussions, Google docs, etc.
+# It's intended to be used for storing GitHub discussions, Google docs, etc.
references: {}
# featureNames is a list of the feature names introduced by the GEP, if there
# are any. This will allow us to track which feature was introduced by which GEP.
diff --git a/geps/gep-696/metadata.yaml b/geps/gep-696/metadata.yaml
index efcc0d2f03..6bc1cfeb5a 100644
--- a/geps/gep-696/metadata.yaml
+++ b/geps/gep-696/metadata.yaml
@@ -4,7 +4,7 @@ number: 696
name: GEP template
status: Completed
# Any authors who contribute to the GEP in any way should be listed here using
-# their Github handle.
+# their GitHub handle.
authors:
- bowei
- robscott
@@ -25,7 +25,7 @@ relationships:
# covered by an existing relationship.
seeAlso: {}
# references is a list of hyperlinks to relevant external references.
-# It's intended to be used for storing Github discussions, Google docs, etc.
+# It's intended to be used for storing GitHub discussions, Google docs, etc.
references: {}
# featureNames is a list of the feature names introduced by the GEP, if there
# are any. This will allow us to track which feature was introduced by which GEP.
diff --git a/pkg/gep/gepdetail.go b/pkg/gep/gepdetail.go
index dd79302971..a8c2d1c714 100644
--- a/pkg/gep/gepdetail.go
+++ b/pkg/gep/gepdetail.go
@@ -56,7 +56,7 @@ type GEPDetail struct {
// Valid values are provided in the constants for the GEPStatus type.
Status GEPStatus `json:"status"`
- // The GEP's authors, listed as their Github handles.
+ // The GEP's authors, listed as their GitHub handles.
Authors []string `json:"authors"`
// Relationships describes the possible relationships between this GEP and
diff --git a/site-src/contributing/enhancement-requests.md b/site-src/contributing/enhancement-requests.md
index de693a5e14..6244e8c788 100644
--- a/site-src/contributing/enhancement-requests.md
+++ b/site-src/contributing/enhancement-requests.md
@@ -41,7 +41,7 @@ request for enhancement if that enhancement is non-trivial (which we will define
as either: _implicates changes to the API specification_
OR _has some kind of end-user impact_).
-Please use our [Github Discussions][discussion] forum as the initial place to
+Please use our [GitHub Discussions][discussion] forum as the initial place to
start, and feel free to bring that discussion up for synchronous conversation in
one of our [community meetings][meetings]. If the created request doesn't
include reference to a discussion and/or recordings of discussion in our
diff --git a/site-src/faq.md b/site-src/faq.md
index fa8b72a27e..4610d7d962 100644
--- a/site-src/faq.md
+++ b/site-src/faq.md
@@ -41,8 +41,8 @@ using an explicit object reference.
to use.
#### Where can I find Gateway API releases?
-Gateway API releases are tags of the [Github
-repository](https://github.com/kubernetes-sigs/gateway-api). The [Github
+Gateway API releases are tags of the [GitHub
+repository](https://github.com/kubernetes-sigs/gateway-api). The [GitHub
releases](https://github.com/kubernetes-sigs/gateway-api/releases) page shows
all the releases.
diff --git a/site-src/guides/implementers.md b/site-src/guides/implementers.md
index eed5e62ead..1c82a8eeaf 100644
--- a/site-src/guides/implementers.md
+++ b/site-src/guides/implementers.md
@@ -101,7 +101,7 @@ Gateway API conformance is version-specific. An implementation that passes
conformance for version N may not pass conformance for version N+1 without changes.
Implementations SHOULD submit a report from the conformance testing suite back
-to the Gateway API Github repo containing details of their testing.
+to the Gateway API GitHub repo containing details of their testing.
The conformance suite output includes the Gateway API version supported.
From d996a814e6cfef2894c9635dc18cda0bcb4f490f Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Mon, 21 Oct 2024 11:25:04 -0400
Subject: [PATCH 22/61] spelling: grpc
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-1911/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/geps/gep-1911/index.md b/geps/gep-1911/index.md
index ed25229444..cdcd8a2803 100644
--- a/geps/gep-1911/index.md
+++ b/geps/gep-1911/index.md
@@ -116,7 +116,7 @@ This was dropped in favour of supporting Kubernetes Standard Application Protoco
### Multiple Protocol Meta-resources
Rather than bundle protocol details into a single resource an alternative would be to create distinct meta resources.
-ie. `HTTP2Backend`, `GPRCBackend`, `WebsocketBackend`.
+ie. `HTTP2Backend`, `GRPCBackend`, `WebsocketBackend`.
The advantages of this approach are:
From f0ffbb75cc52d1b39e7275878ea4ec2062feb6e8 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 03:45:04 -0400
Subject: [PATCH 23/61] spelling: grpcroute
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
site-src/api-types/grpcroute.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/site-src/api-types/grpcroute.md b/site-src/api-types/grpcroute.md
index 4e528bf783..d18ce92398 100644
--- a/site-src/api-types/grpcroute.md
+++ b/site-src/api-types/grpcroute.md
@@ -272,7 +272,7 @@ Multiple GRPCRoutes can be attached to a single Gateway resource. Importantly,
only one Route rule may match each request. For more information on how conflict
resolution applies to merging, refer to the [API specification][grpcrouterule].
-[grpcroute]: /reference/spec/#gateway.networking.k8s.io/v1.GRPCPRoute
+[grpcroute]: /reference/spec/#gateway.networking.k8s.io/v1.GRPCRoute
[grpcrouterule]: /reference/spec/#gateway.networking.k8s.io/v1.GRPCRouteRule
[hostname]: /reference/spec/#gateway.networking.k8s.io/v1.Hostname
[rfc-3986]: https://tools.ietf.org/html/rfc3986
From bd52f921ea447acf779b95ec36a9a75dc83e5189 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Wed, 16 Oct 2024 14:08:23 -0400
Subject: [PATCH 24/61] spelling: has
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
site-src/blog/2023/0829-mesh-support.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/site-src/blog/2023/0829-mesh-support.md b/site-src/blog/2023/0829-mesh-support.md
index 3b8b7741ae..14b5f101de 100644
--- a/site-src/blog/2023/0829-mesh-support.md
+++ b/site-src/blog/2023/0829-mesh-support.md
@@ -1,7 +1,7 @@
---
description: >
We are excited to announce the v0.8.0 release of Gateway API, where service
- mesh support has has now reached Experimental status, we've introduced CEL
+ mesh support has now reached Experimental status, we've introduced CEL
validation and a Mesh conformance profile, and more!
---
From 341db08f44b6b1280eb12531d2a16402d70024db Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Mon, 21 Oct 2024 11:27:24 -0400
Subject: [PATCH 25/61] spelling: have
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
CHANGELOG/0.x-CHANGELOG.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG/0.x-CHANGELOG.md b/CHANGELOG/0.x-CHANGELOG.md
index 88c87dd7fc..e4186a7f8a 100644
--- a/CHANGELOG/0.x-CHANGELOG.md
+++ b/CHANGELOG/0.x-CHANGELOG.md
@@ -1089,7 +1089,7 @@ In this release, we've made two release channels available, `experimental` and
`standard`.
The `experimental` channel contains all resources and fields, while `standard`
-contains only resources that mave moved to beta status.
+contains only resources that have moved to beta status.
We've also added a way to flag particular fields within a resource as
experimental, and any fields marked in this way are only present in the
@@ -1274,7 +1274,7 @@ In this release, we've made two release channels available, `experimental` and
`standard`.
The `experimental` channel contains all resources and fields, while `standard`
-contains only resources that mave moved to beta status.
+contains only resources that have moved to beta status.
We've also added a way to flag particular fields within a resource as
experimental, and any fields marked in this way are only present in the
From 771f5427a737eaccc8cf2e2655d4852b35635225 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 03:46:57 -0400
Subject: [PATCH 26/61] spelling: http-route
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-1731/index.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/geps/gep-1731/index.md b/geps/gep-1731/index.md
index 0eedeb3ddf..91231cdc35 100644
--- a/geps/gep-1731/index.md
+++ b/geps/gep-1731/index.md
@@ -391,21 +391,21 @@ Basic support for configuring retries in HTTPRoute up to a specified maximum cou
Retrying requests based on HTTP status codes will be gated under the following features:
-* `SupportHTTPRRouteRetryBackendTimeout`
+* `SupportHTTPRouteRetryBackendTimeout`
* Will test that backend requests that exceed a BackendRequest timeout duration are retried if a `retry` stanza is configured.
-* `SupportHTTPRRouteRetryBackoff`
+* `SupportHTTPRouteRetryBackoff`
* Backoff will only be tested that a retry does not start before the duration specified for conformance, not that the backoff duration is precise.
* Not currently supportable by NGINX or HAProxy.
-* `SupportHTTPRRouteRetryCodes`
+* `SupportHTTPRouteRetryCodes`
* Only 500, 502, 503 and 504 will be tested for conformance.
* Traefik does not seem to support specifying error codes, and will only retry on backend timeouts.
-* `SupportHTTPRRouteRetryConnectionError`
+* `SupportHTTPRouteRetryConnectionError`
* Will test that connections interrupted by a TCP failure, disconnect or reset are retried if a `retry` stanza is configured.
From c70af0a3237c6b5b6ed0be17a57fef213e0b73aa Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 03:45:58 -0400
Subject: [PATCH 27/61] spelling: httpproxy
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-1282/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/geps/gep-1282/index.md b/geps/gep-1282/index.md
index c8a54f74a1..dead0babfa 100644
--- a/geps/gep-1282/index.md
+++ b/geps/gep-1282/index.md
@@ -53,7 +53,7 @@ We've got the following feature requests and discussions in the Gateway API repo
- [#1285](https://github.com/kubernetes-sigs/gateway-api/discussions/1285) has a more specific discussion about how different ingress implementations allow this to be configured today, whether that's with the Ingress resource or their own custom one. The great roundup that Candace did is reproduced in the next few bullet points.
* Istio uses a [DestinationRule resource with ClientTLSSettings](https://istio.io/latest/docs/reference/config/networking/destination-rule/#ClientTLSSettings) to capture TLS details, and the DestinationRule resource also holds traffic policy information like load balancing algorithm, connection pool size, and so on.
* Openshift’s Route resource allows the [configuration of reencryption](https://docs.openshift.com/container-platform/4.10/networking/routes/secured-routes.html#nw-ingress-creating-a-reencrypt-route-with-a-custom-certificate_secured-routes) specifically, along with custom certificate details.
- * Contour’s HTTPProxy captures TLS details using an Envoy client certificate, destination CA certificate, and optional SubjectName which sets what Envoy should expect to see from the backend service, all inside the HTTPProxy resource. It also requires either a Protocol field inside the HTTProxy, or an annotation on the Service that tells Contour that the service expects TLS. This is [all documented](https://projectcontour.io/docs/v1.21.1/config/upstream-tls/), but I should note that Contour’s docs use the Envoy convention where a backend in Gateway parlance is called an Upstream (which may be confusing if you’re not used to it).
+ * Contour’s HTTPProxy captures TLS details using an Envoy client certificate, destination CA certificate, and optional SubjectName which sets what Envoy should expect to see from the backend service, all inside the HTTPProxy resource. It also requires either a Protocol field inside the HTTPProxy, or an annotation on the Service that tells Contour that the service expects TLS. This is [all documented](https://projectcontour.io/docs/v1.21.1/config/upstream-tls/), but I should note that Contour’s docs use the Envoy convention where a backend in Gateway parlance is called an Upstream (which may be confusing if you’re not used to it).
* Linkerd uses a [Server resource](https://linkerd.io/2.11/reference/authorization-policy/#server) (which is functionally pretty similar to Service in that it associates a name with a Pod selector, but also has other details like if the service supports Proxy protocol), along with a ServerAuthorization resource that specifies some constructs that sit more at the service mesh level, including identity and access control.
In terms of other implementations existing use cases for features like this:
From ae52a6bdc35d4c5aa81cf762e3fb96429ba27b23 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Mon, 21 Oct 2024 11:37:48 -0400
Subject: [PATCH 28/61] spelling: httpredirect
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
...tredirect-hostname.yaml => invalid-httpredirect-hostname.yaml} | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename hack/invalid-examples/standard/httproute/{invalid-httredirect-hostname.yaml => invalid-httpredirect-hostname.yaml} (100%)
diff --git a/hack/invalid-examples/standard/httproute/invalid-httredirect-hostname.yaml b/hack/invalid-examples/standard/httproute/invalid-httpredirect-hostname.yaml
similarity index 100%
rename from hack/invalid-examples/standard/httproute/invalid-httredirect-hostname.yaml
rename to hack/invalid-examples/standard/httproute/invalid-httpredirect-hostname.yaml
From 6d6f2a41761150faf375472283fb1629fe1e8aff Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 03:07:39 -0400
Subject: [PATCH 29/61] spelling: https
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
conformance/echo-basic/grpc/grpc.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/conformance/echo-basic/grpc/grpc.go b/conformance/echo-basic/grpc/grpc.go
index ffb55189b9..e2f1b88ab8 100644
--- a/conformance/echo-basic/grpc/grpc.go
+++ b/conformance/echo-basic/grpc/grpc.go
@@ -55,7 +55,7 @@ type serverConfig struct {
// Controlled by TLS_SERVER_PRIVKEY env var
TLSServerPrivKey string
- // Controlled by HTPPS_PORT env var
+ // Controlled by HTTPS_PORT env var
HTTPSPort int
}
From c294db456e01561ef4b09550580696d37a037890 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 03:47:14 -0400
Subject: [PATCH 30/61] spelling: implementation
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
RELEASE.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/RELEASE.md b/RELEASE.md
index 307f33f519..d72758367e 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -70,7 +70,7 @@ The following steps must be done by one of the [Gateway API maintainers][gateway
- Run the `make build-install-yaml` command which will generate install files in the `release/` directory.
Attach these files to the GitHub release.
- Update the `README.md` and `site-src/guides/index.md` files to point links and examples to the new release.
-- Update the implementation table path (`nav.Implementations.Comparison`) in the nav of `mkdocs.yml` to point to the latest release file (for example Implementation Comparison points to `implmenetation-table-v1.2.0.md`). Add the now past version under `Past Version Comparisons`, and edit the text blurb in `mkdocs-generate-conformance.py` to also reflect the added past version.
+- Update the implementation table path (`nav.Implementations.Comparison`) in the nav of `mkdocs.yml` to point to the latest release file (for example Implementation Comparison points to `implementation-table-v1.2.0.md`). Add the now past version under `Past Version Comparisons`, and edit the text blurb in `mkdocs-generate-conformance.py` to also reflect the added past version.
#### For an **RC** release:
- Update `pkg/consts/consts.go` with the new semver tag (like `v1.2.0-rc1`) and any updates to the API review URL.
From ff59babe7a7abdd70c9bf3bb159ed4461a4573a3 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 03:47:19 -0400
Subject: [PATCH 31/61] spelling: improvements
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
CHANGELOG/1.2-TEAM.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHANGELOG/1.2-TEAM.md b/CHANGELOG/1.2-TEAM.md
index f52ba70025..ebd6283ded 100644
--- a/CHANGELOG/1.2-TEAM.md
+++ b/CHANGELOG/1.2-TEAM.md
@@ -7,7 +7,7 @@
| BackendProtocol Support | @dprotaso |
| HTTPRoute Retries | @mikemorris |
| Percentage-based request mirroring | @jakebennert |
-| Backend TLS Config improvments | @mkosieradzki, @LiorLieberman |
+| Backend TLS Config improvements | @mkosieradzki, @LiorLieberman |
| Named Route Rules | @guicassolato, @howardjohn |
| Conformance Profiles and Reports | @mlavacca, @shaneutt, @xtineskim |
| Gateway API Maintainers | @mlavacca, @robscott, @shaneutt, @youngnick |
From d9ef37e15ed713744eb32100a04a1bd37d226b2b Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Wed, 16 Oct 2024 14:28:47 -0400
Subject: [PATCH 32/61] spelling: in
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-724/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/geps/gep-724/index.md b/geps/gep-724/index.md
index bb1e9854f9..5fdd108f8b 100644
--- a/geps/gep-724/index.md
+++ b/geps/gep-724/index.md
@@ -618,7 +618,7 @@ bar namespace. Unfortunately that would be very difficult to recreate with
ReferenceGrant.
ReferenceGrant is fundamentally about trusting references from resource of kind
-Foo in to resources of kind Bar. Names and section names are intentionally
+Foo in resources of kind Bar. Names and section names are intentionally
excluded. If we added both of those concepts to ReferenceGrant, this would be
possible, but quite complex and verbose. This is what the example from above
would look like with this approach:
From 506eab3d1fc6e5817ee5d8eff3e543ae82a730cc Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Mon, 21 Oct 2024 11:26:08 -0400
Subject: [PATCH 33/61] spelling: infrastructure
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
pkg/features/gateway.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pkg/features/gateway.go b/pkg/features/gateway.go
index a90a32a4b3..7fc1a20db0 100644
--- a/pkg/features/gateway.go
+++ b/pkg/features/gateway.go
@@ -58,7 +58,7 @@ const (
SupportGatewayHTTPListenerIsolation FeatureName = "GatewayHTTPListenerIsolation"
// SupportGatewayInfrastructureAnnotations option indicates support for
- // spec.infrastructure.annotations and spec.infrastrucutre.labels
+ // spec.infrastructure.annotations and spec.infrastructure.labels
SupportGatewayInfrastructurePropagation FeatureName = "GatewayInfrastructurePropagation"
)
From 847382929fbbb223f8792306a057770e2d0ab1c1 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Wed, 16 Oct 2024 14:16:46 -0400
Subject: [PATCH 34/61] spelling: into
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-1364/index.md | 2 +-
geps/gep-1619/index.md | 2 +-
geps/gep-713/index.md | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/geps/gep-1364/index.md b/geps/gep-1364/index.md
index 5afa356347..0ff89c5007 100644
--- a/geps/gep-1364/index.md
+++ b/geps/gep-1364/index.md
@@ -418,7 +418,7 @@ For many implementations (certainly for Envoy-based ones), getting this informat
correctly and avoiding races on applying it is surprisingly difficult.
For this reason, this GEP proposes that we exclude the `Ready` condition from Core
-conformance, and make it a feature that implementations may opt in to - making it
+conformance, and make it a feature that implementations may opt into - making it
an Extended condition.
It will have the following behavior:
diff --git a/geps/gep-1619/index.md b/geps/gep-1619/index.md
index 12316812e7..a1e41138f2 100644
--- a/geps/gep-1619/index.md
+++ b/geps/gep-1619/index.md
@@ -1069,7 +1069,7 @@ TODO
### Open Questions
- What happens when session persistence causes traffic splitting scenarios to overload a backend?
-- Should we add status somewhere when a user gets in to a "risky" configuration with session persistence?
+- Should we add status somewhere when a user gets into a "risky" configuration with session persistence?
- Should there be an API configuration field that specifies how already established sessions are handled?
- How do implementations drain established sessions during backend upgrades without disruption?
- Do we need a "session draining timeout" as documented by [A55: xDS-Based Stateful Session Affinity for Proxyless gRPC](https://github.com/grpc/proposal/blob/master/A55-xds-stateful-session-affinity.md#background)
diff --git a/geps/gep-713/index.md b/geps/gep-713/index.md
index f6b51e7c4c..fe0a6455a0 100644
--- a/geps/gep-713/index.md
+++ b/geps/gep-713/index.md
@@ -786,7 +786,7 @@ This solution:
- is low cost in terms of apiserver updates (because it's only on the GatewayClass,
and only on implementation startup)
- provides a standard place for all users to look for relevant objects
-- ties in to the Conformance Profiles design and other efforts about GatewayClass
+- ties into the Conformance Profiles design and other efforts about GatewayClass
status
#### Standard status stanza
From 0b7960862f2bd79277fdcec97c96bced37de9b82 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 03:47:24 -0400
Subject: [PATCH 35/61] spelling: intuitive
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-957/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/geps/gep-957/index.md b/geps/gep-957/index.md
index f4de43e304..577076a16d 100644
--- a/geps/gep-957/index.md
+++ b/geps/gep-957/index.md
@@ -120,7 +120,7 @@ spec:
Port matching can be supported if SectionName accepts port numbers in addition
to listener names. This approach results in a less explicit API when a ParentRef
points to a resource that is not `Gateway`. For example, an implementation may
-attach a route to an `Mesh` CRD. In this case, it's less inituitive to set
+attach a route to an `Mesh` CRD. In this case, it's less intuitive to set
`ParentRef.SectionName` to `443` to express `route all traffic whose destination
port is 443 to ...`. It also complicates the validation on SectionName in order
to differentiate between a listener name and a port number.
From f80438f73e68ec7590e50039ea84309eacfcebdb Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Wed, 16 Oct 2024 14:10:56 -0400
Subject: [PATCH 36/61] spelling: its
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-1709/index.md | 2 +-
geps/gep-1911/index.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/geps/gep-1709/index.md b/geps/gep-1709/index.md
index 9914da2549..c145975277 100644
--- a/geps/gep-1709/index.md
+++ b/geps/gep-1709/index.md
@@ -358,7 +358,7 @@ profiles:
> **WARNING**: It is an important clarification that this is NOT a full
> Kubernetes API. It uses `TypeMeta` for some fields that made sense to re-use
-> and were familiar, but otherwise has it's own structure. It is not a [Custom
+> and were familiar, but otherwise has its own structure. It is not a [Custom
> Resource Definition (CRD)][crd] nor will it be made available along with our
> CRDs. It will be used only by conformance test tooling.
diff --git a/geps/gep-1911/index.md b/geps/gep-1911/index.md
index cdcd8a2803..d0db118a75 100644
--- a/geps/gep-1911/index.md
+++ b/geps/gep-1911/index.md
@@ -48,7 +48,7 @@ At the moment there exists three defined constants:
### New Protocols & Reserved Prefix
-To add support for a new protocol it should first become a Kubernetes Standard Application Protocol by updating the [KEP-3726][kep-3726]. [KEP-3726][kep-3726] also states the `appProtocol` field accepts a domain-prefixed implementation specific value. Thus, if the suggested protocol is not suited to have a `kubernetes.io/*` prefix, then the Gateway API MAY support the new protocol using it's own prefix `gateway.networking.k8s.io/*`. Please make a PR to this GEP.
+To add support for a new protocol it should first become a Kubernetes Standard Application Protocol by updating the [KEP-3726][kep-3726]. [KEP-3726][kep-3726] also states the `appProtocol` field accepts a domain-prefixed implementation specific value. Thus, if the suggested protocol is not suited to have a `kubernetes.io/*` prefix, then the Gateway API MAY support the new protocol using its own prefix `gateway.networking.k8s.io/*`. Please make a PR to this GEP.
For example we may want to add a sentinel `appProtocol` value that prevents Gateway implementations from discovering the protocol of the application. Instead they should just refer to the Service's `protocol` field. Such a constant was rejected upstream (https://github.com/kubernetes/enhancements/pull/4106) but as an example it could be defined in a future addition to this GEP as `gateway.networking.k8s.io/no-sniff`.
From dd6ea6c475ec2eff3e8aa60fc083456f6996cc19 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 03:47:51 -0400
Subject: [PATCH 37/61] spelling: linked
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-1731/metadata.yaml | 2 +-
geps/gep-2659/index.md | 2 +-
geps/gep-696/metadata.yaml | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/geps/gep-1731/metadata.yaml b/geps/gep-1731/metadata.yaml
index 9b8fee555a..0d183dc274 100644
--- a/geps/gep-1731/metadata.yaml
+++ b/geps/gep-1731/metadata.yaml
@@ -13,7 +13,7 @@ relationships:
# set back to this GEP, and MUST be moved to Declined.
obsoletes: {}
obsoletedBy: {}
- # extends indicates that a GEP extends the linkned GEP, adding more detail
+ # extends indicates that a GEP extends the linked GEP, adding more detail
# or additional implementation. The extended GEP MUST have its extendedBy
# field set back to this GEP.
extends: {}
diff --git a/geps/gep-2659/index.md b/geps/gep-2659/index.md
index 57fbd19890..1ea2d7b9a0 100644
--- a/geps/gep-2659/index.md
+++ b/geps/gep-2659/index.md
@@ -118,7 +118,7 @@ relationships:
# set back to this GEP, and MUST be moved to Declined.
obsoletes: {}
obsoletedBy: {}
- # extends indicates that a GEP extends the linkned GEP, adding more detail
+ # extends indicates that a GEP extends the linked GEP, adding more detail
# or additional implementation. The extended GEP MUST have its extendedBy
# field set back to this GEP.
extends: {}
diff --git a/geps/gep-696/metadata.yaml b/geps/gep-696/metadata.yaml
index 6bc1cfeb5a..cd15a89cd4 100644
--- a/geps/gep-696/metadata.yaml
+++ b/geps/gep-696/metadata.yaml
@@ -16,7 +16,7 @@ relationships:
# set back to this GEP, and MUST be moved to Declined.
obsoletes: {}
obsoletedBy: {}
- # extends indicates that a GEP extends the linkned GEP, adding more detail
+ # extends indicates that a GEP extends the linked GEP, adding more detail
# or additional implementation. The extended GEP MUST have its extendedBy
# field set back to this GEP.
extends: {}
From f2b2f1557d550998067f21ea33fa34dbaef6cf3e Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 03:48:03 -0400
Subject: [PATCH 38/61] spelling: maintainers
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-2659/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/geps/gep-2659/index.md b/geps/gep-2659/index.md
index 1ea2d7b9a0..3e11ff071a 100644
--- a/geps/gep-2659/index.md
+++ b/geps/gep-2659/index.md
@@ -87,7 +87,7 @@ Memorandum GEPs after this GEP is merged.
### Addition of YAML metadata file
-The core Gateway API mainatainers were hoping not to need metadata YAMLs for a
+The core Gateway API maintainers were hoping not to need metadata YAMLs for a
while, but the addition of relationships has turbocharged the need for machine
parseable GEP metadata.
From 96373b809638b199e10bc8abb574713016c67597 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 03:48:07 -0400
Subject: [PATCH 39/61] spelling: maintenance
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-1686/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/geps/gep-1686/index.md b/geps/gep-1686/index.md
index d80bdfa042..bc903efc94 100644
--- a/geps/gep-1686/index.md
+++ b/geps/gep-1686/index.md
@@ -25,7 +25,7 @@ GAMMA intends to introduce a "Mesh" [conformance profile](https://gateway-api.si
This approach will enable service meshes to certify that an implementation follows the GAMMA spec without requiring a North/South implementation, and importantly avoid any expectation that North/South Gateway API implementations expand their scope to understand GAMMA and E/W traffic flows.
-Leveraging existing tests for common functionality between N/S and E/W implementations will both ensure consistency across Gateway API implementations and help limit the maintence burden for the conformance testing suite.
+Leveraging existing tests for common functionality between N/S and E/W implementations will both ensure consistency across Gateway API implementations and help limit the maintenance burden for the conformance testing suite.
### Support Levels
From d71825baf597b3b692bbe19e74c93bddafaa0590 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 03:48:17 -0400
Subject: [PATCH 40/61] spelling: maximum
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-1731/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/geps/gep-1731/index.md b/geps/gep-1731/index.md
index 91231cdc35..cb479ed126 100644
--- a/geps/gep-1731/index.md
+++ b/geps/gep-1731/index.md
@@ -272,7 +272,7 @@ type HTTPRouteRetry struct {
//
Codes []HTTPRouteRetryStatusCode `json:"codes,omitempty"`
- // Attempts specifies the maxmimum number of times an individual request
+ // Attempts specifies the maximum number of times an individual request
// from the gateway to a backend should be retried.
//
// If the maximum number of retries has been attempted without a successful
From 264f5a2d5ad9c3b87822509c9d1843e2acdb5498 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Mon, 21 Oct 2024 11:30:17 -0400
Subject: [PATCH 41/61] spelling: negotiated
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
conformance/echo-basic/grpcecho.proto | 4 ++--
conformance/echo-basic/grpcechoserver/grpcecho.pb.go | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/conformance/echo-basic/grpcecho.proto b/conformance/echo-basic/grpcecho.proto
index 86c3fe6aed..df744e5b12 100644
--- a/conformance/echo-basic/grpcecho.proto
+++ b/conformance/echo-basic/grpcecho.proto
@@ -46,13 +46,13 @@ message TLSAssertions {
// The TLS version used by the connection, e.g. "TLSv1.3"
string version = 1;
- // The negotatiated protocol.
+ // The negotiated protocol.
string negotiated_protocol = 2;
// The server name indication extension sent by the client.
string server_name = 3;
- // The cipher suite negotatiated for the connection, e.g. "TLS_EDCHE_ECDSA_WITH_AES_128_GCM_SHA256"
+ // The cipher suite negotiated for the connection, e.g. "TLS_EDCHE_ECDSA_WITH_AES_128_GCM_SHA256"
string cipher_suite = 4;
// The parsed certificates sent by the peer, in the order in which they were sent.
diff --git a/conformance/echo-basic/grpcechoserver/grpcecho.pb.go b/conformance/echo-basic/grpcechoserver/grpcecho.pb.go
index 9585b7760b..88207f3fe4 100644
--- a/conformance/echo-basic/grpcechoserver/grpcecho.pb.go
+++ b/conformance/echo-basic/grpcechoserver/grpcecho.pb.go
@@ -177,11 +177,11 @@ type TLSAssertions struct {
// The TLS version used by the connection, e.g. "TLSv1.3"
Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
- // The negotatiated protocol.
+ // The negotiated protocol.
NegotiatedProtocol string `protobuf:"bytes,2,opt,name=negotiated_protocol,json=negotiatedProtocol,proto3" json:"negotiated_protocol,omitempty"`
// The server name indication extension sent by the client.
ServerName string `protobuf:"bytes,3,opt,name=server_name,json=serverName,proto3" json:"server_name,omitempty"`
- // The cipher suite negotatiated for the connection, e.g. "TLS_EDCHE_ECDSA_WITH_AES_128_GCM_SHA256"
+ // The cipher suite negotiated for the connection, e.g. "TLS_EDCHE_ECDSA_WITH_AES_128_GCM_SHA256"
CipherSuite string `protobuf:"bytes,4,opt,name=cipher_suite,json=cipherSuite,proto3" json:"cipher_suite,omitempty"`
// The parsed certificates sent by the peer, in the order in which they were sent.
PeerCertificates []string `protobuf:"bytes,5,rep,name=peer_certificates,json=peerCertificates,proto3" json:"peer_certificates,omitempty"`
From 84d09b1325efe1734e8e27d0eaf44974fbe0cdd5 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Mon, 21 Oct 2024 11:30:37 -0400
Subject: [PATCH 42/61] spelling: networking
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-713/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/geps/gep-713/index.md b/geps/gep-713/index.md
index fe0a6455a0..be5cbd56b3 100644
--- a/geps/gep-713/index.md
+++ b/geps/gep-713/index.md
@@ -868,7 +868,7 @@ contains `status` information.
```yaml
kind: EffectivePolicy
-apiVersion: gateway.networkking.k8s.io/v1alpha2
+apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: targeted-object
namespace: targeted-object-namespace
From fc1f2e12353b6ee3c94c27723ce1ad9216a67439 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Wed, 16 Oct 2024 14:10:38 -0400
Subject: [PATCH 43/61] spelling: nonexistent
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
apis/v1/shared_types.go | 2 +-
apis/v1alpha2/tcproute_types.go | 2 +-
apis/v1alpha2/tlsroute_types.go | 2 +-
apis/v1alpha2/udproute_types.go | 2 +-
.../gateway.networking.k8s.io_grpcroutes.yaml | 2 +-
.../gateway.networking.k8s.io_httproutes.yaml | 4 ++--
.../gateway.networking.k8s.io_tcproutes.yaml | 4 ++--
.../gateway.networking.k8s.io_tlsroutes.yaml | 4 ++--
.../gateway.networking.k8s.io_udproutes.yaml | 4 ++--
.../gateway.networking.k8s.io_grpcroutes.yaml | 2 +-
.../gateway.networking.k8s.io_httproutes.yaml | 4 ++--
geps/gep-1016/index.md | 2 +-
geps/gep-1364/index.md | 12 ++++++------
13 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/apis/v1/shared_types.go b/apis/v1/shared_types.go
index cebd836f9f..ea581ee22f 100644
--- a/apis/v1/shared_types.go
+++ b/apis/v1/shared_types.go
@@ -469,7 +469,7 @@ type RouteParentStatus struct {
// There are a number of cases where the "Accepted" condition may not be set
// due to lack of controller visibility, that includes when:
//
- // * The Route refers to a non-existent parent.
+ // * The Route refers to a nonexistent parent.
// * The Route is of a type that the controller does not support.
// * The Route is in a namespace the controller does not have access to.
//
diff --git a/apis/v1alpha2/tcproute_types.go b/apis/v1alpha2/tcproute_types.go
index b79253dd33..e383af495d 100644
--- a/apis/v1alpha2/tcproute_types.go
+++ b/apis/v1alpha2/tcproute_types.go
@@ -67,7 +67,7 @@ type TCPRouteRule struct {
Name *SectionName `json:"name,omitempty"`
// BackendRefs defines the backend(s) where matching requests should be
- // sent. If unspecified or invalid (refers to a non-existent resource or a
+ // sent. If unspecified or invalid (refers to a nonexistent resource or a
// Service with no endpoints), the underlying implementation MUST actively
// reject connection attempts to this backend. Connection rejections must
// respect weight; if an invalid backend is requested to have 80% of
diff --git a/apis/v1alpha2/tlsroute_types.go b/apis/v1alpha2/tlsroute_types.go
index 26dfde77c7..f21fe3fc50 100644
--- a/apis/v1alpha2/tlsroute_types.go
+++ b/apis/v1alpha2/tlsroute_types.go
@@ -108,7 +108,7 @@ type TLSRouteRule struct {
Name *SectionName `json:"name,omitempty"`
// BackendRefs defines the backend(s) where matching requests should be
- // sent. If unspecified or invalid (refers to a non-existent resource or
+ // sent. If unspecified or invalid (refers to a nonexistent resource or
// a Service with no endpoints), the rule performs no forwarding; if no
// filters are specified that would result in a response being sent, the
// underlying implementation must actively reject request attempts to this
diff --git a/apis/v1alpha2/udproute_types.go b/apis/v1alpha2/udproute_types.go
index 9e7fe3ff80..c7e92b92b4 100644
--- a/apis/v1alpha2/udproute_types.go
+++ b/apis/v1alpha2/udproute_types.go
@@ -67,7 +67,7 @@ type UDPRouteRule struct {
Name *SectionName `json:"name,omitempty"`
// BackendRefs defines the backend(s) where matching requests should be
- // sent. If unspecified or invalid (refers to a non-existent resource or a
+ // sent. If unspecified or invalid (refers to a nonexistent resource or a
// Service with no endpoints), the underlying implementation MUST actively
// reject connection attempts to this backend. Packet drops must
// respect weight; if an invalid backend is requested to have 80% of
diff --git a/config/crd/experimental/gateway.networking.k8s.io_grpcroutes.yaml b/config/crd/experimental/gateway.networking.k8s.io_grpcroutes.yaml
index a8df1d9d5e..67398a0a07 100644
--- a/config/crd/experimental/gateway.networking.k8s.io_grpcroutes.yaml
+++ b/config/crd/experimental/gateway.networking.k8s.io_grpcroutes.yaml
@@ -1992,7 +1992,7 @@ spec:
There are a number of cases where the "Accepted" condition may not be set
due to lack of controller visibility, that includes when:
- * The Route refers to a non-existent parent.
+ * The Route refers to a nonexistent parent.
* The Route is of a type that the controller does not support.
* The Route is in a namespace the controller does not have access to.
items:
diff --git a/config/crd/experimental/gateway.networking.k8s.io_httproutes.yaml b/config/crd/experimental/gateway.networking.k8s.io_httproutes.yaml
index 4088c596cb..25ad33e603 100644
--- a/config/crd/experimental/gateway.networking.k8s.io_httproutes.yaml
+++ b/config/crd/experimental/gateway.networking.k8s.io_httproutes.yaml
@@ -2848,7 +2848,7 @@ spec:
There are a number of cases where the "Accepted" condition may not be set
due to lack of controller visibility, that includes when:
- * The Route refers to a non-existent parent.
+ * The Route refers to a nonexistent parent.
* The Route is of a type that the controller does not support.
* The Route is in a namespace the controller does not have access to.
items:
@@ -5914,7 +5914,7 @@ spec:
There are a number of cases where the "Accepted" condition may not be set
due to lack of controller visibility, that includes when:
- * The Route refers to a non-existent parent.
+ * The Route refers to a nonexistent parent.
* The Route is of a type that the controller does not support.
* The Route is in a namespace the controller does not have access to.
items:
diff --git a/config/crd/experimental/gateway.networking.k8s.io_tcproutes.yaml b/config/crd/experimental/gateway.networking.k8s.io_tcproutes.yaml
index b37d6641f4..0b18d4f99d 100644
--- a/config/crd/experimental/gateway.networking.k8s.io_tcproutes.yaml
+++ b/config/crd/experimental/gateway.networking.k8s.io_tcproutes.yaml
@@ -300,7 +300,7 @@ spec:
backendRefs:
description: |-
BackendRefs defines the backend(s) where matching requests should be
- sent. If unspecified or invalid (refers to a non-existent resource or a
+ sent. If unspecified or invalid (refers to a nonexistent resource or a
Service with no endpoints), the underlying implementation MUST actively
reject connection attempts to this backend. Connection rejections must
respect weight; if an invalid backend is requested to have 80% of
@@ -497,7 +497,7 @@ spec:
There are a number of cases where the "Accepted" condition may not be set
due to lack of controller visibility, that includes when:
- * The Route refers to a non-existent parent.
+ * The Route refers to a nonexistent parent.
* The Route is of a type that the controller does not support.
* The Route is in a namespace the controller does not have access to.
items:
diff --git a/config/crd/experimental/gateway.networking.k8s.io_tlsroutes.yaml b/config/crd/experimental/gateway.networking.k8s.io_tlsroutes.yaml
index 63a046f38c..081d974bd2 100644
--- a/config/crd/experimental/gateway.networking.k8s.io_tlsroutes.yaml
+++ b/config/crd/experimental/gateway.networking.k8s.io_tlsroutes.yaml
@@ -360,7 +360,7 @@ spec:
backendRefs:
description: |-
BackendRefs defines the backend(s) where matching requests should be
- sent. If unspecified or invalid (refers to a non-existent resource or
+ sent. If unspecified or invalid (refers to a nonexistent resource or
a Service with no endpoints), the rule performs no forwarding; if no
filters are specified that would result in a response being sent, the
underlying implementation must actively reject request attempts to this
@@ -560,7 +560,7 @@ spec:
There are a number of cases where the "Accepted" condition may not be set
due to lack of controller visibility, that includes when:
- * The Route refers to a non-existent parent.
+ * The Route refers to a nonexistent parent.
* The Route is of a type that the controller does not support.
* The Route is in a namespace the controller does not have access to.
items:
diff --git a/config/crd/experimental/gateway.networking.k8s.io_udproutes.yaml b/config/crd/experimental/gateway.networking.k8s.io_udproutes.yaml
index 25a712a798..4c58a8da0d 100644
--- a/config/crd/experimental/gateway.networking.k8s.io_udproutes.yaml
+++ b/config/crd/experimental/gateway.networking.k8s.io_udproutes.yaml
@@ -300,7 +300,7 @@ spec:
backendRefs:
description: |-
BackendRefs defines the backend(s) where matching requests should be
- sent. If unspecified or invalid (refers to a non-existent resource or a
+ sent. If unspecified or invalid (refers to a nonexistent resource or a
Service with no endpoints), the underlying implementation MUST actively
reject connection attempts to this backend. Packet drops must
respect weight; if an invalid backend is requested to have 80% of
@@ -497,7 +497,7 @@ spec:
There are a number of cases where the "Accepted" condition may not be set
due to lack of controller visibility, that includes when:
- * The Route refers to a non-existent parent.
+ * The Route refers to a nonexistent parent.
* The Route is of a type that the controller does not support.
* The Route is in a namespace the controller does not have access to.
items:
diff --git a/config/crd/standard/gateway.networking.k8s.io_grpcroutes.yaml b/config/crd/standard/gateway.networking.k8s.io_grpcroutes.yaml
index 4331775179..3af65518e2 100644
--- a/config/crd/standard/gateway.networking.k8s.io_grpcroutes.yaml
+++ b/config/crd/standard/gateway.networking.k8s.io_grpcroutes.yaml
@@ -1781,7 +1781,7 @@ spec:
There are a number of cases where the "Accepted" condition may not be set
due to lack of controller visibility, that includes when:
- * The Route refers to a non-existent parent.
+ * The Route refers to a nonexistent parent.
* The Route is of a type that the controller does not support.
* The Route is in a namespace the controller does not have access to.
items:
diff --git a/config/crd/standard/gateway.networking.k8s.io_httproutes.yaml b/config/crd/standard/gateway.networking.k8s.io_httproutes.yaml
index 3d810c1e6b..cf3724e2a3 100644
--- a/config/crd/standard/gateway.networking.k8s.io_httproutes.yaml
+++ b/config/crd/standard/gateway.networking.k8s.io_httproutes.yaml
@@ -2547,7 +2547,7 @@ spec:
There are a number of cases where the "Accepted" condition may not be set
due to lack of controller visibility, that includes when:
- * The Route refers to a non-existent parent.
+ * The Route refers to a nonexistent parent.
* The Route is of a type that the controller does not support.
* The Route is in a namespace the controller does not have access to.
items:
@@ -5298,7 +5298,7 @@ spec:
There are a number of cases where the "Accepted" condition may not be set
due to lack of controller visibility, that includes when:
- * The Route refers to a non-existent parent.
+ * The Route refers to a nonexistent parent.
* The Route is of a type that the controller does not support.
* The Route is in a namespace the controller does not have access to.
items:
diff --git a/geps/gep-1016/index.md b/geps/gep-1016/index.md
index 8ce35205c0..08576730ca 100644
--- a/geps/gep-1016/index.md
+++ b/geps/gep-1016/index.md
@@ -424,7 +424,7 @@ type GRPCRouteRule struct {
// BackendRefs defines the backend(s) where matching requests should be
// sent.
- // If unspecified or invalid (refers to a non-existent resource or a Service
+ // If unspecified or invalid (refers to a nonexistent resource or a Service
// with no endpoints), the rule performs no forwarding. If there are also no
// filters specified that would result in a response being sent, a gRPC `UNAVAILABLE`
// status is returned. `UNAVAILABLE` responses must be sent so that the overall
diff --git a/geps/gep-1364/index.md b/geps/gep-1364/index.md
index 0ff89c5007..25c879f907 100644
--- a/geps/gep-1364/index.md
+++ b/geps/gep-1364/index.md
@@ -323,13 +323,13 @@ Note that some classes of inter-resource reference failure do _not_ cause a reso
to become unattached and stop being accepted (that is, to have the `Accepted`
condition set to `status: false`).
-* Non-existent Service backends - if the backend does not exist on a HTTPRoute that
+* Nonexistent Service backends - if the backend does not exist on a HTTPRoute that
is otherwise okay, then the data plane must generate 500s for traffic that matches
that HTTPRoute. In this case, the `Accepted` Condition must be true, and the
`ResolvedRefs` Condition must be false, with reasons and messages indicating that
the backend services do not exist.
* HTTPRoutes with *all* backends in other namespaces, but not permitted by ReferenceGrants.
-In this case, the "non-existent service backends" rules apply, and 500s must be
+In this case, the "nonexistent service backends" rules apply, and 500s must be
generated. In this case, again, the `Accepted` condition is true, and the
`ResolvedRefs` Condition is false, with reasons and messages indicating that the
backend services are not reachable.
@@ -359,21 +359,21 @@ Examples of Conditions:
* HTTPRoute with one match with one backend that is valid. `Accepted` is true,
`ResolvedRefs` is true.
-* HTTPRoute with one match with one backend that is a non-existent Service backend.
+* HTTPRoute with one match with one backend that is a nonexistent Service backend.
The `Accepted` Condition is true, the `ResolvedRefs` condition is false, with
a reason of `BackendNotFound`. `Accepted` is true in this case because the data
path must respond to requests that would be sent to that backend with a 500 response.
-* HTTPRoute with one match with two backends, one of which is a non-existent Service
+* HTTPRoute with one match with two backends, one of which is a nonexistent Service
backend. The `Accepted` Condition is true, the `ResolvedRefs` condition is false.
`Accepted` is true in this case because the data path must respond to a percentage
-of the requests matching the rule corresponding to the weighting of the non-existent
+of the requests matching the rule corresponding to the weighting of the nonexistent
backend (which would be fifty percent unless weights are applied).
* HTTPRoute with one match with one backend that is in a different namespace, and
does _not_ have a ReferenceGrant permitting that access. The `Accepted` condition
is true, and the `ResolvedRefs` Condition is false, with a reason of `RefNotPermitted`.
As before, `Accepted` is true because in this case, the data path must be
programmed with 500s for the match.
-* TCPRoute with one match with a backend that is a non-existent Service. `Accepted`
+* TCPRoute with one match with a backend that is a nonexistent Service. `Accepted`
is false, and `ResolvedRefs` is false. `Accepted` is false in this case because
there is not enough information to program any rules to handle the traffic in the
underlying data plane - TCP doesn't have a way to say "this is a valid destination
From 2ddf6edb754d00389b9c13d309a9af052d2905a4 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Wed, 16 Oct 2024 14:11:19 -0400
Subject: [PATCH 44/61] spelling: or
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
conformance/apis/v1/result.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/conformance/apis/v1/result.go b/conformance/apis/v1/result.go
index f3a826c4a2..0fbaec6570 100644
--- a/conformance/apis/v1/result.go
+++ b/conformance/apis/v1/result.go
@@ -29,7 +29,7 @@ var (
// tests passing without any failures, but some were skipped.
Partial Result = "partial"
- // Failure indicates that the test run concluded in one ore more tests
+ // Failure indicates that the test run concluded in one or more tests
// failing to complete successfully.
Failure Result = "failure"
)
From 0a3553f68558ad43b5b3e0a2855fccd84906d8a6 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 03:49:59 -0400
Subject: [PATCH 45/61] spelling: overridden
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-1742/index.md | 2 +-
geps/gep-3155/index.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/geps/gep-1742/index.md b/geps/gep-1742/index.md
index 39ab142b86..2019b5e505 100644
--- a/geps/gep-1742/index.md
+++ b/geps/gep-1742/index.md
@@ -476,7 +476,7 @@ Timeouts could be configured using policy attachments or in objects other than `
Instead of configuring timeouts directly on an API object, they could be configured using policy
attachments. The advantage to this approach would be that timeout policies can be not only
-configured for an `HTTPRouteRule`, but can also be added/overriden at a more fine
+configured for an `HTTPRouteRule`, but can also be added/overridden at a more fine
(e.g., `HTTPBackendRef`) or coarse (e.g. `HTTPRoute`) level of granularity.
The downside, however, is complexity introduced for the most common use case, adding a simple
diff --git a/geps/gep-3155/index.md b/geps/gep-3155/index.md
index 8652b3b13b..2fb1089295 100644
--- a/geps/gep-3155/index.md
+++ b/geps/gep-3155/index.md
@@ -64,7 +64,7 @@ type GatewayBackendTLS struct {
// ClientCertificateRef can reference to standard Kubernetes resources, i.e.
// Secret, or implementation-specific custom resources.
//
- // This setting can be overriden on the service level by use of BackendTLSPolicy.
+ // This setting can be overridden on the service level by use of BackendTLSPolicy.
ClientCertificateRef SecretObjectReference `json:"clientCertificateRef,omitempty"`
}
```
From a5b0dec58b56b0cdbba2f75ff66f51c270771623 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 03:50:11 -0400
Subject: [PATCH 46/61] spelling: possible
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-2648/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/geps/gep-2648/index.md b/geps/gep-2648/index.md
index ae3ebf389c..05a0a44667 100644
--- a/geps/gep-2648/index.md
+++ b/geps/gep-2648/index.md
@@ -300,7 +300,7 @@ const (
Implementations that use Direct Policy objects SHOULD put a Condition into
`status.Conditions` of any objects affected by a Direct Policy, if that field
is present. Ideally, there should be a set of Conditions that can be namespaced
-by the implementing controller, but if that is not posisble, use the guidance below.
+by the implementing controller, but if that is not possible, use the guidance below.
If they do, that Condition MUST have a `type` ending in `PolicyAffected` (like
`gateway.networking.k8s.io/PolicyAffected`),
From f4ee83e9843c3bd3e99d701b524a956813e01d8a Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Wed, 16 Oct 2024 14:11:27 -0400
Subject: [PATCH 47/61] spelling: preexisting
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
Makefile | 6 +++---
geps/gep-3171/index.md | 2 +-
site-src/contributing/devguide.md | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/Makefile b/Makefile
index 7ef6a2a4a7..4bde1cc5e5 100644
--- a/Makefile
+++ b/Makefile
@@ -92,16 +92,16 @@ test.crds-validation:
conformance:
go test ${GO_TEST_FLAGS} -v ./conformance -run TestConformance -args ${CONFORMANCE_FLAGS}
-# Install CRD's and example resources to a pre-existing cluster.
+# Install CRD's and example resources to a preexisting cluster.
.PHONY: install
install: crd example
-# Install the CRD's to a pre-existing cluster.
+# Install the CRD's to a preexisting cluster.
.PHONY: crd
crd:
kubectl kustomize config/crd | kubectl apply -f -
-# Install the example resources to a pre-existing cluster.
+# Install the example resources to a preexisting cluster.
.PHONY: example
example:
hack/install-examples.sh
diff --git a/geps/gep-3171/index.md b/geps/gep-3171/index.md
index bb035a96ea..a7e030a871 100644
--- a/geps/gep-3171/index.md
+++ b/geps/gep-3171/index.md
@@ -17,7 +17,7 @@ Successfully implement the feature.
[Request Mirroring](https://gateway-api.sigs.k8s.io/guides/http-request-mirroring/) is a feature that allows a user to mirror requests going to some backend A along to some other specified backend B. Right now Request Mirroring is an all or nothing feature – either 100% of request are mirrored, or 0% are. Percentage-based Request Mirroring will allow users to specify a percentage of requests they'd like mirrored as opposed to every single request.
-This feature is already [supported by Envoy](https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route_components.proto#envoy-v3-api-msg-config-route-v3-routeaction-requestmirrorpolicy), so adding it for the Gateway API would enable better integration between the two products. There's also an existing user desire for this feature on the [HAProxy side](https://www.haproxy.com/blog/haproxy-traffic-mirroring-for-real-world-testing) and [NGINX side](https://alex.dzyoba.com/blog/nginx-mirror/). Since Request Mirroring is already supported by the Gateway API, Percentage-based Request Mirroring would a clear improvement on this pre-existing feature.
+This feature is already [supported by Envoy](https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route_components.proto#envoy-v3-api-msg-config-route-v3-routeaction-requestmirrorpolicy), so adding it for the Gateway API would enable better integration between the two products. There's also an existing user desire for this feature on the [HAProxy side](https://www.haproxy.com/blog/haproxy-traffic-mirroring-for-real-world-testing) and [NGINX side](https://alex.dzyoba.com/blog/nginx-mirror/). Since Request Mirroring is already supported by the Gateway API, Percentage-based Request Mirroring would a clear improvement on this preexisting feature.
## Existing Support in Implementations
diff --git a/site-src/contributing/devguide.md b/site-src/contributing/devguide.md
index 6b571769d7..2deeeae09e 100644
--- a/site-src/contributing/devguide.md
+++ b/site-src/contributing/devguide.md
@@ -82,7 +82,7 @@ ensuring the field name will not be reused.
### Deploy the Code
-Use the following command to deploy CRDs to the pre-existing `Kind` cluster.
+Use the following command to deploy CRDs to the preexisting `Kind` cluster.
```shell
make crd
From e6f1606b1a8d4f7b538debc5158dca0e60bd2f5a Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 03:50:21 -0400
Subject: [PATCH 48/61] spelling: prominence
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-713/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/geps/gep-713/index.md b/geps/gep-713/index.md
index be5cbd56b3..b77dfc5d84 100644
--- a/geps/gep-713/index.md
+++ b/geps/gep-713/index.md
@@ -585,7 +585,7 @@ plugin.
##### Design considerations
-This is already part of the API pattern, but is being lifted to more prominience
+This is already part of the API pattern, but is being lifted to more prominence
here.
#### Standard status struct
From a36f67cf7dc1b4a70ec226fb1f5d36feb0973f0d Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 03:50:27 -0400
Subject: [PATCH 49/61] spelling: protocol
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
pkg/features/httproute.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pkg/features/httproute.go b/pkg/features/httproute.go
index 28c3997622..c080defe7a 100644
--- a/pkg/features/httproute.go
+++ b/pkg/features/httproute.go
@@ -92,7 +92,7 @@ const (
// This option indicates support for HTTPRoute with a backendref with an appProtocol 'kubernetes.io/h2c' (extended conformance)
SupportHTTPRouteBackendProtocolH2C FeatureName = "HTTPRouteBackendProtocolH2C"
- // This option indicates support for HTTPRoute with a backendref with an appProtoocol 'kubernetes.io/ws' (extended conformance)
+ // This option indicates support for HTTPRoute with a backendref with an appProtocol 'kubernetes.io/ws' (extended conformance)
SupportHTTPRouteBackendProtocolWebSocket FeatureName = "HTTPRouteBackendProtocolWebSocket"
)
From 8580fef91359f296ea2f69b6bc87a46f9a3841d3 Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 03:50:38 -0400
Subject: [PATCH 50/61] spelling: recommend
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-995/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/geps/gep-995/index.md b/geps/gep-995/index.md
index e74c9ae07e..de95280c6a 100644
--- a/geps/gep-995/index.md
+++ b/geps/gep-995/index.md
@@ -50,7 +50,7 @@ If specified, the name of a route rule MUST comply with the [`SectionName`](http
To preserve backward compatibility with previous version of the affected APIs, the `name` field for route rules should be introduced in the API as optional – i.e., end-user are not forced to add it to their existing or new route objects.
-Implementations MAY recomend the usage of the `name` field for enabling specific features, such as for supporting policy attachment targetting individual route rules, and more assertive log messages and/or status reporting that include on the name of the rule. However, because as by API design the presence of the field is optional, implementations MUST take into account that a value may sometimes not be available. For such cases, implementations are free to decide whether to provide the feature depending the `name` field, if the feature is not required for Core compliance, or to enable the feature relying on another method of referencing of choice.
+Implementations MAY recommend the usage of the `name` field for enabling specific features, such as for supporting policy attachment targetting individual route rules, and more assertive log messages and/or status reporting that include on the name of the rule. However, because as by API design the presence of the field is optional, implementations MUST take into account that a value may sometimes not be available. For such cases, implementations are free to decide whether to provide the feature depending the `name` field, if the feature is not required for Core compliance, or to enable the feature relying on another method of referencing of choice.
### Default value
From 06c41b86154c6fc92fc73a79d1f2bb34e407491d Mon Sep 17 00:00:00 2001
From: Josh Soref <2119212+jsoref@users.noreply.github.com>
Date: Fri, 18 Oct 2024 02:46:59 -0400
Subject: [PATCH 51/61] spelling: reference-grant
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
---
geps/gep-724/images/724-alt1.png | Bin 33208 -> 35155 bytes
geps/gep-724/images/724-alt2.png | Bin 31549 -> 33591 bytes
2 files changed, 0 insertions(+), 0 deletions(-)
diff --git a/geps/gep-724/images/724-alt1.png b/geps/gep-724/images/724-alt1.png
index 6c2c44ea7dca6eb5b8b4bf63daa70f3c016dd3e5..69d00e9d8ee0f3cb115ca8457009e0f097d28810 100644
GIT binary patch
literal 35155
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
d;=&v_j4mEU(^7g%~daQba$65
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
H>-YZvRCp0Y
literal 33208
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