Dear Ceph developers,
Recently in the context of reviewing PR:
https://github.com/ceph/ceph/pull/28787 we got into a conversation about
what would be a good practice to introduce an AWS-S3 unsupported feature in
Ceph and how upstream libraries/SDKs would react to the new feature
addition.
More specifically, I'm intending to introduce a feature through which a
bucket can be deleted by lifecycle (LC) configuration upon expiry, subject
to a few conditions such as the bucket being empty + it should be past the
expiry date (or aged beyond expiry_days since ctime).
The RFC here is around how the end-user should specify this LC-Rule for
bucket expiry. I've chosen to convert the 'State' field in the LC-Rule into
a tri-state from a boolean i.e.
'Disabled'/'Enabled'/'Purge_Enabled'
(instead of having only the first two states) and it has the following
advantages:
a) It is non-intrusive i.e. existing users of LC who have no interest in
bucket purge need not make any changes to their code
b) It can be easily enabled by interested users without requiring a patch
on their SDKs (which allow a pass-through of the Status string).
Does the community feel that this approach is good or are there any better
suggestions?
Thanks,
K.Prasad