Skip to content

Commit 05e7fe7

Browse files
committed
Add stuffs
1 parent bb49edb commit 05e7fe7

File tree

7 files changed

+106
-35
lines changed

7 files changed

+106
-35
lines changed

api/v1alpha7/conversion.go

Lines changed: 25 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,27 @@ 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+
out.Subnets = []infrav1.SubnetFilter{infrav1.SubnetFilter(in.Subnet)}
244+
245+
return nil
246+
}
247+
248+
func Convert_v1alpha8_OpenStackClusterSpec_To_v1alpha7_OpenStackClusterSpec(in *infrav1.OpenStackClusterSpec, out *OpenStackClusterSpec, s apiconversion.Scope) error {
249+
if len(in.Subnets) == 1 {
250+
in.Subnet = infrav1.SubnetFilter(in.Subnets[0])
251+
}
252+
253+
err := autoConvert_v1alpha8_OpenStackClusterSpec_To_v1alpha7_OpenStackClusterSpec(in, out, s)
254+
if err != nil {
255+
return err
256+
}
257+
258+
return nil
259+
}

api/v1alpha7/openstackcluster_types.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,8 @@ type OpenStackClusterSpec struct {
4848
Network NetworkFilter `json:"network,omitempty"`
4949

5050
// If NodeCIDR cannot be set this can be used to detect an existing subnet.
51-
//
52-
// Deprecated: Use subnets instead. subnet will be silently ignored if subnets is set.
5351
Subnet SubnetFilter `json:"subnet,omitempty"`
5452

55-
// If NodeCIDR cannot be set this can be used to detect existing IPv4 and/or IPv6 subnets.
56-
Subnets []SubnetFilter `json:"subnets,omitempty"`
57-
5853
// NetworkMTU sets the maximum transmission unit (MTU) value to address fragmentation for the private network ID.
5954
// This value will be used only if the Cluster actuator creates the network.
6055
// If leaved empty, the network will have the default MTU defined in Openstack network service.

api/v1alpha7/zz_generated.conversion.go

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

api/v1alpha7/zz_generated.deepcopy.go

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

api/v1alpha8/openstackcluster_types.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,13 @@ type OpenStackClusterSpec struct {
4848
Network NetworkFilter `json:"network,omitempty"`
4949

5050
// If NodeCIDR cannot be set this can be used to detect an existing subnet.
51+
//
52+
// Deprecated: Use subnets instead. subnet will be silently ignored if subnets is set.
5153
Subnet SubnetFilter `json:"subnet,omitempty"`
5254

55+
// If NodeCIDR cannot be set this can be used to detect existing IPv4 and/or IPv6 subnets.
56+
Subnets []SubnetFilter `json:"subnets,omitempty"`
57+
5358
// NetworkMTU sets the maximum transmission unit (MTU) value to address fragmentation for the private network ID.
5459
// This value will be used only if the Cluster actuator creates the network.
5560
// If leaved empty, the network will have the default MTU defined in Openstack network service.

api/v1alpha8/zz_generated.deepcopy.go

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

controllers/openstackcluster_controller.go

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -461,8 +461,23 @@ func reconcileNetworkComponents(scope scope.Scope, cluster *clusterv1.Cluster, o
461461
openStackCluster.Status.Network.Name = networkList[0].Name
462462
openStackCluster.Status.Network.Tags = networkList[0].Tags
463463

464+
emptySubnet := infrav1.SubnetFilter{}
465+
subnets := make([]infrav1.SubnetFilter, 0)
466+
if openStackCluster.Spec.Subnet != emptySubnet && openStackCluster.Spec.Subnets != nil {
467+
handleUpdateOSCError(openStackCluster, fmt.Errorf("subnet and subnets cannot be specified at the same time"))
468+
return fmt.Errorf("subnet and subnets cannot be specified at the same time")
469+
}
470+
471+
if openStackCluster.Spec.Subnet != emptySubnet {
472+
subnets = append(subnets, openStackCluster.Spec.Subnet)
473+
}
474+
475+
if openStackCluster.Spec.Subnets != nil {
476+
subnets = openStackCluster.Spec.Subnets
477+
}
478+
464479
var filteredSubnets []infrav1.Subnet
465-
for _, subnet := range openStackCluster.Spec.Subnets {
480+
for _, subnet := range subnets {
466481
filteredSubnet, err := networkingService.GetNetworkSubnetByFilter(openStackCluster.Status.Network.ID, &subnet)
467482
if err != nil {
468483
err = fmt.Errorf("failed to find subnet: %w", err)

0 commit comments

Comments
 (0)