You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
🐛 OCPBUGS-37982: Reduce Frequency of Update Requests for Copied CSVs (#3597)
* (bugfix): reduce frequency of update requests for CSVs
by adding annotations to copied CSVs that are populated with
hashes of the non-status fields and the status fields.
This seems to be how this was intended to work, but was not actually
working this way because the annotations never actually existed on the
copied CSV. This resulted in a hot loop of update requests being made
on all copied CSVs.
Signed-off-by: everettraven <[email protected]>
* update unit tests
Signed-off-by: everettraven <[email protected]>
* updates to test so far
Signed-off-by: everettraven <[email protected]>
* Small changes
Signed-off-by: Brett Tofel <[email protected]>
* Add metadata drift guard to copyToNamespace
Since we switched to a PartialObjectMetadata cache to save memory, we lost visibility into copied CSV spec and status fields, and the reintroduced nonStatusCopyHash/statusCopyHash annotations only partially solved the problem. Manual edits to a copied CSV could still go undetected, causing drift without reconciliation.
This commit adds two new annotations: olm.operatorframework.io/observedGeneration and olm.operatorframework.io/observedResourceVersion. It implements a mechanism to guard agains metadata drift at the top of the existing-copy path in copyToNamespace. If a stored observedGeneration or observedResourceVersion no longer matches the live object, the operator now:
• Updates the spec and hash annotations
• Updates the status subresource
• Records the new generation and resourceVersion in the guard annotations
Because the guard only fires when its annotations are already present, all existing unit tests pass unchanged. We preserve the memory benefits of the metadata‐only informer, avoid extra GETs, and eliminate unnecessary API churn.
Future work may explore a WithTransform informer to regain full object visibility with minimal memory impact.
Signed-off-by: Brett Tofel <[email protected]>
* Tests for metadata guard
Verifies that exactly three updates (spec, status, guard) are issued when the observedGeneration doesn’t match.
Signed-off-by: Brett Tofel <[email protected]>
* Persist observed annotations on all status updates
Signed-off-by: Brett Tofel <[email protected]>
* GCI the file
Signed-off-by: Brett Tofel <[email protected]>
* Use TransformFunc
Unit tests not updated
Signed-off-by: Todd Short <[email protected]>
* Update operatorgroup tests to compile
Signed-off-by: Todd Short <[email protected]>
* Restore operatorgroup_test from master
Remove metadatalister
Signed-off-by: Todd Short <[email protected]>
* Remove more PartialObjectMetadata
Signed-off-by: Todd Short <[email protected]>
* Remove hashes from operator_test
Signed-off-by: Todd Short <[email protected]>
* Fix error messages for static-analysis
Signed-off-by: Todd Short <[email protected]>
* Update test annotations and test client
Signed-off-by: Todd Short <[email protected]>
* Rename pruning to listerwatcher
Signed-off-by: Todd Short <[email protected]>
* Set resync to 6h
Signed-off-by: Todd Short <[email protected]>
* Add CSV copy revert syncer
Signed-off-by: Todd Short <[email protected]>
* Log tweaks
Signed-off-by: Todd Short <[email protected]>
* Consolidate revert and gc syncers
Signed-off-by: Todd Short <[email protected]>
* Add logging and reduce the amount of metadata in the TransformFunc
Signed-off-by: Todd Short <[email protected]>
* Handle the copy CSV revert via a requeue of the primary CSV
Signed-off-by: Todd Short <[email protected]>
* Revert "Set resync to 6h"
This reverts commit 855f940.
Signed-off-by: Todd Short <[email protected]>
* Add delete handler for copied csv
Signed-off-by: Todd Short <[email protected]>
* Revert whitespace change
Signed-off-by: Todd Short <[email protected]>
* Rename function, fix comment
Signed-off-by: Todd Short <[email protected]>
---------
Signed-off-by: everettraven <[email protected]>
Signed-off-by: Brett Tofel <[email protected]>
Signed-off-by: Todd Short <[email protected]>
Co-authored-by: everettraven <[email protected]>
Co-authored-by: Brett Tofel <[email protected]>
0 commit comments