@@ -35,6 +35,7 @@ import (
3535 ackcondition "github.com/aws-controllers-k8s/runtime/pkg/condition"
3636 ackcfg "github.com/aws-controllers-k8s/runtime/pkg/config"
3737 ackerr "github.com/aws-controllers-k8s/runtime/pkg/errors"
38+ "github.com/aws-controllers-k8s/runtime/pkg/featuregate"
3839 ackmetrics "github.com/aws-controllers-k8s/runtime/pkg/metrics"
3940 "github.com/aws-controllers-k8s/runtime/pkg/requeue"
4041 ackrt "github.com/aws-controllers-k8s/runtime/pkg/runtime"
@@ -92,7 +93,12 @@ func reconcilerMocks(
9293 Level : zapcore .InfoLevel ,
9394 }
9495 fakeLogger := ctrlrtzap .New (ctrlrtzap .UseFlagOptions (& zapOptions ))
95- cfg := ackcfg.Config {}
96+ cfg := ackcfg.Config {
97+ FeatureGates : featuregate.FeatureGates {
98+ featuregate .ReadOnlyResources : {Enabled : true },
99+ featuregate .ResourceAdoption : {Enabled : true },
100+ },
101+ }
96102 metrics := ackmetrics .NewMetrics ("bookstore" )
97103
98104 sc := & ackmocks.ServiceController {}
@@ -243,7 +249,7 @@ func TestReconcilerReadOnlyResource(t *testing.T) {
243249 rm .On ("IsSynced" , ctx , latest ).Return (true , nil )
244250 rmf , rd := managedResourceManagerFactoryMocks (desired , latest )
245251
246- rm .On ("LateInitialize" , ctx , latest ).Return (latest , nil )
252+ // rm.On("LateInitialize", ctx, latest).Return(latest, nil)
247253 rd .On ("IsManaged" , desired ).Return (true )
248254 rd .On ("Delta" , desired , latest ).Return (ackcompare .NewDelta ())
249255 rd .On ("Delta" , latest , latest ).Return (ackcompare .NewDelta ())
@@ -266,28 +272,34 @@ func TestReconcilerAdoptResource(t *testing.T) {
266272 require := require .New (t )
267273
268274 ctx := context .TODO ()
275+ adoptionFieldsString := "{\" arn\" : \" my-adopt-book-arn\" }"
276+ adoptionFields := map [string ]string {
277+ "arn" : "my-adopt-book-arn" ,
278+ }
269279
270280 desired , _ , metaObj := resourceMocks ()
271281 desired .On ("ReplaceConditions" , []* ackv1alpha1.Condition {}).Return ()
272282 metaObj .SetAnnotations (map [string ]string {
273283 ackv1alpha1 .AnnotationAdoptionPolicy : "adopt" ,
274- ackv1alpha1 .AnnotationAdoptionFields : "{ \" arn \" : \" my-adopt-book-arn \" }" ,
284+ ackv1alpha1 .AnnotationAdoptionFields : adoptionFieldsString ,
275285 })
276286
277287 latest , latestRTObj , _ := resourceMocks ()
278288 latest .On ("Conditions" ).Return ([]* ackv1alpha1.Condition {})
279289 latest .On ("MetaObject" ).Return (metav1.ObjectMeta {
280290 Annotations : map [string ]string {
281291 ackv1alpha1 .AnnotationAdoptionPolicy : "adopt" ,
282- ackv1alpha1 .AnnotationAdoptionFields : "{ \" arn \" : \" my-adopt-book-arn \" }" ,
292+ ackv1alpha1 .AnnotationAdoptionFields : adoptionFieldsString ,
283293 },
284294 })
295+
285296 latest .On ("Conditions" ).Return ([]* ackv1alpha1.Condition {})
286297 latest .On (
287298 "ReplaceConditions" ,
288299 mock .AnythingOfType ("[]*v1alpha1.Condition" ),
289300 ).Return ()
290301
302+ desired .On ("PopulateResourceFromAnnotation" , adoptionFields ).Return (nil )
291303 rm := & ackmocks.AWSResourceManager {}
292304 rm .On ("ResolveReferences" , ctx , nil , desired ).Return (
293305 desired , false , nil ,
@@ -304,8 +316,10 @@ func TestReconcilerAdoptResource(t *testing.T) {
304316 rd .On ("IsManaged" , desired ).Return (false )
305317 rd .On ("Delta" , desired , latest ).Return (ackcompare .NewDelta ())
306318 rd .On ("Delta" , latest , latest ).Return (ackcompare .NewDelta ())
307-
319+
308320 r , kc , scmd := reconcilerMocks (rmf )
321+ rm .On ("FilterSystemTags" , latest ).Return ()
322+ rd .On ("MarkAdopted" , latest ).Return ()
309323 rm .On ("EnsureTags" , ctx , desired , scmd ).Return (nil )
310324 statusWriter := & ctrlrtclientmock.SubResourceWriter {}
311325 kc .On ("Patch" , ctx , latestRTObj , mock .AnythingOfType ("*client.mergeFromPatch" )).Return (nil )
@@ -325,12 +339,17 @@ func TestReconcilerAdoptOrCreateResource_Create(t *testing.T) {
325339
326340 ctx := context .TODO ()
327341
342+ adoptionFieldsString := "{\" arn\" : \" my-adopt-book-arn\" }"
343+ adoptionFields := map [string ]string {
344+ "arn" : "my-adopt-book-arn" ,
345+ }
328346 desired , _ , metaObj := resourceMocks ()
329347 desired .On ("ReplaceConditions" , []* ackv1alpha1.Condition {}).Return ()
330348 metaObj .SetAnnotations (map [string ]string {
331349 ackv1alpha1 .AnnotationAdoptionPolicy : "adopt-or-create" ,
332- ackv1alpha1 .AnnotationAdoptionFields : "{ \" arn \" : \" my-adopt-book-arn \" }" ,
350+ ackv1alpha1 .AnnotationAdoptionFields : adoptionFieldsString ,
333351 })
352+ desired .On ("PopulateResourceFromAnnotation" , adoptionFields ).Return (nil )
334353
335354 ids := & ackmocks.AWSResourceIdentifiers {}
336355
@@ -339,8 +358,8 @@ func TestReconcilerAdoptOrCreateResource_Create(t *testing.T) {
339358 latest .On ("Conditions" ).Return ([]* ackv1alpha1.Condition {})
340359 latest .On ("MetaObject" ).Return (metav1.ObjectMeta {
341360 Annotations : map [string ]string {
342- ackv1alpha1 .AnnotationAdoptionPolicy : "adopt" ,
343- ackv1alpha1 .AnnotationAdoptionFields : "{ \" arn \" : \" my-adopt-book-arn \" }" ,
361+ ackv1alpha1 .AnnotationAdoptionPolicy : "adopt-or-create " ,
362+ ackv1alpha1 .AnnotationAdoptionFields : adoptionFieldsString ,
344363 },
345364 })
346365 latest .On ("Conditions" ).Return ([]* ackv1alpha1.Condition {})
@@ -366,6 +385,8 @@ func TestReconcilerAdoptOrCreateResource_Create(t *testing.T) {
366385 ).Once ()
367386 rm .On ("IsSynced" , ctx , latest ).Return (true , nil )
368387 rmf , rd := managedResourceManagerFactoryMocks (desired , latest )
388+ rm .On ("FilterSystemTags" , latest ).Return ()
389+ rd .On ("MarkAdopted" , latest ).Return ()
369390
370391 rm .On ("LateInitialize" , ctx , latest ).Return (latest , nil )
371392 rd .On ("IsManaged" , desired ).Return (false ).Once ()
0 commit comments