Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add S3 backend to Pelican #419

Merged
merged 14 commits into from
Dec 8, 2023
Merged

Conversation

jhiemstrawisc
Copy link
Member

No description provided.

xrootd/xrootd_config.go Outdated Show resolved Hide resolved
@turetske
Copy link
Collaborator

This seems like the correct approach to me, but I'm assuming @bbockelm will have more comments.

images/Dockerfile Outdated Show resolved Hide resolved
@bbockelm bbockelm changed the title Issue 169 Add S3 backend to Pelican Dec 4, 2023
@bbockelm bbockelm linked an issue Dec 4, 2023 that may be closed by this pull request
jhiemstrawisc added a commit to jhiemstrawisc/pelican that referenced this pull request Dec 4, 2023
Need these in dev.Dockerfile for the tests to work.
@jhiemstrawisc jhiemstrawisc marked this pull request as ready for review December 4, 2023 22:27
@jhiemstrawisc
Copy link
Member Author

Tests are currently failing because the test CI doesn't pull in the updates I've made to the dev container we use to run tests. Those updates are reflected in PR #450. I will re-run once that's merged, built, and released.

turetske added a commit that referenced this pull request Dec 4, 2023
…-docker

Add test dependencies to dev.Dockerfile for PR #419
@jhiemstrawisc jhiemstrawisc force-pushed the issue-169 branch 2 times, most recently from 112e7ab to d83be05 Compare December 6, 2023 16:37
Copy link
Collaborator

@turetske turetske left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you address the merge conflicts

utils/server_utils.go Outdated Show resolved Hide resolved
cmd/origin.go Show resolved Hide resolved
…oints

This is the first step in giving Pelican the ability to use an S3 backend. For now, it only covers
unauthenticated buckets. Importantly, this doesn't do anything to actually make the plugin available
to xrootd unless its installed by hand. That will come in a later commit.

Add plugin to containers

Right now, the RPM for the S3/HTTP plugin isn't functional, and we don't have that repo's
GH set up to publish anything automatically. Until those can be sorted out, we'll clone from
source to install. Concurrent to this commit, I'm opening a few issues at the plugin repo
to handle getting the various GHA set up to take care of this.
This adds a supervisor script for serving origins, as well as updates
some of the dependencies needed to install the s3/http plugin and get an
origin running with all of its other plugins.
This adds what we need to set an access/secret key for the S3 plugin. HOWEVER,
upon trying to test this locally with MinIO, I found some bugs in the actual plugin
that prevent authenticated buckets from working in the first place. That being said,
that's a problem with the plugin and not with Pelican. All Pelican needs to do is to
run xrootd with the right `s3` directives, and that appears to be the case with these
changes.
This adds a very basic test for the S3 origin -- basically it only checks that
we can start an xrootd S3 server with the provided configuration. The reason for
this punt on the E2E testing is that I'm waiting for things like `originServe` to be
unwrapped from the cobra cli, because otherwise there's an awful lot of setup to do.

Since I don't actually test a file download, there's technically no need to set up the
MinIO server in the test, but that's there and ready when those other pieces are
figured out.

The last bit is that for these tests to run, the minio server needs to be installed. With
changes to `dev.Dockerfile`, the tests should be runnable.
@haoming29 haoming29 added this to the v7.3.0 milestone Dec 7, 2023
Copy link
Collaborator

@turetske turetske left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small test changes and other questions.

xrootd/origin_test.go Outdated Show resolved Hide resolved
utils/server_utils.go Outdated Show resolved Hide resolved
Copy link
Collaborator

@turetske turetske left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@turetske turetske merged commit 15860ea into PelicanPlatform:main Dec 8, 2023
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add support for a S3 origin
3 participants