Skip to content

Commit

Permalink
Allow remote config layers to be lazy fetched (#1634)
Browse files Browse the repository at this point in the history
The partial.ConfigLayer implementation needs to fetch the config blob,
but we don't always need to do that (e.g. if we just need the digest).
  • Loading branch information
jonjohnsonjr committed Apr 6, 2023
1 parent 4a79e94 commit 0962e29
Showing 1 changed file with 15 additions and 0 deletions.
15 changes: 15 additions & 0 deletions pkg/v1/remote/image.go
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,21 @@ func (r *remoteImage) Descriptor() (*v1.Descriptor, error) {
return r.descriptor, err
}

func (r *remoteImage) ConfigLayer() (v1.Layer, error) {
if _, err := r.RawManifest(); err != nil {
return nil, err
}
m, err := partial.Manifest(r)
if err != nil {
return nil, err
}

return partial.CompressedToLayer(&remoteImageLayer{
ri: r,
digest: m.Config.Digest,
})
}

// remoteImageLayer implements partial.CompressedLayer
type remoteImageLayer struct {
ri *remoteImage
Expand Down

0 comments on commit 0962e29

Please sign in to comment.