diff --git a/content/en/blog/_posts/2023-10-19-Gateway-API-GA.md b/content/en/blog/_posts/2023-10-19-Gateway-API-GA.md deleted file mode 100644 index ba7f6c9843..0000000000 --- a/content/en/blog/_posts/2023-10-19-Gateway-API-GA.md +++ /dev/null @@ -1,194 +0,0 @@ ---- -layout: blog -title: "Gateway API is now Generally Available (GA)" -date: 2023-10-19T10:00:00-08:00 -slug: gateway-api-ga ---- - -***Authors:*** Shane Utt (Kong), Nick Young (Isovalent), Rob Scott (Google) - -We (the community developing [Gateway API][gwapi]) are incredibly pleased and -proud to announce _general availability_ of Gateway API for use with Kubernetes -clusters (versions 1.24 and newer)! - -## Important Highlights - -Kubernetes' Gateway API brings a lot of new networking possibilities to the table in your -Kubernetes cluster. In this post we'll cover some of the most important -highlights. - -For a complete list of changes for this specific release, please see our -[v1.0.0 changelog entry][chlogv1]. - -For a complete list of every feature for every release, or to review some of -the releases leading up to v1.0.0, please see our [historical -changelog][clog]. - -### Version 1 APIs - -This marks the **first stable release** of Gateway API, where we are now -publishing the following APIs as `v1` (version 1): - -- [GatewayClass][gwc] -- [Gateway][gw] -- [HTTPRoute][hr] - -Reaching version 1 with these APIs means we future iterations on them will be -handled in a backwards compatible manner. - -### CEL Migration - -Gateway API [CRDs][crds] now include [CEL][cel] validation. This streamlines -the development of validation for our resources, and reduces the overhead of -deploying Gateway API to a cluster as it eliminates the need for our historical -[admission webhook][admw]. - -> **Note**: For Kubernetes `v1.25` and newer we recommend against deploying the -> webhook, and if you had it running previously you can now uninstall it in -> favor of the validation now provided via CEL. - -### Kubernetes Support - -Gateway API generally [supports the last 5 stable Kubernetes versions][kvs]. As -such, this release is supported on Kubernetes clusters version `1.24` through -`1.29` at the time of release. - -> **Warning**: Related to our migration to [CEL][cel] as mentioned above, we -> don't recommend deploying on `v1.24` clusters if it can be avoided as these -> clusters will still require the admission webhook, and that webhook is -> considered deprecated and support for it will drop shortly after this GA -> release when Kubernetes `v1.30` becomes available. If it's unavoidable to -> deploy on `v1.24`, just note that you'll need to upgrade fairly soon in -> order to be considered supported. - -### Getting Started - -If you want to try Gateway API features out for yourself but don't know where -to get started you'll want to check out one of the 20+ -[implementations](https://gateway-api.sigs.k8s.io/implementations/) which -we list on the Gateway API website. - -Gateway API itself is just an API for downstream projects to implement, so take -some time to peruse the implementations list above and find one that seems to -fit your needs, or that you're most familiar with. - -> **Note**: with this release we now have basic support for downstream -> implementations to report the results of their Gateway API conformance test -> runs. This means that for some implementations on the above implementations -> page you may see a `Gateway API Conformance vX.X.X` badge present under their -> project header. This indicates that this implementation _is conformant_ for -> the version present in the badge, and is sending back reports of their -> conformance to the upstream project, including details on which specific -> features they support. Click on the badge to see a more detailed report of -> supported features, but note that the reporting system is considered -> experimental and the structure of these reports is subject to change. - -## Future Plans - -General availability is just the beginning of the much larger journey for -Gateway API, and there's plenty of new features and new ideas in flight for the -upcoming releases! - -If you opt-in to the [experimental channel][expch] for this release, you'll find -that there are several experimental features available which are being -considered for inclusion as stable in future releases: - -- [Backend TLS policy][gep1897] -- [HTTPRoute Timeouts][gep1742] -- [Gateway Infrastructure Labels][gep1762] -- Support for [Websockets, HTTP/2 and more!][gep1911] -- [`gwctl`][gwctl], our new Gateway API command line tool - -We intend to have a blog post following up on this one which will cover these -(and potentially more) experimental and upcoming features where the authors of -the features themselves can provide a greater level of detail. - -In future iterations we also intend to grow the maturity and work towards -[graduation][grad] of APIs other than GatewayClass, Gateway, and -HTTPRoute. There are several APIs that are not yet at version 1: - -- [GRPCRoute][grpc] -- [TCPRoute][tcp] -- [UDPRoute][udp] -- [TLSRoute][tls] -- [ReferenceGrant][refg] - -[ReferenceGrant][refg] is a slightly special case as we are considering what -to do with this: we've come to understand this might be a -feature applicable to the greater Kubernetes community and we're trying to -navigate potentially moving it somewhere more general to maximize benefit. - -For those interested in service mesh, note that we continue to work on making -Gateway API resources available for use in service mesh contexts as part of the -[GAMMA project][gamma]. Please see our recent blog post [Gateway API v0.8.0: -Introducing Service Mesh Support][gammablog] for more details. - -What you've seen here is _not exhaustive_! Gateway API is a highly active -project, with dozens of people actively working on it. If you're hoping to see -one of the above routes graduated, or have ideas for features that we have yet -to account for, we _strongly encourage_ you to [join us in the community][com] -and help us build! - -## Gateway API events at KubeCon + CloudNativeCon - -At [Kubecon North America (Chicago)][kna] and the adjacent -[Contributor Summit][csum] there are several talks about or related to Gateway -API that expand upon GA, discuss some of our new features, and even talk about -what happens next. If you're attending Kubecon and the Contributor Summit this -year, please do see us at these talks! - -*Contributor Summit*: - -- [Lessons learned building a GA API with CRDs][csum1] -- [Conformance Testing (from Gateway API)][csum2] -- [Gateway API: Beyond GA][csum3] - -*Kubecon Main Event*: - -**TODO** - -## Recognition & Appreciation - -Our project is more than just a project, it is a community of people working -together to solve common problems. Our community _is_ the project and we want to -give a huge shout out and thanks to them! - -Thank you so much to our [170+ contributors][contribs] who built this project -together with us, and made our GA release possible! - -A special thank you to our [community members who agreed to take on an -official role in the project][roles], explicitly providing some time for reviews -and sharing the load of maintaining the project! - -[gwapi]:https://gateway-api.sigs.k8s.io/ -[clogv1]:https://github.com/kubernetes-sigs/gateway-api/blob/main/CHANGELOG.md#v100 -[clog]:https://github.com/kubernetes-sigs/gateway-api/blob/main/CHANGELOG.md -[gwc]:https://gateway-api.sigs.k8s.io/api-types/gatewayclass/ -[gw]:https://gateway-api.sigs.k8s.io/api-types/gateway/ -[hr]:https://gateway-api.sigs.k8s.io/api-types/httproute/ -[crds]:https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/ -[kvs]:https://gateway-api.sigs.k8s.io/concepts/versioning/#supported-versions -[cel]:https://kubernetes.io/docs/reference/using-api/cel/ -[admw]:https://github.com/kubernetes-sigs/gateway-api/tree/main/config/webhook -[expch]:https://gateway-api.sigs.k8s.io/concepts/versioning/#release-channels -[gep1897]:https://gateway-api.sigs.k8s.io/geps/gep-1897/ -[gep1742]:https://gateway-api.sigs.k8s.io/geps/gep-1742/ -[gep1762]:https://gateway-api.sigs.k8s.io/geps/gep-1762/ -[gep1911]:https://gateway-api.sigs.k8s.io/geps/gep-1911/ -[gwctl]:https://github.com/kubernetes-sigs/gateway-api/tree/main/gwctl -[grad]:https://gateway-api.sigs.k8s.io/concepts/versioning/#graduation-criteria -[grpc]:https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io/v1alpha2.GRPCRoute -[tcp]:https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io/v1alpha2.TCPRoute -[udp]:https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io/v1alpha2.UDPRoute -[tls]:https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io/v1alpha2.TLSRoute -[com]:https://gateway-api.sigs.k8s.io/contributing/#how-to-get-involved -[refg]:https://gateway-api.sigs.k8s.io/api-types/referencegrant/ -[gamma]:https://gateway-api.sigs.k8s.io/concepts/gamma/ -[gammablog]:https://kubernetes.io/blog/2023/08/29/gateway-api-v0-8/ -[kna]:https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/ -[csum]:https://kcsna2023.sched.com/ -[csum1]:https://kcsna2023.sched.com/event/1Sp9u/lessons-learned-building-a-ga-api-with-crds -[csum2]:https://kcsna2023.sched.com/event/1Sp9l/conformance-profiles-building-a-generic-conformance-test-reporting-framework -[csum3]:https://kcsna2023.sched.com/event/1SpA9/gateway-api-beyond-ga -[contribs]:https://github.com/kubernetes-sigs/gateway-api/graphs/contributors -[roles]:https://github.com/kubernetes-sigs/gateway-api/blob/main/OWNERS_ALIASES \ No newline at end of file diff --git a/content/en/blog/_posts/2023-10-31-Gateway-API-GA/gateway-api-logo.png b/content/en/blog/_posts/2023-10-31-Gateway-API-GA/gateway-api-logo.png new file mode 100644 index 0000000000..5a2215397f Binary files /dev/null and b/content/en/blog/_posts/2023-10-31-Gateway-API-GA/gateway-api-logo.png differ diff --git a/content/en/blog/_posts/2023-10-31-Gateway-API-GA/index.md b/content/en/blog/_posts/2023-10-31-Gateway-API-GA/index.md new file mode 100644 index 0000000000..ff044b8306 --- /dev/null +++ b/content/en/blog/_posts/2023-10-31-Gateway-API-GA/index.md @@ -0,0 +1,153 @@ +--- +layout: blog +title: "Gateway API v1.0: GA Release" +date: 2023-10-31T10:00:00-08:00 +slug: gateway-api-ga +--- + +***Authors:*** Shane Utt (Kong), Nick Young (Isovalent), Rob Scott (Google) + +We are pleased to announce the v1.0 release of [Gateway +API](https://gateway-api.sigs.k8s.io/)! This release marks a huge milestone for +this project. Several key APIs are graduating to GA (generally available), while +other significant features have been added to the Experimental channel. + +## What's new + +### Graduation to v1 +This release includes the graduation of +[Gateway](https://gateway-api.sigs.k8s.io/api-types/gateway/), +[GatewayClass](https://gateway-api.sigs.k8s.io/api-types/gatewayclass/), and +[HTTPRoute](https://gateway-api.sigs.k8s.io/api-types/httproute/) to v1, which +means they are now generally available (GA). This API version denotes a high +level of confidence in the API surface and provides guarantees of backwards +compatibility. Note that although, the version of these APIs included in the +Standard channel are now considered stable, that does not mean that they are +complete. These APIs will continue to receive new features via the Experimental +channel as they meet graduation criteria. For more information on how all of +this works, refer to the [Gateway API Versioning +Policy](https://gateway-api.sigs.k8s.io/concepts/versioning/). + +### Logo +Gateway API now has a logo! This logo was designed through a collaborative +process, and is intended to represent the idea that this is a set of Kubernetes +APIs for routing traffic both north-south and east-west: + +![Gateway API Logo](gateway-api-logo.png "Gateway API Logo") + +### CEL Validation +Historically, Gateway API has bundled a validating webhook as part of installing +the API. Starting in v1.0, webhook installation is optional and only recommended +for Kubernetes 1.24. Gateway API now includes +[CEL](https://kubernetes.io/docs/reference/using-api/cel/) validation rules as +part of the +[CRDs](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/). +This new form of validation is supported in Kubernetes 1.25+, and thus the +validating webhook is no longer required in most installations. + +### Standard channel +This release was primarily focused on ensuring that the existing beta APIs were +well defined and sufficiently stable to graduate to GA. That led to a variety of +spec clarifications, as well as some improvements to status to improve the +overall UX when interacting with Gateway API. + +### Experimental channel +Most of the changes included in this release were limited to the experimental +channel. These include HTTPRoute timeouts, TLS config from Gateways to backends, +WebSocket support, Gateway infrastructure labels, and more. Stay tuned for a +follow up blog post that will cover each of these new features in detail. + +### Everything else +For a full list of the changes included in this release, please refer to the +[v1.0.0 release +notes](https://github.com/kubernetes-sigs/gateway-api/releases/tag/v0.1.0). + +## How we got here + +The idea of Gateway API was initially [proposed 4 years ago at KubeCon San +Diego](https://youtu.be/Ne9UJL6irXY?si=wgtC9w8PMB5ZHil2) as the next generation +of Ingress API. Since then, an incredible community has formed to develop what +has likely become the most collaborative API in Kubernetes history. Over 170 +people have contributed to this API so far, and that number continues to grow. + +A special thank you to the 20+ [community members who agreed to take on an +official role in the +project](https://github.com/kubernetes-sigs/gateway-api/blob/main/OWNERS_ALIASES), +providing some time for reviews and sharing the load of maintaining the project! + +We especially want to highlight the emeritus maintainers that played a pivotal +role in the early development of this project: + +* [Bowei Du](https://github.com/bowei) +* [Daneyon Hansen](https://github.com/danehans) +* [Harry Bagdi](https://github.com/hbagdi) + +## Try it out + +Unlike other Kubernetes APIs, you don't need to upgrade to the latest version of +Kubernetes to get the latest version of Gateway API. As long as you're running +one of the 5 most recent minor versions of Kubernetes (1.24+), you'll be able to +get up and running with the latest version of Gateway API. + +To try out the API, follow our [Getting Started +guide](https://gateway-api.sigs.k8s.io/guides/). + +## What's next + +This release is just the beginning of a much larger journey for Gateway API, and +there are still plenty of new features and new ideas in flight for future +releases of the API. + +One of our key goals going forward is to work to stabilize and graduate other +experimental features of the API. These include [support for service +mesh](https://gateway-api.sigs.k8s.io/concepts/gamma/), additional route types +([GRPCRoute](https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io/v1alpha2.GRPCRoute), +[TCPRoute](https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io/v1alpha2.TCPRoute), +[TLSRoute](https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io/v1alpha2.TLSRoute), +[UDPRoute](https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io/v1alpha2.UDPRoute)), +and a variety of experimental features. + +We've also been working towards moving +[ReferenceGrant](https://gateway-api.sigs.k8s.io/api-types/referencegrant/) into +a built-in Kubernetes API that can be used for more than just Gateway API. +Within Gateway API, we've used this resource to safely enable cross-namespace +references, and that concept is now being adopted by other SIGs. The new version +of this API will be owned by SIG-Auth and will likely include at least some +modifications as it migrates to a built-in Kubernetes API. + +### Gateway API at KubeCon + CloudNativeCon + +At [KubeCon North America +(Chicago)](https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/) +and the adjacent [Contributor +Summit](https://www.kubernetes.dev/events/2023/kcsna/) there are several talks +related to Gateway API that will go into more detail on these topics. If you're +attending either of these events this year, considering adding these to your +schedule. + +**Contributor Summit:** + +- [Lessons Learned Building a GA API with CRDs](https://sched.co/1Sp9u) +- [Conformance Profiles: Building a generic conformance test reporting framework](https://sched.co/1Sp9l) +- [Gateway API: Beyond GA](https://sched.co/1SpA9) + +**KubeCon Main Event:** + +- [Gateway API: The Most Collaborative API in Kubernetes History Is GA](https://sched.co/1R2qM) + +**KubeCon Office Hours:** + +Gateway API maintainers will be holding office hours sessions at KubeCon if +you'd like to discuss or brainstorm any related topics. To get the latest +updates on these sessions, join the `#sig-network-gateway-api` channel on +[Kubernetes Slack](https://slack.kubernetes.io/). + +## Get Involved + +We've only barely scratched the surface of what's in flight with Gateway API. +There are lots of opportunities to get involved and help define the future of +Kubernetes routing APIs for both Ingress and Mesh. + +If this is interesting to you, please [join us in the +community](https://gateway-api.sigs.k8s.io/contributing/) and help us build the +future of Gateway API together!