@@ -785,6 +785,58 @@ func TestTaskRunCRDConversion(t *testing.T) {
785
785
knativetest .CleanupOnInterrupt (func () { tearDown (ctx , t , c , namespace ) }, t .Logf )
786
786
defer tearDown (ctx , t , c , namespace )
787
787
788
+ // Wait for webhooks to be ready after controller startup with cache injection overhead
789
+ t .Logf ("Waiting for CRD webhook conversion to be ready..." )
790
+ for _ , kind := range []schema.GroupKind {v1 .Kind ("taskruns" )} {
791
+ err := wait .PollUntilContextTimeout (ctx , 500 * time .Millisecond , 10 * time .Second , true , func (ctx context.Context ) (bool , error ) {
792
+ gotCRD , err := c .ApixClient .ApiextensionsV1 ().CustomResourceDefinitions ().Get (ctx , kind .String (), metav1.GetOptions {})
793
+ if err != nil {
794
+ t .Logf ("CRD %s not ready yet: %v" , kind , err )
795
+ return false , nil
796
+ }
797
+
798
+ if gotCRD .Spec .Conversion == nil {
799
+ t .Logf ("CRD %s conversion not configured yet" , kind )
800
+ return false , nil
801
+ }
802
+ if gotCRD .Spec .Conversion .Strategy != apixv1 .WebhookConverter {
803
+ t .Logf ("CRD %s conversion strategy not ready: got %s, want %s" , kind , gotCRD .Spec .Conversion .Strategy , apixv1 .WebhookConverter )
804
+ return false , nil
805
+ }
806
+ return true , nil
807
+ })
808
+ if err != nil {
809
+ t .Fatalf ("Timed out waiting for CRD %s webhook conversion to be ready: %v" , kind , err )
810
+ }
811
+ t .Logf ("CRD %s webhook conversion is ready" , kind )
812
+ }
813
+
814
+ // Wait for webhooks to be ready after controller startup with cache injection overhead
815
+ t .Logf ("Waiting for CRD webhook conversion to be ready..." )
816
+ for _ , kind := range []schema.GroupKind {v1 .Kind ("taskruns" )} {
817
+ err := wait .PollUntilContextTimeout (ctx , 500 * time .Millisecond , 10 * time .Second , true , func (ctx context.Context ) (bool , error ) {
818
+ gotCRD , err := c .ApixClient .ApiextensionsV1 ().CustomResourceDefinitions ().Get (ctx , kind .String (), metav1.GetOptions {})
819
+ if err != nil {
820
+ t .Logf ("CRD %s not ready yet: %v" , kind , err )
821
+ return false , nil
822
+ }
823
+
824
+ if gotCRD .Spec .Conversion == nil {
825
+ t .Logf ("CRD %s conversion not configured yet" , kind )
826
+ return false , nil
827
+ }
828
+ if gotCRD .Spec .Conversion .Strategy != apixv1 .WebhookConverter {
829
+ t .Logf ("CRD %s conversion strategy not ready: got %s, want %s" , kind , gotCRD .Spec .Conversion .Strategy , apixv1 .WebhookConverter )
830
+ return false , nil
831
+ }
832
+ return true , nil
833
+ })
834
+ if err != nil {
835
+ t .Fatalf ("Timed out waiting for CRD %s webhook conversion to be ready: %v" , kind , err )
836
+ }
837
+ t .Logf ("CRD %s webhook conversion is ready" , kind )
838
+ }
839
+
788
840
v1beta1TaskRunName := helpers .ObjectNameForTest (t )
789
841
v1beta1TaskRun := parse .MustParseV1beta1TaskRun (t , fmt .Sprintf (v1beta1TaskRunYaml , v1beta1TaskRunName , namespace ))
790
842
v1TaskRunExpected := parse .MustParseV1TaskRun (t , fmt .Sprintf (v1TaskRunExpectedYaml , v1beta1TaskRunName , namespace , v1beta1TaskRunName ))
@@ -932,6 +984,58 @@ func TestPipelineRunCRDConversion(t *testing.T) {
932
984
knativetest .CleanupOnInterrupt (func () { tearDown (ctx , t , c , namespace ) }, t .Logf )
933
985
defer tearDown (ctx , t , c , namespace )
934
986
987
+ // Wait for webhooks to be ready after controller startup with cache injection overhead
988
+ t .Logf ("Waiting for CRD webhook conversion to be ready..." )
989
+ for _ , kind := range []schema.GroupKind {v1 .Kind ("pipelineruns" )} {
990
+ err := wait .PollUntilContextTimeout (ctx , 500 * time .Millisecond , 10 * time .Second , true , func (ctx context.Context ) (bool , error ) {
991
+ gotCRD , err := c .ApixClient .ApiextensionsV1 ().CustomResourceDefinitions ().Get (ctx , kind .String (), metav1.GetOptions {})
992
+ if err != nil {
993
+ t .Logf ("CRD %s not ready yet: %v" , kind , err )
994
+ return false , nil
995
+ }
996
+
997
+ if gotCRD .Spec .Conversion == nil {
998
+ t .Logf ("CRD %s conversion not configured yet" , kind )
999
+ return false , nil
1000
+ }
1001
+ if gotCRD .Spec .Conversion .Strategy != apixv1 .WebhookConverter {
1002
+ t .Logf ("CRD %s conversion strategy not ready: got %s, want %s" , kind , gotCRD .Spec .Conversion .Strategy , apixv1 .WebhookConverter )
1003
+ return false , nil
1004
+ }
1005
+ return true , nil
1006
+ })
1007
+ if err != nil {
1008
+ t .Fatalf ("Timed out waiting for CRD %s webhook conversion to be ready: %v" , kind , err )
1009
+ }
1010
+ t .Logf ("CRD %s webhook conversion is ready" , kind )
1011
+ }
1012
+
1013
+ // Wait for webhooks to be ready after controller startup with cache injection overhead
1014
+ t .Logf ("Waiting for CRD webhook conversion to be ready..." )
1015
+ for _ , kind := range []schema.GroupKind {v1 .Kind ("pipelineruns" )} {
1016
+ err := wait .PollUntilContextTimeout (ctx , 500 * time .Millisecond , 10 * time .Second , true , func (ctx context.Context ) (bool , error ) {
1017
+ gotCRD , err := c .ApixClient .ApiextensionsV1 ().CustomResourceDefinitions ().Get (ctx , kind .String (), metav1.GetOptions {})
1018
+ if err != nil {
1019
+ t .Logf ("CRD %s not ready yet: %v" , kind , err )
1020
+ return false , nil
1021
+ }
1022
+
1023
+ if gotCRD .Spec .Conversion == nil {
1024
+ t .Logf ("CRD %s conversion not configured yet" , kind )
1025
+ return false , nil
1026
+ }
1027
+ if gotCRD .Spec .Conversion .Strategy != apixv1 .WebhookConverter {
1028
+ t .Logf ("CRD %s conversion strategy not ready: got %s, want %s" , kind , gotCRD .Spec .Conversion .Strategy , apixv1 .WebhookConverter )
1029
+ return false , nil
1030
+ }
1031
+ return true , nil
1032
+ })
1033
+ if err != nil {
1034
+ t .Fatalf ("Timed out waiting for CRD %s webhook conversion to be ready: %v" , kind , err )
1035
+ }
1036
+ t .Logf ("CRD %s webhook conversion is ready" , kind )
1037
+ }
1038
+
935
1039
v1beta1ToV1PipelineRunName := helpers .ObjectNameForTest (t )
936
1040
v1beta1PipelineRun := parse .MustParseV1beta1PipelineRun (t , fmt .Sprintf (v1beta1PipelineRunYaml , v1beta1ToV1PipelineRunName , namespace ))
937
1041
v1PipelineRunExpected := parse .MustParseV1PipelineRun (t , fmt .Sprintf (v1PipelineRunExpectedYaml , v1beta1ToV1PipelineRunName , namespace , v1beta1ToV1PipelineRunName ))
0 commit comments