Skip to content

Commit 8026dc5

Browse files
committed
Restore ObjectMeta on CloudStackMachineTemplateResource
This restores the field with the correct type, and converts the field for v1beta1 and 2 Fixes #331
1 parent 0c5fad4 commit 8026dc5

9 files changed

+153
-39
lines changed

Makefile

+11-7
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ GH_REPO ?= kubernetes-sigs/cluster-api-provider-cloudstack
2727

2828
# Binaries
2929
CONTROLLER_GEN := $(TOOLS_BIN_DIR)/controller-gen
30+
CONVERSION_GEN := $(TOOLS_BIN_DIR)/conversion-gen
3031
GINKGO_V1 := $(TOOLS_BIN_DIR)/ginkgo_v1
3132
GINKGO_V2 := $(TOOLS_BIN_DIR)/ginkgo_v2
3233
GOLANGCI_LINT := $(TOOLS_BIN_DIR)/golangci-lint
@@ -85,7 +86,7 @@ all: build
8586
## --------------------------------------
8687

8788
.PHONY: binaries
88-
binaries: $(CONTROLLER_GEN) $(GOLANGCI_LINT) $(STATIC_CHECK) $(GINKGO_V1) $(GINKGO_V2) $(MOCKGEN) $(KUSTOMIZE) managers # Builds and installs all binaries
89+
binaries: $(CONTROLLER_GEN) $(CONVERSION_GEN) $(GOLANGCI_LINT) $(STATIC_CHECK) $(GINKGO_V1) $(GINKGO_V2) $(MOCKGEN) $(KUSTOMIZE) managers # Builds and installs all binaries
8990

9091
.PHONY: managers
9192
managers:
@@ -162,13 +163,16 @@ config/.flag.mk: $(CONTROLLER_GEN) $(MANIFEST_GEN_INPUTS)
162163
$(CONTROLLER_GEN) crd:crdVersions=v1 rbac:roleName=manager-role webhook paths="./..." output:crd:artifacts:config=config/crd/bases
163164
@touch config/.flag.mk
164165

165-
CONVERSION_GEN_TARGET=$(shell find api -type d -name "v*1" -exec echo {}\/zz_generated.conversion.go \;)
166-
CONVERSION_GEN_INPUTS=$(shell find ./api -name "*test*" -prune -o -name "*zz_generated*" -prune -o -type f -print)
167166
.PHONY: generate-conversion
168-
generate-conversion: $(CONVERSION_GEN_TARGET) ## Generate code to convert api/v1beta1 to api/v1beta2
169-
api/%/zz_generated.conversion.go: bin/conversion-gen $(CONVERSION_GEN_INPUTS)
170-
conversion-gen --go-header-file "./hack/boilerplate.go.txt" --input-dirs "./api/v1beta1" \
171-
--output-base "." --output-file-base="zz_generated.conversion" --skip-unsafe=true
167+
generate-conversion: $(CONVERSION_GEN) ## Generate code to convert api/v1beta1 and api/v1beta2 to api/v1beta3
168+
$(CONVERSION_GEN) \
169+
--input-dirs=./api/v1beta1 \
170+
--go-header-file=./hack/boilerplate.go.txt \
171+
--output-base=. --output-file-base=zz_generated.conversion
172+
$(CONVERSION_GEN) \
173+
--input-dirs=./api/v1beta2 \
174+
--go-header-file=./hack/boilerplate.go.txt \
175+
--output-base=. --output-file-base=zz_generated.conversion
172176

173177
##@ Build
174178
## --------------------------------------

api/v1beta1/cloudstackmachinetemplate_conversion.go

+23-4
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ import (
2121
"sigs.k8s.io/cluster-api-provider-cloudstack/api/v1beta3"
2222
utilconversion "sigs.k8s.io/cluster-api/util/conversion"
2323
"sigs.k8s.io/controller-runtime/pkg/conversion"
24+
25+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
26+
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
2427
)
2528

2629
func (src *CloudStackMachineTemplate) ConvertTo(dstRaw conversion.Hub) error { // nolint
@@ -57,13 +60,29 @@ func (dst *CloudStackMachineTemplate) ConvertFrom(srcRaw conversion.Hub) error {
5760
}
5861

5962
func Convert_v1beta1_CloudStackMachineTemplateSpec_To_v1beta3_CloudStackMachineTemplateSpec(in *CloudStackMachineTemplateSpec, out *v1beta3.CloudStackMachineTemplateSpec, s machineryconversion.Scope) error { // nolint
60-
return autoConvert_v1beta1_CloudStackMachineSpec_To_v1beta3_CloudStackMachineSpec(&in.Spec.Spec, &out.Template.Spec, s)
63+
return Convert_v1beta1_CloudStackMachineTemplateResource_To_v1beta3_CloudStackMachineTemplateResource(&in.Spec, &out.Template, s)
6164
}
6265

6366
func Convert_v1beta3_CloudStackMachineTemplateSpec_To_v1beta1_CloudStackMachineTemplateSpec(in *v1beta3.CloudStackMachineTemplateSpec, out *CloudStackMachineTemplateSpec, s machineryconversion.Scope) error { // nolint
64-
return autoConvert_v1beta3_CloudStackMachineSpec_To_v1beta1_CloudStackMachineSpec(&in.Template.Spec, &out.Spec.Spec, s)
67+
return Convert_v1beta3_CloudStackMachineTemplateResource_To_v1beta1_CloudStackMachineTemplateResource(&in.Template, &out.Spec, s)
6568
}
6669

67-
func Convert_v1beta1_CloudStackMachineTemplateResource_To_v1beta3_CloudStackMachineTemplateResource(in *CloudStackMachineTemplateResource, out *v1beta3.CloudStackMachineTemplateResource, s machineryconversion.Scope) error { //nolint
68-
return autoConvert_v1beta1_CloudStackMachineTemplateResource_To_v1beta3_CloudStackMachineTemplateResource(in, out, s)
70+
func Convert_v1beta1_ObjectMeta_To_v1_ObjectMeta(in *clusterv1.ObjectMeta, out *metav1.ObjectMeta, s machineryconversion.Scope) error { // nolint
71+
if in.Annotations != nil {
72+
out.Annotations = in.Annotations
73+
}
74+
if in.Labels != nil {
75+
out.Labels = in.Labels
76+
}
77+
return nil
78+
}
79+
80+
func Convert_v1_ObjectMeta_To_v1beta1_ObjectMeta(in *metav1.ObjectMeta, out *clusterv1.ObjectMeta, s machineryconversion.Scope) error { // nolint
81+
if in.Annotations != nil {
82+
out.Annotations = in.Annotations
83+
}
84+
if in.Labels != nil {
85+
out.Labels = in.Labels
86+
}
87+
return nil
6988
}

api/v1beta1/conversion_test.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2424
v1beta1 "sigs.k8s.io/cluster-api-provider-cloudstack/api/v1beta1"
2525
"sigs.k8s.io/cluster-api-provider-cloudstack/api/v1beta3"
26-
capiv1 "sigs.k8s.io/cluster-api/api/v1beta1"
26+
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
2727
)
2828

2929
var _ = Describe("Conversion", func() {
@@ -46,7 +46,7 @@ var _ = Describe("Conversion", func() {
4646
},
4747
},
4848
},
49-
ControlPlaneEndpoint: capiv1.APIEndpoint{
49+
ControlPlaneEndpoint: clusterv1.APIEndpoint{
5050
Host: "endpoint1",
5151
Port: 443,
5252
},
@@ -99,7 +99,7 @@ var _ = Describe("Conversion", func() {
9999
},
100100
},
101101
},
102-
ControlPlaneEndpoint: capiv1.APIEndpoint{
102+
ControlPlaneEndpoint: clusterv1.APIEndpoint{
103103
Host: "endpoint1",
104104
Port: 443,
105105
},
@@ -122,7 +122,7 @@ var _ = Describe("Conversion", func() {
122122
},
123123
},
124124
},
125-
ControlPlaneEndpoint: capiv1.APIEndpoint{
125+
ControlPlaneEndpoint: clusterv1.APIEndpoint{
126126
Host: "endpoint1",
127127
Port: 443,
128128
},
@@ -143,7 +143,7 @@ var _ = Describe("Conversion", func() {
143143
Namespace: "namespace1",
144144
},
145145
Spec: v1beta3.CloudStackClusterSpec{
146-
ControlPlaneEndpoint: capiv1.APIEndpoint{
146+
ControlPlaneEndpoint: clusterv1.APIEndpoint{
147147
Host: "endpoint1",
148148
Port: 443,
149149
},

api/v1beta1/zz_generated.conversion.go

+32-10
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/v1beta2/cloudstackmachinetemplate_conversion.go

+22-4
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,10 @@ limitations under the License.
1717
package v1beta2
1818

1919
import (
20+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2021
machineryconversion "k8s.io/apimachinery/pkg/conversion"
2122
"sigs.k8s.io/cluster-api-provider-cloudstack/api/v1beta3"
23+
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
2224
utilconversion "sigs.k8s.io/cluster-api/util/conversion"
2325
"sigs.k8s.io/controller-runtime/pkg/conversion"
2426
)
@@ -49,13 +51,29 @@ func (dst *CloudStackMachineTemplate) ConvertFrom(srcRaw conversion.Hub) error {
4951
}
5052

5153
func Convert_v1beta2_CloudStackMachineTemplateSpec_To_v1beta3_CloudStackMachineTemplateSpec(in *CloudStackMachineTemplateSpec, out *v1beta3.CloudStackMachineTemplateSpec, s machineryconversion.Scope) error { // nolint
52-
return autoConvert_v1beta2_CloudStackMachineSpec_To_v1beta3_CloudStackMachineSpec(&in.Spec.Spec, &out.Template.Spec, s)
54+
return Convert_v1beta2_CloudStackMachineTemplateResource_To_v1beta3_CloudStackMachineTemplateResource(&in.Spec, &out.Template, s)
5355
}
5456

5557
func Convert_v1beta3_CloudStackMachineTemplateSpec_To_v1beta2_CloudStackMachineTemplateSpec(in *v1beta3.CloudStackMachineTemplateSpec, out *CloudStackMachineTemplateSpec, s machineryconversion.Scope) error { // nolint
56-
return autoConvert_v1beta3_CloudStackMachineSpec_To_v1beta2_CloudStackMachineSpec(&in.Template.Spec, &out.Spec.Spec, s)
58+
return Convert_v1beta3_CloudStackMachineTemplateResource_To_v1beta2_CloudStackMachineTemplateResource(&in.Template, &out.Spec, s)
5759
}
5860

59-
func Convert_v1beta2_CloudStackMachineTemplateResource_To_v1beta3_CloudStackMachineTemplateResource(in *CloudStackMachineTemplateResource, out *v1beta3.CloudStackMachineTemplateResource, s machineryconversion.Scope) error { //nolint
60-
return autoConvert_v1beta2_CloudStackMachineTemplateResource_To_v1beta3_CloudStackMachineTemplateResource(in, out, s)
61+
func Convert_v1beta1_ObjectMeta_To_v1_ObjectMeta(in *clusterv1.ObjectMeta, out *metav1.ObjectMeta, s machineryconversion.Scope) error { // nolint
62+
if in.Annotations != nil {
63+
out.Annotations = in.Annotations
64+
}
65+
if in.Labels != nil {
66+
out.Labels = in.Labels
67+
}
68+
return nil
69+
}
70+
71+
func Convert_v1_ObjectMeta_To_v1beta1_ObjectMeta(in *metav1.ObjectMeta, out *clusterv1.ObjectMeta, s machineryconversion.Scope) error { // nolint
72+
if in.Annotations != nil {
73+
out.Annotations = in.Annotations
74+
}
75+
if in.Labels != nil {
76+
out.Labels = in.Labels
77+
}
78+
return nil
6179
}

0 commit comments

Comments
 (0)