Skip to content

Commit 1534cdb

Browse files
committed
Restore APIServerLoadBalancer.Provider on up-conversion
1 parent 53d6266 commit 1534cdb

File tree

2 files changed

+20
-23
lines changed

2 files changed

+20
-23
lines changed

api/v1alpha6/conversion.go

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,16 +88,25 @@ func restorev1alpha6MachineSpec(previous *OpenStackMachineSpec, dst *OpenStackMa
8888
dst.Subnet = previous.Subnet
8989
}
9090

91+
func restorev1alpha7ClusterSpec(previous *infrav1.OpenStackClusterSpec, dst *infrav1.OpenStackClusterSpec) {
92+
// APIServerLoadBalancer.Provider is new in v1alpha7
93+
dst.APIServerLoadBalancer.Provider = previous.APIServerLoadBalancer.Provider
94+
}
95+
9196
var _ ctrlconversion.Convertible = &OpenStackCluster{}
9297

9398
func (r *OpenStackCluster) ConvertTo(dstRaw ctrlconversion.Hub) error {
9499
dst := dstRaw.(*infrav1.OpenStackCluster)
95100
var previous infrav1.OpenStackCluster
96-
_, err := convertAndRestore(r, dst, &previous, Convert_v1alpha6_OpenStackCluster_To_v1alpha7_OpenStackCluster)
101+
restored, err := convertAndRestore(r, dst, &previous, Convert_v1alpha6_OpenStackCluster_To_v1alpha7_OpenStackCluster)
97102
if err != nil {
98103
return err
99104
}
100105

106+
if restored {
107+
restorev1alpha7ClusterSpec(&previous.Spec, &dst.Spec)
108+
}
109+
101110
return nil
102111
}
103112

@@ -138,8 +147,16 @@ var _ ctrlconversion.Convertible = &OpenStackClusterTemplate{}
138147
func (r *OpenStackClusterTemplate) ConvertTo(dstRaw ctrlconversion.Hub) error {
139148
dst := dstRaw.(*infrav1.OpenStackClusterTemplate)
140149
var previous infrav1.OpenStackClusterTemplate
141-
_, err := convertAndRestore(r, dst, &previous, Convert_v1alpha6_OpenStackClusterTemplate_To_v1alpha7_OpenStackClusterTemplate)
142-
return err
150+
restored, err := convertAndRestore(r, dst, &previous, Convert_v1alpha6_OpenStackClusterTemplate_To_v1alpha7_OpenStackClusterTemplate)
151+
if err != nil {
152+
return err
153+
}
154+
155+
if restored {
156+
restorev1alpha7ClusterSpec(&previous.Spec.Template.Spec, &dst.Spec.Template.Spec)
157+
}
158+
159+
return nil
143160
}
144161

145162
func (r *OpenStackClusterTemplate) ConvertFrom(srcRaw ctrlconversion.Hub) error {

api/v1alpha6/conversion_test.go

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,8 @@ package v1alpha6
1919
import (
2020
"testing"
2121

22-
fuzz "github.com/google/gofuzz"
2322
"github.com/onsi/gomega"
24-
"k8s.io/apimachinery/pkg/api/apitesting/fuzzer"
2523
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
26-
runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer"
2724
utilconversion "sigs.k8s.io/cluster-api/util/conversion"
2825
ctrlconversion "sigs.k8s.io/controller-runtime/pkg/conversion"
2926

@@ -38,33 +35,16 @@ func TestFuzzyConversion(t *testing.T) {
3835
delete(obj.GetAnnotations(), utilconversion.DataAnnotation)
3936
}
4037

41-
fuzzerFuncs := func(_ runtimeserializer.CodecFactory) []interface{} {
42-
return []interface{}{
43-
func(v1alpha7Cluster *infrav1.OpenStackCluster, c fuzz.Continue) {
44-
c.FuzzNoCustom(v1alpha7Cluster)
45-
46-
v1alpha7Cluster.Spec.APIServerLoadBalancer.Provider = ""
47-
},
48-
func(v1alpha7ClusterTemplate *infrav1.OpenStackClusterTemplate, c fuzz.Continue) {
49-
c.FuzzNoCustom(v1alpha7ClusterTemplate)
50-
51-
v1alpha7ClusterTemplate.Spec.Template.Spec.APIServerLoadBalancer.Provider = ""
52-
},
53-
}
54-
}
55-
5638
t.Run("for OpenStackCluster", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{
5739
Hub: &infrav1.OpenStackCluster{},
5840
Spoke: &OpenStackCluster{},
5941
HubAfterMutation: ignoreDataAnnotation,
60-
FuzzerFuncs: []fuzzer.FuzzerFuncs{fuzzerFuncs},
6142
}))
6243

6344
t.Run("for OpenStackClusterTemplate", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{
6445
Hub: &infrav1.OpenStackClusterTemplate{},
6546
Spoke: &OpenStackClusterTemplate{},
6647
HubAfterMutation: ignoreDataAnnotation,
67-
FuzzerFuncs: []fuzzer.FuzzerFuncs{fuzzerFuncs},
6848
}))
6949

7050
t.Run("for OpenStackMachine", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{

0 commit comments

Comments
 (0)