Skip to content

Commit 6acff21

Browse files
authored
Merge pull request #8996 from killianmuldoon/pr-stop-serving-v1alpha4
⚠️ Stop serving v1alpha4 API Versions
2 parents 46e045c + acffb87 commit 6acff21

File tree

49 files changed

+75
-280
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+75
-280
lines changed

Makefile

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -504,15 +504,11 @@ generate-modules: ## Run go mod tidy to ensure modules are up to date
504504
cd $(TEST_DIR); go mod tidy
505505

506506
.PHONY: generate-e2e-templates
507-
generate-e2e-templates: $(KUSTOMIZE) $(addprefix generate-e2e-templates-, v0.4 v1.0 v1.3 v1.4 main) ## Generate cluster templates for all versions
507+
generate-e2e-templates: $(KUSTOMIZE) $(addprefix generate-e2e-templates-, v1.0 v1.3 v1.4 main) ## Generate cluster templates for all versions
508508

509509
DOCKER_TEMPLATES := test/e2e/data/infrastructure-docker
510510
INMEMORY_TEMPLATES := test/e2e/data/infrastructure-inmemory
511511

512-
.PHONY: generate-e2e-templates-v0.4
513-
generate-e2e-templates-v0.4: $(KUSTOMIZE)
514-
$(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v0.4/cluster-template --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v0.4/cluster-template.yaml
515-
516512
.PHONY: generate-e2e-templates-v1.0
517513
generate-e2e-templates-v1.0: $(KUSTOMIZE)
518514
$(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1.0/cluster-template --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1.0/cluster-template.yaml

api/v1alpha4/cluster_types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,7 @@ func (v APIEndpoint) String() string {
276276
// ANCHOR_END: APIEndpoint
277277

278278
// +kubebuilder:object:root=true
279+
// +kubebuilder:unservedversion
279280
// +kubebuilder:deprecatedversion
280281
// +kubebuilder:resource:path=clusters,shortName=cl,scope=Namespaced,categories=cluster-api
281282
// +kubebuilder:subresource:status

api/v1alpha4/clusterclass_types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
)
2323

2424
// +kubebuilder:object:root=true
25+
// +kubebuilder:unservedversion
2526
// +kubebuilder:deprecatedversion
2627
// +kubebuilder:resource:path=clusterclasses,shortName=cc,scope=Namespaced,categories=cluster-api
2728
// +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of ClusterClass"

api/v1alpha4/machine_types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,7 @@ type Bootstrap struct {
234234
// ANCHOR_END: Bootstrap
235235

236236
// +kubebuilder:object:root=true
237+
// +kubebuilder:unservedversion
237238
// +kubebuilder:deprecatedversion
238239
// +kubebuilder:resource:path=machines,shortName=ma,scope=Namespaced,categories=cluster-api
239240
// +kubebuilder:subresource:status

api/v1alpha4/machinedeployment_types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,7 @@ func (md *MachineDeploymentStatus) GetTypedPhase() MachineDeploymentPhase {
270270
}
271271

272272
// +kubebuilder:object:root=true
273+
// +kubebuilder:unservedversion
273274
// +kubebuilder:deprecatedversion
274275
// +kubebuilder:resource:path=machinedeployments,shortName=md,scope=Namespaced,categories=cluster-api
275276
// +kubebuilder:subresource:status

api/v1alpha4/machinehealthcheck_types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ type MachineHealthCheckStatus struct {
125125
// ANCHOR_END: MachineHealthCheckStatus
126126

127127
// +kubebuilder:object:root=true
128+
// +kubebuilder:unservedversion
128129
// +kubebuilder:deprecatedversion
129130
// +kubebuilder:resource:path=machinehealthchecks,shortName=mhc;mhcs,scope=Namespaced,categories=cluster-api
130131
// +kubebuilder:subresource:status

api/v1alpha4/machineset_types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ func (m *MachineSet) Validate() field.ErrorList {
195195
}
196196

197197
// +kubebuilder:object:root=true
198+
// +kubebuilder:unservedversion
198199
// +kubebuilder:deprecatedversion
199200
// +kubebuilder:resource:path=machinesets,shortName=ms,scope=Namespaced,categories=cluster-api
200201
// +kubebuilder:subresource:status

bootstrap/kubeadm/api/v1alpha4/kubeadmconfig_types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ type KubeadmConfigStatus struct {
124124
}
125125

126126
// +kubebuilder:object:root=true
127+
// +kubebuilder:unservedversion
127128
// +kubebuilder:deprecatedversion
128129
// +kubebuilder:resource:path=kubeadmconfigs,scope=Namespaced,categories=cluster-api
129130
// +kubebuilder:subresource:status

bootstrap/kubeadm/api/v1alpha4/kubeadmconfigtemplate_types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ type KubeadmConfigTemplateResource struct {
3131
}
3232

3333
// +kubebuilder:object:root=true
34+
// +kubebuilder:unservedversion
3435
// +kubebuilder:deprecatedversion
3536
// +kubebuilder:resource:path=kubeadmconfigtemplates,scope=Namespaced,categories=cluster-api
3637
// +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of KubeadmConfigTemplate"

bootstrap/kubeadm/config/crd/bases/bootstrap.cluster.x-k8s.io_kubeadmconfigs.yaml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bootstrap/kubeadm/config/crd/bases/bootstrap.cluster.x-k8s.io_kubeadmconfigtemplates.yaml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/addons.cluster.x-k8s.io_clusterresourcesetbindings.yaml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/addons.cluster.x-k8s.io_clusterresourcesets.yaml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/cluster.x-k8s.io_clusterclasses.yaml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/cluster.x-k8s.io_clusters.yaml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/cluster.x-k8s.io_machinedeployments.yaml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/cluster.x-k8s.io_machinehealthchecks.yaml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/cluster.x-k8s.io_machinepools.yaml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/cluster.x-k8s.io_machines.yaml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/cluster.x-k8s.io_machinesets.yaml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

controlplane/kubeadm/api/v1alpha4/kubeadm_control_plane_types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ type KubeadmControlPlaneStatus struct {
198198
}
199199

200200
// +kubebuilder:object:root=true
201+
// +kubebuilder:unservedversion
201202
// +kubebuilder:deprecatedversion
202203
// +kubebuilder:resource:path=kubeadmcontrolplanes,shortName=kcp,scope=Namespaced,categories=cluster-api
203204
// +kubebuilder:subresource:status

controlplane/kubeadm/api/v1alpha4/kubeadmcontrolplanetemplate_types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ type KubeadmControlPlaneTemplateSpec struct {
2626
}
2727

2828
// +kubebuilder:object:root=true
29+
// +kubebuilder:unservedversion
2930
// +kubebuilder:deprecatedversion
3031
// +kubebuilder:resource:path=kubeadmcontrolplanetemplates,scope=Namespaced,categories=cluster-api
3132
// +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of KubeadmControlPlaneTemplate"

controlplane/kubeadm/config/crd/bases/controlplane.cluster.x-k8s.io_kubeadmcontrolplanes.yaml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

controlplane/kubeadm/config/crd/bases/controlplane.cluster.x-k8s.io_kubeadmcontrolplanetemplates.yaml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/book/src/SUMMARY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@
9090
- [v1.2 to v1.3](./developer/providers/migrations/v1.2-to-v1.3.md)
9191
- [v1.3 to v1.4](./developer/providers/migrations/v1.3-to-v1.4.md)
9292
- [v1.4 to v1.5](./developer/providers/migrations/v1.4-to-v1.5.md)
93+
- [v1.5 to v1.6](./developer/providers/migrations/v1.5-to-v1.6.md)
9394
- [Provider contracts](./developer/providers/contracts.md)
9495
- [Cluster Infrastructure](./developer/providers/cluster-infrastructure.md)
9596
- [Machine Infrastructure](./developer/providers/machine-infrastructure.md)

docs/book/src/clusterctl/commands/upgrade.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,10 @@ Cluster API only tests a subset of possible clusterctl upgrade paths as otherwis
8383
Untested upgrade paths are not blocked by clusterctl and should work in general, they are just not tested. Users
8484
intending to use an upgrade path not tested by us should do their own validation to ensure the operation works correctly.
8585

86-
The following is an example of the tested upgrade paths while v1.5 is being developed:
86+
The following is an example of the tested upgrade paths while v1.6 is being developed:
8787

8888
| From | To | Note |
8989
|------|--------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
90-
| v0.4 | latest | v0.4 is the latest supported minor release with the v1alpha4 contract (v0.4 is EOL since 2022-04-06). This test will be removed once the v1alpha4 apiVersion is removed. |
9190
| v1.0 | latest | v1.0 is the first release with the v1beta1 contract. |
9291
| v1.3 | latest | v1.3 is a currently supported release. This test will be removed when v1.5 is released and a new test for v1.5 is added. |
9392
| v1.4 | latest | v1.4 is a currently supported release. This test will be removed when v1.6 is released and a new test for v1.6 is added. |
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Cluster API v1.5 compared to v1.6
2+
3+
This document provides an overview over relevant changes between Cluster API v1.5 and v1.6 for
4+
maintainers of providers and consumers of our Go API.
5+
6+
## Go version
7+
8+
- The Go version used by Cluster API is Go 1.20.x
9+
10+
## Dependencies
11+
12+
**Note**: Only the most relevant dependencies are listed, `k8s.io/` and `ginkgo`/`gomega` dependencies in Cluster API are kept in sync with the versions used by `sigs.k8s.io/controller-runtime`.
13+
14+
- sigs.k8s.io/kind: v0.20.x
15+
- sigs.k8s.io/controller-runtime: v0.15.x
16+
- sigs.k8s.io/controller-tools: v0.12.x
17+
18+
## Changes by Kind
19+
20+
### Deprecation
21+
22+
### Removals
23+
24+
- API version `v1alpha4` is not served in v1.6 (users can enable it manually in case they are lagging behind with deprecation cycles). Important: `v1alpha4` will be completely removed in 1.7.
25+
26+
### API Changes
27+
28+
29+
### Other
30+
31+
32+
### Suggested changes for providers
33+

docs/release/release-tasks.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ This document details the responsibilities and tasks for each role in the releas
2222
- [Prepare main branch for development of the new release](#prepare-main-branch-for-development-of-the-new-release)
2323
- [Create a new GitHub milestone for the next release](#create-a-new-github-milestone-for-the-next-release)
2424
- [\[Track\] Remove previously deprecated code](#track-remove-previously-deprecated-code)
25+
-
2526
- [\[Track\] Bump dependencies](#track-bump-dependencies)
2627
- [Create a release branch](#create-a-release-branch)
2728
- [\[Continuously\] Maintain the GitHub release milestone](#continuously-maintain-the-github-release-milestone)
@@ -94,7 +95,6 @@ is used for e.g. local development and e2e tests. We also modify tests so that t
9495
This comes down to changing occurrences of the old version to the new version, e.g. `v1.3` to `v1.4`:
9596
1. Setup E2E tests for the new release:
9697
1. Goal is that we have clusterctl upgrade tests for the latest stable versions of each contract / for each supported branch. For `v1.5` this means:
97-
* v1alpha4: `v0.4`
9898
* v1beta1: `v1.0`, `v1.3`, `v1.4` (will change with each new release)
9999
2. Update providers in `docker.yaml`:
100100
1. Add a new `v1.4.0` entry.

exp/addons/api/v1alpha4/clusterresourceset_types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ func (m *ClusterResourceSet) SetConditions(conditions clusterv1alpha4.Conditions
112112
}
113113

114114
// +kubebuilder:object:root=true
115+
// +kubebuilder:unservedversion
115116
// +kubebuilder:deprecatedversion
116117
// +kubebuilder:resource:path=clusterresourcesets,scope=Namespaced,categories=cluster-api
117118
// +kubebuilder:subresource:status

exp/addons/api/v1alpha4/clusterresourcesetbinding_types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ func (c *ClusterResourceSetBinding) DeleteBinding(clusterResourceSet *ClusterRes
101101
}
102102

103103
// +kubebuilder:object:root=true
104+
// +kubebuilder:unservedversion
104105
// +kubebuilder:deprecatedversion
105106
// +kubebuilder:resource:path=clusterresourcesetbindings,scope=Namespaced,categories=cluster-api
106107
// +kubebuilder:subresource:status

exp/api/v1alpha4/machinepool_types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ func (m *MachinePoolStatus) GetTypedPhase() MachinePoolPhase {
199199
}
200200

201201
// +kubebuilder:object:root=true
202+
// +kubebuilder:unservedversion
202203
// +kubebuilder:deprecatedversion
203204
// +kubebuilder:resource:path=machinepools,shortName=mp,scope=Namespaced,categories=cluster-api
204205
// +kubebuilder:subresource:status

test/e2e/clusterctl_upgrade_test.go

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -26,37 +26,6 @@ import (
2626
"sigs.k8s.io/cluster-api/test/framework"
2727
)
2828

29-
var _ = Describe("When testing clusterctl upgrades (v0.4=>current)", func() {
30-
ClusterctlUpgradeSpec(ctx, func() ClusterctlUpgradeSpecInput {
31-
return ClusterctlUpgradeSpecInput{
32-
E2EConfig: e2eConfig,
33-
ClusterctlConfigPath: clusterctlConfigPath,
34-
BootstrapClusterProxy: bootstrapClusterProxy,
35-
ArtifactFolder: artifactFolder,
36-
SkipCleanup: skipCleanup,
37-
InfrastructureProvider: pointer.String("docker"),
38-
InitWithBinary: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v0.4.8/clusterctl-{OS}-{ARCH}",
39-
InitWithProvidersContract: "v1alpha4",
40-
// NOTE: If this version is changed here the image and SHA must also be updated in all DockerMachineTemplates in `test/data/infrastructure-docker/v0.4/bases.
41-
InitWithKubernetesVersion: "v1.23.17",
42-
WorkloadKubernetesVersion: "v1.23.17",
43-
MgmtFlavor: "topology",
44-
WorkloadFlavor: "",
45-
// This check ensures that ownerReference apiVersions are updated for all types after the upgrade.
46-
PostUpgrade: func(proxy framework.ClusterProxy, namespace, clusterName string) {
47-
framework.ValidateOwnerReferencesOnUpdate(proxy, namespace,
48-
framework.CoreOwnerReferenceAssertion,
49-
framework.ExpOwnerReferenceAssertions,
50-
framework.DockerInfraOwnerReferenceAssertions,
51-
framework.KubeadmBootstrapOwnerReferenceAssertions,
52-
framework.KubeadmControlPlaneOwnerReferenceAssertions,
53-
framework.KubernetesReferenceAssertions,
54-
)
55-
},
56-
}
57-
})
58-
})
59-
6029
var _ = Describe("When testing clusterctl upgrades (v1.0=>current)", func() {
6130
ClusterctlUpgradeSpec(ctx, func() ClusterctlUpgradeSpecInput {
6231
return ClusterctlUpgradeSpecInput{

0 commit comments

Comments
 (0)