@@ -781,42 +781,35 @@ func setBindingStatus(works map[string]*fleetv1beta1.Work, resourceBinding *flee
781781 }
782782
783783 resourceBinding .Status .DriftedPlacements = nil
784- // collect and set the drifted resource placements to the binding
784+ resourceBinding . Status . DiffedPlacements = nil
785785 driftedResourcePlacements := make ([]fleetv1beta1.DriftedResourcePlacement , 0 , maxDriftedResourcePlacementLimit ) // preallocate the memory
786+ diffedResourcePlacements := make ([]fleetv1beta1.DiffedResourcePlacement , 0 , maxDiffedResourcePlacementLimit ) // preallocate the memory
786787 for _ , w := range works {
787788 if w .DeletionTimestamp != nil {
788789 klog .V (2 ).InfoS ("Ignoring the deleting work" , "clusterResourceBinding" , bindingRef , "work" , klog .KObj (w ))
789790 continue // ignore the deleting work
790791 }
791792 driftedManifests := extractDriftedResourcePlacementsFromWork (w )
792793 driftedResourcePlacements = append (driftedResourcePlacements , driftedManifests ... )
794+
795+ diffedManifests := extractDiffedResourcePlacementsFromWork (w )
796+ diffedResourcePlacements = append (diffedResourcePlacements , diffedManifests ... )
793797 }
794798 // cut the list to keep only the max limit
795799 if len (driftedResourcePlacements ) > maxDriftedResourcePlacementLimit {
796800 driftedResourcePlacements = driftedResourcePlacements [0 :maxDriftedResourcePlacementLimit ]
797801 }
798- resourceBinding .Status .DriftedPlacements = driftedResourcePlacements
799802 if len (driftedResourcePlacements ) > 0 {
803+ resourceBinding .Status .DriftedPlacements = driftedResourcePlacements
800804 klog .V (2 ).InfoS ("Populated drifted manifests" , "clusterResourceBinding" , bindingRef , "numberOfDriftedPlacements" , len (driftedResourcePlacements ))
801805 }
802806
803- resourceBinding .Status .DiffedPlacements = nil
804- // collect and set the diffed resource placements to the binding
805- diffedResourcePlacements := make ([]fleetv1beta1.DiffedResourcePlacement , 0 , maxDiffedResourcePlacementLimit ) // preallocate the memory
806- for _ , w := range works {
807- if w .DeletionTimestamp != nil {
808- klog .V (2 ).InfoS ("Ignoring the deleting work" , "clusterResourceBinding" , bindingRef , "work" , klog .KObj (w ))
809- continue // ignore the deleting work
810- }
811- diffedManifests := extractDiffedResourcePlacementsFromWork (w )
812- diffedResourcePlacements = append (diffedResourcePlacements , diffedManifests ... )
813- }
814807 // cut the list to keep only the max limit
815808 if len (diffedResourcePlacements ) > maxDiffedResourcePlacementLimit {
816809 diffedResourcePlacements = diffedResourcePlacements [0 :maxDiffedResourcePlacementLimit ]
817810 }
818- resourceBinding .Status .DiffedPlacements = diffedResourcePlacements
819811 if len (diffedResourcePlacements ) > 0 {
812+ resourceBinding .Status .DiffedPlacements = diffedResourcePlacements
820813 klog .V (2 ).InfoS ("Populated diffed manifests" , "clusterResourceBinding" , bindingRef , "numberOfDiffedPlacements" , len (diffedResourcePlacements ))
821814 }
822815}
@@ -1011,6 +1004,9 @@ func extractDriftedResourcePlacementsFromWork(work *fleetv1beta1.Work) []fleetv1
10111004 }
10121005 res := make ([]fleetv1beta1.DriftedResourcePlacement , 0 , len (work .Status .ManifestConditions ))
10131006 for _ , manifestCondition := range work .Status .ManifestConditions {
1007+ if manifestCondition .DriftDetails == nil {
1008+ continue
1009+ }
10141010 driftedManifest := fleetv1beta1.DriftedResourcePlacement {
10151011 ResourceIdentifier : fleetv1beta1.ResourceIdentifier {
10161012 Group : manifestCondition .Identifier .Group ,
@@ -1026,6 +1022,11 @@ func extractDriftedResourcePlacementsFromWork(work *fleetv1beta1.Work) []fleetv1
10261022 }
10271023
10281024 if isEnveloped {
1025+ driftedManifest .ResourceIdentifier .Envelope = & fleetv1beta1.EnvelopeIdentifier {
1026+ Name : envelopObjName ,
1027+ Namespace : envelopObjNamespace ,
1028+ Type : fleetv1beta1 .EnvelopeType (envelopeType ),
1029+ }
10291030 klog .V (2 ).InfoS ("Found a drifted enveloped manifest" ,
10301031 "manifestName" , manifestCondition .Identifier .Name ,
10311032 "group" , manifestCondition .Identifier .Group ,
@@ -1037,7 +1038,6 @@ func extractDriftedResourcePlacementsFromWork(work *fleetv1beta1.Work) []fleetv1
10371038 "version" , manifestCondition .Identifier .Version , "kind" , manifestCondition .Identifier .Kind )
10381039 }
10391040 res = append (res , driftedManifest )
1040- continue //jump to the next manifest
10411041 }
10421042 return res
10431043}
@@ -1054,6 +1054,9 @@ func extractDiffedResourcePlacementsFromWork(work *fleetv1beta1.Work) []fleetv1b
10541054 }
10551055 res := make ([]fleetv1beta1.DiffedResourcePlacement , 0 , len (work .Status .ManifestConditions ))
10561056 for _ , manifestCondition := range work .Status .ManifestConditions {
1057+ if manifestCondition .DiffDetails == nil {
1058+ continue
1059+ }
10571060 diffedManifest := fleetv1beta1.DiffedResourcePlacement {
10581061 ResourceIdentifier : fleetv1beta1.ResourceIdentifier {
10591062 Group : manifestCondition .Identifier .Group ,
@@ -1069,6 +1072,11 @@ func extractDiffedResourcePlacementsFromWork(work *fleetv1beta1.Work) []fleetv1b
10691072 }
10701073
10711074 if isEnveloped {
1075+ diffedManifest .ResourceIdentifier .Envelope = & fleetv1beta1.EnvelopeIdentifier {
1076+ Name : envelopObjName ,
1077+ Namespace : envelopObjNamespace ,
1078+ Type : fleetv1beta1 .EnvelopeType (envelopeType ),
1079+ }
10721080 klog .V (2 ).InfoS ("Found a diffed enveloped manifest" ,
10731081 "manifestName" , manifestCondition .Identifier .Name ,
10741082 "group" , manifestCondition .Identifier .Group ,
@@ -1080,7 +1088,6 @@ func extractDiffedResourcePlacementsFromWork(work *fleetv1beta1.Work) []fleetv1b
10801088 "version" , manifestCondition .Identifier .Version , "kind" , manifestCondition .Identifier .Kind )
10811089 }
10821090 res = append (res , diffedManifest )
1083- continue //jump to the next manifest
10841091 }
10851092 return res
10861093}
0 commit comments