API versions: v1beta1, v1alpha2
This release is all about stability.
Changes in this release can largely be divided into the following categories:
- Release Channels
- Resources graduating to beta
- New experimental features
- Bug Fixes
- General Improvements
- Breaking Changes
- Validation improvements
- Internal type cleanup
Note: This release is largely identical to v0.5.0-rc2, this changelog tracks
the difference between v0.5.0 and v0.4.3.
Release channels
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.
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
experimental
channel. Please see the versioning docs for a more
detailed explanation.
One caveat for the standard channel - due to work on the new ReferenceGrant
resource: conformance tests may not pass with the standard
set of CRDs.
Resources graduating to beta
The following APIs have been promoted to a v1beta1
maturity:
GatewayClass
Gateway
HTTPRoute
New Experimental Features
- Routes can now select
Gateway
listeners by port number
#1002 - Gateway API now includes "Experimental" release channel. Consequently, CRDs now
includegateway.networking.k8s.io/bundle-version
and
gateway.networking.k8s.io/channel
annotations.
#945 - URL Rewrites and Path redirects have been added as new "Experimental" features
#945
Bug Fixes
- Fixes a problem that would cause webhook deployment to fail on Kubernetes
v1.22 and greater.
#991 - Fixes a bug where the
Namespace
could be unspecified inReferencePolicy
#964 - Fixes a bug where v1alpha2 GatewayClass controller names were not being
shown in the output ofkubectl get gatewayclasses
#909
General Improvements
- Conformance tests were introduced with GEP-917 and multiple
conformance tests were added from a variety of contributors under the
conformance/
directory. - The status of the GatewayClass "Accepted" condition for the
GatewayClass
is now present inkubectl get
output.
#1168 - New
RouteConditionReason
typesRouteReasonNotAllowedByListeners
and
RouteReasonNoMatchingListenerHostname
were added.
#1155 - New
RouteConditionReason
type added withRouteReasonAccepted
,
RouteReasonResolvedRefs
andRouteReasonRefNotPermitted
constants.
#1114 - Introduced PreciseHostname which prevents wildcard characters in relevant
Hostname values.
#956
Validation Improvements
- Webhook validation now ensures that a path match exists when required by path
modifier in filter.
#1171 - Webhook validation was added to ensure that only type-appropriate fields are
set inHTTPPathModifier
.
#1124 - The Gateway API webhook is now deployed in a
gateway-system
namespace
instead ofgateway-api
.
#1051 - Adds webhook validation to ensure that no HTTP header or query param is
matched more than once in a given route rule. (#1230, @skriss)
Breaking Changes
- The v1alpha1 API version was deprecated and removed.
#1197
#906 - The
NamedAddress
value forGateway
'sspec.addresses[].type
field has
been deprecated, and support for domain-prefixed values (like
example.com/NamedAddress
) has been added instead to better represent the
custom nature of this support.
#1178 - Implementations are now expected to use
500
instead of503
responses when
the data-plane has no matching route.
#1151,
#1258
UX and Status Improvements
The following are breaking changes related to status updates and end-user
experience changes.
- The
UnsupportedExtension
namedListenerConditionReason
has been removed.
#1146 - The
RouteConflict
namedListenerConditionReason
has been removed.
#1145
Internal Type Cleanup
These changes will only affect implementations. Implementors will need to adjust
for the type changes when updating the Gateway API dependency in their projects.
NOTE: These kinds of changes are not always present in the CHANGELOG so
please be aware that the CHANGELOG is not an exhaustive list of Go
type changes. In this case there were a significant number of changes
in a single release, so we included them for extra visibility for
implementors.
ReferencePolicy
has been renamed toReferenceGrant
.
#1179GatewayTLSConfig
'sCertificateRefs
field is now a slice of pointers to
structs instead of the structs directly.
#1176HTTPPathModifer
fieldAbsolute
renamed toReplaceFullPath
#1124- the
ParentRef
type was renamed toParentReference
#982 - Types
ConditionRouteAccepted
andConditionRouteResolvedRefs
are now
deprecated in favor ofRouteConditionAccepted
&RouteConditionResolvedRefs
#1114