Skip to content

Commit 50f61e3

Browse files
committed
Refactor reconcilation of resources
1 parent 7716671 commit 50f61e3

File tree

4 files changed

+687
-528
lines changed

4 files changed

+687
-528
lines changed

api/v1beta2/ibmpowervscluster_webhook.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,13 @@ func (r *IBMPowerVSCluster) validateIBMPowerVSClusterNetwork() *field.Error {
105105
func (r *IBMPowerVSCluster) validateIBMPowerVSClusterLoadBalancerNames() (allErrs field.ErrorList) {
106106
found := make(map[string]bool)
107107
for i, loadbalancer := range r.Spec.LoadBalancers {
108+
if loadbalancer.Name == "" {
109+
continue
110+
}
111+
108112
if found[loadbalancer.Name] {
109113
allErrs = append(allErrs, field.Duplicate(field.NewPath("spec", fmt.Sprintf("loadbalancers[%d]", i)), map[string]interface{}{"Name": loadbalancer.Name}))
114+
continue
110115
}
111116
found[loadbalancer.Name] = true
112117
}
@@ -117,8 +122,12 @@ func (r *IBMPowerVSCluster) validateIBMPowerVSClusterLoadBalancerNames() (allErr
117122
func (r *IBMPowerVSCluster) validateIBMPowerVSClusterVPCSubnetNames() (allErrs field.ErrorList) {
118123
found := make(map[string]bool)
119124
for i, subnet := range r.Spec.VPCSubnets {
125+
if subnet.Name == nil {
126+
continue
127+
}
120128
if found[*subnet.Name] {
121129
allErrs = append(allErrs, field.Duplicate(field.NewPath("spec", fmt.Sprintf("vpcSubnets[%d]", i)), map[string]interface{}{"Name": *subnet.Name}))
130+
continue
122131
}
123132
found[*subnet.Name] = true
124133
}
@@ -130,6 +139,9 @@ func (r *IBMPowerVSCluster) validateIBMPowerVSClusterTransitGateway() *field.Err
130139
if r.Spec.Zone == nil && r.Spec.VPC == nil {
131140
return nil
132141
}
142+
if r.Spec.TransitGateway == nil {
143+
return nil
144+
}
133145
if _, globalRouting, _ := genUtil.GetTransitGatewayLocationAndRouting(r.Spec.Zone, r.Spec.VPC.Region); r.Spec.TransitGateway.GlobalRouting != nil && !*r.Spec.TransitGateway.GlobalRouting && globalRouting != nil && *globalRouting {
134146
return field.Invalid(field.NewPath("spec.transitGateway.globalRouting"), r.Spec.TransitGateway.GlobalRouting, "global routing is required since PowerVS and VPC region are from different region")
135147
}

0 commit comments

Comments
 (0)