7
7
8
8
discovery_v1 "k8s.io/api/discovery/v1"
9
9
10
+ "github.com/jinzhu/copier"
10
11
"github.com/nginxinc/kubernetes-ingress/pkg/apis/dos/v1beta1"
11
12
12
13
"github.com/golang/glog"
@@ -17,8 +18,6 @@ import (
17
18
18
19
conf_v1 "github.com/nginxinc/kubernetes-ingress/pkg/apis/configuration/v1"
19
20
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
20
-
21
- gdesignReflect "golang.design/x/reflect"
22
21
)
23
22
24
23
// createConfigMapHandlers builds the handler funcs for config maps
@@ -313,8 +312,18 @@ func createVirtualServerHandlers(lbc *LoadBalancerController) cache.ResourceEven
313
312
oldVs := old .(* conf_v1.VirtualServer )
314
313
315
314
if lbc .weightChangesWithoutReload {
316
- curVsCopy := gdesignReflect .DeepCopy (* curVs )
317
- oldVsCopy := gdesignReflect .DeepCopy (* oldVs )
315
+ var curVsCopy , oldVsCopy conf_v1.VirtualServer
316
+ err := copier .CopyWithOption (& curVsCopy , curVs , copier.Option {DeepCopy : true })
317
+ if err != nil {
318
+ glog .V (3 ).Infof ("Error copying VirtualServer %v: %v" , curVs .Name , err )
319
+ return
320
+ }
321
+
322
+ err = copier .CopyWithOption (& oldVsCopy , oldVs , copier.Option {DeepCopy : true })
323
+ if err != nil {
324
+ glog .V (3 ).Infof ("Error copying VirtualServer %v: %v" , oldVs .Name , err )
325
+ return
326
+ }
318
327
319
328
zeroOutVirtualServerSplitWeights (& curVsCopy )
320
329
zeroOutVirtualServerSplitWeights (& oldVsCopy )
@@ -363,11 +372,21 @@ func createVirtualServerRouteHandlers(lbc *LoadBalancerController) cache.Resourc
363
372
oldVsr := old .(* conf_v1.VirtualServerRoute )
364
373
365
374
if lbc .weightChangesWithoutReload {
366
- curVsrCopy := gdesignReflect .DeepCopy (curVsr )
367
- oldVsrCopy := gdesignReflect .DeepCopy (oldVsr )
375
+ var curVsrCopy , oldVsrCopy conf_v1.VirtualServerRoute
376
+ err := copier .CopyWithOption (& curVsrCopy , curVsr , copier.Option {DeepCopy : true })
377
+ if err != nil {
378
+ glog .V (3 ).Infof ("Error copying VirtualServerRoute %v: %v" , curVsr .Name , err )
379
+ return
380
+ }
381
+
382
+ err = copier .CopyWithOption (& oldVsrCopy , oldVsr , copier.Option {DeepCopy : true })
383
+ if err != nil {
384
+ glog .V (3 ).Infof ("Error copying VirtualServerRoute %v: %v" , oldVsr .Name , err )
385
+ return
386
+ }
368
387
369
- zeroOutVirtualServerRouteSplitWeights (curVsrCopy )
370
- zeroOutVirtualServerRouteSplitWeights (oldVsrCopy )
388
+ zeroOutVirtualServerRouteSplitWeights (& curVsrCopy )
389
+ zeroOutVirtualServerRouteSplitWeights (& oldVsrCopy )
371
390
372
391
if reflect .DeepEqual (oldVsrCopy .Spec , curVsrCopy .Spec ) {
373
392
lbc .processVSRWeightChangesWithoutReload (oldVsr , curVsr )
0 commit comments