Skip to content

Commit 28bc509

Browse files
prydieowainlewis
authored andcommitted
Fix panic when EnsureLoadBalancer() with 0 nodes (#177)
Fixes: #176
1 parent 848876e commit 28bc509

File tree

3 files changed

+7
-3
lines changed

3 files changed

+7
-3
lines changed

pkg/oci/load_balancer.go

+3
Original file line numberDiff line numberDiff line change
@@ -582,6 +582,9 @@ func loadBalancerToStatus(lb *loadbalancer.LoadBalancer) (*v1.LoadBalancerStatus
582582

583583
ingress := []v1.LoadBalancerIngress{}
584584
for _, ip := range lb.IpAddresses {
585+
if ip.IpAddress == nil {
586+
continue // should never happen but appears to when EnsureLoadBalancer is called with 0 nodes.
587+
}
585588
ingress = append(ingress, v1.LoadBalancerIngress{IP: *ip.IpAddress})
586589
}
587590
return &v1.LoadBalancerStatus{Ingress: ingress}, nil

pkg/oci/load_balancer_spec.go

-3
Original file line numberDiff line numberDiff line change
@@ -215,9 +215,6 @@ func getPorts(svc *v1.Service) map[string]portSpec {
215215
}
216216

217217
func getBackends(nodes []*v1.Node, nodePort int32) []loadbalancer.BackendDetails {
218-
if len(nodes) == 0 {
219-
return nil
220-
}
221218
backends := make([]loadbalancer.BackendDetails, len(nodes))
222219
for i, node := range nodes {
223220
backends[i] = loadbalancer.BackendDetails{

pkg/oci/load_balancer_spec_test.go

+4
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ func TestNewLBSpecSuccess(t *testing.T) {
6767
},
6868
BackendSets: map[string]loadbalancer.BackendSetDetails{
6969
"TCP-80": loadbalancer.BackendSetDetails{
70+
Backends: []loadbalancer.BackendDetails{},
7071
HealthChecker: &loadbalancer.HealthCheckerDetails{
7172
Protocol: common.String("HTTP"),
7273
Port: common.Int(10256),
@@ -120,6 +121,7 @@ func TestNewLBSpecSuccess(t *testing.T) {
120121
},
121122
BackendSets: map[string]loadbalancer.BackendSetDetails{
122123
"TCP-80": loadbalancer.BackendSetDetails{
124+
Backends: []loadbalancer.BackendDetails{},
123125
HealthChecker: &loadbalancer.HealthCheckerDetails{
124126
Protocol: common.String("HTTP"),
125127
Port: common.Int(10256),
@@ -174,6 +176,7 @@ func TestNewLBSpecSuccess(t *testing.T) {
174176
},
175177
BackendSets: map[string]loadbalancer.BackendSetDetails{
176178
"TCP-80": loadbalancer.BackendSetDetails{
179+
Backends: []loadbalancer.BackendDetails{},
177180
HealthChecker: &loadbalancer.HealthCheckerDetails{
178181
Protocol: common.String("HTTP"),
179182
Port: common.Int(10256),
@@ -227,6 +230,7 @@ func TestNewLBSpecSuccess(t *testing.T) {
227230
},
228231
BackendSets: map[string]loadbalancer.BackendSetDetails{
229232
"TCP-80": loadbalancer.BackendSetDetails{
233+
Backends: []loadbalancer.BackendDetails{},
230234
HealthChecker: &loadbalancer.HealthCheckerDetails{
231235
Protocol: common.String("HTTP"),
232236
Port: common.Int(10256),

0 commit comments

Comments
 (0)