Avoid double quota accounting if last CnsRegisterVolume CR instance status update for success fails #3773
+323
−108
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.
What this PR does / why we need it:
Currently in static volume registeration via CnsRegisterVolume CR, the quota for the static PVC is managed by manually increasing "Reserved" field in associated SPU CR of that namespace & PVC type and then decreasing "Reserved" + increasing "Used" field with capacity to account quota for that PVC. After quota update is done, we mark reconcile as success in CnsRegisterVolume CR by updating status field.
However if the status update on CnsRegisterVolume CR fails, we retry the reconcile and quota gets accounted again in next reconcile cycle for same PVC object. To avoid this, we mark quota update error on CnsRegisterVolume CR and avoid quota update if already done in earlier run.
Which issue this PR fixes (optional, in
fixes #<issue number>(, fixes #<issue_number>, ...)format, will close that issue when PR gets merged): fixes #Testing done:
Unit tests added to cover the scenario with help from cursor, will provide fix to reported, who has been seeing the issue frequently
Unit test log :
Special notes for your reviewer:
Release note: