Skip to content

Commit 17b73a6

Browse files
committed
New API for External Network
1 parent 5f306c3 commit 17b73a6

21 files changed

+530
-114
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,\"disableExternalNetwork\":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,\"disableExternalNetwork\":false,\"externalNetwork\":{},\"managedSecurityGroups\":false,\"network\":{},\"subnet\":{}}}}}",
6868
},
6969
},
7070
},

api/v1alpha5/zz_generated.conversion.go

Lines changed: 8 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: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,16 @@ var v1alpha6OpenStackClusterRestorer = conversion.RestorerFor[*OpenStackCluster]
123123
}
124124

125125
var v1alpha8OpenStackClusterRestorer = conversion.RestorerFor[*infrav1.OpenStackCluster]{
126+
"externalNetwork": conversion.UnconditionalFieldRestorer(
127+
func(c *infrav1.OpenStackCluster) *infrav1.NetworkFilter {
128+
return &c.Spec.ExternalNetwork
129+
},
130+
),
131+
"disableExternalNetwork": conversion.UnconditionalFieldRestorer(
132+
func(c *infrav1.OpenStackCluster) *bool {
133+
return &c.Spec.DisableExternalNetwork
134+
},
135+
),
126136
"router": conversion.UnconditionalFieldRestorer(
127137
func(c *infrav1.OpenStackCluster) **infrav1.RouterFilter {
128138
return &c.Spec.Router
@@ -193,6 +203,16 @@ var v1alpha6OpenStackClusterTemplateRestorer = conversion.RestorerFor[*OpenStack
193203
}
194204

195205
var v1alpha8OpenStackClusterTemplateRestorer = conversion.RestorerFor[*infrav1.OpenStackClusterTemplate]{
206+
"externalNetwork": conversion.UnconditionalFieldRestorer(
207+
func(c *infrav1.OpenStackClusterTemplate) *infrav1.NetworkFilter {
208+
return &c.Spec.Template.Spec.ExternalNetwork
209+
},
210+
),
211+
"disableExternalNetwork": conversion.UnconditionalFieldRestorer(
212+
func(c *infrav1.OpenStackClusterTemplate) *bool {
213+
return &c.Spec.Template.Spec.DisableExternalNetwork
214+
},
215+
),
196216
"router": conversion.UnconditionalFieldRestorer(
197217
func(c *infrav1.OpenStackClusterTemplate) **infrav1.RouterFilter {
198218
return &c.Spec.Template.Spec.Router
@@ -443,7 +463,31 @@ func convertNetworksToPorts(networks []NetworkParam) []infrav1.PortOpts {
443463
}
444464

445465
func Convert_v1alpha8_OpenStackClusterSpec_To_v1alpha6_OpenStackClusterSpec(in *infrav1.OpenStackClusterSpec, out *OpenStackClusterSpec, s apiconversion.Scope) error {
446-
return autoConvert_v1alpha8_OpenStackClusterSpec_To_v1alpha6_OpenStackClusterSpec(in, out, s)
466+
err := autoConvert_v1alpha8_OpenStackClusterSpec_To_v1alpha6_OpenStackClusterSpec(in, out, s)
467+
if err != nil {
468+
return err
469+
}
470+
471+
if in.ExternalNetwork.ID != "" {
472+
out.ExternalNetworkID = in.ExternalNetwork.ID
473+
}
474+
475+
return nil
476+
}
477+
478+
func Convert_v1alpha6_OpenStackClusterSpec_To_v1alpha8_OpenStackClusterSpec(in *OpenStackClusterSpec, out *infrav1.OpenStackClusterSpec, s apiconversion.Scope) error {
479+
err := autoConvert_v1alpha6_OpenStackClusterSpec_To_v1alpha8_OpenStackClusterSpec(in, out, s)
480+
if err != nil {
481+
return err
482+
}
483+
484+
if in.ExternalNetworkID != "" {
485+
out.ExternalNetwork = infrav1.NetworkFilter{
486+
ID: in.ExternalNetworkID,
487+
}
488+
}
489+
490+
return nil
447491
}
448492

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

api/v1alpha6/zz_generated.conversion.go

Lines changed: 8 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: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,16 @@ var v1alpha8OpenStackClusterRestorer = conversion.RestorerFor[*infrav1.OpenStack
5151
return &c.Status.Bastion.ReferencedResources
5252
},
5353
),
54+
"externalNetwork": conversion.UnconditionalFieldRestorer(
55+
func(c *infrav1.OpenStackCluster) *infrav1.NetworkFilter {
56+
return &c.Spec.ExternalNetwork
57+
},
58+
),
59+
"disableExternalNetwork": conversion.UnconditionalFieldRestorer(
60+
func(c *infrav1.OpenStackCluster) *bool {
61+
return &c.Spec.DisableExternalNetwork
62+
},
63+
),
5464
}
5565

5666
func restorev1alpha8MachineSpec(previous *infrav1.OpenStackMachineSpec, dst *infrav1.OpenStackMachineSpec) {
@@ -116,6 +126,16 @@ var v1alpha8OpenStackClusterTemplateRestorer = conversion.RestorerFor[*infrav1.O
116126
},
117127
restorev1alpha8Bastion,
118128
),
129+
"externalNetwork": conversion.UnconditionalFieldRestorer(
130+
func(c *infrav1.OpenStackClusterTemplate) *infrav1.NetworkFilter {
131+
return &c.Spec.Template.Spec.ExternalNetwork
132+
},
133+
),
134+
"disableExternalNetwork": conversion.UnconditionalFieldRestorer(
135+
func(c *infrav1.OpenStackClusterTemplate) *bool {
136+
return &c.Spec.Template.Spec.DisableExternalNetwork
137+
},
138+
),
119139
}
120140

121141
func (r *OpenStackClusterTemplate) ConvertTo(dstRaw ctrlconversion.Hub) error {
@@ -300,3 +320,31 @@ func Convert_v1alpha8_Bastion_To_v1alpha7_Bastion(in *infrav1.Bastion, out *Bast
300320

301321
return nil
302322
}
323+
324+
func Convert_v1alpha7_OpenStackClusterSpec_To_v1alpha8_OpenStackClusterSpec(in *OpenStackClusterSpec, out *infrav1.OpenStackClusterSpec, s apiconversion.Scope) error {
325+
err := autoConvert_v1alpha7_OpenStackClusterSpec_To_v1alpha8_OpenStackClusterSpec(in, out, s)
326+
if err != nil {
327+
return err
328+
}
329+
330+
if in.ExternalNetworkID != "" {
331+
out.ExternalNetwork = infrav1.NetworkFilter{
332+
ID: in.ExternalNetworkID,
333+
}
334+
}
335+
336+
return nil
337+
}
338+
339+
func Convert_v1alpha8_OpenStackClusterSpec_To_v1alpha7_OpenStackClusterSpec(in *infrav1.OpenStackClusterSpec, out *OpenStackClusterSpec, s apiconversion.Scope) error {
340+
err := autoConvert_v1alpha8_OpenStackClusterSpec_To_v1alpha7_OpenStackClusterSpec(in, out, s)
341+
if err != nil {
342+
return err
343+
}
344+
345+
if in.ExternalNetwork.ID != "" {
346+
out.ExternalNetworkID = in.ExternalNetwork.ID
347+
}
348+
349+
return nil
350+
}

api/v1alpha7/zz_generated.conversion.go

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

0 commit comments

Comments
 (0)