Skip to content

Commit a0379f9

Browse files
committed
Upgrade CAPI to 1.6
1 parent 0e3b0b9 commit a0379f9

37 files changed

+522
-785
lines changed

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ managers:
9191
manager-cloudstack-infrastructure: ## Build manager binary.
9292
CGO_ENABLED=0 GOOS=linux GOARCH=${ARCH} go build -ldflags "${LDFLAGS} -extldflags '-static'" -o $(BIN_DIR)/manager .
9393

94-
export K8S_VERSION=1.28.15
94+
export K8S_VERSION=1.28.3
9595
$(KUBECTL) $(API_SERVER) $(ETCD) &:
9696
cd $(TOOLS_DIR) && curl --silent -L "https://go.kubebuilder.io/test-tools/${K8S_VERSION}/$(shell go env GOOS)/$(shell go env GOARCH)" --output - | \
9797
tar -C ./ --strip-components=1 -zvxf -
@@ -244,7 +244,7 @@ delete-kind-cluster:
244244
kind delete cluster --name $(KIND_CLUSTER_NAME)
245245

246246
cluster-api: ## Clone cluster-api repository for tilt use.
247-
git clone --branch v1.5.8 --depth 1 https://github.com/kubernetes-sigs/cluster-api.git
247+
git clone --branch v1.6.8 --depth 1 https://github.com/kubernetes-sigs/cluster-api.git
248248

249249
cluster-api/tilt-settings.json: hack/tilt-settings.json cluster-api
250250
cp ./hack/tilt-settings.json cluster-api

api/v1beta1/cloudstackaffinitygroup_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,5 +66,5 @@ type CloudStackAffinityGroupList struct {
6666
}
6767

6868
func init() {
69-
SchemeBuilder.Register(&CloudStackAffinityGroup{}, &CloudStackAffinityGroupList{})
69+
objectTypes = append(objectTypes, &CloudStackAffinityGroup{}, &CloudStackAffinityGroupList{})
7070
}

api/v1beta1/cloudstackcluster_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,5 +154,5 @@ type CloudStackClusterList struct {
154154
}
155155

156156
func init() {
157-
SchemeBuilder.Register(&CloudStackCluster{}, &CloudStackClusterList{})
157+
objectTypes = append(objectTypes, &CloudStackCluster{}, &CloudStackClusterList{})
158158
}

api/v1beta1/cloudstackisolatednetwork_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,5 +81,5 @@ type CloudStackIsolatedNetworkList struct {
8181
}
8282

8383
func init() {
84-
SchemeBuilder.Register(&CloudStackIsolatedNetwork{}, &CloudStackIsolatedNetworkList{})
84+
objectTypes = append(objectTypes, &CloudStackIsolatedNetwork{}, &CloudStackIsolatedNetworkList{})
8585
}

api/v1beta1/cloudstackmachine_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,5 +180,5 @@ type CloudStackMachineList struct {
180180
}
181181

182182
func init() {
183-
SchemeBuilder.Register(&CloudStackMachine{}, &CloudStackMachineList{})
183+
objectTypes = append(objectTypes, &CloudStackMachine{}, &CloudStackMachineList{})
184184
}

api/v1beta1/cloudstackmachinestatechecker_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,5 +54,5 @@ type CloudStackMachineStateCheckerList struct {
5454
}
5555

5656
func init() {
57-
SchemeBuilder.Register(&CloudStackMachineStateChecker{}, &CloudStackMachineStateCheckerList{})
57+
objectTypes = append(objectTypes, &CloudStackMachineStateChecker{}, &CloudStackMachineStateCheckerList{})
5858
}

api/v1beta1/cloudstackmachinetemplate_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,5 +54,5 @@ type CloudStackMachineTemplateList struct {
5454
}
5555

5656
func init() {
57-
SchemeBuilder.Register(&CloudStackMachineTemplate{}, &CloudStackMachineTemplateList{})
57+
objectTypes = append(objectTypes, &CloudStackMachineTemplate{}, &CloudStackMachineTemplateList{})
5858
}

api/v1beta1/cloudstackzone_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,5 +66,5 @@ type CloudStackZoneList struct {
6666
}
6767

6868
func init() {
69-
SchemeBuilder.Register(&CloudStackZone{}, &CloudStackZoneList{})
69+
objectTypes = append(objectTypes, &CloudStackZone{}, &CloudStackZoneList{})
7070
}

api/v1beta1/groupversion_info.go

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,29 @@ limitations under the License.
2020
package v1beta1
2121

2222
import (
23+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
24+
"k8s.io/apimachinery/pkg/runtime"
2325
"k8s.io/apimachinery/pkg/runtime/schema"
24-
"sigs.k8s.io/controller-runtime/pkg/scheme"
2526
)
2627

2728
var (
2829
// GroupVersion is group version used to register these objects
2930
GroupVersion = schema.GroupVersion{Group: "infrastructure.cluster.x-k8s.io", Version: "v1beta1"}
3031

3132
// SchemeBuilder is used to add go types to the GroupVersionKind scheme
32-
SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}
33+
schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
3334

3435
// AddToScheme adds the types in this group-version to the given scheme.
35-
AddToScheme = SchemeBuilder.AddToScheme
36+
AddToScheme = schemeBuilder.AddToScheme
3637

3738
// So the auto-generated code can compile
38-
localSchemeBuilder = &SchemeBuilder.SchemeBuilder
39+
objectTypes = []runtime.Object{}
40+
41+
localSchemeBuilder = &schemeBuilder
3942
)
43+
44+
func addKnownTypes(scheme *runtime.Scheme) error {
45+
scheme.AddKnownTypes(GroupVersion, objectTypes...)
46+
metav1.AddToGroupVersion(scheme, GroupVersion)
47+
return nil
48+
}

api/v1beta1/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/v1beta2/cloudstackaffinitygroup_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,5 +68,5 @@ type CloudStackAffinityGroupList struct {
6868
}
6969

7070
func init() {
71-
SchemeBuilder.Register(&CloudStackAffinityGroup{}, &CloudStackAffinityGroupList{})
71+
objectTypes = append(objectTypes, &CloudStackAffinityGroup{}, &CloudStackAffinityGroupList{})
7272
}

api/v1beta2/cloudstackcluster_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,5 +71,5 @@ type CloudStackClusterList struct {
7171
}
7272

7373
func init() {
74-
SchemeBuilder.Register(&CloudStackCluster{}, &CloudStackClusterList{})
74+
objectTypes = append(objectTypes, &CloudStackCluster{}, &CloudStackClusterList{})
7575
}

api/v1beta2/cloudstackfailuredomain_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,5 +117,5 @@ type CloudStackFailureDomainList struct {
117117
}
118118

119119
func init() {
120-
SchemeBuilder.Register(&CloudStackFailureDomain{}, &CloudStackFailureDomainList{})
120+
objectTypes = append(objectTypes, &CloudStackFailureDomain{}, &CloudStackFailureDomainList{})
121121
}

api/v1beta2/cloudstackisolatednetwork_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,5 +82,5 @@ type CloudStackIsolatedNetworkList struct {
8282
}
8383

8484
func init() {
85-
SchemeBuilder.Register(&CloudStackIsolatedNetwork{}, &CloudStackIsolatedNetworkList{})
85+
objectTypes = append(objectTypes, &CloudStackIsolatedNetwork{}, &CloudStackIsolatedNetworkList{})
8686
}

api/v1beta2/cloudstackmachine_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,5 +182,5 @@ type CloudStackMachineList struct {
182182
}
183183

184184
func init() {
185-
SchemeBuilder.Register(&CloudStackMachine{}, &CloudStackMachineList{})
185+
objectTypes = append(objectTypes, &CloudStackMachine{}, &CloudStackMachineList{})
186186
}

api/v1beta2/cloudstackmachinestatechecker_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,5 +52,5 @@ type CloudStackMachineStateCheckerList struct {
5252
}
5353

5454
func init() {
55-
SchemeBuilder.Register(&CloudStackMachineStateChecker{}, &CloudStackMachineStateCheckerList{})
55+
objectTypes = append(objectTypes, &CloudStackMachineStateChecker{}, &CloudStackMachineStateCheckerList{})
5656
}

api/v1beta2/cloudstackmachinetemplate_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,5 +53,5 @@ type CloudStackMachineTemplateList struct {
5353
}
5454

5555
func init() {
56-
SchemeBuilder.Register(&CloudStackMachineTemplate{}, &CloudStackMachineTemplateList{})
56+
objectTypes = append(objectTypes, &CloudStackMachineTemplate{}, &CloudStackMachineTemplateList{})
5757
}

api/v1beta2/groupversion_info.go

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,28 @@ limitations under the License.
2020
package v1beta2
2121

2222
import (
23+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
24+
"k8s.io/apimachinery/pkg/runtime"
2325
"k8s.io/apimachinery/pkg/runtime/schema"
24-
"sigs.k8s.io/controller-runtime/pkg/scheme"
2526
)
2627

2728
var (
2829
// GroupVersion is group version used to register these objects
2930
GroupVersion = schema.GroupVersion{Group: "infrastructure.cluster.x-k8s.io", Version: "v1beta2"}
3031

3132
// SchemeBuilder is used to add go types to the GroupVersionKind scheme
32-
SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}
33+
schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
3334

3435
// AddToScheme adds the types in this group-version to the given scheme.
35-
AddToScheme = SchemeBuilder.AddToScheme
36+
AddToScheme = schemeBuilder.AddToScheme
3637

37-
// localSchemeBuilder is used for type conversions.
38-
localSchemeBuilder = &SchemeBuilder.SchemeBuilder
38+
objectTypes = []runtime.Object{}
39+
40+
localSchemeBuilder = &schemeBuilder
3941
)
42+
43+
func addKnownTypes(scheme *runtime.Scheme) error {
44+
scheme.AddKnownTypes(GroupVersion, objectTypes...)
45+
metav1.AddToGroupVersion(scheme, GroupVersion)
46+
return nil
47+
}

api/v1beta2/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/v1beta3/cloudstackaffinitygroup_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,5 +69,5 @@ type CloudStackAffinityGroupList struct {
6969
}
7070

7171
func init() {
72-
SchemeBuilder.Register(&CloudStackAffinityGroup{}, &CloudStackAffinityGroupList{})
72+
objectTypes = append(objectTypes, &CloudStackAffinityGroup{}, &CloudStackAffinityGroupList{})
7373
}

api/v1beta3/cloudstackcluster_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,5 +80,5 @@ type CloudStackClusterList struct {
8080
}
8181

8282
func init() {
83-
SchemeBuilder.Register(&CloudStackCluster{}, &CloudStackClusterList{})
83+
objectTypes = append(objectTypes, &CloudStackCluster{}, &CloudStackClusterList{})
8484
}

api/v1beta3/cloudstackfailuredomain_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,5 +148,5 @@ type CloudStackFailureDomainList struct {
148148
}
149149

150150
func init() {
151-
SchemeBuilder.Register(&CloudStackFailureDomain{}, &CloudStackFailureDomainList{})
151+
objectTypes = append(objectTypes, &CloudStackFailureDomain{}, &CloudStackFailureDomainList{})
152152
}

api/v1beta3/cloudstackisolatednetwork_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,5 +99,5 @@ type CloudStackIsolatedNetworkList struct {
9999
}
100100

101101
func init() {
102-
SchemeBuilder.Register(&CloudStackIsolatedNetwork{}, &CloudStackIsolatedNetworkList{})
102+
objectTypes = append(objectTypes, &CloudStackIsolatedNetwork{}, &CloudStackIsolatedNetworkList{})
103103
}

api/v1beta3/cloudstackmachine_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,5 +183,5 @@ type CloudStackMachineList struct {
183183
}
184184

185185
func init() {
186-
SchemeBuilder.Register(&CloudStackMachine{}, &CloudStackMachineList{})
186+
objectTypes = append(objectTypes, &CloudStackMachine{}, &CloudStackMachineList{})
187187
}

api/v1beta3/cloudstackmachinestatechecker_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,5 +53,5 @@ type CloudStackMachineStateCheckerList struct {
5353
}
5454

5555
func init() {
56-
SchemeBuilder.Register(&CloudStackMachineStateChecker{}, &CloudStackMachineStateCheckerList{})
56+
objectTypes = append(objectTypes, &CloudStackMachineStateChecker{}, &CloudStackMachineStateCheckerList{})
5757
}

api/v1beta3/cloudstackmachinetemplate_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,5 +59,5 @@ type CloudStackMachineTemplateList struct {
5959
}
6060

6161
func init() {
62-
SchemeBuilder.Register(&CloudStackMachineTemplate{}, &CloudStackMachineTemplateList{})
62+
objectTypes = append(objectTypes, &CloudStackMachineTemplate{}, &CloudStackMachineTemplateList{})
6363
}

api/v1beta3/groupversion_info.go

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,27 @@ limitations under the License.
2020
package v1beta3
2121

2222
import (
23+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
24+
"k8s.io/apimachinery/pkg/runtime"
2325
"k8s.io/apimachinery/pkg/runtime/schema"
24-
"sigs.k8s.io/controller-runtime/pkg/scheme"
2526
)
2627

2728
var (
2829
// GroupVersion is group version used to register these objects
2930
GroupVersion = schema.GroupVersion{Group: "infrastructure.cluster.x-k8s.io", Version: "v1beta3"}
3031

3132
// SchemeBuilder is used to add go types to the GroupVersionKind scheme
32-
SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}
33+
schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
3334

3435
// AddToScheme adds the types in this group-version to the given scheme.
35-
AddToScheme = SchemeBuilder.AddToScheme
36+
AddToScheme = schemeBuilder.AddToScheme
37+
38+
// So the auto-generated code can compile
39+
objectTypes = []runtime.Object{}
3640
)
41+
42+
func addKnownTypes(scheme *runtime.Scheme) error {
43+
scheme.AddKnownTypes(GroupVersion, objectTypes...)
44+
metav1.AddToGroupVersion(scheme, GroupVersion)
45+
return nil
46+
}

api/v1beta3/webhook_suite_test.go

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ import (
3737
ctrl "sigs.k8s.io/controller-runtime"
3838
"sigs.k8s.io/controller-runtime/pkg/client"
3939
"sigs.k8s.io/controller-runtime/pkg/envtest"
40+
"sigs.k8s.io/controller-runtime/pkg/metrics/server"
41+
"sigs.k8s.io/controller-runtime/pkg/webhook"
4042
)
4143

4244
// These tests use Ginkgo (BDD-style Go testing framework). Refer to
@@ -93,12 +95,17 @@ var _ = ginkgo.BeforeSuite(func() {
9395
// start webhook server using Manager
9496
webhookInstallOptions := &testEnv.WebhookInstallOptions
9597
mgr, err := ctrl.NewManager(cfg, ctrl.Options{
96-
Scheme: scheme,
97-
Host: webhookInstallOptions.LocalServingHost,
98-
Port: webhookInstallOptions.LocalServingPort,
99-
CertDir: webhookInstallOptions.LocalServingCertDir,
100-
LeaderElection: false,
101-
MetricsBindAddress: "0",
98+
Scheme: scheme,
99+
WebhookServer: webhook.NewServer(webhook.Options{
100+
101+
Host: webhookInstallOptions.LocalServingHost,
102+
Port: webhookInstallOptions.LocalServingPort,
103+
CertDir: webhookInstallOptions.LocalServingCertDir,
104+
}),
105+
LeaderElection: false,
106+
Metrics: server.Options{
107+
BindAddress: "0",
108+
},
102109
})
103110
gomega.Expect(err).NotTo(gomega.HaveOccurred())
104111

controllers/cloudstackmachine_controller.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,16 @@ func (r *CloudStackMachineReconciliationRunner) GetOrCreateVMInstance() (retRes
236236
if !present {
237237
return ctrl.Result{}, errors.New("bootstrap secret data not yet set")
238238
}
239+
// Check if the configmap has the clusterv1.ClusterNameLabel label
240+
if _, ok := secret.Labels[clusterv1.ClusterNameLabel]; !ok {
241+
if secret.Labels == nil {
242+
secret.Labels = make(map[string]string)
243+
}
244+
secret.Labels[clusterv1.ClusterNameLabel] = r.CAPICluster.Name
245+
if err := r.K8sClient.Update(context.TODO(), secret); err != nil {
246+
return ctrl.Result{}, err
247+
}
248+
}
239249

240250
userData := processCustomMetadata(data, r)
241251
err := r.CSUser.GetOrCreateVMInstance(r.ReconciliationSubject, r.CAPIMachine, r.CSCluster, r.FailureDomain, r.AffinityGroup, userData)

0 commit comments

Comments
 (0)