diff --git a/CHANGELOG.md b/CHANGELOG.md index 11c000fd08..52e246dbc4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## Table of Contents +- [v0.7.0](#v070) - [v0.7.0-rc2](#v070-rc2) - [v0.7.0-rc1](#v070-rc1) - [v0.6.2](#v062) @@ -25,6 +26,118 @@ - [v0.1.0-rc2](#v010-rc2) - [v0.1.0-rc1](#v010-rc1) +# v0.7.0 + +The v0.7.0 release focuses on refining and stabilizing existing APIs. This +included a focus on both conformance tests and clarifying ambiguous parts of the +API spec. + +## Features Graduating to Standard +In addition to those broad focuses, 2 features are graduating to the +standard channel: + +* GEP-1323: Response Header Modifiers (#1905, @robscott) +* GEP-726: Path Redirects and Rewrites (#1905, @robscott) + +## GEPs +There are a lot of interesting GEPs in the pipeline right now, but only some of +these GEPs have made it to experimental status in time for v0.7.0. The GEPs +highlighted below are both in an experimental state and are either entirely new +(GEP-1748) or had significant new concepts introduced (GEP-713): + +### GEP-713: Policy Attachment +This GEP received a major update, splitting policy attachment into two +categories "Direct" and "Inherited". The new "Direct" mode enables a simplified +form of policy attachment for targeting a single resource (#1565, @youngnick). + +### GEP-1748: Gateway API Interaction with Multi-Cluster Services +A new GEP was introduced to define how Gateway API interacts with Multi-Cluster +Services. At a high level, this states that ServiceImports have "Extended" +support and can be used anywhere Services can throughout the API. There's a lot +more nuance here, so for the full details, refer to the GEP. (#1843, @robscott) + +## Other Changes by Kind + +### Status Changes + +- The "Ready" Gateway and Listener condition has been reserved for future use. + (#1888, @howardjohn) +- The UnsupportedAddress Listener condition reason has been moved to a Gateway + condition reason. (#1888, @howardjohn) +- The AddressNotAssigned Gateway condition reasons has moved from Accepted to + Programmed. (#1888, @howardjohn) +- The NoResources Gateway condition reasons has moved from Ready to Programmed. + (#1888, @howardjohn) + +### Spec Cleanup + +- Clarification that port redirects should not add port number to Location + header for HTTP and HTTPS requests on 80 and 443. (#1908, @robscott) +- Port redirect when empty will depend on the configured Redirect scheme (#1880, + @gauravkghildiyal) +- Updated spec to clarify that Exact matches have precedence over Prefix matches + and RegularExpression matches have implementation specific precedence. (#1855, + @Xunzhuo) +- The `gateway-exists-finalizer.gateway.networking.k8s.io` finalizer is no + longer required and is now just recommended. (#1917, @howardjohn) + +### Validation Fixes + +- Removes GRPCRoute method match defaulting to allow for matching all requests, + or matching only by header. (#1753, @skriss) +- Update route validation to comply with RFC-3986 "p-char" characters. (#1644, + @jackstine) +- Illegal names like " " will be not allowed for query param name in + HTTPQueryParamMatch. (#1796, @gyohuangxin) +* Webhook: Port is now considered when validating that ParentRefs are unique + (#1995, @howardjohn) + +### Conformance + +- No conformance tests run by default anymore, including tests for GatewayClass + and Gateway. A new SupportGateway feature must be opted into in order to run + those tests (similar to what we've done previously for ReferenceGrant and + HTTPRoute). Also with this release, `EnableAllSupportedFeatures` enables all + Gateway AND Mesh features (where previously that was just Gateway). (#1894, + @shaneutt) +- Gateways must publish the "Programmed" condition. (#1732, @robscott) +- Add `all-features` flag to enable all supported feature conformance tests. + (#1642, @gyohuangxin) +- A new SkipTests field has been added to the conformance test options to + opt-out of specific tests. (#1578, @mlavacca) +- Added: conformance tests for http rewrite host and path filters. (#1622, + @LiorLieberman) +- In Conformance tests, when a Route references a gateway having no listener + whose allowedRoutes criteria permit the route, the reason + NotAllowedByListeners should be used for the accepted condition. (#1669, + @mlavacca) +- Support configurable timeout for GatewayObservedGenerationBump (#1887, + @Xunzhuo) +- The conformance test HTTPRouteInvalidCrossNamespaceParentRef now requires the + HTTPRoute accepted condition to be failing with the ParentRefNotPermitted + reason. (#1694, @mlavacca) +- The conformance tests always check that the HTTPRoute ResolvedRefs condition + is enforced, even when the status is true. (#1668, @mlavacca) +- Checks for the NotAllowedByListeners reason on the HTTPRoute's Accepted: false + condition in the HTTPRouteInvalidCrossNamespaceParentRef conformance test. + (#1714, @skriss) +- Added conformance test to verify that path matching precedence is + implemented correctly. (#1855, @Xunzhuo) +- Remove a test that only covered redirect status without any other changes. + (#2007, @robscott) +- Port redirect when empty will depend on the configured Redirect scheme (#1880, + @gauravkghildiyal) +- Fixes for mesh conformance tests (#2017, @keithmattix) + +### Documentation + +- Updated outdated content on list of resources in installation guide page. + (#1857, @randmonkey) +- Fix description of ReferenceGrant example in documentation by making it use + the correct resources. (#1864, @matteoolivi) +- Fix grammar mistake in ReferenceGrant implementation guidelines. (#1865, + @matteoolivi) + # v0.7.0-rc2 We expect this to be our final release candidate before launching v0.7.0. This diff --git a/config/crd/experimental/gateway.networking.k8s.io_gatewayclasses.yaml b/config/crd/experimental/gateway.networking.k8s.io_gatewayclasses.yaml index 468c607274..50dad511a7 100644 --- a/config/crd/experimental/gateway.networking.k8s.io_gatewayclasses.yaml +++ b/config/crd/experimental/gateway.networking.k8s.io_gatewayclasses.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: annotations: api-approved.kubernetes.io: https://github.com/kubernetes-sigs/gateway-api/pull/1923 - gateway.networking.k8s.io/bundle-version: v0.7.0-rc2 + gateway.networking.k8s.io/bundle-version: v0.7.0 gateway.networking.k8s.io/channel: experimental creationTimestamp: null name: gatewayclasses.gateway.networking.k8s.io diff --git a/config/crd/experimental/gateway.networking.k8s.io_gateways.yaml b/config/crd/experimental/gateway.networking.k8s.io_gateways.yaml index d12ba7af4f..14d25f766f 100644 --- a/config/crd/experimental/gateway.networking.k8s.io_gateways.yaml +++ b/config/crd/experimental/gateway.networking.k8s.io_gateways.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: annotations: api-approved.kubernetes.io: https://github.com/kubernetes-sigs/gateway-api/pull/1923 - gateway.networking.k8s.io/bundle-version: v0.7.0-rc2 + gateway.networking.k8s.io/bundle-version: v0.7.0 gateway.networking.k8s.io/channel: experimental creationTimestamp: null name: gateways.gateway.networking.k8s.io diff --git a/config/crd/experimental/gateway.networking.k8s.io_grpcroutes.yaml b/config/crd/experimental/gateway.networking.k8s.io_grpcroutes.yaml index f6f35fd578..8b0e26229f 100644 --- a/config/crd/experimental/gateway.networking.k8s.io_grpcroutes.yaml +++ b/config/crd/experimental/gateway.networking.k8s.io_grpcroutes.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: annotations: api-approved.kubernetes.io: https://github.com/kubernetes-sigs/gateway-api/pull/1923 - gateway.networking.k8s.io/bundle-version: v0.7.0-rc2 + gateway.networking.k8s.io/bundle-version: v0.7.0 gateway.networking.k8s.io/channel: experimental creationTimestamp: null name: grpcroutes.gateway.networking.k8s.io diff --git a/config/crd/experimental/gateway.networking.k8s.io_httproutes.yaml b/config/crd/experimental/gateway.networking.k8s.io_httproutes.yaml index 991d33add6..7093d3e494 100644 --- a/config/crd/experimental/gateway.networking.k8s.io_httproutes.yaml +++ b/config/crd/experimental/gateway.networking.k8s.io_httproutes.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: annotations: api-approved.kubernetes.io: https://github.com/kubernetes-sigs/gateway-api/pull/1923 - gateway.networking.k8s.io/bundle-version: v0.7.0-rc2 + gateway.networking.k8s.io/bundle-version: v0.7.0 gateway.networking.k8s.io/channel: experimental creationTimestamp: null name: httproutes.gateway.networking.k8s.io diff --git a/config/crd/experimental/gateway.networking.k8s.io_referencegrants.yaml b/config/crd/experimental/gateway.networking.k8s.io_referencegrants.yaml index 00ea82946a..e1771279c7 100644 --- a/config/crd/experimental/gateway.networking.k8s.io_referencegrants.yaml +++ b/config/crd/experimental/gateway.networking.k8s.io_referencegrants.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: annotations: api-approved.kubernetes.io: https://github.com/kubernetes-sigs/gateway-api/pull/1923 - gateway.networking.k8s.io/bundle-version: v0.7.0-rc2 + gateway.networking.k8s.io/bundle-version: v0.7.0 gateway.networking.k8s.io/channel: experimental creationTimestamp: null name: referencegrants.gateway.networking.k8s.io diff --git a/config/crd/experimental/gateway.networking.k8s.io_tcproutes.yaml b/config/crd/experimental/gateway.networking.k8s.io_tcproutes.yaml index a5aea2abf4..5b3bb1baf5 100644 --- a/config/crd/experimental/gateway.networking.k8s.io_tcproutes.yaml +++ b/config/crd/experimental/gateway.networking.k8s.io_tcproutes.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: annotations: api-approved.kubernetes.io: https://github.com/kubernetes-sigs/gateway-api/pull/1923 - gateway.networking.k8s.io/bundle-version: v0.7.0-rc2 + gateway.networking.k8s.io/bundle-version: v0.7.0 gateway.networking.k8s.io/channel: experimental creationTimestamp: null name: tcproutes.gateway.networking.k8s.io diff --git a/config/crd/experimental/gateway.networking.k8s.io_tlsroutes.yaml b/config/crd/experimental/gateway.networking.k8s.io_tlsroutes.yaml index bf3adae0c9..8ba8163d53 100644 --- a/config/crd/experimental/gateway.networking.k8s.io_tlsroutes.yaml +++ b/config/crd/experimental/gateway.networking.k8s.io_tlsroutes.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: annotations: api-approved.kubernetes.io: https://github.com/kubernetes-sigs/gateway-api/pull/1923 - gateway.networking.k8s.io/bundle-version: v0.7.0-rc2 + gateway.networking.k8s.io/bundle-version: v0.7.0 gateway.networking.k8s.io/channel: experimental creationTimestamp: null name: tlsroutes.gateway.networking.k8s.io diff --git a/config/crd/experimental/gateway.networking.k8s.io_udproutes.yaml b/config/crd/experimental/gateway.networking.k8s.io_udproutes.yaml index 29f3eb94f8..6c73a92679 100644 --- a/config/crd/experimental/gateway.networking.k8s.io_udproutes.yaml +++ b/config/crd/experimental/gateway.networking.k8s.io_udproutes.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: annotations: api-approved.kubernetes.io: https://github.com/kubernetes-sigs/gateway-api/pull/1923 - gateway.networking.k8s.io/bundle-version: v0.7.0-rc2 + gateway.networking.k8s.io/bundle-version: v0.7.0 gateway.networking.k8s.io/channel: experimental creationTimestamp: null name: udproutes.gateway.networking.k8s.io diff --git a/config/crd/standard/gateway.networking.k8s.io_gatewayclasses.yaml b/config/crd/standard/gateway.networking.k8s.io_gatewayclasses.yaml index de5c14d608..be7cb7ff4e 100644 --- a/config/crd/standard/gateway.networking.k8s.io_gatewayclasses.yaml +++ b/config/crd/standard/gateway.networking.k8s.io_gatewayclasses.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: annotations: api-approved.kubernetes.io: https://github.com/kubernetes-sigs/gateway-api/pull/1923 - gateway.networking.k8s.io/bundle-version: v0.7.0-rc2 + gateway.networking.k8s.io/bundle-version: v0.7.0 gateway.networking.k8s.io/channel: standard creationTimestamp: null name: gatewayclasses.gateway.networking.k8s.io diff --git a/config/crd/standard/gateway.networking.k8s.io_gateways.yaml b/config/crd/standard/gateway.networking.k8s.io_gateways.yaml index ea09a5a536..a3c7a058c1 100644 --- a/config/crd/standard/gateway.networking.k8s.io_gateways.yaml +++ b/config/crd/standard/gateway.networking.k8s.io_gateways.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: annotations: api-approved.kubernetes.io: https://github.com/kubernetes-sigs/gateway-api/pull/1923 - gateway.networking.k8s.io/bundle-version: v0.7.0-rc2 + gateway.networking.k8s.io/bundle-version: v0.7.0 gateway.networking.k8s.io/channel: standard creationTimestamp: null name: gateways.gateway.networking.k8s.io diff --git a/config/crd/standard/gateway.networking.k8s.io_httproutes.yaml b/config/crd/standard/gateway.networking.k8s.io_httproutes.yaml index 02ff9c19e3..c1d8494222 100644 --- a/config/crd/standard/gateway.networking.k8s.io_httproutes.yaml +++ b/config/crd/standard/gateway.networking.k8s.io_httproutes.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: annotations: api-approved.kubernetes.io: https://github.com/kubernetes-sigs/gateway-api/pull/1923 - gateway.networking.k8s.io/bundle-version: v0.7.0-rc2 + gateway.networking.k8s.io/bundle-version: v0.7.0 gateway.networking.k8s.io/channel: standard creationTimestamp: null name: httproutes.gateway.networking.k8s.io diff --git a/config/crd/standard/gateway.networking.k8s.io_referencegrants.yaml b/config/crd/standard/gateway.networking.k8s.io_referencegrants.yaml index c9c35c375e..96631d939b 100644 --- a/config/crd/standard/gateway.networking.k8s.io_referencegrants.yaml +++ b/config/crd/standard/gateway.networking.k8s.io_referencegrants.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: annotations: api-approved.kubernetes.io: https://github.com/kubernetes-sigs/gateway-api/pull/1923 - gateway.networking.k8s.io/bundle-version: v0.7.0-rc2 + gateway.networking.k8s.io/bundle-version: v0.7.0 gateway.networking.k8s.io/channel: standard creationTimestamp: null name: referencegrants.gateway.networking.k8s.io diff --git a/config/webhook/admission_webhook.yaml b/config/webhook/admission_webhook.yaml index cee9bad90c..d6d273cd5b 100644 --- a/config/webhook/admission_webhook.yaml +++ b/config/webhook/admission_webhook.yaml @@ -56,7 +56,7 @@ spec: spec: containers: - name: webhook - image: registry.k8s.io/gateway-api/admission-server:v0.7.0-rc2 + image: registry.k8s.io/gateway-api/admission-server:v0.7.0 imagePullPolicy: Always args: - -logtostderr diff --git a/pkg/generator/main.go b/pkg/generator/main.go index 924649e050..364d2ffb17 100644 --- a/pkg/generator/main.go +++ b/pkg/generator/main.go @@ -35,7 +35,7 @@ const ( channelAnnotation = "gateway.networking.k8s.io/channel" // These values must be updated during the release process - bundleVersion = "v0.7.0-rc2" + bundleVersion = "v0.7.0" approvalLink = "https://github.com/kubernetes-sigs/gateway-api/pull/1923" )