Skip to content

Commit 3489aa8

Browse files
committed
Move to CAPI v1beta2
- Update fuzz tests to match randfill, essentially Fuzz -> Fill - Add CAPI v1beta1 to shema for envtests - Update e2e code to work with updated framework - Use UnstructuredGet for OpenStackServer condition tests. This is probably the most controversion thing here and I am not sure it is the right way to go. - Switch over to use CAPI v1beta2 API - Bump CAPI to v1.11.0-beta.2 Signed-off-by: Lennart Jern <[email protected]>
1 parent f34270b commit 3489aa8

34 files changed

+7724
-831
lines changed

.golangci.yml

Lines changed: 74 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -62,73 +62,77 @@ linters-settings:
6262
- prefix(sigs.k8s.io/cluster-api-provider-openstack)
6363
gocritic:
6464
enabled-tags:
65-
- diagnostic
66-
- experimental
67-
- performance
65+
- diagnostic
66+
- experimental
67+
- performance
6868
disabled-checks:
69-
- appendAssign
70-
- dupImport # https://github.com/go-critic/go-critic/issues/845
71-
- evalOrder
72-
- ifElseChain
73-
- octalLiteral
74-
- regexpSimplify
75-
- sloppyReassign
76-
- truncateCmp
77-
- typeDefFirst
78-
- unnamedResult
79-
- unnecessaryDefer
80-
- whyNoLint
81-
- wrapperFunc
82-
- rangeValCopy
83-
- hugeParam
69+
- appendAssign
70+
- dupImport # https://github.com/go-critic/go-critic/issues/845
71+
- evalOrder
72+
- ifElseChain
73+
- octalLiteral
74+
- regexpSimplify
75+
- sloppyReassign
76+
- truncateCmp
77+
- typeDefFirst
78+
- unnamedResult
79+
- unnecessaryDefer
80+
- whyNoLint
81+
- wrapperFunc
82+
- rangeValCopy
83+
- hugeParam
8484
importas:
8585
no-unaliased: true
8686
alias:
87-
# Kubernetes
88-
- pkg: k8s.io/api/core/v1
89-
alias: corev1
90-
- pkg: k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1
91-
alias: apiextensionsv1
92-
- pkg: k8s.io/apimachinery/pkg/apis/meta/v1
93-
alias: metav1
94-
- pkg: k8s.io/apimachinery/pkg/api/errors
95-
alias: apierrors
96-
- pkg: k8s.io/apimachinery/pkg/util/errors
97-
alias: kerrors
98-
# Controller Runtime
99-
- pkg: sigs.k8s.io/controller-runtime
100-
alias: ctrl
101-
# CAPO
102-
- pkg: sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha1
103-
alias: infrav1alpha1
104-
- pkg: sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1
105-
alias: infrav1
106-
- pkg: sigs.k8s.io/cluster-api-provider-openstack/pkg/utils/errors
107-
alias: capoerrors
108-
# CAPI
109-
- pkg: sigs.k8s.io/cluster-api/api/v1alpha3
110-
alias: clusterv1alpha3
111-
- pkg: sigs.k8s.io/cluster-api/api/v1alpha4
112-
alias: clusterv1alpha4
113-
- pkg: sigs.k8s.io/cluster-api/api/v1beta1
114-
alias: clusterv1
115-
# CABPK
116-
- pkg: sigs.k8s.io/cluster-api/bootstrap/kubeadm/api/v1alpha3
117-
alias: bootstrapv1alpha3
118-
- pkg: sigs.k8s.io/cluster-api/bootstrap/kubeadm/api/v1alpha4
119-
alias: bootstrapv1alpha4
120-
- pkg: sigs.k8s.io/cluster-api/bootstrap/kubeadm/api/v1beta1
121-
alias: bootstrapv1
122-
# KCP
123-
- pkg: sigs.k8s.io/cluster-api/controlplane/kubeadm/api/v1alpha3
124-
alias: controlplanev1alpha3
125-
- pkg: sigs.k8s.io/cluster-api/controlplane/kubeadm/api/v1alpha4
126-
alias: controlplanev1alpha4
127-
- pkg: sigs.k8s.io/cluster-api/controlplane/kubeadm/api/v1beta1
128-
alias: controlplanev1
129-
# ORC
130-
- pkg: github.com/k-orc/openstack-resource-controller/api/v1alpha1
131-
alias: orcv1alpha1
87+
# Kubernetes
88+
- pkg: k8s.io/api/core/v1
89+
alias: corev1
90+
- pkg: k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1
91+
alias: apiextensionsv1
92+
- pkg: k8s.io/apimachinery/pkg/apis/meta/v1
93+
alias: metav1
94+
- pkg: k8s.io/apimachinery/pkg/api/errors
95+
alias: apierrors
96+
- pkg: k8s.io/apimachinery/pkg/util/errors
97+
alias: kerrors
98+
# Controller Runtime
99+
- pkg: sigs.k8s.io/controller-runtime
100+
alias: ctrl
101+
# CAPO
102+
- pkg: sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha1
103+
alias: infrav1alpha1
104+
- pkg: sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1
105+
alias: infrav1
106+
- pkg: sigs.k8s.io/cluster-api-provider-openstack/pkg/utils/errors
107+
alias: capoerrors
108+
# CAPI
109+
- pkg: sigs.k8s.io/cluster-api/api/v1alpha3
110+
alias: clusterv1alpha3
111+
- pkg: sigs.k8s.io/cluster-api/api/v1alpha4
112+
alias: clusterv1alpha4
113+
- pkg: sigs.k8s.io/cluster-api/api/v1beta1
114+
alias: clusterv1b1
115+
- pkg: sigs.k8s.io/cluster-api/api/core/v1beta2
116+
alias: clusterv1
117+
- pkg: sigs.k8s.io/cluster-api/api/ipam/v1beta2
118+
alias: ipamv1
119+
# CABPK
120+
- pkg: sigs.k8s.io/cluster-api/bootstrap/kubeadm/api/v1alpha3
121+
alias: bootstrapv1alpha3
122+
- pkg: sigs.k8s.io/cluster-api/bootstrap/kubeadm/api/v1alpha4
123+
alias: bootstrapv1alpha4
124+
- pkg: sigs.k8s.io/cluster-api/bootstrap/kubeadm/api/v1beta1
125+
alias: bootstrapv1
126+
# KCP
127+
- pkg: sigs.k8s.io/cluster-api/controlplane/kubeadm/api/v1alpha3
128+
alias: controlplanev1alpha3
129+
- pkg: sigs.k8s.io/cluster-api/controlplane/kubeadm/api/v1alpha4
130+
alias: controlplanev1alpha4
131+
- pkg: sigs.k8s.io/cluster-api/controlplane/kubeadm/api/v1beta1
132+
alias: controlplanev1
133+
# ORC
134+
- pkg: github.com/k-orc/openstack-resource-controller/api/v1alpha1
135+
alias: orcv1alpha1
132136

133137
nolintlint:
134138
# https://github.com/golangci/golangci-lint/issues/3228
@@ -174,11 +178,17 @@ issues:
174178
- stylecheck
175179
text: "ST1003: should not use underscores in Go names;"
176180
path: pkg/utils/conversioncommon/.*.go
181+
- linters:
182+
- staticcheck
183+
text: 'SA1019: "sigs.k8s.io/cluster-api/api/core/v1beta1" is deprecated: This package is deprecated and is going to be removed when support for v1beta1 will be dropped.'
184+
- linters:
185+
- staticcheck
186+
text: 'SA1019: "sigs.k8s.io/cluster-api/util/deprecated/v1beta1/conditions" is deprecated: This package is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details.'
177187
exclude-files:
178188
- "zz_generated.*\\.go$"
179189

180190
run:
181-
go: "1.23"
191+
go: "1.24"
182192
timeout: 10m
183193
build-tags:
184194
- e2e

api/v1alpha1/openstackserver_types.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ package v1alpha1
1919
import (
2020
corev1 "k8s.io/api/core/v1"
2121
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
22+
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
23+
runtime "k8s.io/apimachinery/pkg/runtime"
2224
clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta1"
2325

2426
infrav1 "sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1"
@@ -199,6 +201,16 @@ func (r *OpenStackServer) GetIdentityRef() (*string, *infrav1.OpenStackIdentityR
199201
return &r.Namespace, &r.Spec.IdentityRef
200202
}
201203

204+
func (r *OpenStackServer) ToUnstructured() (*unstructured.Unstructured, error) {
205+
rawMap, err := runtime.DefaultUnstructuredConverter.ToUnstructured(r)
206+
if err != nil {
207+
return nil, err
208+
}
209+
u := &unstructured.Unstructured{Object: rawMap}
210+
u.SetGroupVersionKind(infrav1.SchemeGroupVersion.WithKind("OpenStackServer"))
211+
return u, nil
212+
}
213+
202214
func init() {
203215
SchemeBuilder.Register(&OpenStackServer{}, &OpenStackServerList{})
204216
}

api/v1alpha1/zz_generated.deepcopy.go

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

api_violations.report

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ API rule violation: list_type_missing,sigs.k8s.io/cluster-api/api/core/v1beta1,N
4545
API rule violation: list_type_missing,sigs.k8s.io/cluster-api/api/core/v1beta1,PatchDefinition,JSONPatches
4646
API rule violation: list_type_missing,sigs.k8s.io/cluster-api/api/core/v1beta1,PatchSelectorMatchMachineDeploymentClass,Names
4747
API rule violation: list_type_missing,sigs.k8s.io/cluster-api/api/core/v1beta1,PatchSelectorMatchMachinePoolClass,Names
48+
API rule violation: list_type_missing,sigs.k8s.io/cluster-api/api/core/v1beta2,JSONSchemaProps,AllOf
49+
API rule violation: list_type_missing,sigs.k8s.io/cluster-api/api/core/v1beta2,JSONSchemaProps,AnyOf
50+
API rule violation: list_type_missing,sigs.k8s.io/cluster-api/api/core/v1beta2,JSONSchemaProps,OneOf
4851
API rule violation: names_match,k8s.io/api/core/v1,AzureDiskVolumeSource,DataDiskURI
4952
API rule violation: names_match,k8s.io/api/core/v1,ContainerStatus,LastTerminationState
5053
API rule violation: names_match,k8s.io/api/core/v1,DaemonEndpoint,Port
@@ -95,4 +98,17 @@ API rule violation: names_match,sigs.k8s.io/cluster-api/api/core/v1beta1,Machine
9598
API rule violation: names_match,sigs.k8s.io/cluster-api/api/core/v1beta1,MachineSetStatus,V1Beta2
9699
API rule violation: names_match,sigs.k8s.io/cluster-api/api/core/v1beta1,MachineStatus,V1Beta2
97100
API rule violation: names_match,sigs.k8s.io/cluster-api/api/core/v1beta1,MachineTemplateSpec,ObjectMeta
101+
API rule violation: names_match,sigs.k8s.io/cluster-api/api/core/v1beta2,ClusterClassDeprecatedStatus,V1Beta1
102+
API rule violation: names_match,sigs.k8s.io/cluster-api/api/core/v1beta2,ClusterDeprecatedStatus,V1Beta1
103+
API rule violation: names_match,sigs.k8s.io/cluster-api/api/core/v1beta2,JSONSchemaProps,XIntOrString
104+
API rule violation: names_match,sigs.k8s.io/cluster-api/api/core/v1beta2,JSONSchemaProps,XMetadata
105+
API rule violation: names_match,sigs.k8s.io/cluster-api/api/core/v1beta2,JSONSchemaProps,XPreserveUnknownFields
106+
API rule violation: names_match,sigs.k8s.io/cluster-api/api/core/v1beta2,JSONSchemaProps,XValidations
107+
API rule violation: names_match,sigs.k8s.io/cluster-api/api/core/v1beta2,MachineDeploymentDeprecatedStatus,V1Beta1
108+
API rule violation: names_match,sigs.k8s.io/cluster-api/api/core/v1beta2,MachineDeprecatedStatus,V1Beta1
109+
API rule violation: names_match,sigs.k8s.io/cluster-api/api/core/v1beta2,MachineHealthCheckDeprecatedStatus,V1Beta1
110+
API rule violation: names_match,sigs.k8s.io/cluster-api/api/core/v1beta2,MachinePoolDeprecatedStatus,V1Beta1
111+
API rule violation: names_match,sigs.k8s.io/cluster-api/api/core/v1beta2,MachineSetDeprecatedStatus,V1Beta1
112+
API rule violation: names_match,sigs.k8s.io/cluster-api/api/core/v1beta2,MachineTemplateSpec,ObjectMeta
98113
API rule violation: streaming_list_type_json_tags,sigs.k8s.io/cluster-api/api/core/v1beta1,MachineDrainRuleList,ListMeta
114+
API rule violation: streaming_list_type_json_tags,sigs.k8s.io/cluster-api/api/core/v1beta2,MachineDrainRuleList,ListMeta

0 commit comments

Comments
 (0)