Skip to content

Commit bc4d741

Browse files
authored
Merge pull request #116 from ferryproxy/fix/route-policy
Reload latest generated route
2 parents 0a1f1bf + 41c0d9b commit bc4d741

File tree

2 files changed

+34
-1
lines changed

2 files changed

+34
-1
lines changed

pkg/ferry-controller/controller/route_policy/route_policy_controller.go

+20-1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"github.com/ferryproxy/api/apis/traffic/v1alpha2"
2727
versioned "github.com/ferryproxy/client-go/generated/clientset/versioned"
2828
externalversions "github.com/ferryproxy/client-go/generated/informers/externalversions"
29+
"github.com/ferryproxy/ferry/pkg/consts"
2930
"github.com/ferryproxy/ferry/pkg/ferry-controller/router/resource"
3031
"github.com/ferryproxy/ferry/pkg/utils/diffobjs"
3132
"github.com/ferryproxy/ferry/pkg/utils/maps"
@@ -103,6 +104,20 @@ func (c *RoutePolicyController) Run(ctx context.Context) error {
103104
}
104105
c.clientset = clientset
105106
c.ctx = ctx
107+
108+
list, err := c.clientset.
109+
TrafficV1alpha2().
110+
Routes(c.namespace).
111+
List(ctx, metav1.ListOptions{
112+
LabelSelector: labels.FormatLabels(labelsForRoute),
113+
})
114+
if err != nil {
115+
return err
116+
}
117+
for _, item := range list.Items {
118+
c.cacheRoutePolicyRoutes = append(c.cacheRoutePolicyRoutes, item.DeepCopy())
119+
}
120+
106121
informerFactory := externalversions.NewSharedInformerFactoryWithOptions(clientset, 0,
107122
externalversions.WithNamespace(c.namespace))
108123
informer := informerFactory.
@@ -325,7 +340,7 @@ func policiesToRoutes(clusterCache ClusterCache, policies []*v1alpha2.RoutePolic
325340
ObjectMeta: metav1.ObjectMeta{
326341
Name: fmt.Sprintf("%s-%s-%s-%s-%s-%s-%s", policy.Name, exportHubName, exportNamespace, exportName, importHubName, importNamespace, importName),
327342
Namespace: policy.Namespace,
328-
Labels: policy.Labels,
343+
Labels: maps.Merge(policy.Labels, labelsForRoute),
329344
OwnerReferences: []metav1.OwnerReference{
330345
{
331346
APIVersion: v1alpha2.GroupVersion.String(),
@@ -399,3 +414,7 @@ type groupRoutePolicy struct {
399414
Export v1alpha2.RoutePolicySpecRuleService
400415
Import v1alpha2.RoutePolicySpecRuleService
401416
}
417+
418+
var labelsForRoute = map[string]string{
419+
consts.LabelGeneratedKey: consts.LabelGeneratedValue,
420+
}

pkg/ferry-controller/controller/route_policy/route_policy_controller_test.go

+14
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@ func Test_policiesToRoutes(t *testing.T) {
206206
ObjectMeta: metav1.ObjectMeta{
207207
Name: "test-export-1-default-app-1-import-1-default-app-1",
208208
OwnerReferences: ownerReferences,
209+
Labels: labelsForRoute,
209210
},
210211
Spec: v1alpha2.RouteSpec{
211212
Import: v1alpha2.RouteSpecRule{
@@ -228,6 +229,7 @@ func Test_policiesToRoutes(t *testing.T) {
228229
ObjectMeta: metav1.ObjectMeta{
229230
Name: "test-export-1-default-app-2-import-1-default-app-2",
230231
OwnerReferences: ownerReferences,
232+
Labels: labelsForRoute,
231233
},
232234
Spec: v1alpha2.RouteSpec{
233235
Import: v1alpha2.RouteSpecRule{
@@ -278,6 +280,7 @@ func Test_policiesToRoutes(t *testing.T) {
278280
ObjectMeta: metav1.ObjectMeta{
279281
Name: "test-export-1-default-app-1-import-1-default-app-1",
280282
OwnerReferences: ownerReferences,
283+
Labels: labelsForRoute,
281284
},
282285
Spec: v1alpha2.RouteSpec{
283286
Import: v1alpha2.RouteSpecRule{
@@ -328,6 +331,7 @@ func Test_policiesToRoutes(t *testing.T) {
328331
ObjectMeta: metav1.ObjectMeta{
329332
Name: "test-export-1-default-app-1-import-1-default-app-1",
330333
OwnerReferences: ownerReferences,
334+
Labels: labelsForRoute,
331335
},
332336
Spec: v1alpha2.RouteSpec{
333337
Import: v1alpha2.RouteSpecRule{
@@ -350,6 +354,7 @@ func Test_policiesToRoutes(t *testing.T) {
350354
ObjectMeta: metav1.ObjectMeta{
351355
Name: "test-export-1-default-app-2-import-1-default-app-2",
352356
OwnerReferences: ownerReferences,
357+
Labels: labelsForRoute,
353358
},
354359
Spec: v1alpha2.RouteSpec{
355360
Import: v1alpha2.RouteSpecRule{
@@ -400,6 +405,7 @@ func Test_policiesToRoutes(t *testing.T) {
400405
ObjectMeta: metav1.ObjectMeta{
401406
Name: "test-export-1-default-app-1-import-1-default-app-1",
402407
OwnerReferences: ownerReferences,
408+
Labels: labelsForRoute,
403409
},
404410
Spec: v1alpha2.RouteSpec{
405411
Import: v1alpha2.RouteSpecRule{
@@ -452,6 +458,7 @@ func Test_policiesToRoutes(t *testing.T) {
452458
ObjectMeta: metav1.ObjectMeta{
453459
Name: "test-export-1-default-app-1-import-1-default-app-1",
454460
OwnerReferences: ownerReferences,
461+
Labels: labelsForRoute,
455462
},
456463
Spec: v1alpha2.RouteSpec{
457464
Import: v1alpha2.RouteSpecRule{
@@ -474,6 +481,7 @@ func Test_policiesToRoutes(t *testing.T) {
474481
ObjectMeta: metav1.ObjectMeta{
475482
Name: "test-export-1-test-app-1-import-1-test-app-1",
476483
OwnerReferences: ownerReferences,
484+
Labels: labelsForRoute,
477485
},
478486
Spec: v1alpha2.RouteSpec{
479487
Import: v1alpha2.RouteSpecRule{
@@ -526,6 +534,7 @@ func Test_policiesToRoutes(t *testing.T) {
526534
ObjectMeta: metav1.ObjectMeta{
527535
Name: "test-export-1-default-app-1-import-1-default-app-1",
528536
OwnerReferences: ownerReferences,
537+
Labels: labelsForRoute,
529538
},
530539
Spec: v1alpha2.RouteSpec{
531540
Import: v1alpha2.RouteSpecRule{
@@ -578,6 +587,7 @@ func Test_policiesToRoutes(t *testing.T) {
578587
ObjectMeta: metav1.ObjectMeta{
579588
Name: "test-export-1-default-app-1-import-1-default-app-1",
580589
OwnerReferences: ownerReferences,
590+
Labels: labelsForRoute,
581591
},
582592
Spec: v1alpha2.RouteSpec{
583593
Import: v1alpha2.RouteSpecRule{
@@ -600,6 +610,7 @@ func Test_policiesToRoutes(t *testing.T) {
600610
ObjectMeta: metav1.ObjectMeta{
601611
Name: "test-export-1-test-app-1-import-1-test-app-1",
602612
OwnerReferences: ownerReferences,
613+
Labels: labelsForRoute,
603614
},
604615
Spec: v1alpha2.RouteSpec{
605616
Import: v1alpha2.RouteSpecRule{
@@ -652,6 +663,7 @@ func Test_policiesToRoutes(t *testing.T) {
652663
ObjectMeta: metav1.ObjectMeta{
653664
Name: "test-export-1-default-app-1-import-1-default-app-1",
654665
OwnerReferences: ownerReferences,
666+
Labels: labelsForRoute,
655667
},
656668
Spec: v1alpha2.RouteSpec{
657669
Import: v1alpha2.RouteSpecRule{
@@ -720,6 +732,7 @@ func Test_policiesToRoutes(t *testing.T) {
720732
ObjectMeta: metav1.ObjectMeta{
721733
Name: "test-export-1-default-app-1-import-1-default-app-1",
722734
OwnerReferences: ownerReferences,
735+
Labels: labelsForRoute,
723736
},
724737
Spec: v1alpha2.RouteSpec{
725738
Import: v1alpha2.RouteSpecRule{
@@ -742,6 +755,7 @@ func Test_policiesToRoutes(t *testing.T) {
742755
ObjectMeta: metav1.ObjectMeta{
743756
Name: "test-export-2-default-app-1-import-1-default-app-1",
744757
OwnerReferences: ownerReferences,
758+
Labels: labelsForRoute,
745759
},
746760
Spec: v1alpha2.RouteSpec{
747761
Import: v1alpha2.RouteSpecRule{

0 commit comments

Comments
 (0)