Skip to content

Commit 0962e29

Browse files
authored
Allow remote config layers to be lazy fetched (#1634)
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).
1 parent 4a79e94 commit 0962e29

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

pkg/v1/remote/image.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,21 @@ func (r *remoteImage) Descriptor() (*v1.Descriptor, error) {
140140
return r.descriptor, err
141141
}
142142

143+
func (r *remoteImage) ConfigLayer() (v1.Layer, error) {
144+
if _, err := r.RawManifest(); err != nil {
145+
return nil, err
146+
}
147+
m, err := partial.Manifest(r)
148+
if err != nil {
149+
return nil, err
150+
}
151+
152+
return partial.CompressedToLayer(&remoteImageLayer{
153+
ri: r,
154+
digest: m.Config.Digest,
155+
})
156+
}
157+
143158
// remoteImageLayer implements partial.CompressedLayer
144159
type remoteImageLayer struct {
145160
ri *remoteImage

0 commit comments

Comments
 (0)