Skip to content

Commit de29a18

Browse files
authored
Merge pull request #1971 from shiftstack/subnetparam
⚠️ SubnetFilter to SubnetParam
2 parents 1d5d2d5 + 4d85f6f commit de29a18

27 files changed

+1231
-742
lines changed

api/v1alpha5/conversion.go

Lines changed: 43 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ func Convert_v1beta1_OpenStackClusterSpec_To_v1alpha5_OpenStackClusterSpec(in *i
217217

218218
if in.Subnets != nil {
219219
if len(in.Subnets) >= 1 {
220-
if err := Convert_v1beta1_SubnetFilter_To_v1alpha5_SubnetFilter(&in.Subnets[0], &out.Subnet, s); err != nil {
220+
if err := Convert_v1beta1_SubnetParam_To_v1alpha5_SubnetFilter(&in.Subnets[0], &out.Subnet, s); err != nil {
221221
return err
222222
}
223223
}
@@ -254,11 +254,11 @@ func Convert_v1alpha5_OpenStackClusterSpec_To_v1beta1_OpenStackClusterSpec(in *O
254254

255255
emptySubnet := SubnetFilter{}
256256
if in.Subnet != emptySubnet {
257-
subnet := infrav1.SubnetFilter{}
258-
if err := Convert_v1alpha5_SubnetFilter_To_v1beta1_SubnetFilter(&in.Subnet, &subnet, s); err != nil {
257+
subnet := infrav1.SubnetParam{}
258+
if err := Convert_v1alpha5_SubnetFilter_To_v1beta1_SubnetParam(&in.Subnet, &subnet, s); err != nil {
259259
return err
260260
}
261-
out.Subnets = []infrav1.SubnetFilter{subnet}
261+
out.Subnets = []infrav1.SubnetParam{subnet}
262262
}
263263

264264
if len(in.NodeCIDR) > 0 {
@@ -547,25 +547,56 @@ func Convert_v1beta1_SecurityGroupFilter_To_v1alpha5_SecurityGroupParam(in *infr
547547
return nil
548548
}
549549

550-
func Convert_v1alpha5_SubnetParam_To_v1beta1_SubnetFilter(in *SubnetParam, out *infrav1.SubnetFilter, s conversion.Scope) error {
551-
if err := Convert_v1alpha5_SubnetFilter_To_v1beta1_SubnetFilter(&in.Filter, out, s); err != nil {
550+
func Convert_v1alpha5_SubnetParam_To_v1beta1_SubnetParam(in *SubnetParam, out *infrav1.SubnetParam, s conversion.Scope) error {
551+
if in.UUID != "" {
552+
out.ID = &in.UUID
553+
return nil
554+
}
555+
outFilter := &infrav1.SubnetFilter{}
556+
if err := Convert_v1alpha5_SubnetFilter_To_v1beta1_SubnetFilter(&in.Filter, outFilter, s); err != nil {
552557
return err
553558
}
554-
if in.UUID != "" {
555-
out.ID = in.UUID
559+
if !outFilter.IsZero() {
560+
out.Filter = outFilter
556561
}
557562
return nil
558563
}
559564

560-
func Convert_v1beta1_SubnetFilter_To_v1alpha5_SubnetParam(in *infrav1.SubnetFilter, out *SubnetParam, s conversion.Scope) error {
561-
if err := Convert_v1beta1_SubnetFilter_To_v1alpha5_SubnetFilter(in, &out.Filter, s); err != nil {
562-
return err
565+
func Convert_v1beta1_SubnetParam_To_v1alpha5_SubnetParam(in *infrav1.SubnetParam, out *SubnetParam, s conversion.Scope) error {
566+
if in.ID != nil {
567+
out.UUID = *in.ID
568+
return nil
569+
}
570+
571+
if in.Filter != nil {
572+
if err := Convert_v1beta1_SubnetFilter_To_v1alpha5_SubnetFilter(in.Filter, &out.Filter, s); err != nil {
573+
return err
574+
}
563575
}
564-
out.UUID = in.ID
565576

566577
return nil
567578
}
568579

580+
func Convert_v1alpha5_SubnetFilter_To_v1beta1_SubnetParam(in *SubnetFilter, out *infrav1.SubnetParam, s conversion.Scope) error {
581+
if in.ID != "" {
582+
out.ID = &in.ID
583+
return nil
584+
}
585+
out.Filter = &infrav1.SubnetFilter{}
586+
return Convert_v1alpha5_SubnetFilter_To_v1beta1_SubnetFilter(in, out.Filter, s)
587+
}
588+
589+
func Convert_v1beta1_SubnetParam_To_v1alpha5_SubnetFilter(in *infrav1.SubnetParam, out *SubnetFilter, s conversion.Scope) error {
590+
if in.ID != nil {
591+
out.ID = *in.ID
592+
return nil
593+
}
594+
if in.Filter != nil {
595+
return Convert_v1beta1_SubnetFilter_To_v1alpha5_SubnetFilter(in.Filter, out, s)
596+
}
597+
return nil
598+
}
599+
569600
func Convert_Map_string_To_Interface_To_v1beta1_BindingProfile(in map[string]string, out *infrav1.BindingProfile, _ conversion.Scope) error {
570601
for k, v := range in {
571602
if k == "capabilities" {

api/v1alpha5/zz_generated.conversion.go

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

api/v1alpha6/conversion_test.go

Lines changed: 36 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -286,8 +286,8 @@ func TestNetworksToPorts(t *testing.T) {
286286
},
287287
FixedIPs: []infrav1.FixedIP{
288288
{
289-
Subnet: &infrav1.SubnetFilter{
290-
ID: subnetuuid,
289+
Subnet: &infrav1.SubnetParam{
290+
ID: pointer.String(subnetuuid),
291291
},
292292
},
293293
},
@@ -330,20 +330,22 @@ func TestNetworksToPorts(t *testing.T) {
330330
},
331331
FixedIPs: []infrav1.FixedIP{
332332
{
333-
Subnet: &infrav1.SubnetFilter{
334-
Name: "subnet-name",
335-
Description: "subnet-description",
336-
ProjectID: "project-id",
337-
IPVersion: 6,
338-
GatewayIP: "x.x.x.x",
339-
CIDR: "y.y.y.y",
340-
IPv6AddressMode: "address-mode",
341-
IPv6RAMode: "ra-mode",
342-
FilterByNeutronTags: infrav1.FilterByNeutronTags{
343-
Tags: []infrav1.NeutronTag{"tags"},
344-
TagsAny: []infrav1.NeutronTag{"tags-any"},
345-
NotTags: []infrav1.NeutronTag{"not-tags"},
346-
NotTagsAny: []infrav1.NeutronTag{"not-tags-any"},
333+
Subnet: &infrav1.SubnetParam{
334+
Filter: &infrav1.SubnetFilter{
335+
Name: "subnet-name",
336+
Description: "subnet-description",
337+
ProjectID: "project-id",
338+
IPVersion: 6,
339+
GatewayIP: "x.x.x.x",
340+
CIDR: "y.y.y.y",
341+
IPv6AddressMode: "address-mode",
342+
IPv6RAMode: "ra-mode",
343+
FilterByNeutronTags: infrav1.FilterByNeutronTags{
344+
Tags: []infrav1.NeutronTag{"tags"},
345+
TagsAny: []infrav1.NeutronTag{"tags-any"},
346+
NotTags: []infrav1.NeutronTag{"not-tags"},
347+
NotTagsAny: []infrav1.NeutronTag{"not-tags-any"},
348+
},
347349
},
348350
},
349351
},
@@ -390,8 +392,8 @@ func TestNetworksToPorts(t *testing.T) {
390392
},
391393
FixedIPs: []infrav1.FixedIP{
392394
{
393-
Subnet: &infrav1.SubnetFilter{
394-
ID: subnetuuid,
395+
Subnet: &infrav1.SubnetParam{
396+
ID: pointer.String(subnetuuid),
395397
},
396398
},
397399
},
@@ -402,20 +404,22 @@ func TestNetworksToPorts(t *testing.T) {
402404
},
403405
FixedIPs: []infrav1.FixedIP{
404406
{
405-
Subnet: &infrav1.SubnetFilter{
406-
Name: "subnet-name",
407-
Description: "subnet-description",
408-
ProjectID: "project-id",
409-
IPVersion: 6,
410-
GatewayIP: "x.x.x.x",
411-
CIDR: "y.y.y.y",
412-
IPv6AddressMode: "address-mode",
413-
IPv6RAMode: "ra-mode",
414-
FilterByNeutronTags: infrav1.FilterByNeutronTags{
415-
Tags: []infrav1.NeutronTag{"tags"},
416-
TagsAny: []infrav1.NeutronTag{"tags-any"},
417-
NotTags: []infrav1.NeutronTag{"not-tags"},
418-
NotTagsAny: []infrav1.NeutronTag{"not-tags-any"},
407+
Subnet: &infrav1.SubnetParam{
408+
Filter: &infrav1.SubnetFilter{
409+
Name: "subnet-name",
410+
Description: "subnet-description",
411+
ProjectID: "project-id",
412+
IPVersion: 6,
413+
GatewayIP: "x.x.x.x",
414+
CIDR: "y.y.y.y",
415+
IPv6AddressMode: "address-mode",
416+
IPv6RAMode: "ra-mode",
417+
FilterByNeutronTags: infrav1.FilterByNeutronTags{
418+
Tags: []infrav1.NeutronTag{"tags"},
419+
TagsAny: []infrav1.NeutronTag{"tags-any"},
420+
NotTags: []infrav1.NeutronTag{"not-tags"},
421+
NotTagsAny: []infrav1.NeutronTag{"not-tags-any"},
422+
},
419423
},
420424
},
421425
},

api/v1alpha6/openstackcluster_conversion.go

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ func restorev1alpha6ClusterSpec(previous *OpenStackClusterSpec, dst *OpenStackCl
152152

153153
if len(dst.ExternalRouterIPs) == len(previous.ExternalRouterIPs) {
154154
for i := range dst.ExternalRouterIPs {
155-
restorev1alpha6SubnetFilter(&previous.ExternalRouterIPs[i].Subnet.Filter, &dst.ExternalRouterIPs[i].Subnet.Filter)
155+
restorev1alpha6SubnetParam(&previous.ExternalRouterIPs[i].Subnet, &dst.ExternalRouterIPs[i].Subnet)
156156
}
157157
}
158158

@@ -179,10 +179,19 @@ func restorev1beta1ClusterSpec(previous *infrav1.OpenStackClusterSpec, dst *infr
179179
dst.NetworkMTU = previous.NetworkMTU
180180
dst.DisableExternalNetwork = previous.DisableExternalNetwork
181181

182+
if len(previous.Subnets) > 0 && len(dst.Subnets) > 0 {
183+
restorev1beta1SubnetParam(&previous.Subnets[0], &dst.Subnets[0])
184+
}
182185
if len(previous.Subnets) > 1 {
183186
dst.Subnets = append(dst.Subnets, previous.Subnets[1:]...)
184187
}
185188

189+
if len(previous.ExternalRouterIPs) == len(dst.ExternalRouterIPs) {
190+
for i := range dst.ExternalRouterIPs {
191+
restorev1beta1SubnetParam(&previous.ExternalRouterIPs[i].Subnet, &dst.ExternalRouterIPs[i].Subnet)
192+
}
193+
}
194+
186195
dst.ManagedSubnets = previous.ManagedSubnets
187196

188197
if previous.ManagedSecurityGroups != nil {
@@ -232,11 +241,11 @@ func Convert_v1alpha6_OpenStackClusterSpec_To_v1beta1_OpenStackClusterSpec(in *O
232241

233242
emptySubnet := SubnetFilter{}
234243
if in.Subnet != emptySubnet {
235-
subnet := infrav1.SubnetFilter{}
236-
if err := Convert_v1alpha6_SubnetFilter_To_v1beta1_SubnetFilter(&in.Subnet, &subnet, s); err != nil {
244+
subnet := infrav1.SubnetParam{}
245+
if err := Convert_v1alpha6_SubnetFilter_To_v1beta1_SubnetParam(&in.Subnet, &subnet, s); err != nil {
237246
return err
238247
}
239-
out.Subnets = []infrav1.SubnetFilter{subnet}
248+
out.Subnets = []infrav1.SubnetParam{subnet}
240249
}
241250

242251
// DNSNameservers without NodeCIDR doesn't make sense, so we drop that.
@@ -295,7 +304,7 @@ func Convert_v1beta1_OpenStackClusterSpec_To_v1alpha6_OpenStackClusterSpec(in *i
295304
}
296305

297306
if len(in.Subnets) >= 1 {
298-
if err := Convert_v1beta1_SubnetFilter_To_v1alpha6_SubnetFilter(&in.Subnets[0], &out.Subnet, s); err != nil {
307+
if err := Convert_v1beta1_SubnetParam_To_v1alpha6_SubnetFilter(&in.Subnets[0], &out.Subnet, s); err != nil {
299308
return err
300309
}
301310
}

api/v1alpha6/openstackmachine_conversion.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -223,18 +223,18 @@ func convertNetworksToPorts(networks []NetworkParam, s apiconversion.Scope) ([]i
223223
ports = append(ports, infrav1.PortOpts{
224224
Network: networkFilter,
225225
FixedIPs: []infrav1.FixedIP{
226-
{Subnet: &infrav1.SubnetFilter{ID: subnet.UUID}},
226+
{Subnet: &infrav1.SubnetParam{ID: &subnet.UUID}},
227227
},
228228
})
229229
} else {
230-
subnetFilter := &infrav1.SubnetFilter{}
231-
if err := Convert_v1alpha6_SubnetFilter_To_v1beta1_SubnetFilter(&subnet.Filter, subnetFilter, s); err != nil {
230+
subnetParam := &infrav1.SubnetParam{}
231+
if err := Convert_v1alpha6_SubnetFilter_To_v1beta1_SubnetParam(&subnet.Filter, subnetParam, s); err != nil {
232232
return nil, err
233233
}
234234
ports = append(ports, infrav1.PortOpts{
235235
Network: networkFilter,
236236
FixedIPs: []infrav1.FixedIP{
237-
{Subnet: subnetFilter},
237+
{Subnet: subnetParam},
238238
},
239239
})
240240
}

0 commit comments

Comments
 (0)