Skip to content

Commit e9cf857

Browse files
committed
New API for External Network
1 parent 6df0da0 commit e9cf857

22 files changed

+519
-112
lines changed

api/v1alpha5/conversion.go

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,8 +187,31 @@ func (r *OpenStackMachineTemplateList) ConvertFrom(srcRaw ctrlconversion.Hub) er
187187
}
188188

189189
func Convert_v1alpha8_OpenStackClusterSpec_To_v1alpha5_OpenStackClusterSpec(in *infrav1.OpenStackClusterSpec, out *OpenStackClusterSpec, s conversion.Scope) error {
190-
// Our new flag has no equivalent in v1alpha5
191-
return autoConvert_v1alpha8_OpenStackClusterSpec_To_v1alpha5_OpenStackClusterSpec(in, out, s)
190+
err := autoConvert_v1alpha8_OpenStackClusterSpec_To_v1alpha5_OpenStackClusterSpec(in, out, s)
191+
if err != nil {
192+
return err
193+
}
194+
195+
if in.ExternalNetwork.ID != "" {
196+
out.ExternalNetworkID = in.ExternalNetwork.ID
197+
}
198+
199+
return nil
200+
}
201+
202+
func Convert_v1alpha5_OpenStackClusterSpec_To_v1alpha8_OpenStackClusterSpec(in *OpenStackClusterSpec, out *infrav1.OpenStackClusterSpec, s conversion.Scope) error {
203+
err := autoConvert_v1alpha5_OpenStackClusterSpec_To_v1alpha8_OpenStackClusterSpec(in, out, s)
204+
if err != nil {
205+
return err
206+
}
207+
208+
if in.ExternalNetworkID != "" {
209+
out.ExternalNetwork = infrav1.NetworkFilter{
210+
ID: in.ExternalNetworkID,
211+
}
212+
}
213+
214+
return nil
192215
}
193216

194217
func Convert_v1alpha8_LoadBalancer_To_v1alpha5_LoadBalancer(in *infrav1.LoadBalancer, out *LoadBalancer, s conversion.Scope) error {

api/v1alpha5/conversion_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ func TestConvertFrom(t *testing.T) {
4949
Spec: OpenStackClusterSpec{},
5050
ObjectMeta: metav1.ObjectMeta{
5151
Annotations: map[string]string{
52-
"cluster.x-k8s.io/conversion-data": "{\"spec\":{\"allowAllInClusterTraffic\":false,\"apiServerLoadBalancer\":{},\"cloudName\":\"\",\"controlPlaneEndpoint\":{\"host\":\"\",\"port\":0},\"disableAPIServerFloatingIP\":false,\"managedSecurityGroups\":false,\"network\":{},\"subnet\":{}},\"status\":{\"ready\":false}}",
52+
"cluster.x-k8s.io/conversion-data": "{\"spec\":{\"allowAllInClusterTraffic\":false,\"apiServerLoadBalancer\":{},\"cloudName\":\"\",\"controlPlaneEndpoint\":{\"host\":\"\",\"port\":0},\"disableAPIServerFloatingIP\":false,\"externalNetwork\":{},\"managedSecurityGroups\":false,\"network\":{},\"subnet\":{}},\"status\":{\"ready\":false}}",
5353
},
5454
},
5555
},
@@ -64,7 +64,7 @@ func TestConvertFrom(t *testing.T) {
6464
Spec: OpenStackClusterTemplateSpec{},
6565
ObjectMeta: metav1.ObjectMeta{
6666
Annotations: map[string]string{
67-
"cluster.x-k8s.io/conversion-data": "{\"spec\":{\"template\":{\"spec\":{\"allowAllInClusterTraffic\":false,\"apiServerLoadBalancer\":{},\"cloudName\":\"\",\"controlPlaneEndpoint\":{\"host\":\"\",\"port\":0},\"disableAPIServerFloatingIP\":false,\"managedSecurityGroups\":false,\"network\":{},\"subnet\":{}}}}}",
67+
"cluster.x-k8s.io/conversion-data": "{\"spec\":{\"template\":{\"spec\":{\"allowAllInClusterTraffic\":false,\"apiServerLoadBalancer\":{},\"cloudName\":\"\",\"controlPlaneEndpoint\":{\"host\":\"\",\"port\":0},\"disableAPIServerFloatingIP\":false,\"externalNetwork\":{},\"managedSecurityGroups\":false,\"network\":{},\"subnet\":{}}}}}",
6868
},
6969
},
7070
},

api/v1alpha5/zz_generated.conversion.go

Lines changed: 7 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/v1alpha6/conversion.go

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,31 @@ func convertNetworksToPorts(networks []NetworkParam) []infrav1.PortOpts {
432432
}
433433

434434
func Convert_v1alpha8_OpenStackClusterSpec_To_v1alpha6_OpenStackClusterSpec(in *infrav1.OpenStackClusterSpec, out *OpenStackClusterSpec, s apiconversion.Scope) error {
435-
return autoConvert_v1alpha8_OpenStackClusterSpec_To_v1alpha6_OpenStackClusterSpec(in, out, s)
435+
err := autoConvert_v1alpha8_OpenStackClusterSpec_To_v1alpha6_OpenStackClusterSpec(in, out, s)
436+
if err != nil {
437+
return err
438+
}
439+
440+
if in.ExternalNetwork.ID != "" {
441+
out.ExternalNetworkID = in.ExternalNetwork.ID
442+
}
443+
444+
return nil
445+
}
446+
447+
func Convert_v1alpha6_OpenStackClusterSpec_To_v1alpha8_OpenStackClusterSpec(in *OpenStackClusterSpec, out *infrav1.OpenStackClusterSpec, s apiconversion.Scope) error {
448+
err := autoConvert_v1alpha6_OpenStackClusterSpec_To_v1alpha8_OpenStackClusterSpec(in, out, s)
449+
if err != nil {
450+
return err
451+
}
452+
453+
if in.ExternalNetworkID != "" {
454+
out.ExternalNetwork = infrav1.NetworkFilter{
455+
ID: in.ExternalNetworkID,
456+
}
457+
}
458+
459+
return nil
436460
}
437461

438462
func Convert_v1alpha6_PortOpts_To_v1alpha8_PortOpts(in *PortOpts, out *infrav1.PortOpts, s apiconversion.Scope) error {

api/v1alpha6/conversion_test.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,32 @@ func TestFuzzyConversion(t *testing.T) {
8888
status.ExternalNetwork.APIServerLoadBalancer = nil
8989
}
9090
},
91+
92+
func(v1alpha8Cluster *infrav1.OpenStackCluster, c fuzz.Continue) {
93+
c.FuzzNoCustom(v1alpha8Cluster)
94+
95+
// None of the following status fields have ever been set in v1alpha6
96+
v1alpha8Cluster.Spec.ExternalNetwork.Name = ""
97+
v1alpha8Cluster.Spec.ExternalNetwork.Description = ""
98+
v1alpha8Cluster.Spec.ExternalNetwork.Tags = ""
99+
v1alpha8Cluster.Spec.ExternalNetwork.TagsAny = ""
100+
v1alpha8Cluster.Spec.ExternalNetwork.NotTags = ""
101+
v1alpha8Cluster.Spec.ExternalNetwork.NotTagsAny = ""
102+
v1alpha8Cluster.Spec.ExternalNetwork.ProjectID = ""
103+
},
104+
105+
func(v1alpha8ClusterTemplate *infrav1.OpenStackClusterTemplate, c fuzz.Continue) {
106+
c.FuzzNoCustom(v1alpha8ClusterTemplate)
107+
108+
// None of the following status fields have ever been set in v1alpha6
109+
v1alpha8ClusterTemplate.Spec.Template.Spec.ExternalNetwork.Name = ""
110+
v1alpha8ClusterTemplate.Spec.Template.Spec.ExternalNetwork.Description = ""
111+
v1alpha8ClusterTemplate.Spec.Template.Spec.ExternalNetwork.Tags = ""
112+
v1alpha8ClusterTemplate.Spec.Template.Spec.ExternalNetwork.TagsAny = ""
113+
v1alpha8ClusterTemplate.Spec.Template.Spec.ExternalNetwork.NotTags = ""
114+
v1alpha8ClusterTemplate.Spec.Template.Spec.ExternalNetwork.NotTagsAny = ""
115+
v1alpha8ClusterTemplate.Spec.Template.Spec.ExternalNetwork.ProjectID = ""
116+
},
91117
}
92118
}
93119

@@ -112,14 +138,17 @@ func TestFuzzyConversion(t *testing.T) {
112138
Hub: &infrav1.OpenStackClusterTemplate{},
113139
Spoke: &OpenStackClusterTemplate{},
114140
HubAfterMutation: ignoreDataAnnotation,
141+
FuzzerFuncs: []fuzzer.FuzzerFuncs{fuzzerFuncs},
115142
})))
116143

117144
t.Run("for OpenStackClusterTemplate with mutate", runParallel(testhelpers.FuzzMutateTestFunc(testhelpers.FuzzMutateTestFuncInput{
118145
FuzzTestFuncInput: utilconversion.FuzzTestFuncInput{
119146
Hub: &infrav1.OpenStackClusterTemplate{},
120147
Spoke: &OpenStackClusterTemplate{},
121148
HubAfterMutation: ignoreDataAnnotation,
149+
FuzzerFuncs: []fuzzer.FuzzerFuncs{fuzzerFuncs},
122150
},
151+
MutateFuzzerFuncs: []fuzzer.FuzzerFuncs{fuzzerFuncs},
123152
})))
124153

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

api/v1alpha6/zz_generated.conversion.go

Lines changed: 7 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/v1alpha7/conversion.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ limitations under the License.
1717
package v1alpha7
1818

1919
import (
20+
apiconversion "k8s.io/apimachinery/pkg/conversion"
2021
ctrlconversion "sigs.k8s.io/controller-runtime/pkg/conversion"
2122

2223
infrav1 "sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha8"
@@ -232,3 +233,31 @@ func (r *OpenStackMachineTemplateList) ConvertFrom(srcRaw ctrlconversion.Hub) er
232233
src := srcRaw.(*infrav1.OpenStackMachineTemplateList)
233234
return Convert_v1alpha8_OpenStackMachineTemplateList_To_v1alpha7_OpenStackMachineTemplateList(src, r, nil)
234235
}
236+
237+
func Convert_v1alpha7_OpenStackClusterSpec_To_v1alpha8_OpenStackClusterSpec(in *OpenStackClusterSpec, out *infrav1.OpenStackClusterSpec, s apiconversion.Scope) error {
238+
err := autoConvert_v1alpha7_OpenStackClusterSpec_To_v1alpha8_OpenStackClusterSpec(in, out, s)
239+
if err != nil {
240+
return err
241+
}
242+
243+
if in.ExternalNetworkID != "" {
244+
out.ExternalNetwork = infrav1.NetworkFilter{
245+
ID: in.ExternalNetworkID,
246+
}
247+
}
248+
249+
return nil
250+
}
251+
252+
func Convert_v1alpha8_OpenStackClusterSpec_To_v1alpha7_OpenStackClusterSpec(in *infrav1.OpenStackClusterSpec, out *OpenStackClusterSpec, s apiconversion.Scope) error {
253+
err := autoConvert_v1alpha8_OpenStackClusterSpec_To_v1alpha7_OpenStackClusterSpec(in, out, s)
254+
if err != nil {
255+
return err
256+
}
257+
258+
if in.ExternalNetwork.ID != "" {
259+
out.ExternalNetworkID = in.ExternalNetwork.ID
260+
}
261+
262+
return nil
263+
}

api/v1alpha7/conversion_test.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,32 @@ func TestFuzzyConversion(t *testing.T) {
6060
func(status *OpenStackClusterStatus, c fuzz.Continue) {
6161
c.FuzzNoCustom(status)
6262
},
63+
64+
func(v1alpha8Cluster *infrav1.OpenStackCluster, c fuzz.Continue) {
65+
c.FuzzNoCustom(v1alpha8Cluster)
66+
67+
// None of the following status fields have ever been set in v1alpha7
68+
v1alpha8Cluster.Spec.ExternalNetwork.Name = ""
69+
v1alpha8Cluster.Spec.ExternalNetwork.Description = ""
70+
v1alpha8Cluster.Spec.ExternalNetwork.Tags = ""
71+
v1alpha8Cluster.Spec.ExternalNetwork.TagsAny = ""
72+
v1alpha8Cluster.Spec.ExternalNetwork.NotTags = ""
73+
v1alpha8Cluster.Spec.ExternalNetwork.NotTagsAny = ""
74+
v1alpha8Cluster.Spec.ExternalNetwork.ProjectID = ""
75+
},
76+
77+
func(v1alpha8ClusterTemplate *infrav1.OpenStackClusterTemplate, c fuzz.Continue) {
78+
c.FuzzNoCustom(v1alpha8ClusterTemplate)
79+
80+
// None of the following status fields have ever been set in v1alpha7
81+
v1alpha8ClusterTemplate.Spec.Template.Spec.ExternalNetwork.Name = ""
82+
v1alpha8ClusterTemplate.Spec.Template.Spec.ExternalNetwork.Description = ""
83+
v1alpha8ClusterTemplate.Spec.Template.Spec.ExternalNetwork.Tags = ""
84+
v1alpha8ClusterTemplate.Spec.Template.Spec.ExternalNetwork.TagsAny = ""
85+
v1alpha8ClusterTemplate.Spec.Template.Spec.ExternalNetwork.NotTags = ""
86+
v1alpha8ClusterTemplate.Spec.Template.Spec.ExternalNetwork.NotTagsAny = ""
87+
v1alpha8ClusterTemplate.Spec.Template.Spec.ExternalNetwork.ProjectID = ""
88+
},
6389
}
6490
}
6591

@@ -84,14 +110,17 @@ func TestFuzzyConversion(t *testing.T) {
84110
Hub: &infrav1.OpenStackClusterTemplate{},
85111
Spoke: &OpenStackClusterTemplate{},
86112
HubAfterMutation: ignoreDataAnnotation,
113+
FuzzerFuncs: []fuzzer.FuzzerFuncs{fuzzerFuncs},
87114
})))
88115

89116
t.Run("for OpenStackClusterTemplate with mutate", runParallel(testhelpers.FuzzMutateTestFunc(testhelpers.FuzzMutateTestFuncInput{
90117
FuzzTestFuncInput: utilconversion.FuzzTestFuncInput{
91118
Hub: &infrav1.OpenStackClusterTemplate{},
92119
Spoke: &OpenStackClusterTemplate{},
93120
HubAfterMutation: ignoreDataAnnotation,
121+
FuzzerFuncs: []fuzzer.FuzzerFuncs{fuzzerFuncs},
94122
},
123+
MutateFuzzerFuncs: []fuzzer.FuzzerFuncs{fuzzerFuncs},
95124
})))
96125

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

0 commit comments

Comments
 (0)