Skip to content

Commit

Permalink
Update CAPI support and guarantees for v1.6
Browse files Browse the repository at this point in the history
  • Loading branch information
g-gaston committed Aug 3, 2023
1 parent 54dfd42 commit 0bce02e
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 61 deletions.
64 changes: 33 additions & 31 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,35 +2,36 @@
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->

- [Contributor License Agreements](#contributor-license-agreements)
- [Finding Things That Need Help](#finding-things-that-need-help)
- [Versioning](#versioning)
- [Codebase and Go Modules](#codebase-and-go-modules)
- [Backporting a patch](#backporting-a-patch)
- [APIs](#apis)
- [CLIs](#clis)
- [Branches](#branches)
- [Support and guarantees](#support-and-guarantees)
- [Removal of v1alpha3 & v1alpha4 apiVersions](#removal-of-v1alpha3--v1alpha4-apiversions)
- [Contributing a Patch](#contributing-a-patch)
- [Documentation changes](#documentation-changes)
- [Releases](#releases)
- [Proposal process (CAEP)](#proposal-process-caep)
- [Triaging E2E test failures](#triaging-e2e-test-failures)
- [Reviewing a Patch](#reviewing-a-patch)
- [Reviews](#reviews)
- [Approvals](#approvals)
- [Features and bugs](#features-and-bugs)
- [Experiments](#experiments)
- [Breaking Changes](#breaking-changes)
- [API conventions](#api-conventions)
- [Optional vs. Required](#optional-vs-required)
- [Example](#example)
- [Exceptions](#exceptions)
- [CRD additionalPrinterColumns](#crd-additionalprintercolumns)
- [Google Doc Viewing Permissions](#google-doc-viewing-permissions)
- [Issue and Pull Request Management](#issue-and-pull-request-management)
- [Contributors Ladder](#contributors-ladder)
- [Contributing Guidelines](#contributing-guidelines)
- [Contributor License Agreements](#contributor-license-agreements)
- [Finding Things That Need Help](#finding-things-that-need-help)
- [Versioning](#versioning)
- [Codebase and Go Modules](#codebase-and-go-modules)
- [Backporting a patch](#backporting-a-patch)
- [APIs](#apis)
- [CLIs](#clis)
- [Branches](#branches)
- [Support and guarantees](#support-and-guarantees)
- [Removal of v1alpha3 \& v1alpha4 apiVersions](#removal-of-v1alpha3--v1alpha4-apiversions)
- [Contributing a Patch](#contributing-a-patch)
- [Documentation changes](#documentation-changes)
- [Releases](#releases)
- [Proposal process (CAEP)](#proposal-process-caep)
- [Triaging E2E test failures](#triaging-e2e-test-failures)
- [Reviewing a Patch](#reviewing-a-patch)
- [Reviews](#reviews)
- [Approvals](#approvals)
- [Features and bugs](#features-and-bugs)
- [Experiments](#experiments)
- [Breaking Changes](#breaking-changes)
- [API conventions](#api-conventions)
- [Optional vs. Required](#optional-vs-required)
- [Example](#example)
- [Exceptions](#exceptions)
- [CRD additionalPrinterColumns](#crd-additionalprintercolumns)
- [Google Doc Viewing Permissions](#google-doc-viewing-permissions)
- [Issue and Pull Request Management](#issue-and-pull-request-management)
- [Contributors Ladder](#contributors-ladder)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

Expand Down Expand Up @@ -164,8 +165,9 @@ Cluster API maintains the most recent release/releases for all supported API and

| Minor Release | API Version | Supported Until |
|---------------|--------------|-----------------------------------------------------|
| v1.4.x | **v1beta1** | when v1.6.0 will be released |
| v1.3.x | **v1beta1** | when v1.5.0 will be released, tentatively July 2023 |
| v1.6.x | **v1beta1** | when v1.7.0 will be released |
| v1.4.x | **v1beta1** | when v1.6.0 will be released, tentatively Nov 2023 |
| v1.3.x | **v1beta1** | EOL since 2023-07-25 - v1.5.0 release date |
| v1.2.x | **v1beta1** | EOL since 2023-03-28 - v1.4.0 release date |
| v1.1.x | **v1beta1** | EOL since 2022-07-18 - v1.2.0 release date (*) |
| v1.0.x | **v1beta1** | EOL since 2022-02-02 - v1.1.0 release date (*) |
Expand Down
60 changes: 30 additions & 30 deletions docs/book/src/reference/versions.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ When a new Kubernetes minor release is available, we will try to support it in a
the corresponding required changes in Cluster API are too invasive we won't backport the support and users have to wait
for the next Cluster API minor release.

For example, Cluster API v1.5.0 would support the following Kubernetes versions:
For example, Cluster API v1.6.0 would support the following Kubernetes versions:
* v1.24.x to v1.27.x for the management cluster
* v1.22.x to v1.27.x for the workload cluster
* When Kubernetes 1.28 is released, it will be supported in v1.5.x (but not in v1.4.x)
* When Kubernetes 1.28 is released, it will be supported in v1.6.x (but not in v1.5.x)

Support in this context means that we:
* maintain corresponding code paths
Expand Down Expand Up @@ -72,14 +72,14 @@ These diagrams show the relationships between components in a Cluster API releas

#### Core Provider (`cluster-api-controller`)

| | v1.2 (v1beta1) (EOL) | v1.3 (v1beta1) | v1.4 (v1beta1) | v1.5 (v1beta1) |
| | v1.3 (v1beta1) (EOL) | v1.4 (v1beta1) | v1.5 (v1beta1) | v1.6 (v1beta1) |
|-------------------|----------------------|-------------------|-------------------|-------------------|
| Kubernetes v1.18 | ✓ (only workload) | ✓ (only workload) | | |
| Kubernetes v1.19 | ✓ (only workload) | ✓ (only workload) | | |
| Kubernetes v1.20 || | | |
| Kubernetes v1.21 || | ✓ (only workload) | |
| Kubernetes v1.22 || | ✓ (only workload) | ✓ (only workload) |
| Kubernetes v1.23* ||| | ✓ (only workload) |
| Kubernetes v1.18 | ✓ (only workload) | | | |
| Kubernetes v1.19 | ✓ (only workload) | | | |
| Kubernetes v1.20 || | | |
| Kubernetes v1.21 ||(only workload) | | |
| Kubernetes v1.22 ||(only workload) | ✓ (only workload) | ✓ (only workload) |
| Kubernetes v1.23* |||(only workload) | ✓ (only workload) |
| Kubernetes v1.24 |||||
| Kubernetes v1.25 |||||
| Kubernetes v1.26 |||||
Expand All @@ -95,35 +95,35 @@ The Core Provider also talks to API server of every Workload Cluster. Therefore,

#### Kubeadm Bootstrap Provider (`kubeadm-bootstrap-controller`)

| | v1.2 (v1beta1) (EOL) | v1.3 (v1beta1) | v1.4 (v1beta1) | v1.5 (v1beta1) |
|------------------------------------|----------------------|-------------------|--------------------|--------------------|
| Kubernetes v1.18 + kubeadm/v1beta2 | ✓ (only workload) | ✓ (only workload) | | |
| Kubernetes v1.19 + kubeadm/v1beta2 | ✓ (only workload) | ✓ (only workload) | | |
| Kubernetes v1.20 + kubeadm/v1beta2 || | | |
| Kubernetes v1.21 + kubeadm/v1beta2 || | ✓ (only workload) | |
| Kubernetes v1.22 + kubeadm/v1beta3 || | ✓ (only workload) | ✓ (only workload) |
| Kubernetes v1.23 + kubeadm/v1beta3 ||| | ✓ (only workload) |
| Kubernetes v1.24 + kubeadm/v1beta3 |||||
| Kubernetes v1.25 + kubeadm/v1beta3 |||||
| Kubernetes v1.26 + kubeadm/v1beta3 |||||
| Kubernetes v1.27 + kubeadm/v1beta3 | | |||
| | v1.3 (v1beta1) (EOL) | v1.4 (v1beta1) | v1.5 (v1beta1) | v1.6 (v1beta1) |
|------------------------------------|----------------------|--------------------|--------------------|--------------------|
| Kubernetes v1.18 + kubeadm/v1beta2 | ✓ (only workload) | | | |
| Kubernetes v1.19 + kubeadm/v1beta2 | ✓ (only workload) | | | |
| Kubernetes v1.20 + kubeadm/v1beta2 || | | |
| Kubernetes v1.21 + kubeadm/v1beta2 ||(only workload) | | |
| Kubernetes v1.22 + kubeadm/v1beta3 ||(only workload) | ✓ (only workload) | ✓ (only workload) |
| Kubernetes v1.23 + kubeadm/v1beta3 || |(only workload) | ✓ (only workload) |
| Kubernetes v1.24 + kubeadm/v1beta3 || |||
| Kubernetes v1.25 + kubeadm/v1beta3 || |||
| Kubernetes v1.26 + kubeadm/v1beta3 || |||
| Kubernetes v1.27 + kubeadm/v1beta3 | | |||

The Kubeadm Bootstrap Provider generates kubeadm configuration using the API version recommended for the target Kubernetes version.

#### Kubeadm Control Plane Provider (`kubeadm-control-plane-controller`)

| | v1.2 (v1beta1) (EOL) | v1.3 (v1beta1) | v1.4 (v1beta1) | v1.5 (v1beta1) |
| | v1.3 (v1beta1) (EOL) | v1.4 (v1beta1) | v1.5 (v1beta1) | v1.6 (v1beta1) |
|----------------------------|----------------------|-------------------|-------------------|-------------------|
| Kubernetes v1.18 + etcd/v3 | ✓ (only workload) | ✓ (only workload) | | |
| Kubernetes v1.19 + etcd/v3 | ✓ (only workload) | ✓ (only workload) | | |
| Kubernetes v1.20 + etcd/v3 || | | |
| Kubernetes v1.21 + etcd/v3 || | ✓ (only workload) | |
| Kubernetes v1.22 + etcd/v3 || | ✓ (only workload) | ✓ (only workload) |
| Kubernetes v1.23 + etcd/v3 ||| | ✓ (only workload) |
| Kubernetes v1.18 + etcd/v3 | ✓ (only workload) | | | |
| Kubernetes v1.19 + etcd/v3 | ✓ (only workload) | | | |
| Kubernetes v1.20 + etcd/v3 || | | |
| Kubernetes v1.21 + etcd/v3 ||(only workload) | | |
| Kubernetes v1.22 + etcd/v3 ||(only workload) | ✓ (only workload) | ✓ (only workload) |
| Kubernetes v1.23 + etcd/v3 |||(only workload) | ✓ (only workload) |
| Kubernetes v1.24 + etcd/v3 |||||
| Kubernetes v1.25 + etcd/v3 |||||
| Kubernetes v1.26 + etcd/v3 |||||
| Kubernetes v1.27 + etcd/v3 | | |||
| Kubernetes v1.27 + etcd/v3 | | |||

The Kubeadm Control Plane Provider talks to the API server and etcd members of every Workload Cluster whose control plane it owns. It uses the etcd v3 API.

Expand All @@ -135,12 +135,12 @@ The Kubeadm Control Plane requires the Kubeadm Bootstrap Provider.

| CAPI Version | Max CoreDNS Version for Upgrade |
|----------------------|---------------------------------|
| v1.2 (v1beta1) | v1.9.3 |
| >= v1.2.7 (v1beta1) | v1.10.0 |
| >= v1.2.11 (v1beta1) | v1.10.1 |
| v1.3 (v1beta1) | v1.10.0 |
| >= v1.3.4 (v1beta1) | v1.10.1 |
| v1.4 (v1beta1) | v1.10.1 |
| v1.4 (v1beta1) | v1.10.1 |

#### Kubernetes version specific notes

Expand Down

0 comments on commit 0bce02e

Please sign in to comment.