object lifecycles (fix #309) #620

Merged
lx merged 25 commits from bucket-lifecycle into next 2023-09-04 09:45:11 +00:00
Owner

This PR tracks the progress of NLnet task 2 (release garage v0.9), subtask 1 (implement object lifecycles).

  • Add data model to bucket table for lifecycle configuration
  • Implement S3 API calls to put, get and delete a bucket's lifecycle configuration
  • Implement a worker that scans all objects at midnight UTC to apply the configuration
  • Optimize the object scan to skip buckets with no lifecycle config
  • Proof-reading
  • Testing
This PR tracks the progress of NLnet task 2 (release garage v0.9), subtask 1 (implement object lifecycles). - [x] Add data model to bucket table for lifecycle configuration - [x] Implement S3 API calls to put, get and delete a bucket's lifecycle configuration - [x] Implement a worker that scans all objects at midnight UTC to apply the configuration - [x] Optimize the object scan to skip buckets with no lifecycle config - [x] Proof-reading - [x] Testing
lx added 1 commit 2023-08-29 15:03:18 +00:00
bucket_table: data model for lifecycle configuration
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
0b83e0558e
lx added this to the v0.9 milestone 2023-08-29 15:03:55 +00:00
lx added 1 commit 2023-08-29 15:44:41 +00:00
s3: add xml structures to serialize/deserialize lifecycle configs
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
8041d9a827
lx added 1 commit 2023-08-29 16:22:19 +00:00
lifecycle: implement validation into garage's internal data structure
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
abf011c290
lx added 1 commit 2023-08-30 09:24:33 +00:00
use a NaiveDate in data model, it serializes to string (iso 8601 format)
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
f7b409f114
lx added 1 commit 2023-08-30 10:41:24 +00:00
lifecycle: skeleton for lifecycle worker
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
a2e0e34db5
lx added 1 commit 2023-08-30 12:29:18 +00:00
lifecycle worker: implement main functionality
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2996dc875f
lx added 2 commits 2023-08-30 12:51:20 +00:00
lifecycle worker: launch with the rest of Garage
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
0f1849e1ac
lx added 1 commit 2023-08-30 12:55:01 +00:00
lifecycle worker: add logging
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
7200954318
lx added 1 commit 2023-08-30 18:02:23 +00:00
lifecycle config: store date as given, try to debug
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
75ccc5a95c
lx added 1 commit 2023-08-30 18:06:05 +00:00
lifecycle config: add missing line in merge() and remove tracing
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
d2e94e36d6
lx added 1 commit 2023-08-30 18:07:27 +00:00
bucket_table: bucketparams::new doesn't need to be pub
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
a1d57283c0
lx added 1 commit 2023-08-30 21:24:40 +00:00
reference manual: document support for lifecycle configuration
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
5c923d48d7
lx added 1 commit 2023-08-30 21:27:18 +00:00
reference manual: remove obsolete caveat about multipart uploads
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
d94f1c9178
lx added 1 commit 2023-08-30 21:39:49 +00:00
s3 bucket apis: remove redundant call
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
f0a395e2e5
lx added 1 commit 2023-08-30 21:46:28 +00:00
lifecycle worker: avoid building chrono's serde feature
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
01c327a07a
lx added 1 commit 2023-08-30 21:47:49 +00:00
update cargo.nix
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
5fad4c4658
lx added 1 commit 2023-08-30 21:52:21 +00:00
lifecycle worker: take into account disabled rules
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
b2f679675e
lx added 1 commit 2023-08-30 22:00:37 +00:00
s3api: remove redundant serde rename attribute
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
be03a4610f
lx added 1 commit 2023-08-30 22:28:50 +00:00
lifecycle worker: mitigate potential bugs + refactoring
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
1cfcc61de8
lx added 1 commit 2023-08-31 09:19:41 +00:00
lifecycle worker: use queue_insert and process objects in batches
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
adbf5925de
lx added 1 commit 2023-08-31 09:25:26 +00:00
lifecycle worker: add log message when starting
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
a00a52633f
lx added 1 commit 2023-08-31 09:30:06 +00:00
lifecycle worker: fix potential inifinite loop
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
f579d6d9b4
lx added 1 commit 2023-08-31 09:36:44 +00:00
lifecycle worker: don't get stuck on non-existent bucket
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
1cdc321e28
lx force-pushed bucket-lifecycle from 4bdd73e974 to 8e0c020bb9 2023-09-04 09:33:50 +00:00 Compare
lx changed title from WIP: object lifecycles (fix #309) to object lifecycles (fix #309) 2023-09-04 09:34:09 +00:00
lx changed title from object lifecycles (fix #309) to object lifecycles (fix #309) 2023-09-04 09:34:09 +00:00
lx merged commit 3f461d8891 into next 2023-09-04 09:45:11 +00:00
lx deleted branch bucket-lifecycle 2023-09-04 09:45:11 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Deuxfleurs/garage#620
No description provided.