flytekit icon indicating copy to clipboard operation
flytekit copied to clipboard

Apply obstore as storage backend

Open machichima opened this issue 1 year ago • 28 comments

Tracking issue

Related to flyteorg/flyte#4081

Why are the changes needed?

Use a Rust/Pyo3 package - obstore - as the storage backend for cloud storages. This provides the smaller dependencies size and enable users to use their own s3fs, gsfs, abfs, ... version.

What changes were proposed in this pull request?

Use obstore as the storage backend to replace s3fs, gsfs, and abfs.

How was this patch tested?

Setup process

Screenshots

Performance

  • put file to minio

put_file_runtime

Check all the applicable boxes

  • [ ] I updated the documentation accordingly.
  • [ ] All new and existing tests passed.
  • [ ] All commits are signed-off.

Related PRs

Docs link

Summary by Bito

This PR implements obstore as the new storage backend for Flytekit, replacing existing implementations for S3, GCS, and Azure (s3fs, gsfs, and abfs). The changes streamline protocol handling, optimize configuration, refine Azure storage logic, and enhance import practices while improving storage option handling and reducing dependency footprint. Significant updates to core storage components and comprehensive test coverage ensure compatibility with the new implementation.

Unit tests added: True

Estimated effort to review (1-5, lower is better): 5

machichima avatar Jan 04 '25 14:01 machichima