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
{{ message }}
Repository navigation
Feature request: Bucket lifecycle management via CRD #249
The PR also updates the English and Chinese operator user guides, the Helm deployment README, examples/provisioning-tenant.yaml, and the changelog.
After installing the updated Tenant CRD and an Operator build from the updated main branch, lifecycle rules can be declared directly under spec.buckets[]:
Every rule requires a unique id, Enabled or Disabled status, and an explicit filter.prefix; prefix: "" selects all objects.
A rule must define expiration.days, abortIncompleteMultipartUpload.daysAfterInitiation, or both. Day values must be positive.
To explicitly remove an Operator-owned lifecycle configuration, use:
lifecycle:
state: Absent
Omitting lifecycle performs no Lifecycle API calls and leaves the live bucket configuration untouched.
The Operator can adopt an identical live configuration. It reports a conflict instead of overwriting or deleting a different live configuration unless the stored ownership hash matches.
Reconciliation state and ownership hashes are exposed under status.provisioning.buckets.
The implementation and documentation are now available on the main branch and will be included in a subsequent Operator release.
Activity
GatewayJ commentedon Sep 12, 2026
Implemented and merged in #250.
The PR also updates the English and Chinese operator user guides, the Helm deployment README,
examples/provisioning-tenant.yaml, and the changelog.After installing the updated Tenant CRD and an Operator build from the updated
mainbranch, lifecycle rules can be declared directly underspec.buckets[]:Current behavior:
state: Presentrequires at least one rule.Every rule requires a unique
id,EnabledorDisabledstatus, and an explicitfilter.prefix;prefix: ""selects all objects.A rule must define
expiration.days,abortIncompleteMultipartUpload.daysAfterInitiation, or both. Day values must be positive.To explicitly remove an Operator-owned lifecycle configuration, use:
Omitting
lifecycleperforms no Lifecycle API calls and leaves the live bucket configuration untouched.The Operator can adopt an identical live configuration. It reports a conflict instead of overwriting or deleting a different live configuration unless the stored ownership hash matches.
Reconciliation state and ownership hashes are exposed under
status.provisioning.buckets.The implementation and documentation are now available on the
mainbranch and will be included in a subsequent Operator release.