feat(pipeline): add S3 send step for uploading output to S3-compatible storage#133
Open
feat(pipeline): add S3 send step for uploading output to S3-compatible storage#133
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #133 +/- ##
==========================================
+ Coverage 84.67% 85.10% +0.42%
==========================================
Files 46 48 +2
Lines 4771 5056 +285
==========================================
+ Hits 4040 4303 +263
- Misses 567 581 +14
- Partials 164 172 +8 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
9c4db63 to
c41889f
Compare
a781860 to
2a4f13b
Compare
2a4f13b to
e088782
Compare
Add s3_upload as a third send mode alongside direct_resource_load and transfer_load. This allows pipeline output files to be uploaded to any S3-compatible object store (AWS S3, MinIO, Ceph). - Add S3Config struct with endpoint, region, bucket, credentials, path-style, and timeout settings - Add SendModeS3Upload constant and validation (bucket, region, creds) - Add upload manifest for retry resilience (atomic save after each file) - Add S3Uploader interface with AWSS3Uploader (AWS SDK v2) and mock - Add S3Error type with transient/non-transient classification - Add executeS3UploadSend() to pipeline send step - Skip HTTP HEAD connectivity check for S3 mode (requires signing) - Add S3 config loading with defaults (region=eu-central-1, timeout=30m) - Add MinIO Docker compose and E2E test infrastructure - Add 34 new unit tests, 0 existing tests broken Closes #126
Add comprehensive tests for the real AWSS3Uploader (construction, upload via httptest, proxy auth injection, error paths), formatSize branches, S3 uploader factory error, corrupted manifest recovery, non-existent input directory, S3 mode connectivity skip, and unparseable S3 endpoint URL validation.
The minio-init init container exits after completing its setup task (exit 0). Configure it in aether-runner's depends_on with service_completed_successfully so docker compose up --wait doesn't treat the exit as a failure.
e088782 to
6fab727
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
${VAR}syntax)Test plan
Closes #126