Skip to content

Commit 3d22aa5

Browse files
authored
Merge pull request #2360 from robscott/changelog-v0.8.0
Adding v0.8.0 changelog
2 parents 5d4a870 + 645b165 commit 3d22aa5

16 files changed

+196
-17
lines changed

CHANGELOG.md

Lines changed: 180 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
## Table of Contents
44

5+
- [v0.8.0](#v080)
56
- [v0.8.0-rc2](#v080-rc2)
67
- [v0.8.0-rc1](#v080-rc1)
78
- [v0.7.1](#v071)
@@ -29,6 +30,184 @@
2930
- [v0.1.0-rc2](#v010-rc2)
3031
- [v0.1.0-rc1](#v010-rc1)
3132

33+
# v0.8.0
34+
35+
## Major Themes
36+
37+
### GAMMA (Service Mesh)
38+
Service mesh support per the GAMMA initiative has moved to **experimental** in
39+
`v0.8.0`. As an experimental API, **it is still possible that this will
40+
change**; the working group does not recommend shipping products based on any
41+
experimental API.
42+
43+
When using the Gateway API to configure a service mesh, the Gateway and
44+
GatewayClass resources are not used (as there will typically only be one mesh
45+
in the cluster) and, instead, individual route resources are associated
46+
directly with Service resources. This permits configuring mesh routing while
47+
preserving the Gateway API's overall semantics.
48+
49+
We encourage service mesh implementers and users to try this new support and
50+
we welcome feedback! Once again, though, the working group does not recommend
51+
shipping products based on this or any other experimental API. due to the
52+
possibility of incompatible changes prior to the final release.
53+
54+
### CEL Validation
55+
This release marks the beginning of a transition from webhook validation to CEL
56+
validation that is built into the CRDs. That will mean different things
57+
depending on the version of Kubernetes you're using:
58+
59+
#### Kubernetes 1.25+
60+
CEL validation is fully supported. Most validation is now covered by the
61+
validating webhook, but unfortunately not quite everything.
62+
63+
All but one validation has been translated from the
64+
webhook to CEL. Currently the CRDs only have a case-sensitive uniqueness check
65+
for header names in header modifier filters. The webhook validation is more
66+
thorough, ensuring that the uniqueness is case-insensitive. Unfortunately that
67+
is not possible to represent with CEL today. There is more information in
68+
[#2277](https://github.com/kubernetes-sigs/gateway-api/issues/2277).
69+
70+
Installing the validating webhook is still recommended for this release to allow
71+
controllers to catch up to cover this gap in CEL validation. We expect this is
72+
the last release we will make this recommendation for, for more information,
73+
refer to [#2319](https://github.com/kubernetes-sigs/gateway-api/issues/2319).
74+
75+
#### Kubernetes 1.23 and 1.24
76+
CEL validation is not supported, but Gateway API v0.8.0 CRDs can still be
77+
installed. When you upgrade to Kubernetes 1.25+, the validation included in
78+
these CRDs will automatically take effect. We recommend continuing to install
79+
the validating webhook on these Kubernetes versions.
80+
81+
#### Kubernetes 1.22 and older
82+
Unfortunately Gateway API v0.8.0 is not supported on these Kubernetes versions.
83+
Gateway API v0.8.0 CRDs include CEL validation and cannot be installed on these
84+
versions of Kubernetes. Note that Gateway API only commits to providing support
85+
for the [5 most recent versions of
86+
Kubernetes](https://gateway-api.sigs.k8s.io/concepts/versioning/#supported-versions),
87+
and thus these versions are no longer supported by Gateway API.
88+
89+
### API Version Changes
90+
As we prepare for a v1.0 release that will graduate Gateway, GatewayClass, and
91+
HTTPRoute to the `v1` API Version from `v1beta1`, we are continuing the process
92+
of moving away from `v1alpha2` for resources that have graduated to `v1beta1`.
93+
The following changes are included in this release:
94+
95+
- `v1alpha2` of Gateway, GatewayClass, and HTTPRoute is no longer served
96+
- `v1alpha2` of ReferenceGrant is deprecated
97+
- `v1beta1` is now the storage version for ReferenceGrant
98+
99+
Those changes mean that:
100+
101+
- Users and implementations that were reading or writing from `v1alpha2` of
102+
Gateway, GatewayClass, or HTTPRoute MUST upgrade to use `v1beta1`.
103+
- Users and implementations that were reading or writing from `v1alpha2` of
104+
ReferenceGrant SHOULD upgrade to use `v1beta1`.
105+
106+
For more information, refer to
107+
[#2069](https://github.com/kubernetes-sigs/gateway-api/pull/2069).
108+
109+
### Supported Features and Conformance Levels
110+
Gateway API conformance tests have a concept of "Supported Features".
111+
Implementations state which features they support, and then all the tests
112+
covering that set of features are run.
113+
114+
Prior to v0.8.0, we had a concept of "StandardCoreFeatures" that represented the
115+
set of features we expected every implementation to implement. Support for the
116+
Gateway and HTTPRoute resources was included in that list.
117+
118+
Alongside that, Gateway API also has a concept of "Support Levels" such as
119+
"Core", "Extended", and "Implementation-Specific". The API had labeled 2
120+
resources as having support levels, but these didn't really make sense with
121+
the modular API model of Gateway API.
122+
123+
In this release, we've simplified the concepts here. Individual resources no
124+
longer have assigned support levels, instead these are represented as "Supported
125+
Features." Implementations can separately claim to support Gateway,
126+
ReferenceGrant, or any other resource. This change helps accommodate incoming
127+
Mesh implementations, many of which do not support one or both of these
128+
resources.
129+
130+
For more information refer to
131+
[#2323](https://github.com/kubernetes-sigs/gateway-api/pull/2323).
132+
133+
134+
## Other Changes
135+
136+
### Status
137+
- Add IncompatibleFilters reason for implementations to specify when a route is
138+
invalid due to an invalid combination of route filters. (#2150, @sunjayBhatia)
139+
140+
### Validation
141+
142+
- Add CEL validation for GRPCRoute. (#2305, @gnossen)
143+
- HTTPRoute and GRPCRoute CRDs now provide built-in validation that ensures the
144+
uniqueness of names in Header Modifier "Remove" lists. (#2306, @robscott)
145+
146+
### Spec Clarifications
147+
148+
- RequestMirrorFilter: Enhanced the doc string to be explicit about sending the
149+
mirrored request to a single destination endpoint within the backendRef
150+
specified. (#2317, @arkodg)
151+
- HTTPRoute Method matching precedence has been clarified (#2054,
152+
@gauravkghildiyal)
153+
- Clarify that implementations must not modify HTTP Host header. Adds
154+
specificity alongside spec that port in Host header must be ignored when
155+
matching on host. (#2092, @sunjayBhatia)
156+
- Fix typo: rename GatewaReasonUnsupportedAddress ->
157+
GatewayReasonUnsupportedAddress (#2149, @panslava)
158+
- HTTPRoute: Clarified that exact path matches are truly exact, both trailing
159+
slashes and capitalization are meaningful. (#2055, @robscott)
160+
- Implementations MUST ignore any port value specified in the HTTP Host header
161+
while performing a match against HTTPRoute.Hostnames (#1980,
162+
@gauravkghildiyal)
163+
164+
### Conformance
165+
166+
- Add conformance tests against accepting invalid ReferenceGrants in HTTPRoute
167+
and TLSRoute (#2076, @meyskens)
168+
- Fixed an issues causing conformance tests to fail when using IPv6 addresses
169+
(#2024, @howardjohn)
170+
- HTTPRoute connectivity is in now enforced in conformance tests if a relevant
171+
ReferenceGrant gets deleted. (#1853, @pmalek)
172+
- The `--skip-tests` flag has been added to the conformance CLI to enable tests
173+
opt-out when using it. (#2170, @mlavacca)
174+
- The experimental conformance profile suite can now be added as a stand-alone
175+
cli and by means of `go test`. (#2066, @mlavacca)
176+
- GEPs now must have a Conformance Details section that specifies the feature's
177+
name for conformance purposes. (#2115, @youngnick)
178+
- Better support mesh-only conformance testing (#2312, @kflynn)
179+
- SupportedFeatures have been restructured to be per-resource (#2323, @robscott)
180+
- Add SupportedFeature for port 8080 on Gateway (#2184, @xtineskim)
181+
- Fixes for IPv6 in Mesh (#2340, @keithmattix)
182+
- Fix leaking TCP connections which can lead to conformance test failures
183+
(#2358, @gauravkghildiyal)
184+
185+
### Webhook
186+
187+
- Changed default imagePullPolicy for gateway-api-admission-server to
188+
IfNotPresent. (#2215, @networkhermit)
189+
- Webhook config works with PodAdmission restricted (#2016, @jcpunk)
190+
191+
### Documentation
192+
193+
- Adds support for ParentRef targeting a Kubernetes Service resource for mesh
194+
implementations. (#2146, @mikemorris)
195+
- Clarify wording on website around Gateway API vs API Gateway (#2191,
196+
@david-martin)
197+
- GEP-1282, Backend Properties, has been declined. (#2132, @youngnick)
198+
- Added missing GEPs. (#2114, @levikobi)
199+
200+
### Bug Fixes
201+
202+
- Added the missing ReferenceGrant resource the kustomization.yaml for the
203+
standard channel (#2084, @howardjohn)
204+
- Webhook validation now ensures that BackendRefs can not be specified in the
205+
same HTTPRoute rule as a Redirect filter (#2161, @slayer321)
206+
- GRPCRoute: The default match has been removed as it was invalid (it only
207+
specified a type of "Exact" without a corresponding Service or Method). Note
208+
that the match type still defaults to "Exact". (#2311, @gauravkghildiyal)
209+
210+
32211
# v0.8.0-rc2
33212

34213
The working group expects that this release candidate is quite close to the final
@@ -135,7 +314,7 @@ of moving away from `v1alpha2` for resources that have graduated to `v1beta1`.
135314
The following changes are included in this release:
136315

137316
- `v1alpha2` of Gateway, GatewayClass, and HTTPRoute is no longer served
138-
- `v1alpha2` of ReferenceGrant is deprecrated
317+
- `v1alpha2` of ReferenceGrant is deprecated
139318
- `v1beta1` is now the storage version for ReferenceGrant
140319

141320
Those changes mean that:

config/crd/experimental/gateway.networking.k8s.io_gatewayclasses.yaml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/experimental/gateway.networking.k8s.io_gateways.yaml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/experimental/gateway.networking.k8s.io_grpcroutes.yaml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/experimental/gateway.networking.k8s.io_httproutes.yaml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/experimental/gateway.networking.k8s.io_referencegrants.yaml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/experimental/gateway.networking.k8s.io_tcproutes.yaml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/experimental/gateway.networking.k8s.io_tlsroutes.yaml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/experimental/gateway.networking.k8s.io_udproutes.yaml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/standard/gateway.networking.k8s.io_gatewayclasses.yaml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)