-
Notifications
You must be signed in to change notification settings - Fork 31
Restore lotman through splitting off a second server binary #1755
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
Merged
Conversation
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
…d flag Regardless of the underlying host arch/os, this commit makes sure we only build Lotman if the `lotman` build flag is passed to go. This setup will allow us to trigger the build of a secondary binary with lotman enabled.
…suer Between the writing and compiling out of this code, we've hidden direct access through the param package to the 'Federation.DirectorUrl' key. Instead, this now calls `config.GetFederation()`, which tries to perform metadata discovery in many cases. To fix this, the commit adjusts the way we grab this information, as well as fixes tests that now mock the metadata discovery as well.
…ontainers This creates a second `pelican-server` binary that passes the `lotman` build flag to go, thereby enabling the previously-shimmed Lotman wrapper package. Since we only envision this being used in caches (at least for the time being), this new binary only replaces the binaries for the `cache` and `osdf-cache` targeted Docker builds. Along with this, the entrypoints for these containers have been modified to accept `pelican-server` and `osdf-server` arguments.
…gular Github Actions workflows are not my forte, but the attempt here is to re-use the workflow file (now test-template.yml) to duplicate all the tests but with the new binary and with the lotman tests. Since GHA doesn't provide a way to mock the action environment in a local dry-run, I'll be developing through commits/pushes. Let's see how it goes...
66ee9bc to
2641408
Compare
turetske
reviewed
Nov 25, 2024
Member
Author
This was
linked to
issues
Nov 26, 2024
turetske
approved these changes
Dec 5, 2024
Collaborator
turetske
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. Testing builds and docker containers seemed to pass.
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.
This PR creates a second server binary, which for now only enables Lotman by passing the
lotmanbuild tag through goreleaser. This is necessary for the long-term development goals we have to use Pelican as the distribution layer for lotman configuration across caches.Eventually we can also use this second binary to fine-tune which modules are built into clients or servers, which should make the HTCondor developers happy as well. For now, the new server binary replaces the regular binary only in cache containers, since that's where lotman is needed.
As for testing, I've tried to split our GHA test runner across the two binaries. This resulted in creating a workflow template that I can pass build tags/binary names to.