@@ -1048,6 +1048,10 @@ func TestSyncNonStandardRelatedResources(t *testing.T) {
10481048 name : "turn a related ConfigMap into a Secret" ,
10491049 workspace : "sync-related-configmap-to-secret" ,
10501050 mainResource : crds.Crontab {
1051+ TypeMeta : metav1.TypeMeta {
1052+ APIVersion : "kcp.example.com/v1" ,
1053+ Kind : "CronTab" ,
1054+ },
10511055 ObjectMeta : metav1.ObjectMeta {
10521056 Name : "my-crontab" ,
10531057 Namespace : "default" ,
@@ -1107,6 +1111,10 @@ func TestSyncNonStandardRelatedResources(t *testing.T) {
11071111 name : "use a resource from the same APIExport as a related resource" ,
11081112 workspace : "sync-related-same-apiexport" ,
11091113 mainResource : crds.Crontab {
1114+ TypeMeta : metav1.TypeMeta {
1115+ APIVersion : "kcp.example.com/v1" ,
1116+ Kind : "CronTab" ,
1117+ },
11101118 ObjectMeta : metav1.ObjectMeta {
11111119 Name : "my-crontab" ,
11121120 Namespace : "default" ,
@@ -1117,7 +1125,7 @@ func TestSyncNonStandardRelatedResources(t *testing.T) {
11171125 },
11181126 },
11191127 relatedConfig : syncagentv1alpha1.RelatedResourceSpec {
1120- Identifier : "credentials " ,
1128+ Identifier : "the-backup " ,
11211129 Origin : syncagentv1alpha1 .RelatedResourceOriginService ,
11221130 Resource : "backups" ,
11231131 Group : "eksempel.no" ,
@@ -1135,13 +1143,21 @@ func TestSyncNonStandardRelatedResources(t *testing.T) {
11351143 },
11361144 },
11371145 sourceRelatedObject : & crds.Backup {
1146+ TypeMeta : metav1.TypeMeta {
1147+ APIVersion : "eksempel.no/v1" ,
1148+ Kind : "Backup" ,
1149+ },
11381150 ObjectMeta : metav1.ObjectMeta {
11391151 Name : "my-backup" ,
1140- Namespace : "default" ,
1152+ Namespace : "synced- default" ,
11411153 },
11421154 Spec : crds.BackupSpec {},
11431155 },
11441156 expectedSyncedRelatedObject : & crds.Backup {
1157+ TypeMeta : metav1.TypeMeta {
1158+ APIVersion : "kcp.example.com/v1" ,
1159+ Kind : "Backup" ,
1160+ },
11451161 ObjectMeta : metav1.ObjectMeta {
11461162 Name : "my-backup" ,
11471163 Namespace : "default" ,
@@ -1669,14 +1685,11 @@ func TestSyncNonStandardRelatedResources(t *testing.T) {
16691685 t .Log ("Creating CronTab in kcp…" )
16701686
16711687 crontab := utils .ToUnstructured (t , & testcase .mainResource )
1672- crontab .SetAPIVersion ("kcp.example.com/v1" )
1673- crontab .SetKind ("CronTab" )
1674-
16751688 if err := teamClient .Create (ctx , crontab ); err != nil {
16761689 t .Fatalf ("Failed to create CronTab in kcp: %v" , err )
16771690 }
16781691
1679- // fake operator: create a credential Secret
1692+ // fake operator: create a related object as a result of processing the main object
16801693 t .Logf ("Creating original related object on the %s side…" , testcase .relatedConfig .Origin )
16811694
16821695 originClient := envtestClient
@@ -1688,20 +1701,28 @@ func TestSyncNonStandardRelatedResources(t *testing.T) {
16881701
16891702 ensureNamespace (t , ctx , originClient , testcase .sourceRelatedObject .GetNamespace ())
16901703
1691- if err := originClient .Create (ctx , testcase .sourceRelatedObject ); err != nil {
1704+ relatedObject := utils .ToUnstructured (t , & testcase .sourceRelatedObject )
1705+ if err := originClient .Create (ctx , relatedObject ); err != nil {
16921706 t .Fatalf ("Failed to create related object: %v" , err )
16931707 }
16941708
16951709 // wait for the agent to do its magic
16961710 t .Log ("Wait for related object to be synced…" )
16971711 projectedGVR := projection .RelatedResourceProjectedGVR (& testcase .relatedConfig )
1712+ projectedGVK , err := destClient .RESTMapper ().KindFor (projectedGVR )
1713+ if err != nil {
1714+ t .Fatalf ("Failed to resolve projected GVR %v: %v" , projectedGVR , err )
1715+ }
1716+
16981717 copiedRelatedObject := & unstructured.Unstructured {}
1699- copiedRelatedObject .SetAPIVersion (projectedGVR .GroupVersion ().String ())
1700- copiedRelatedObject .SetKind (projectedGVR . Resource )
1718+ copiedRelatedObject .SetAPIVersion (projectedGVK .GroupVersion ().String ())
1719+ copiedRelatedObject .SetKind (projectedGVK . Kind )
17011720
1702- err : = wait .PollUntilContextTimeout (ctx , 500 * time .Millisecond , 30 * time .Second , false , func (ctx context.Context ) (done bool , err error ) {
1721+ err = wait .PollUntilContextTimeout (ctx , 500 * time .Millisecond , 30 * time .Second , false , func (ctx context.Context ) (done bool , err error ) {
17031722 copyKey := ctrlruntimeclient .ObjectKeyFromObject (testcase .expectedSyncedRelatedObject )
1704- return destClient .Get (ctx , copyKey , copiedRelatedObject ) == nil , nil
1723+ err = destClient .Get (ctx , copyKey , copiedRelatedObject )
1724+ fmt .Printf ("poll err: %v\n " , err )
1725+ return err == nil , nil
17051726 })
17061727 if err != nil {
17071728 t .Fatalf ("Failed to wait for related object to be synced: %v" , err )
0 commit comments