@@ -125,6 +125,8 @@ func testLoadBalancer(t *testing.T, internal bool) {
125
125
nodes = append (nodes , node )
126
126
}
127
127
128
+ glog .Info ("Stating test on creating initial load balancer" )
129
+
128
130
status , err := loadbalancers .EnsureLoadBalancer ("foo" , service , nodes )
129
131
if err != nil {
130
132
t .Fatalf ("Unable to ensure the load balancer: %v" , err )
@@ -137,6 +139,8 @@ func testLoadBalancer(t *testing.T, internal bool) {
137
139
t .Fatalf ("validation error: %v" , err )
138
140
}
139
141
142
+ glog .Info ("Stating test on decreasing node count to 1" )
143
+
140
144
// Decrease the number of backends to 1
141
145
lessNodes := []* api.Node {nodes [0 ]}
142
146
status , err = loadbalancers .EnsureLoadBalancer ("foo" , service , lessNodes )
@@ -149,6 +153,8 @@ func testLoadBalancer(t *testing.T, internal bool) {
149
153
t .Fatalf ("validation error: %v" , err )
150
154
}
151
155
156
+ glog .Info ("Stating test on increasing node count back to 2" )
157
+
152
158
// Go back to 2 nodes
153
159
status , err = loadbalancers .EnsureLoadBalancer ("foo" , service , nodes )
154
160
if err != nil {
@@ -159,6 +165,33 @@ func testLoadBalancer(t *testing.T, internal bool) {
159
165
if err != nil {
160
166
t .Fatalf ("validation error: %v" , err )
161
167
}
168
+
169
+ glog .Info ("Stating test on changing service port" )
170
+
171
+ // Validate changing the service port.
172
+ service .Spec .Ports [0 ].Port = 81
173
+ status , err = loadbalancers .EnsureLoadBalancer ("foo" , service , nodes )
174
+ if err != nil {
175
+ t .Fatalf ("Unable to ensure the load balancer: %v" , err )
176
+ }
177
+
178
+ err = validateLoadBalancer (fw .Client , service , nodes )
179
+ if err != nil {
180
+ t .Fatalf ("validation error: %v" , err )
181
+ }
182
+
183
+ glog .Info ("Stating test on changing node port" )
184
+ // Validate changing the node port.
185
+ service .Spec .Ports [0 ].NodePort = 8081
186
+ status , err = loadbalancers .EnsureLoadBalancer ("foo" , service , nodes )
187
+ if err != nil {
188
+ t .Fatalf ("Unable to ensure the load balancer: %v" , err )
189
+ }
190
+
191
+ err = validateLoadBalancer (fw .Client , service , nodes )
192
+ if err != nil {
193
+ t .Fatalf ("validation error: %v" , err )
194
+ }
162
195
}
163
196
164
197
func validateLoadBalancer (client client.Interface , service * api.Service , nodes []* api.Node ) error {
@@ -171,20 +204,27 @@ func validateLoadBalancer(client client.Interface, service *api.Service, nodes [
171
204
}
172
205
173
206
if len (lb .Listeners ) != 1 {
174
- return fmt .Errorf ("Expected 1 Listener but got %d" , len (lb .Listeners ))
207
+ return fmt .Errorf ("expected 1 Listener but got %d" , len (lb .Listeners ))
175
208
}
176
209
177
210
if len (lb .BackendSets ) != 1 {
178
- return fmt .Errorf ("Expected 1 BackendSet but got %d" , len (lb .BackendSets ))
211
+ return fmt .Errorf ("expected 1 BackendSet but got %d" , len (lb .BackendSets ))
179
212
}
180
213
181
- backendSet , ok := lb .BackendSets ["TCP-80" ]
214
+ name := fmt .Sprintf ("TCP-%d" , service .Spec .Ports [0 ].Port )
215
+ backendSet , ok := lb .BackendSets [name ]
182
216
if ! ok {
183
- return fmt .Errorf ("Expected BackendSet with name `TCP-80` to exist but it doesn't" )
217
+ return fmt .Errorf ("expected BackendSet with name %q to exist but it doesn't" , name )
184
218
}
185
219
186
220
if len (backendSet .Backends ) != len (nodes ) {
187
- return fmt .Errorf ("Expected %d backends but got %d" , len (nodes ), len (backendSet .Backends ))
221
+ return fmt .Errorf ("expected %d backends but got %d" , len (nodes ), len (backendSet .Backends ))
222
+ }
223
+
224
+ expectedBackendPort := service .Spec .Ports [0 ].NodePort
225
+ actualBackendPort := backendSet .Backends [0 ].Port
226
+ if int (expectedBackendPort ) != int (actualBackendPort ) {
227
+ return fmt .Errorf ("expected backend port %d but got %d" , expectedBackendPort , actualBackendPort )
188
228
}
189
229
190
230
return nil
0 commit comments