New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ceph: add support for update() from lib-bucket-provisioner #8514
Conversation
cb4a222
to
fbc71ff
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please rebase on the latest master to see if the other CI fixes will help, or if there is still a CI issue to investigate. The object tests had been intermittently failing until yesterday, they should be more reliable in master now.
It seems the upgrade and smoke suites are failing consistently during test cleanup. The last thing in the test is:
The logs weren't collected unfortunately. It may be easiest to force push again and then connect to the tmate session to troubleshoot. The operator logs likely show some issue with the deletion. If it's your first time with the tmate session please do ping me or @subhamkrai. |
@travisn : apparently with the latest libbucket provisioner(which have update API) delete is getting stuck every time(even without operation performing any update). I cannot see the delete request is reaching the Rook/bucketprovisoner code path. When I restart the rook-operator deletion is getting succeed . Not sure whether I am missing anything key for update to work.
Any clues ?? |
You can ignore the warning from |
From the code, the delete operation is ignored because of the finalizer. I think this means the delete operations are handled via upates. With the new A question I have is what other things might be getting skipped because of this? I think the Specifically, I think this (from the recent commit in lib-bucket-provisioner) is not correct: if reflect.DeepEqual(new.Spec, old.Spec) {
return false
} If the new spec is the same as the old spec, then something else has changed, like metadata, and the update should still be supported. We really only want to stop the update from happening if the spec is modified AND unsupported parts of the spec are modified. When you were developing the lib-bucket-provisioner changes, were you testing them in Rook? You really should be doing that if not so we don't get broken commits to lib-bucket-provisioner. |
The delete operation is handled via update calls, with addition of new Update() API, the objects need to deleted are not added to the queue due to check in updateSupported(). So if the deletion timestamp is set, then this check is ignored in NewController(). FInd more details [here](rook/rook#8514 (comment)) Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
@BlaineEXE : Thanks for debugging this issue, I added check to avoid update call if deletion stamp is set in NewController() via kube-object-storage/lib-bucket-provisioner#216, it works fine. Let me know your thoughts on the same |
Please update this PR to reference your |
Sure |
The delete operation is handled via update calls, with addition of new Update() API, the objects need to deleted are not added to the queue due to check in updateSupported(). So if the deletion timestamp is set, then this check is ignored in NewController(). FInd more details [here](rook/rook#8514 (comment)) Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
@thotz thanks. Merged the lib-bucket-provisioner fix. You should be good to go here. |
Done |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just nit comments. This looks good overall. Thanks @thotz
Recently lib-bucket-provisioner add support for update() API. Include that on the obc implementation since it can be used to update quota for OBC. Fixes: rook#7146 Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
@BlaineEXE : Done |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit feel free to address or not
@@ -665,3 +665,69 @@ func (p *Provisioner) setAdminOpsAPIClient() error { | |||
|
|||
return nil | |||
} | |||
func (p Provisioner) updateAdditionalSettings(ob *bktv1alpha1.ObjectBucket) error { | |||
var maxObjectsInt64 int64 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
var maxObjectsInt64 int64 | |
var maxObjectsInt64, maxSizeInt64 int64 |
ceph: add support for update() from lib-bucket-provisioner (backport #8514)
Description of your changes:
Recently lib-bucket-provisioner add support for update() API.
Include that on the obc implementation since it can be used to
update quota for OBC.
Which issue is resolved by this Pull Request:
Resolves #7146
Signed-off-by: Jiffin Tony Thottan thottanjiffin@gmail.com
Checklist:
make codegen
) has been run to update object specifications, if necessary.