@@ -23,21 +23,20 @@ import (
23
23
"testing"
24
24
"time"
25
25
26
+ corev1 "k8s.io/api/core/v1"
26
27
eventingv1 "knative.dev/eventing/pkg/apis/eventing/v1"
27
28
28
- "google.golang.org/protobuf/encoding/protojson"
29
- eventingv1alpha1 "knative.dev/eventing/pkg/apis/eventing/v1alpha1"
30
- "knative.dev/eventing/pkg/apis/feature"
31
- reconcilertesting "knative.dev/pkg/reconciler/testing"
32
-
33
29
"github.com/google/go-cmp/cmp"
34
30
"github.com/google/go-cmp/cmp/cmpopts"
31
+ "google.golang.org/protobuf/encoding/protojson"
35
32
"google.golang.org/protobuf/runtime/protoimpl"
36
33
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
37
34
"k8s.io/apimachinery/pkg/runtime"
38
35
"k8s.io/apimachinery/pkg/types"
39
36
"k8s.io/utils/pointer"
40
37
eventingduck "knative.dev/eventing/pkg/apis/duck/v1"
38
+ eventingv1alpha1 "knative.dev/eventing/pkg/apis/eventing/v1alpha1"
39
+ "knative.dev/eventing/pkg/apis/feature"
41
40
"knative.dev/pkg/apis"
42
41
duckv1 "knative.dev/pkg/apis/duck/v1"
43
42
"knative.dev/pkg/client/injection/ducks/duck/v1/addressable"
@@ -48,7 +47,6 @@ import (
48
47
"knative.dev/eventing-kafka-broker/control-plane/pkg/contract"
49
48
50
49
eventing "knative.dev/eventing-kafka-broker/control-plane/pkg/apis/eventing/v1alpha1"
51
- eventpolicyinformerfake "knative.dev/eventing/pkg/client/injection/informers/eventing/v1alpha1/eventpolicy/fake"
52
50
)
53
51
54
52
func TestContentModeFromString (t * testing.T ) {
@@ -513,7 +511,7 @@ func TestMergeEgressConfig(t *testing.T) {
513
511
}
514
512
}
515
513
516
- func TestEventPoliciesFromAppliedEventPoliciesStatus (t * testing.T ) {
514
+ func TestContractEventPoliciesEventPolicies (t * testing.T ) {
517
515
518
516
tests := []struct {
519
517
name string
@@ -522,7 +520,7 @@ func TestEventPoliciesFromAppliedEventPoliciesStatus(t *testing.T) {
522
520
namespace string
523
521
defaultAuthorizationMode feature.Flag
524
522
expected []* contract.EventPolicy
525
- wantErr bool
523
+ oidcDisabled bool
526
524
}{
527
525
{
528
526
name : "Exact match" ,
@@ -539,6 +537,14 @@ func TestEventPoliciesFromAppliedEventPoliciesStatus(t *testing.T) {
539
537
From : []string {
540
538
"from-1" ,
541
539
},
540
+ Status : duckv1.Status {
541
+ Conditions : duckv1.Conditions {
542
+ {
543
+ Type : eventingv1alpha1 .EventPolicyConditionReady ,
544
+ Status : corev1 .ConditionTrue ,
545
+ },
546
+ },
547
+ },
542
548
},
543
549
},
544
550
},
@@ -566,6 +572,14 @@ func TestEventPoliciesFromAppliedEventPoliciesStatus(t *testing.T) {
566
572
From : []string {
567
573
"from-*" ,
568
574
},
575
+ Status : duckv1.Status {
576
+ Conditions : duckv1.Conditions {
577
+ {
578
+ Type : eventingv1alpha1 .EventPolicyConditionReady ,
579
+ Status : corev1 .ConditionTrue ,
580
+ },
581
+ },
582
+ },
569
583
},
570
584
},
571
585
},
@@ -594,6 +608,14 @@ func TestEventPoliciesFromAppliedEventPoliciesStatus(t *testing.T) {
594
608
From : []string {
595
609
"from-1" ,
596
610
},
611
+ Status : duckv1.Status {
612
+ Conditions : duckv1.Conditions {
613
+ {
614
+ Type : eventingv1alpha1 .EventPolicyConditionReady ,
615
+ Status : corev1 .ConditionTrue ,
616
+ },
617
+ },
618
+ },
597
619
},
598
620
}, {
599
621
ObjectMeta : metav1.ObjectMeta {
@@ -604,6 +626,14 @@ func TestEventPoliciesFromAppliedEventPoliciesStatus(t *testing.T) {
604
626
From : []string {
605
627
"from-2-*" ,
606
628
},
629
+ Status : duckv1.Status {
630
+ Conditions : duckv1.Conditions {
631
+ {
632
+ Type : eventingv1alpha1 .EventPolicyConditionReady ,
633
+ Status : corev1 .ConditionTrue ,
634
+ },
635
+ },
636
+ },
607
637
},
608
638
},
609
639
},
@@ -643,6 +673,14 @@ func TestEventPoliciesFromAppliedEventPoliciesStatus(t *testing.T) {
643
673
From : []string {
644
674
"from-1" ,
645
675
},
676
+ Status : duckv1.Status {
677
+ Conditions : duckv1.Conditions {
678
+ {
679
+ Type : eventingv1alpha1 .EventPolicyConditionReady ,
680
+ Status : corev1 .ConditionTrue ,
681
+ },
682
+ },
683
+ },
646
684
},
647
685
}, {
648
686
ObjectMeta : metav1.ObjectMeta {
@@ -660,6 +698,14 @@ func TestEventPoliciesFromAppliedEventPoliciesStatus(t *testing.T) {
660
698
From : []string {
661
699
"from-2-*" ,
662
700
},
701
+ Status : duckv1.Status {
702
+ Conditions : duckv1.Conditions {
703
+ {
704
+ Type : eventingv1alpha1 .EventPolicyConditionReady ,
705
+ Status : corev1 .ConditionTrue ,
706
+ },
707
+ },
708
+ },
663
709
},
664
710
},
665
711
},
@@ -728,46 +774,88 @@ func TestEventPoliciesFromAppliedEventPoliciesStatus(t *testing.T) {
728
774
defaultAuthorizationMode : feature .AuthorizationDenyAll ,
729
775
expected : []* contract.EventPolicy {},
730
776
}, {
731
- name : "Applying policy does not exist " ,
777
+ name : "Applying policy not ready " ,
732
778
applyingPolicies : []string {
733
- "not-found" ,
779
+ "policy-1" ,
780
+ },
781
+ existingEventPolicies : []* eventingv1alpha1.EventPolicy {
782
+ {
783
+ ObjectMeta : metav1.ObjectMeta {
784
+ Name : "policy-1" ,
785
+ Namespace : "my-ns" ,
786
+ },
787
+ Status : eventingv1alpha1.EventPolicyStatus {
788
+ From : []string {
789
+ "from-*" ,
790
+ },
791
+ Status : duckv1.Status {
792
+ Conditions : duckv1.Conditions {
793
+ {
794
+ Type : eventingv1alpha1 .EventPolicyConditionReady ,
795
+ Status : corev1 .ConditionFalse ,
796
+ },
797
+ },
798
+ },
799
+ },
800
+ },
801
+ },
802
+ namespace : "my-ns" ,
803
+ defaultAuthorizationMode : feature .AuthorizationDenyAll ,
804
+ expected : []* contract.EventPolicy {},
805
+ }, {
806
+ name : "No policy when OIDC is disabled" ,
807
+ oidcDisabled : true ,
808
+ applyingPolicies : []string {
809
+ "policy-1" ,
810
+ },
811
+ existingEventPolicies : []* eventingv1alpha1.EventPolicy {
812
+ {
813
+ ObjectMeta : metav1.ObjectMeta {
814
+ Name : "policy-1" ,
815
+ Namespace : "my-ns" ,
816
+ },
817
+ Status : eventingv1alpha1.EventPolicyStatus {
818
+ From : []string {
819
+ "from-1" ,
820
+ },
821
+ Status : duckv1.Status {
822
+ Conditions : duckv1.Conditions {
823
+ {
824
+ Type : eventingv1alpha1 .EventPolicyConditionReady ,
825
+ Status : corev1 .ConditionFalse , // is false, as OIDC is disabled
826
+ },
827
+ },
828
+ },
829
+ },
830
+ },
734
831
},
735
- existingEventPolicies : []* eventingv1alpha1.EventPolicy {},
736
832
namespace : "my-ns" ,
737
833
defaultAuthorizationMode : feature .AuthorizationAllowSameNamespace ,
738
834
expected : []* contract.EventPolicy {},
739
- wantErr : true ,
740
835
},
741
836
}
742
837
for _ , tt := range tests {
743
838
t .Run (tt .name , func (t * testing.T ) {
744
839
745
- ctx , _ := reconcilertesting .SetupFakeContext (t )
746
840
features := feature.Flags {
747
841
feature .AuthorizationDefaultMode : tt .defaultAuthorizationMode ,
842
+ feature .OIDCAuthentication : feature .Enabled ,
748
843
}
749
844
750
- for _ , ep := range tt .existingEventPolicies {
751
- err := eventpolicyinformerfake .Get (ctx ).Informer ().GetStore ().Add (ep )
752
- if err != nil {
753
- t .Fatal (err )
754
- }
845
+ if tt .oidcDisabled {
846
+ features [feature .OIDCAuthentication ] = feature .Disabled
755
847
}
756
848
757
- applyingPoliciesStatus := eventingduck.AppliedEventPoliciesStatus {}
758
- for _ , ep := range tt .applyingPolicies {
759
- applyingPoliciesStatus .Policies = append (applyingPoliciesStatus .Policies , eventingduck.AppliedEventPolicyRef {
760
- Name : ep ,
761
- APIVersion : eventingv1alpha1 .SchemeGroupVersion .String (),
762
- })
763
- }
764
-
765
- got , err := EventPoliciesFromAppliedEventPoliciesStatus (applyingPoliciesStatus , eventpolicyinformerfake .Get (ctx ).Lister (), tt .namespace , features )
766
- if (err != nil ) != tt .wantErr {
767
- t .Errorf ("EventPoliciesFromAppliedEventPoliciesStatus() error = %v, wantErr %v" , err , tt .wantErr )
768
- return
849
+ applyingPolicies := []* eventingv1alpha1.EventPolicy {}
850
+ for _ , applyingPolicyName := range tt .applyingPolicies {
851
+ for _ , existingPolicy := range tt .existingEventPolicies {
852
+ if applyingPolicyName == existingPolicy .Name {
853
+ applyingPolicies = append (applyingPolicies , existingPolicy )
854
+ }
855
+ }
769
856
}
770
857
858
+ got := ContractEventPoliciesFromEventPolicies (applyingPolicies , tt .namespace , features )
771
859
expectedJSON , err := protojson .Marshal (& contract.Ingress {
772
860
EventPolicies : tt .expected ,
773
861
})
0 commit comments