Merge pull request #31389 from liggitt/stable-deprecation-policy

Modify the deprecation policy to disallow removal of stable API versions
This commit is contained in:
Kubernetes Prow Robot
2022-01-25 12:33:43 -08:00
committed by GitHub
@@ -73,21 +73,23 @@ knows how to convert between them in both directions. Additionally, any new
field added in v2 must be able to round-trip to v1 and back, which means v1 field added in v2 must be able to round-trip to v1 and back, which means v1
might have to add an equivalent field or represent it as an annotation. might have to add an equivalent field or represent it as an annotation.
**Rule #3: An API version in a given track may not be deprecated until a new **Rule #3: An API version in a given track may not be deprecated in favor of a less stable API version.**
API version at least as stable is released.**
GA API versions can replace GA API versions as well as beta and alpha API * GA API versions can replace beta and alpha API versions.
versions. Beta API versions *may not* replace GA API versions. * Beta API versions can replace earlier beta and alpha API versions, but *may not* replace GA API versions.
* Alpha API versions can replace earlier alpha API versions, but *may not* replace GA or beta API versions.
**Rule #4a: Other than the most recent API versions in each track, older API **Rule #4a: minimum API lifetime is determined by the API stability level**
versions must be supported after their announced deprecation for a duration of
no less than:**
* **GA: 12 months or 3 releases (whichever is longer)** * **GA API versions may be marked as deprecated, but must not be removed within a major version of Kubernetes**
* **Beta: 9 months or 3 releases (whichever is longer)** * **Beta API versions must be supported for 9 months or 3 releases (whichever is longer) after deprecation**
* **Alpha: 0 releases** * **Alpha API versions may be removed in any release without prior deprecation notice**
This covers the [maximum supported version skew of 2 releases](/docs/setup/release/version-skew-policy/). This ensures beta API support covers the [maximum supported version skew of 2 releases](/docs/setup/release/version-skew-policy/).
{{< note >}}
There are no current plans for a major version revision of Kubernetes that removes GA APIs.
{{< /note >}}
{{< note >}} {{< note >}}
Until [#52185](https://github.com/kubernetes/kubernetes/issues/52185) is Until [#52185](https://github.com/kubernetes/kubernetes/issues/52185) is
@@ -237,7 +239,7 @@ API versions are supported in a series of subsequent releases.
<td> <td>
<ul> <ul>
<li>v2beta2 is deprecated, "action required" relnote</li> <li>v2beta2 is deprecated, "action required" relnote</li>
<li>v1 is deprecated, "action required" relnote</li> <li>v1 is deprecated in favor of v2, but will not be removed</li>
</ul> </ul>
</td> </td>
</tr> </tr>
@@ -267,22 +269,6 @@ API versions are supported in a series of subsequent releases.
</ul> </ul>
</td> </td>
</tr> </tr>
<tr>
<td>X+16</td>
<td>v2, v1 (deprecated)</td>
<td>v2</td>
<td></td>
</tr>
<tr>
<td>X+17</td>
<td>v2</td>
<td>v2</td>
<td>
<ul>
<li>v1 is removed, "action required" relnote</li>
</ul>
</td>
</tr>
</tbody> </tbody>
</table> </table>