|
2 | 2 |
|
3 | 3 | ## Table of Contents |
4 | 4 |
|
| 5 | +- [v1.0.0][#v100] |
| 6 | +- [v1.0.0-rc2][#v100-rc2] |
5 | 7 | - [v1.0.0-rc1][#v100-rc1] |
6 | 8 | - [v0.8.1](#v081) |
7 | 9 | - [v0.8.0](#v080) |
|
32 | 34 | - [v0.1.0-rc2](#v010-rc2) |
33 | 35 | - [v0.1.0-rc1](#v010-rc1) |
34 | 36 |
|
| 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 | + |
35 | 212 | # v1.0.0-rc2 |
36 | 213 |
|
37 | 214 | The working group expects that this release candidate is quite close to the |
|
0 commit comments