Calculate Clusters resourceCount from BundleDeployments instead of GitRepos #3102
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Refers to rancher/rancher#46916
Description
status.resourceCounts
forcluster.fleet.cattle.io
is calculated from GitRepos statuses (which include an equivalentresourceCounts
field. This causes the count to be incorrect, since a GitRepo could deploy resources to different Clusters.How to reproduce the issue
status.resourceCounts
is wrong, since it also includes resources deployed to other namespaces.Description of the fix
This can be fixed by populating
Clusters
'status.resourceCounts
from their respectiveBundleDeployments
, similarly to how it's calculated forGitRepos
. In order to do this in a clean way, I had to move that code out of thegitops
reconciler to its own package.In addition, I've added some changes to make the existing code a bit more efficient:
bundleDeployment.Items
while it's being modified, removing the need to keep a separate map of deleted objects.for
loop.repoKey
type, which was the same astypes.NamespacedKey
.