Skip to content

Commit a068498

Browse files
authored
Merge pull request #2546 from youngnick/v1.0-changelog
Create v1 changelog
2 parents 8f1b718 + 5592c85 commit a068498

17 files changed

+195
-18
lines changed

CHANGELOG.md

Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
## Table of Contents
44

5+
- [v1.0.0][#v100]
6+
- [v1.0.0-rc2][#v100-rc2]
57
- [v1.0.0-rc1][#v100-rc1]
68
- [v0.8.1](#v081)
79
- [v0.8.0](#v080)
@@ -32,6 +34,181 @@
3234
- [v0.1.0-rc2](#v010-rc2)
3335
- [v0.1.0-rc1](#v010-rc1)
3436

37+
# v1.0.0
38+
39+
On behalf of Kubernetes SIG Network, we are pleased to announce the v1.0 release!
40+
This release marks a huge milestone for this project. Several key APIs are
41+
graduating to GA (generally available), while other significant features have
42+
been added to the Experimental channel.
43+
44+
It's been four years since this project began, and we would never have gotten
45+
here without the support of a dedicated and active community. The maintainers
46+
would like to thanks _everyone_ who's contributed to Gateway API, whether in the
47+
form of commits to the repo, discussion, ideas, or general support. We literally
48+
couldn't have gotten this far without you.
49+
50+
This project is nowhere near finished, as you can see from the large amount of
51+
features being added into the Experimental Channel. With such a big set of
52+
things still to do, contributors and contributions are more vital than ever.
53+
Please feel welcome to join our
54+
[community!](https://gateway-api.sigs.k8s.io/contributing/)!
55+
56+
## Gateway, GatewayClass, and HTTPRoute are GA 🎉
57+
58+
Gateway, GatewayClass, and HTTPRoute have all graduated to GA with a `v1` API
59+
version. Although these APIs will continue to grow with future additions, the
60+
versions of these resources available via the Standard Channel are stable and
61+
recommended for use in production. Many implementations are fully passing
62+
conformance tests that cover the functionality of each of these resources. These
63+
APIs are graduating to GA with only minor spec clarifications since the v0.8.0
64+
release.
65+
66+
## CEL Migration
67+
68+
Starting in v0.8.0, Gateway API CRDs now include CEL validation. In this release
69+
the validating webhook is no longer bundled with CRD installation. Instead we
70+
include a separate `webhook-install.yaml` file as part of the release artifacts.
71+
72+
If you're running Kubernetes 1.25+, we do not recommend installing the webhook
73+
and additionally suggest that you uninstall any previously installed versions of
74+
the webhook.
75+
76+
If you're still running Kubernetes 1.23 or 1.24, we recommend installing the
77+
webhook until you can upgrade to Kubernetes 1.25 or newer.
78+
79+
## New Experimental Features
80+
81+
There are several exciting new experimental features in this release:
82+
83+
### BackendTLSPolicy
84+
A new `BackendTLSPolicy` resource has been introduced for configuring TLS
85+
connections from Gateways to Backends. This allows you to configure the Gateway
86+
to validate the certificates served by Backends. For more information, refer to
87+
[GEP 1897](https://gateway-api.sigs.k8s.io/geps/gep-1897/).
88+
89+
Primary Author: @candita
90+
91+
### HTTPRoute Timeouts
92+
HTTPRoute has a new `Timeouts` field on Route Rules. This allows you to
93+
configure overall Request Timeouts as well as Backend Request Timeouts. For more
94+
information, refer to [GEP 1742](https://gateway-api.sigs.k8s.io/geps/gep-1742/).
95+
96+
Primary Authors: @frankbu, @SRodi
97+
98+
### Gateway Infrastructure Labels
99+
Gateway has a new `Infrastructure` field that allows you to specify `Labels` or
100+
`Annotations` that you'd like to be propagated to each resource generated for a
101+
Gateway. For example, these labels and annotations may be copied to Services and
102+
Deployments provisioned for in-cluster Gateways, or to other
103+
implementation-specific resources, such as Cloud Load Balancers. For more
104+
information, refer to [GEP
105+
1762](https://gateway-api.sigs.k8s.io/geps/gep-1762/).
106+
107+
Primary Author: @howardjohn
108+
109+
### WebSockets, HTTP/2, and More
110+
Some coordinated work across both Gateway API and upstream Kubernetes has
111+
defined 3 new values for the AppProtocol field on Service Ports:
112+
113+
* `kubernetes.io/h2c` - HTTP/2 over cleartext as described in
114+
[RFC7540](https://www.rfc-editor.org/rfc/rfc7540)
115+
* `kubernetes.io/ws` - WebSocket over cleartext as described in
116+
[RFC6445](https://www.rfc-editor.org/rfc/rfc6455)
117+
* `kubernetes.io/wss` - WebSocket over TLS as described in
118+
[RFC6455](https://www.rfc-editor.org/rfc/rfc6455)
119+
120+
These can now be used with Gateway API to describe the protocol to use for
121+
connections to Kubernetes Services. For more information, refer to [GEP
122+
1911](https://gateway-api.sigs.k8s.io/geps/gep-1911/).
123+
124+
### A new CLI tool: gwctl
125+
An experimental new CLI tool and kubectl plugin, gwctl aims to improve the UX
126+
when interacting with Gateway API. Initially it is focused on Policy Attachment,
127+
making it easier to understand which policies are available in a cluster, and
128+
which have been applied. In future releases, we hope to expand the scope of this
129+
tool to provide more detailed responses when getting and describing Gateway API
130+
resources. Note that this tool is still in very early stages and it's very
131+
likely that future releases will include breaking changes for gwctl. For more
132+
information, refer to the [gwctl
133+
Readme](https://github.com/kubernetes-sigs/gateway-api/tree/main/gwctl).
134+
135+
Primary Author: @gauravkghildiyal
136+
137+
## Everything Else
138+
139+
Of course there's a lot more in this release:
140+
141+
### Spec Clarifications
142+
- Clarify that the Gateway Listener status AttachedRoutes field is a count of
143+
the number of Routes associated with a Listener regardless of Gateway or Route
144+
status. (#2396, @sunjayBhatia)
145+
- Gateway: A new concept called "Listener Isolation" has been introduced to
146+
describe the recommendation that at most one Listener matches a request, and
147+
only Routes attached to that Listener are used for routing. (#2465, @robscott)
148+
- Experimental Channel: For ParentRefs to be considered distinct, they either
149+
both need to specify a distinct SectionName, both need to specify a distinct
150+
Port, or both. (#2433, @robscott)
151+
- Updated rules about Listener uniqueness to use the term `distinct` (#2436,
152+
@youngnick)
153+
154+
### Status
155+
- GatewayClass Status: A new experimental `supportedFeatures` field has been
156+
added. Implementations should populate this with the features they support.
157+
(#2461, @Liorlieberman, @robscott)
158+
- GatewayClass Status: A new SupportedVersion condition has been added that MUST
159+
be set when a GatewayClass is accepted. (#2384, @robscott)
160+
- Route Status: A new "PartiallyInvalid" condition has been added for all Route
161+
types. This condition also includes guidance for how partially invalid states
162+
should be handled with Gateway API. (#2429, @robscott)
163+
- The condition reason `GatewayReasonUnsupportedAddress` for `Accepted` now ONLY
164+
applies when an address type is provided for a `Gateway` which it does not
165+
support.
166+
(#2412 @shaneutt)
167+
- The condition reason `GatewayReasonAddressNotAssigned` for `Programmed` now
168+
ONLY applies to problems with dynamic address allocation.
169+
(#2412 @shaneutt)
170+
- The condition reason `GatewayReasonAddressNotUsable` for `Programmed` has been
171+
added to deal with situations where a static address has been provided for a
172+
Gateway which is of a supported type, and is syntactically valid, but for some
173+
reason it can not be used for this Gateway (e.g. the address is already in use
174+
on the network).
175+
(#2412 @shaneutt)
176+
177+
### Documentation
178+
- A guide for Gateway API implementers is now included in the specification.
179+
(#2454, @youngnick)
180+
- Gateway API versioning will continue to rely on two release channels -
181+
Standard and Experimental. New resources will start in the Experimental
182+
Channel with an alpha API Version and then graduate to the Standard Channel
183+
with a GA API version. Resources that already have Beta API versions will
184+
continue to have them, but no additional Gateway API resources will get a Beta
185+
API version. (#2446, @robscott)
186+
187+
### Cleanup
188+
- Validating Webhook logs now use `Errorf` instead of `Fatalf`. (#2361, @yylt)
189+
190+
### Bug Fixes
191+
* CEL validation for BackendTLSPolicy was fixed with corresponding tests added
192+
(#2491, @ygnas)
193+
* Fixes the API version for `ReferenceGrant` from `v1` to `v1beta1` in the
194+
`GatewaySecretInvalidReferenceGrant` conformance test YAML (#2494, @arkodg)
195+
* Gateway infrastructure field is now a pointer (#2508, @danehans)
196+
197+
## Conformance Tests
198+
* h2c Backend Protocol conformance tests were added (#2456, @dprotaso)
199+
* WebSocket Backend Protocol conformance tests were added (#2495, @dprotaso)
200+
* New conformance test for Gateway Status AttachedRoutes (#2477, @danehans)
201+
* Implemented the `ExemptFeatures` field for Experimental Conformance Profiles
202+
(#2515, @arkodg)
203+
204+
### Other (Cleanup or Flake)
205+
- Resources related to the validating webhook such as the `gateway-system`
206+
namespace and the `gateway-api-admission-server` deployment have been removed
207+
from the installation manifests, in favor of CEL based Validations that are
208+
built into the CRD definition. These are still available in
209+
`webhook-install.yaml` in case you would like to optionally install them.
210+
(#2401, @arkodg)
211+
35212
# v1.0.0-rc2
36213

37214
The working group expects that this release candidate is quite close to the

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ the specification and Custom Resource Definitions (CRDs).
55

66
## Status
77

8-
The latest supported version is `v1beta1` as released by the [v0.8.1
9-
release](https://github.com/kubernetes-sigs/gateway-api/releases/tag/v0.8.1) of
8+
The latest supported version is `v1beta1` as released by the [v1.0.0
9+
release](https://github.com/kubernetes-sigs/gateway-api/releases/tag/v1.0.0) of
1010
this project.
1111

1212
This version of the API is has beta level support for the following resources:

config/crd/experimental/gateway.networking.k8s.io_backendtlspolicies.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_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.

0 commit comments

Comments
 (0)