|
2 | 2 |
|
3 | 3 | ## Table of Contents
|
4 | 4 |
|
| 5 | +- [v0.8.0-rc1](#v080-rc1) |
5 | 6 | - [v0.7.1](#v071)
|
6 | 7 | - [v0.7.0](#v070)
|
7 | 8 | - [v0.7.0-rc2](#v070-rc2)
|
|
27 | 28 | - [v0.1.0-rc2](#v010-rc2)
|
28 | 29 | - [v0.1.0-rc1](#v010-rc1)
|
29 | 30 |
|
| 31 | +# v0.8.0-rc1 |
| 32 | + |
| 33 | +The working group expects that this release candidate is quite close to the final |
| 34 | +v0.8.0 release. However, breaking API changes are still possible. |
| 35 | + |
| 36 | +This release candidate is suitable for implementors, but the working group does |
| 37 | +not recommend shipping products based on a release candidate API due to the |
| 38 | +possibility of incompatible changes prior to the final release. |
| 39 | + |
| 40 | +## Major Themes |
| 41 | + |
| 42 | +### GAMMA (Service Mesh) |
| 43 | +Service mesh support per the GAMMA initiative has moved to **experimental** in |
| 44 | +`v0.8.0`. As an experimental API, **it is still possible that this will |
| 45 | +change**; the working group does not recommend shipping products based on any |
| 46 | +experimental API. |
| 47 | + |
| 48 | +When using the Gateway API to configure a service mesh, the Gateway and |
| 49 | +GatewayClass resources are not used (as there will typically only be one mesh |
| 50 | +in the cluster) and, instead, individual route resources are associated |
| 51 | +directly with Service resources. This permits configuring mesh routing while |
| 52 | +preserving the Gateway API's overall semantics. |
| 53 | + |
| 54 | +We encourage service mesh implementers and users to try this new support and |
| 55 | +we welcome feedback! Once again, though, the working group does not recommend |
| 56 | +shipping products based on this or any other experimental API. due to the |
| 57 | +possibility of incompatible changes prior to the final release. |
| 58 | + |
| 59 | +### CEL Validation |
| 60 | +This release marks the beginning of a transition from webhook validation to CEL |
| 61 | +validation that is built into the CRDs. That will mean different things |
| 62 | +depending on the version of Kubernetes you're using: |
| 63 | + |
| 64 | +#### Kubernetes 1.25+ |
| 65 | +CEL validation is fully supported. Most validation is now covered by the |
| 66 | +validating webhook, but unfortunately not quite everything. |
| 67 | + |
| 68 | +**Standard Channel:** All but one validation has been translated from the |
| 69 | +webhook to CEL. Currently the CRDs only have a case-sensitive uniqueness check |
| 70 | +for header names in header modifier filters. The webhook validation is more |
| 71 | +thorough, ensuring that the uniqueness is case-insensitive. Unfortunately that |
| 72 | +is not possible to represent with CEL today. There is more information in |
| 73 | +[#2277](https://github.com/kubernetes-sigs/gateway-api/issues/2277). |
| 74 | + |
| 75 | +**Experimental Channel:** TCPRoute, TLSRoute, and UDPRoute are fully covered by |
| 76 | +CEL validation. GRPCRoute still has some significant gaps in CEL validation that |
| 77 | +will be covered in a future release. |
| 78 | + |
| 79 | +#### Kubernetes 1.23 and 1.24 |
| 80 | +CEL validation is not supported, but Gateway API v0.8.0 CRDs can still be |
| 81 | +installed. When you upgrade to Kubernetes 1.25+, the validation included in |
| 82 | +these CRDs will automatically take effect. We recommend continuing to install |
| 83 | +the validating webhook on these Kubernetes versions. |
| 84 | + |
| 85 | +#### Kubernetes 1.22 and older |
| 86 | +Unfortunately Gateway API v0.8.0 is not supported on these Kubernetes versions. |
| 87 | +Gateway API v0.8.0 CRDs include CEL validation and cannot be installed on these |
| 88 | +versions of Kubernetes. Note that Gateway API only commits to providing support |
| 89 | +for the [5 most recent versions of |
| 90 | +Kubernetes](https://gateway-api.sigs.k8s.io/concepts/versioning/#supported-versions), |
| 91 | +and thus these versions are no longer supported by Gateway API. |
| 92 | + |
| 93 | +### API Version Changes |
| 94 | +As we prepare for a v1.0 release that will graduate Gateway, GatewayClass, and |
| 95 | +HTTPRoute to the `v1` API Version from `v1beta1`, we are continuing the process |
| 96 | +of moving away from `v1alpha2` for resources that have graduated to `v1beta1`. |
| 97 | +The following changes are included in this release: |
| 98 | + |
| 99 | +- `v1alpha2` of Gateway, GatewayClass, and HTTPRoute is no longer served |
| 100 | +- `v1alpha2` of ReferenceGrant is deprecrated |
| 101 | +- `v1beta1` is now the storage version for ReferenceGrant |
| 102 | + |
| 103 | +Those changes mean that: |
| 104 | + |
| 105 | +- Users and implementations that were reading or writing from `v1alpha2` of |
| 106 | + Gateway, GatewayClass, or HTTPRoute MUST upgrade to use `v1beta1`. |
| 107 | +- Users and implementations that were reading or writing from `v1alpha2` of |
| 108 | + ReferenceGrant SHOULD upgrade to use `v1beta1`. |
| 109 | + |
| 110 | +For more information, refer to |
| 111 | +[#2069](https://github.com/kubernetes-sigs/gateway-api/pull/2069). |
| 112 | + |
| 113 | +## Other Changes |
| 114 | + |
| 115 | +### Status |
| 116 | +- Add IncompatibleFilters reason for implementations to specify when a route is |
| 117 | + invalid due to an invalid combination of route filters. (#2150, @sunjayBhatia) |
| 118 | + |
| 119 | +### Spec Clarifications |
| 120 | + |
| 121 | +- HTTPRoute Method matching precedence has been clarified (#2054, |
| 122 | + @gauravkghildiyal) |
| 123 | +- Clarify that implementations must not modify HTTP Host header. Adds |
| 124 | + specificity alongside spec that port in Host header must be ignored when |
| 125 | + matching on host. (#2092, @sunjayBhatia) |
| 126 | +- Fix typo: rename GatewaReasonUnsupportedAddress -> |
| 127 | + GatewayReasonUnsupportedAddress (#2149, @panslava) |
| 128 | +- HTTPRoute: Clarified that exact path matches are truly exact, both trailing |
| 129 | + slashes and capitalization are meaningful. (#2055, @robscott) |
| 130 | +- Implementations MUST ignore any port value specified in the HTTP Host header |
| 131 | + while performing a match against HTTPRoute.Hostnames (#1980, |
| 132 | + @gauravkghildiyal) |
| 133 | + |
| 134 | +### Conformance |
| 135 | + |
| 136 | +- Add conformance tests against accepting invalid ReferenceGrants in HTTPRoute |
| 137 | + and TLSRoute (#2076, @meyskens) |
| 138 | +- Fixed an issues causing conformance tests to fail when using IPv6 addresses |
| 139 | + (#2024, @howardjohn) |
| 140 | +- HTTPRoute connectivity is in now enforced in conformance tests if a relevant |
| 141 | + ReferenceGrant gets deleted. (#1853, @pmalek) |
| 142 | +- The `--skip-tests` flag has been added to the conformance CLI to enable tests |
| 143 | + opt-out when using it. (#2170, @mlavacca) |
| 144 | +- The experimental conformance profile suite can now be added as a stand-alone |
| 145 | + cli and by means of `go test`. (#2066, @mlavacca) |
| 146 | +- GEPs now must have a Conformance Details section that specifies the feature's |
| 147 | + name for conformance purposes. (#2115, @youngnick) |
| 148 | + |
| 149 | +### Webhook |
| 150 | + |
| 151 | +- Changed default imagePullPolicy for gateway-api-admission-server to |
| 152 | + IfNotPresent. (#2215, @networkhermit) |
| 153 | +- Webhook config works with PodAdmission restricted (#2016, @jcpunk) |
| 154 | + |
| 155 | +### Documentation |
| 156 | + |
| 157 | +- Adds support for ParentRef targeting a Kubernetes Service resource for mesh |
| 158 | + implementations. (#2146, @mikemorris) |
| 159 | +- Clarify wording on website around Gateway API vs API Gateway (#2191, |
| 160 | + @david-martin) |
| 161 | +- GEP-1282, Backend Properties, has been declined. (#2132, @youngnick) |
| 162 | +- Added missing GEPs. (#2114, @levikobi) |
| 163 | + |
| 164 | +### Bug Fixes |
| 165 | + |
| 166 | +- Added the missing ReferenceGrant resource the kustomization.yaml for the |
| 167 | + standard channel (#2084, @howardjohn) |
| 168 | +- Webhook validation now ensures that BackendRefs can not be specified in the |
| 169 | + same HTTPRoute rule as a Redirect filter (#2161, @slayer321) |
| 170 | + |
30 | 171 | # v0.7.1
|
31 | 172 |
|
32 | 173 | This is a patch release that includes small fixes, clarifications, and
|
|
0 commit comments