Skip to content

Commit 30f7ff9

Browse files
authored
⚠️ Add CAPD v1beta2 types (#12226)
* add CAPD v1beta2 Signed-off-by: sivchari <shibuuuu5@gmail.com> * add CAPD exp v1beta2 Signed-off-by: sivchari <shibuuuu5@gmail.com> * regenerate Signed-off-by: sivchari <shibuuuu5@gmail.com> * replace v1beta1 with v1beta2 Signed-off-by: sivchari <shibuuuu5@gmail.com> * fix: webhook markers Signed-off-by: sivchari <shibuuuu5@gmail.com> * re-generate conversion func Signed-off-by: sivchari <shibuuuu5@gmail.com> * revert api verson to v1 Signed-off-by: sivchari <shibuuuu5@gmail.com> * Add DevCluster, DevMachine and corresponding Template to conversion Signed-off-by: sivchari <shibuuuu5@gmail.com> * restructure import-restrictions Signed-off-by: sivchari <shibuuuu5@gmail.com> * fix review findings Signed-off-by: sivchari <shibuuuu5@gmail.com> * remain v1beta1 for status Signed-off-by: sivchari <shibuuuu5@gmail.com> --------- Signed-off-by: sivchari <shibuuuu5@gmail.com>
1 parent 6ad0b65 commit 30f7ff9

File tree

113 files changed

+9151
-872
lines changed

Some content is hidden

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

113 files changed

+9151
-872
lines changed

.golangci.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,13 +176,17 @@ linters:
176176
- pkg: sigs.k8s.io/cluster-api/test/infrastructure/docker/api/v1alpha4
177177
alias: infrav1alpha4
178178
- pkg: sigs.k8s.io/cluster-api/test/infrastructure/docker/api/v1beta1
179+
alias: infrav1beta1
180+
- pkg: sigs.k8s.io/cluster-api/test/infrastructure/docker/api/v1beta2
179181
alias: infrav1
180182
# CAPD exp
181183
- pkg: sigs.k8s.io/cluster-api/test/infrastructure/docker/exp/api/v1alpha3
182184
alias: infraexpv1alpha3
183185
- pkg: sigs.k8s.io/cluster-api/test/infrastructure/docker/exp/api/v1alpha4
184186
alias: infraexpv1alpha4
185187
- pkg: sigs.k8s.io/cluster-api/test/infrastructure/docker/exp/api/v1beta1
188+
alias: infraexpv1beta1
189+
- pkg: sigs.k8s.io/cluster-api/test/infrastructure/docker/exp/api/v1beta2
186190
alias: infraexpv1
187191
no-unaliased: true
188192
nolintlint:

Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -528,8 +528,10 @@ generate-go-conversions-docker-infrastructure: $(CONVERSION_GEN) ## Generate con
528528
--go-header-file=../../../hack/boilerplate/boilerplate.generatego.txt \
529529
./api/v1alpha3 \
530530
./api/v1alpha4 \
531+
./api/v1beta1 \
531532
./exp/api/v1alpha3 \
532-
./exp/api/v1alpha4
533+
./exp/api/v1alpha4 \
534+
./exp/api/v1beta1
533535

534536
.PHONY: generate-go-conversions-test-extension
535537
generate-go-conversions-test-extension: $(CONVERSION_GEN) ## Generate conversions go code for test runtime extension provider

hack/verify-import-restrictions.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ sub_packages=(
2929
"test/extension"
3030
"test/infrastructure/docker/api"
3131
"test/infrastructure/docker/exp/api"
32-
"test/infrastructure/inmemory/api"
32+
"test/infrastructure/inmemory/pkg/cloud/api"
3333
)
3434

3535
packages=()

test/extension/handlers/topologymutation/handler.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ import (
3838
clusterv1beta1 "sigs.k8s.io/cluster-api/api/core/v1beta1"
3939
runtimehooksv1 "sigs.k8s.io/cluster-api/api/runtime/hooks/v1alpha1"
4040
"sigs.k8s.io/cluster-api/exp/runtime/topologymutation"
41-
infrav1 "sigs.k8s.io/cluster-api/test/infrastructure/docker/api/v1beta1"
42-
infraexpv1 "sigs.k8s.io/cluster-api/test/infrastructure/docker/exp/api/v1beta1"
41+
infrav1beta1 "sigs.k8s.io/cluster-api/test/infrastructure/docker/api/v1beta1"
42+
infraexpv1beta1 "sigs.k8s.io/cluster-api/test/infrastructure/docker/exp/api/v1beta1"
4343
"sigs.k8s.io/cluster-api/test/infrastructure/kind"
4444
)
4545

@@ -57,14 +57,14 @@ type ExtensionHandlers struct {
5757
// NewExtensionHandlers returns a new ExtensionHandlers for the topology mutation hook handlers.
5858
func NewExtensionHandlers() *ExtensionHandlers {
5959
scheme := runtime.NewScheme()
60-
_ = infrav1.AddToScheme(scheme)
61-
_ = infraexpv1.AddToScheme(scheme)
60+
_ = infrav1beta1.AddToScheme(scheme)
61+
_ = infraexpv1beta1.AddToScheme(scheme)
6262
_ = bootstrapv1beta1.AddToScheme(scheme)
6363
_ = controlplanev1beta1.AddToScheme(scheme)
6464
return &ExtensionHandlers{
6565
// Add the apiGroups being handled to the decoder
6666
decoder: serializer.NewCodecFactory(scheme).UniversalDecoder(
67-
infrav1.GroupVersion,
67+
infrav1beta1.GroupVersion,
6868
bootstrapv1beta1.GroupVersion,
6969
controlplanev1beta1.GroupVersion,
7070
),
@@ -87,7 +87,7 @@ func (h *ExtensionHandlers) GeneratePatches(ctx context.Context, req *runtimehoo
8787
log := ctrl.LoggerFrom(ctx)
8888

8989
switch obj := obj.(type) {
90-
case *infrav1.DockerClusterTemplate:
90+
case *infrav1beta1.DockerClusterTemplate:
9191
if err := patchDockerClusterTemplate(ctx, obj, variables); err != nil {
9292
log.Error(err, "Error patching DockerClusterTemplate")
9393
return errors.Wrap(err, "error patching DockerClusterTemplate")
@@ -107,7 +107,7 @@ func (h *ExtensionHandlers) GeneratePatches(ctx context.Context, req *runtimehoo
107107
log.Error(err, "Error patching KubeadmConfigTemplate")
108108
return errors.Wrap(err, "error patching KubeadmConfigTemplate")
109109
}
110-
case *infrav1.DockerMachineTemplate:
110+
case *infrav1beta1.DockerMachineTemplate:
111111
// NOTE: DockerMachineTemplate could be linked to the ControlPlane or one or more of the existing MachineDeployment class;
112112
// the patchDockerMachineTemplate func shows how to implement different patches for DockerMachineTemplate
113113
// linked to ControlPlane or for DockerMachineTemplate linked to MachineDeployment classes; another option
@@ -116,7 +116,7 @@ func (h *ExtensionHandlers) GeneratePatches(ctx context.Context, req *runtimehoo
116116
log.Error(err, "Error patching DockerMachineTemplate")
117117
return errors.Wrap(err, "error patching DockerMachineTemplate")
118118
}
119-
case *infraexpv1.DockerMachinePoolTemplate:
119+
case *infraexpv1beta1.DockerMachinePoolTemplate:
120120
if err := patchDockerMachinePoolTemplate(ctx, obj, variables); err != nil {
121121
log.Error(err, "Error patching DockerMachinePoolTemplate")
122122
return errors.Wrap(err, "error patching DockerMachinePoolTemplate")
@@ -129,7 +129,7 @@ func (h *ExtensionHandlers) GeneratePatches(ctx context.Context, req *runtimehoo
129129
// patchDockerClusterTemplate patches the DockerClusterTemplate.
130130
// It sets the LoadBalancer.ImageRepository if the imageRepository variable is provided.
131131
// NOTE: this patch is not required for any special reason, it is used for testing the patch machinery itself.
132-
func patchDockerClusterTemplate(_ context.Context, dockerClusterTemplate *infrav1.DockerClusterTemplate, templateVariables map[string]apiextensionsv1.JSON) error {
132+
func patchDockerClusterTemplate(_ context.Context, dockerClusterTemplate *infrav1beta1.DockerClusterTemplate, templateVariables map[string]apiextensionsv1.JSON) error {
133133
imageRepo, err := topologymutation.GetStringVariable(templateVariables, "imageRepository")
134134
if err != nil {
135135
if topologymutation.IsNotFoundError(err) {
@@ -182,7 +182,7 @@ func patchKubeadmConfigTemplate(_ context.Context, _ *bootstrapv1beta1.KubeadmCo
182182
// the DockerMachineTemplate belongs to.
183183
// NOTE: this patch is not required anymore after the introduction of the kind mapper in kind, however we keep it
184184
// as example of version aware patches.
185-
func patchDockerMachineTemplate(ctx context.Context, dockerMachineTemplate *infrav1.DockerMachineTemplate, templateVariables map[string]apiextensionsv1.JSON) error {
185+
func patchDockerMachineTemplate(ctx context.Context, dockerMachineTemplate *infrav1beta1.DockerMachineTemplate, templateVariables map[string]apiextensionsv1.JSON) error {
186186
log := ctrl.LoggerFrom(ctx)
187187

188188
// If the DockerMachineTemplate belongs to the ControlPlane, set the images using the ControlPlane version.
@@ -237,7 +237,7 @@ func patchDockerMachineTemplate(ctx context.Context, dockerMachineTemplate *infr
237237
// It sets the CustomImage to an image for the version in use by the MachinePool.
238238
// NOTE: this patch is not required anymore after the introduction of the kind mapper in kind, however we keep it
239239
// as example of version aware patches.
240-
func patchDockerMachinePoolTemplate(ctx context.Context, dockerMachinePoolTemplate *infraexpv1.DockerMachinePoolTemplate, templateVariables map[string]apiextensionsv1.JSON) error {
240+
func patchDockerMachinePoolTemplate(ctx context.Context, dockerMachinePoolTemplate *infraexpv1beta1.DockerMachinePoolTemplate, templateVariables map[string]apiextensionsv1.JSON) error {
241241
log := ctrl.LoggerFrom(ctx)
242242

243243
// If the DockerMachinePoolTemplate belongs to a MachinePool, set the images the MachinePool version.

test/extension/handlers/topologymutation/handler_test.go

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,17 @@ import (
3333
bootstrapv1beta1 "sigs.k8s.io/cluster-api/api/bootstrap/kubeadm/v1beta1"
3434
controlplanev1beta1 "sigs.k8s.io/cluster-api/api/controlplane/kubeadm/v1beta1"
3535
runtimehooksv1 "sigs.k8s.io/cluster-api/api/runtime/hooks/v1alpha1"
36-
infrav1 "sigs.k8s.io/cluster-api/test/infrastructure/docker/api/v1beta1"
37-
infraexpv1 "sigs.k8s.io/cluster-api/test/infrastructure/docker/exp/api/v1beta1"
36+
infrav1beta1 "sigs.k8s.io/cluster-api/test/infrastructure/docker/api/v1beta1"
37+
infraexpv1beta1 "sigs.k8s.io/cluster-api/test/infrastructure/docker/exp/api/v1beta1"
3838
)
3939

4040
var (
4141
testScheme = runtime.NewScheme()
4242
)
4343

4444
func init() {
45-
_ = infrav1.AddToScheme(testScheme)
46-
_ = infraexpv1.AddToScheme(testScheme)
45+
_ = infrav1beta1.AddToScheme(testScheme)
46+
_ = infraexpv1beta1.AddToScheme(testScheme)
4747
_ = controlplanev1beta1.AddToScheme(testScheme)
4848
_ = bootstrapv1beta1.AddToScheme(testScheme)
4949
}
@@ -53,29 +53,29 @@ func Test_patchDockerClusterTemplate(t *testing.T) {
5353

5454
tests := []struct {
5555
name string
56-
template *infrav1.DockerClusterTemplate
56+
template *infrav1beta1.DockerClusterTemplate
5757
variables map[string]apiextensionsv1.JSON
58-
expectedTemplate *infrav1.DockerClusterTemplate
58+
expectedTemplate *infrav1beta1.DockerClusterTemplate
5959
expectedErr bool
6060
}{
6161
{
6262
name: "no op if imageRepository is not set",
63-
template: &infrav1.DockerClusterTemplate{},
63+
template: &infrav1beta1.DockerClusterTemplate{},
6464
variables: nil,
65-
expectedTemplate: &infrav1.DockerClusterTemplate{},
65+
expectedTemplate: &infrav1beta1.DockerClusterTemplate{},
6666
},
6767
{
6868
name: "set LoadBalancer.ImageRepository if imageRepository is set",
69-
template: &infrav1.DockerClusterTemplate{},
69+
template: &infrav1beta1.DockerClusterTemplate{},
7070
variables: map[string]apiextensionsv1.JSON{
7171
"imageRepository": {Raw: toJSON("testImage")},
7272
},
73-
expectedTemplate: &infrav1.DockerClusterTemplate{
74-
Spec: infrav1.DockerClusterTemplateSpec{
75-
Template: infrav1.DockerClusterTemplateResource{
76-
Spec: infrav1.DockerClusterSpec{
77-
LoadBalancer: infrav1.DockerLoadBalancer{
78-
ImageMeta: infrav1.ImageMeta{
73+
expectedTemplate: &infrav1beta1.DockerClusterTemplate{
74+
Spec: infrav1beta1.DockerClusterTemplateSpec{
75+
Template: infrav1beta1.DockerClusterTemplateResource{
76+
Spec: infrav1beta1.DockerClusterSpec{
77+
LoadBalancer: infrav1beta1.DockerLoadBalancer{
78+
ImageMeta: infrav1beta1.ImageMeta{
7979
ImageRepository: "testImage",
8080
},
8181
},
@@ -150,32 +150,32 @@ func Test_patchDockerMachineTemplate(t *testing.T) {
150150

151151
tests := []struct {
152152
name string
153-
template *infrav1.DockerMachineTemplate
153+
template *infrav1beta1.DockerMachineTemplate
154154
variables map[string]apiextensionsv1.JSON
155-
expectedTemplate *infrav1.DockerMachineTemplate
155+
expectedTemplate *infrav1beta1.DockerMachineTemplate
156156
expectedErr bool
157157
}{
158158
{
159159
name: "fails if builtin.controlPlane.version nor builtin.machineDeployment.version is not set",
160-
template: &infrav1.DockerMachineTemplate{},
160+
template: &infrav1beta1.DockerMachineTemplate{},
161161
variables: nil,
162-
expectedTemplate: &infrav1.DockerMachineTemplate{},
162+
expectedTemplate: &infrav1beta1.DockerMachineTemplate{},
163163
expectedErr: true,
164164
},
165165
{
166166
name: "sets customImage for templates linked to ControlPlane",
167-
template: &infrav1.DockerMachineTemplate{},
167+
template: &infrav1beta1.DockerMachineTemplate{},
168168
variables: map[string]apiextensionsv1.JSON{
169169
runtimehooksv1.BuiltinsName: {Raw: toJSON(runtimehooksv1.Builtins{
170170
ControlPlane: &runtimehooksv1.ControlPlaneBuiltins{
171171
Version: "v1.23.0",
172172
},
173173
})},
174174
},
175-
expectedTemplate: &infrav1.DockerMachineTemplate{
176-
Spec: infrav1.DockerMachineTemplateSpec{
177-
Template: infrav1.DockerMachineTemplateResource{
178-
Spec: infrav1.DockerMachineSpec{
175+
expectedTemplate: &infrav1beta1.DockerMachineTemplate{
176+
Spec: infrav1beta1.DockerMachineTemplateSpec{
177+
Template: infrav1beta1.DockerMachineTemplateResource{
178+
Spec: infrav1beta1.DockerMachineSpec{
179179
CustomImage: "kindest/node:v1.23.0",
180180
},
181181
},
@@ -184,18 +184,18 @@ func Test_patchDockerMachineTemplate(t *testing.T) {
184184
},
185185
{
186186
name: "sets customImage for templates linked to ControlPlane for pre versions",
187-
template: &infrav1.DockerMachineTemplate{},
187+
template: &infrav1beta1.DockerMachineTemplate{},
188188
variables: map[string]apiextensionsv1.JSON{
189189
runtimehooksv1.BuiltinsName: {Raw: toJSON(runtimehooksv1.Builtins{
190190
ControlPlane: &runtimehooksv1.ControlPlaneBuiltins{
191191
Version: "v1.23.0-rc.0",
192192
},
193193
})},
194194
},
195-
expectedTemplate: &infrav1.DockerMachineTemplate{
196-
Spec: infrav1.DockerMachineTemplateSpec{
197-
Template: infrav1.DockerMachineTemplateResource{
198-
Spec: infrav1.DockerMachineSpec{
195+
expectedTemplate: &infrav1beta1.DockerMachineTemplate{
196+
Spec: infrav1beta1.DockerMachineTemplateSpec{
197+
Template: infrav1beta1.DockerMachineTemplateResource{
198+
Spec: infrav1beta1.DockerMachineSpec{
199199
CustomImage: "kindest/node:v1.23.0-rc.0",
200200
},
201201
},
@@ -221,21 +221,21 @@ func Test_patchDockerMachinePoolTemplate(t *testing.T) {
221221

222222
tests := []struct {
223223
name string
224-
template *infraexpv1.DockerMachinePoolTemplate
224+
template *infraexpv1beta1.DockerMachinePoolTemplate
225225
variables map[string]apiextensionsv1.JSON
226-
expectedTemplate *infraexpv1.DockerMachinePoolTemplate
226+
expectedTemplate *infraexpv1beta1.DockerMachinePoolTemplate
227227
expectedErr bool
228228
}{
229229
{
230230
name: "fails if builtin.controlPlane.version nor builtin.machinePool.version is not set",
231-
template: &infraexpv1.DockerMachinePoolTemplate{},
231+
template: &infraexpv1beta1.DockerMachinePoolTemplate{},
232232
variables: nil,
233-
expectedTemplate: &infraexpv1.DockerMachinePoolTemplate{},
233+
expectedTemplate: &infraexpv1beta1.DockerMachinePoolTemplate{},
234234
expectedErr: true,
235235
},
236236
{
237237
name: "sets customImage for templates linked to ControlPlane",
238-
template: &infraexpv1.DockerMachinePoolTemplate{},
238+
template: &infraexpv1beta1.DockerMachinePoolTemplate{},
239239
variables: map[string]apiextensionsv1.JSON{
240240
runtimehooksv1.BuiltinsName: {Raw: toJSON(runtimehooksv1.Builtins{
241241
ControlPlane: &runtimehooksv1.ControlPlaneBuiltins{
@@ -247,11 +247,11 @@ func Test_patchDockerMachinePoolTemplate(t *testing.T) {
247247
},
248248
})},
249249
},
250-
expectedTemplate: &infraexpv1.DockerMachinePoolTemplate{
251-
Spec: infraexpv1.DockerMachinePoolTemplateSpec{
252-
Template: infraexpv1.DockerMachinePoolTemplateResource{
253-
Spec: infraexpv1.DockerMachinePoolSpec{
254-
Template: infraexpv1.DockerMachinePoolMachineTemplate{
250+
expectedTemplate: &infraexpv1beta1.DockerMachinePoolTemplate{
251+
Spec: infraexpv1beta1.DockerMachinePoolTemplateSpec{
252+
Template: infraexpv1beta1.DockerMachinePoolTemplateResource{
253+
Spec: infraexpv1beta1.DockerMachinePoolSpec{
254+
Template: infraexpv1beta1.DockerMachinePoolMachineTemplate{
255255
CustomImage: "kindest/node:v1.23.0",
256256
},
257257
},
@@ -311,22 +311,22 @@ func TestHandler_GeneratePatches(t *testing.T) {
311311
APIVersion: controlplanev1beta1.GroupVersion.String(),
312312
},
313313
}
314-
dockerMachineTemplate := infrav1.DockerMachineTemplate{
314+
dockerMachineTemplate := infrav1beta1.DockerMachineTemplate{
315315
TypeMeta: metav1.TypeMeta{
316316
Kind: "DockerMachineTemplate",
317-
APIVersion: infrav1.GroupVersion.String(),
317+
APIVersion: infrav1beta1.GroupVersion.String(),
318318
},
319319
}
320-
dockerMachinePoolTemplate := infraexpv1.DockerMachinePoolTemplate{
320+
dockerMachinePoolTemplate := infraexpv1beta1.DockerMachinePoolTemplate{
321321
TypeMeta: metav1.TypeMeta{
322322
Kind: "DockerMachinePoolTemplate",
323-
APIVersion: infrav1.GroupVersion.String(),
323+
APIVersion: infrav1beta1.GroupVersion.String(),
324324
},
325325
}
326-
dockerClusterTemplate := infrav1.DockerClusterTemplate{
326+
dockerClusterTemplate := infrav1beta1.DockerClusterTemplate{
327327
TypeMeta: metav1.TypeMeta{
328328
Kind: "DockerClusterTemplate",
329-
APIVersion: infrav1.GroupVersion.String(),
329+
APIVersion: infrav1beta1.GroupVersion.String(),
330330
},
331331
}
332332
tests := []struct {

test/framework/finalizers_helpers.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ import (
3434
controlplanev1 "sigs.k8s.io/cluster-api/api/controlplane/kubeadm/v1beta2"
3535
clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2"
3636
clusterctlcluster "sigs.k8s.io/cluster-api/cmd/clusterctl/client/cluster"
37-
infrav1 "sigs.k8s.io/cluster-api/test/infrastructure/docker/api/v1beta1"
38-
infraexpv1 "sigs.k8s.io/cluster-api/test/infrastructure/docker/exp/api/v1beta1"
37+
infrav1 "sigs.k8s.io/cluster-api/test/infrastructure/docker/api/v1beta2"
38+
infraexpv1 "sigs.k8s.io/cluster-api/test/infrastructure/docker/exp/api/v1beta2"
3939
"sigs.k8s.io/cluster-api/util/patch"
4040
)
4141

test/framework/ownerreference_helpers.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ import (
3939
controlplanev1 "sigs.k8s.io/cluster-api/api/controlplane/kubeadm/v1beta2"
4040
clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2"
4141
clusterctlcluster "sigs.k8s.io/cluster-api/cmd/clusterctl/client/cluster"
42-
infraexpv1 "sigs.k8s.io/cluster-api/test/infrastructure/docker/exp/api/v1beta1"
42+
infraexpv1 "sigs.k8s.io/cluster-api/test/infrastructure/docker/exp/api/v1beta2"
4343
"sigs.k8s.io/cluster-api/util/patch"
4444
)
4545

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
rules:
2+
# Enforce that our APIs do not depend on CR packages.
3+
# This is overwritten e.g. in packages that require conversion.
24
- selectorRegexp: sigs[.]k8s[.]io/controller-runtime
3-
allowedPrefixes:
4-
- "sigs.k8s.io/controller-runtime/pkg/conversion"
5-
forbiddenPrefixes: []
5+
allowedPrefixes: []
6+
forbiddenPrefixes:
7+
- "sigs.k8s.io/controller-runtime"
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
rules:
2+
- selectorRegexp: sigs[.]k8s[.]io/controller-runtime
3+
allowedPrefixes:
4+
- "sigs.k8s.io/controller-runtime/pkg/conversion"
5+
forbiddenPrefixes: []

0 commit comments

Comments
 (0)