Skip to content

Commit

Permalink
fix: feature flags are passed correctly (#2)
Browse files Browse the repository at this point in the history
Signed-off-by: Calum Murray <cmurray@redhat.com>
  • Loading branch information
Cali0707 committed Jul 5, 2024
1 parent 3398839 commit e3b8645
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 10 deletions.
9 changes: 4 additions & 5 deletions pkg/reconciler/broker/trigger/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ func NewController(
FilterFunc: brokerFilter,
Handler: controller.HandleAll(func(obj interface{}) {
if broker, ok := obj.(*eventing.Broker); ok {
for _, t := range getTriggersForBroker(ctx, logger, triggerLister, broker) {
for _, t := range getTriggersForBroker(logger, triggerLister, broker, featureStore.Load()) {
impl.Enqueue(t)
}
}
Expand Down Expand Up @@ -187,7 +187,7 @@ func filterTriggers(featureStore *feature.Store, lister eventinglisters.BrokerLi
// the Triggers belonging to it. As there is no way to return failures in the
// Informers EventHandler, errors are logged, and an empty array is returned in case
// of failures.
func getTriggersForBroker(ctx context.Context, logger *zap.SugaredLogger, triggerLister eventinglisters.TriggerLister, broker *eventing.Broker) []*eventing.Trigger {
func getTriggersForBroker(logger *zap.SugaredLogger, triggerLister eventinglisters.TriggerLister, broker *eventing.Broker, features feature.Flags) []*eventing.Trigger {
r := make([]*eventing.Trigger, 0)
selector := labels.SelectorFromSet(map[string]string{apiseventing.BrokerLabelKey: broker.Name})
triggers, err := triggerLister.Triggers(metav1.NamespaceAll).List(selector)
Expand All @@ -196,10 +196,9 @@ func getTriggersForBroker(ctx context.Context, logger *zap.SugaredLogger, trigge
return r
}
for _, t := range triggers {
if feature.FromContext(ctx).IsCrossNamespaceEventLinks() && t.Spec.BrokerRef != nil && t.Spec.BrokerRef.Namespace == broker.Namespace {
if features.IsCrossNamespaceEventLinks() && t.Spec.BrokerRef != nil && t.Spec.BrokerRef.Namespace == broker.Namespace {
r = append(r, t)
}
if t.Namespace == broker.Namespace {
} else if t.Namespace == broker.Namespace {
r = append(r, t)
}
}
Expand Down
8 changes: 4 additions & 4 deletions pkg/reconciler/broker/trigger/controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -305,8 +305,8 @@ func TestGetTriggersForBroker(t *testing.T) {
ls := testingv1.NewListers(tt.in)
logger := logtesting.TestLogger(t)
triggerLister := ls.GetTriggerLister()
ctx := feature.ToContext(context.TODO(), feature.FromContextOrDefaults(context.TODO()))
triggers := getTriggersForBroker(ctx, logger, triggerLister, ReadyBroker())
flags := feature.FromContextOrDefaults(context.TODO())
triggers := getTriggersForBroker(logger, triggerLister, ReadyBroker(), flags)
var found []string
for _, want := range tt.out {
for _, got := range triggers {
Expand Down Expand Up @@ -348,8 +348,8 @@ func (failer *TriggerNamespaceListerFailer) Get(name string) (*eventing.Trigger,
func TestListFailure(t *testing.T) {
logger := logtesting.TestLogger(t)
triggerListerFailer := &TriggerListerFailer{}
ctx := feature.ToContext(context.TODO(), feature.FromContextOrDefaults(context.TODO()))
if len(getTriggersForBroker(ctx, logger, triggerListerFailer, ReadyBroker())) != 0 {
flags := feature.FromContextOrDefaults(context.TODO())
if len(getTriggersForBroker(logger, triggerListerFailer, ReadyBroker(), flags)) != 0 {
t.Fatalf("Got back triggers when not expecting any")
}
}
5 changes: 4 additions & 1 deletion pkg/reconciler/sugar/trigger/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ func NewController(
triggerInformer := trigger.Get(ctx)
brokerInformer := broker.Get(ctx)

featureStore := feature.NewStore(logging.FromContext(ctx).Named("config-features"))
featureStore.WatchConfigs(cmw)

r := &Reconciler{
eventingClientSet: eventingclient.Get(ctx),
brokerLister: brokerInformer.Lister(),
Expand All @@ -73,7 +76,7 @@ func NewController(
return
}
for _, t := range triggers {
if feature.FromContext(ctx).IsCrossNamespaceEventLinks() && t.Spec.BrokerRef != nil && t.Spec.BrokerRef.Namespace == b.Namespace {
if featureStore.Load().IsCrossNamespaceEventLinks() && t.Spec.BrokerRef != nil && t.Spec.BrokerRef.Namespace == b.Namespace {
impl.Enqueue(t)
} else if t.Namespace == b.Namespace {
impl.Enqueue(t)
Expand Down
6 changes: 6 additions & 0 deletions pkg/reconciler/sugar/trigger/controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,12 @@ func TestNew(t *testing.T) {
"_example": "test-config",
},
},
&corev1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Name: "config-features",
Namespace: "knative-eventing",
},
},
))

if c == nil {
Expand Down

0 comments on commit e3b8645

Please sign in to comment.