Skip to content

Commit 79cf28d

Browse files
committed
Move APIServerLoadBalancer and Router out of Network status
1 parent bc57b7f commit 79cf28d

File tree

11 files changed

+192
-138
lines changed

11 files changed

+192
-138
lines changed

api/v1alpha5/conversion.go

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -385,3 +385,49 @@ func Convert_v1alpha7_BindingProfile_To_Map_string_To_Interface(in *infrav1.Bind
385385
}
386386
return nil
387387
}
388+
389+
func Convert_v1alpha7_OpenStackClusterStatus_To_v1alpha5_OpenStackClusterStatus(in *infrav1.OpenStackClusterStatus, out *OpenStackClusterStatus, s conversion.Scope) error {
390+
err := autoConvert_v1alpha7_OpenStackClusterStatus_To_v1alpha5_OpenStackClusterStatus(in, out, s)
391+
if err != nil {
392+
return err
393+
}
394+
395+
// Router and APIServerLoadBalancer have been moved out of Network in v1alpha7
396+
if in.Router != nil || in.APIServerLoadBalancer != nil {
397+
if out.Network == nil {
398+
out.Network = &Network{}
399+
}
400+
401+
out.Network.Router = (*Router)(in.Router)
402+
if in.APIServerLoadBalancer != nil {
403+
out.Network.APIServerLoadBalancer = &LoadBalancer{}
404+
err = Convert_v1alpha7_LoadBalancer_To_v1alpha5_LoadBalancer(in.APIServerLoadBalancer, out.Network.APIServerLoadBalancer, s)
405+
if err != nil {
406+
return err
407+
}
408+
}
409+
}
410+
411+
return nil
412+
}
413+
414+
func Convert_v1alpha5_OpenStackClusterStatus_To_v1alpha7_OpenStackClusterStatus(in *OpenStackClusterStatus, out *infrav1.OpenStackClusterStatus, s conversion.Scope) error {
415+
err := autoConvert_v1alpha5_OpenStackClusterStatus_To_v1alpha7_OpenStackClusterStatus(in, out, s)
416+
if err != nil {
417+
return err
418+
}
419+
420+
// Router and APIServerLoadBalancer have been moved out of Network in v1alpha7
421+
if in.Network != nil {
422+
out.Router = (*infrav1.Router)(in.Network.Router)
423+
if in.Network.APIServerLoadBalancer != nil {
424+
out.APIServerLoadBalancer = &infrav1.LoadBalancer{}
425+
err = Convert_v1alpha5_LoadBalancer_To_v1alpha7_LoadBalancer(in.Network.APIServerLoadBalancer, out.APIServerLoadBalancer, s)
426+
if err != nil {
427+
return err
428+
}
429+
}
430+
}
431+
432+
return nil
433+
}

api/v1alpha5/zz_generated.conversion.go

Lines changed: 14 additions & 40 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 & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ limitations under the License.
1717
package v1alpha6
1818

1919
import (
20+
"reflect"
2021
"strings"
2122

2223
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -130,6 +131,15 @@ func restorev1alpha7ClusterSpec(previous *infrav1.OpenStackClusterSpec, dst *inf
130131
}
131132
}
132133

134+
func restorev1alpha7ClusterStatus(previous *infrav1.OpenStackClusterStatus, dst *infrav1.OpenStackClusterStatus) {
135+
// It's (theoretically) possible in v1alpha7 to have Network nil but
136+
// Router or APIServerLoadBalancer not nil. In hub-spoke-hub conversion this will
137+
// result in Network being a pointer to an empty object.
138+
if previous.Network == nil && dst.Network != nil && reflect.ValueOf(*dst.Network).IsZero() {
139+
dst.Network = nil
140+
}
141+
}
142+
133143
func restorev1alpha6ClusterSpec(previous *OpenStackClusterSpec, dst *OpenStackClusterSpec) {
134144
for i := range previous.ExternalRouterIPs {
135145
dstIP := &dst.ExternalRouterIPs[i]
@@ -158,6 +168,7 @@ func (r *OpenStackCluster) ConvertTo(dstRaw ctrlconversion.Hub) error {
158168

159169
if restored {
160170
restorev1alpha7ClusterSpec(&previous.Spec, &dst.Spec)
171+
restorev1alpha7ClusterStatus(&previous.Status, &dst.Status)
161172
}
162173

163174
return nil
@@ -580,3 +591,37 @@ func Convert_v1alpha7_BindingProfile_To_Map_string_To_Interface(in *infrav1.Bind
580591
}
581592
return nil
582593
}
594+
595+
func Convert_v1alpha7_OpenStackClusterStatus_To_v1alpha6_OpenStackClusterStatus(in *infrav1.OpenStackClusterStatus, out *OpenStackClusterStatus, s conversion.Scope) error {
596+
err := autoConvert_v1alpha7_OpenStackClusterStatus_To_v1alpha6_OpenStackClusterStatus(in, out, s)
597+
if err != nil {
598+
return err
599+
}
600+
601+
// Router and APIServerLoadBalancer have been moved out of Network in v1alpha7
602+
if in.Router != nil || in.APIServerLoadBalancer != nil {
603+
if out.Network == nil {
604+
out.Network = &Network{}
605+
}
606+
607+
out.Network.Router = (*Router)(in.Router)
608+
out.Network.APIServerLoadBalancer = (*LoadBalancer)(in.APIServerLoadBalancer)
609+
}
610+
611+
return nil
612+
}
613+
614+
func Convert_v1alpha6_OpenStackClusterStatus_To_v1alpha7_OpenStackClusterStatus(in *OpenStackClusterStatus, out *infrav1.OpenStackClusterStatus, s conversion.Scope) error {
615+
err := autoConvert_v1alpha6_OpenStackClusterStatus_To_v1alpha7_OpenStackClusterStatus(in, out, s)
616+
if err != nil {
617+
return err
618+
}
619+
620+
// Router and APIServerLoadBalancer have been moved out of Network in v1alpha7
621+
if in.Network != nil {
622+
out.Router = (*infrav1.Router)(in.Network.Router)
623+
out.APIServerLoadBalancer = (*infrav1.LoadBalancer)(in.Network.APIServerLoadBalancer)
624+
}
625+
626+
return nil
627+
}

api/v1alpha6/zz_generated.conversion.go

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

api/v1alpha7/openstackcluster_types.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,13 +155,18 @@ type OpenStackClusterSpec struct {
155155
type OpenStackClusterStatus struct {
156156
Ready bool `json:"ready"`
157157

158-
// Network contains all information about the created OpenStack Network.
159-
// It includes Subnets and Router.
158+
// Network contains information about the created OpenStack Network.
160159
Network *Network `json:"network,omitempty"`
161160

162161
// externalNetwork contains information about the external network used for default ingress and egress traffic.
163162
ExternalNetwork *NetworkStatus `json:"externalNetwork,omitempty"`
164163

164+
// Router describes the default cluster router
165+
Router *Router `json:"router,omitempty"`
166+
167+
// APIServerLoadBalancer describes the api server load balancer if one exists
168+
APIServerLoadBalancer *LoadBalancer `json:"apiServerLoadBalancer,omitempty"`
169+
165170
// FailureDomains represent OpenStack availability zones
166171
FailureDomains clusterv1.FailureDomains `json:"failureDomains,omitempty"`
167172

api/v1alpha7/types.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -172,11 +172,6 @@ type Network struct {
172172
Tags []string `json:"tags,omitempty"`
173173

174174
Subnet *Subnet `json:"subnet,omitempty"`
175-
Router *Router `json:"router,omitempty"`
176-
177-
// Be careful when using APIServerLoadBalancer, because this field is optional and therefore not
178-
// set in all cases
179-
APIServerLoadBalancer *LoadBalancer `json:"apiServerLoadBalancer,omitempty"`
180175
}
181176

182177
// NetworkStatus contains basic information about an existing neutron network.

api/v1alpha7/zz_generated.deepcopy.go

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

0 commit comments

Comments
 (0)