Skip to content

Commit f95111e

Browse files
authored
Merge pull request #302 from syseleven/mori/os-22480/Ceph-does-not-delete-bucket-lifecycle
Add description Ceph does not delete bucket lifecycle
2 parents 1ac8371 + eba24d3 commit f95111e

File tree

1 file changed

+114
-0
lines changed
  • user/pages/04.Reference/05.object-storage/01.known-issues

1 file changed

+114
-0
lines changed

user/pages/04.Reference/05.object-storage/01.known-issues/docs.en.md

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,3 +78,117 @@ aws s3api abort-multipart-upload --bucket BUCKET_NAME --key KEY --upload-id UPLO
7878
```
7979

8080
With ceph-based object storage you may configure a bucket lifecycle rule `AbortIncompleteMultipartUpload` to let unfinished multipart uploads be cleaned up automatically after a certain number of days.
81+
82+
### Ceph-based object storage s3 DeleteBucketLifecycle does not delete lifecycle config
83+
84+
**Problem Statement:**
85+
There’s an issue where the S3 DeleteBucketLifecycle API call doesn’t successfully remove the lifecycle configuration from a bucket.
86+
[Ceph tracker link](https://tracker.ceph.com/issues/71083)
87+
88+
**Reproduction Steps**
89+
Below is an example using the AWS CLI to demonstrate how to reproduce the issue.
90+
91+
```plan
92+
# This is a lifecycle config example
93+
$ cat lifecycle.json
94+
{
95+
"Rules": [
96+
{
97+
"ID": "ExpireOldObjects",
98+
"Prefix": "",
99+
"Status": "Enabled",
100+
"Expiration": {
101+
"Days": 30
102+
}
103+
}
104+
]
105+
}
106+
107+
# Put lifecycle config in to our bucket
108+
$ aws s3api put-bucket-lifecycle-configuration \
109+
--bucket testbucket \
110+
--lifecycle-configuration file://lifecycle.json \
111+
--endpoint-url https://objectstorage-replicated.dus2.cloud.syseleven.net
112+
113+
# Verify lifecycle config is there
114+
$ aws s3api get-bucket-lifecycle-configuration \
115+
--bucket testbucket \
116+
--endpoint-url https://objectstorage-replicated.dus2.cloud.syseleven.net
117+
{
118+
"Rules": [
119+
{
120+
"Expiration": {
121+
"Days": 30
122+
},
123+
"ID": "ExpireOldObjects",
124+
"Prefix": "",
125+
"Status": "Enabled"
126+
}
127+
]
128+
}
129+
130+
# Delete the lifecycle config
131+
$ aws s3api delete-bucket-lifecycle \
132+
--bucket testbucket \
133+
--endpoint-url https://objectstorage-replicated.dus2.cloud.syseleven.net
134+
135+
# Check if the lifecycle is deleted or not
136+
$ aws s3api get-bucket-lifecycle-configuration \
137+
--bucket testbucket \
138+
--endpoint-url https://objectstorage-replicated.dus2.cloud.syseleven.net
139+
{
140+
"Rules": [
141+
{
142+
"Expiration": {
143+
"Days": 30
144+
},
145+
"ID": "ExpireOldObjects",
146+
"Prefix": "",
147+
"Status": "Enabled"
148+
}
149+
]
150+
}
151+
```
152+
153+
**Workaround:**
154+
As a temporary workaround until the upstream fix is included in the next release, you can disable the lifecycle configuration.
155+
156+
```plain
157+
# This is a disabled lifecycle config example
158+
$ cat lifecycle.json
159+
{
160+
"Rules": [
161+
{
162+
"ID": "ExpireOldObjects",
163+
"Prefix": "",
164+
"Status": "Disabled",
165+
"Expiration": {
166+
"Days": 30
167+
}
168+
}
169+
]
170+
}
171+
172+
# Put disabled lifecycle config in to our bucket
173+
$ aws s3api put-bucket-lifecycle-configuration \
174+
--bucket testbucket \
175+
--lifecycle-configuration file://lifecycle.json \
176+
--endpoint-url https://objectstorage-replicated.dus2.cloud.syseleven.net
177+
178+
# Verify lifecycle config is disabled
179+
$ aws s3api get-bucket-lifecycle-configuration \
180+
--bucket testbucket \
181+
--endpoint-url https://objectstorage-replicated.dus2.cloud.syseleven.net
182+
{
183+
"Rules": [
184+
{
185+
"Expiration": {
186+
"Days": 30
187+
},
188+
"ID": "ExpireOldObjects",
189+
"Prefix": "",
190+
"Status": "Disabled"
191+
}
192+
]
193+
}
194+
```

0 commit comments

Comments
 (0)