Skip to content

Commit 74f07cf

Browse files
authored
Merge pull request #72 from stefanprodan/router
Refactor routing management
2 parents 79c8ff0 + ac544ee commit 74f07cf

13 files changed

+743
-482
lines changed

.travis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ script:
2121
- set -e
2222
- make test-fmt
2323
- make test-codegen
24-
- go test -race -coverprofile=coverage.txt -covermode=atomic ./pkg/controller/
24+
- go test -race -coverprofile=coverage.txt -covermode=atomic $(go list ./pkg/...)
2525
- make build
2626

2727
after_success:

pkg/controller/controller.go

-9
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ type Controller struct {
4242
canaries *sync.Map
4343
jobs map[string]CanaryJob
4444
deployer CanaryDeployer
45-
router CanaryRouter
4645
observer CanaryObserver
4746
recorder CanaryRecorder
4847
notifier *notifier.Slack
@@ -81,13 +80,6 @@ func NewController(
8180
},
8281
}
8382

84-
router := CanaryRouter{
85-
logger: logger,
86-
kubeClient: kubeClient,
87-
istioClient: istioClient,
88-
flaggerClient: flaggerClient,
89-
}
90-
9183
observer := CanaryObserver{
9284
metricsServer: metricServer,
9385
}
@@ -107,7 +99,6 @@ func NewController(
10799
jobs: map[string]CanaryJob{},
108100
flaggerWindow: flaggerWindow,
109101
deployer: deployer,
110-
router: router,
111102
observer: observer,
112103
recorder: recorder,
113104
notifier: notifier,

pkg/controller/controller_test.go

+8-9
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
fakeFlagger "github.com/stefanprodan/flagger/pkg/client/clientset/versioned/fake"
99
informers "github.com/stefanprodan/flagger/pkg/client/informers/externalversions"
1010
"github.com/stefanprodan/flagger/pkg/logging"
11+
"github.com/stefanprodan/flagger/pkg/router"
1112
"go.uber.org/zap"
1213
appsv1 "k8s.io/api/apps/v1"
1314
hpav1 "k8s.io/api/autoscaling/v1"
@@ -33,10 +34,10 @@ type Mocks struct {
3334
istioClient istioclientset.Interface
3435
flaggerClient clientset.Interface
3536
deployer CanaryDeployer
36-
router CanaryRouter
3737
observer CanaryObserver
3838
ctrl *Controller
3939
logger *zap.SugaredLogger
40+
router router.Interface
4041
}
4142

4243
func SetupMocks() Mocks {
@@ -70,12 +71,6 @@ func SetupMocks() Mocks {
7071
flaggerClient: flaggerClient,
7172
},
7273
}
73-
router := CanaryRouter{
74-
flaggerClient: flaggerClient,
75-
kubeClient: kubeClient,
76-
istioClient: istioClient,
77-
logger: logger,
78-
}
7974
observer := CanaryObserver{
8075
metricsServer: "fake",
8176
}
@@ -96,22 +91,26 @@ func SetupMocks() Mocks {
9691
canaries: new(sync.Map),
9792
flaggerWindow: time.Second,
9893
deployer: deployer,
99-
router: router,
10094
observer: observer,
10195
recorder: NewCanaryRecorder(false),
10296
}
10397
ctrl.flaggerSynced = alwaysReady
10498

99+
// init router
100+
rf := router.NewFactory(kubeClient, flaggerClient, logger, istioClient)
101+
var meshRouter router.Interface
102+
meshRouter = rf.IstioRouter()
103+
105104
return Mocks{
106105
canary: canary,
107106
observer: observer,
108-
router: router,
109107
deployer: deployer,
110108
logger: logger,
111109
flaggerClient: flaggerClient,
112110
istioClient: istioClient,
113111
kubeClient: kubeClient,
114112
ctrl: ctrl,
113+
router: meshRouter,
115114
}
116115
}
117116

0 commit comments

Comments
 (0)