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

Implement remote.Pusher #1633

Merged
merged 2 commits into from
Apr 7, 2023
Merged

Conversation

jonjohnsonjr
Copy link
Collaborator

The Pusher handles multiplexing across multiple repositories and deduplicating in-flight uploads. This removes the need to do an awkward dance around re-using auth handshakes by passing custom transports.

This also fixes limitations in remote.MultiWrite around streaming layers and multiple repositories.

@codecov-commenter
Copy link

codecov-commenter commented Apr 6, 2023

Codecov Report

Merging #1633 (24da2ae) into main (4a79e94) will decrease coverage by 0.24%.
The diff coverage is 62.46%.

@@            Coverage Diff             @@
##             main    #1633      +/-   ##
==========================================
- Coverage   72.30%   72.06%   -0.24%     
==========================================
  Files         119      120       +1     
  Lines        9566     9760     +194     
==========================================
+ Hits         6917     7034     +117     
- Misses       1943     2008      +65     
- Partials      706      718      +12     
Impacted Files Coverage Δ
internal/cmd/edit.go 51.97% <37.50%> (-0.31%) ⬇️
pkg/v1/remote/write.go 57.50% <45.71%> (-2.50%) ⬇️
pkg/v1/remote/pusher.go 63.19% <63.19%> (ø)
pkg/v1/remote/descriptor.go 73.72% <80.00%> (+1.52%) ⬆️
pkg/v1/remote/multi_write.go 83.33% <100.00%> (+22.91%) ⬆️

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

The Pusher handles multiplexing across multiple repositories and
deduplicating in-flight uploads. This removes the need to do an awkward
dance around re-using auth handshakes by passing custom transports.

This also fixes limitations in remote.MultiWrite around streaming layers
and multiple repositories.
This will be faster than doing the handshake twice.
"github.com/google/go-containerregistry/pkg/v1/types"
"github.com/google/go-containerregistry/pkg/v1/validate"
)

func streamable(t *testing.T) v1.Layer {
t.Helper()
rl, err := random.Layer(1024, types.OCIUncompressedLayer)
Copy link
Collaborator

Choose a reason for hiding this comment

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

Isn't this a long way to say NopCloser(LimitReader(Rand, n))?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I wanted it to be a valid filesystem for some reason.

@jonjohnsonjr jonjohnsonjr merged commit 6743ec9 into google:main Apr 7, 2023
@jonjohnsonjr jonjohnsonjr deleted the remote-pusher branch April 7, 2023 16:08
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.

3 participants