Skip to content

Commit

Permalink
snapshot: pass image url into remote mout slice
Browse files Browse the repository at this point in the history
pass image url into remote mout slice.

Signed-off-by: ChengyuZhu6 <[email protected]>
  • Loading branch information
ChengyuZhu6 committed Aug 16, 2023
1 parent d338463 commit 469a6ff
Showing 1 changed file with 27 additions and 1 deletion.
28 changes: 27 additions & 1 deletion snapshot/snapshot.go
Original file line number Diff line number Diff line change
Expand Up @@ -350,7 +350,9 @@ func (o *snapshotter) Mounts(ctx context.Context, key string) ([]mount.Mount, er
if err != nil {
return nil, errors.Wrapf(err, "get snapshot %s", key)
}

if o.enableNydusOverlayFS && config.GetPassImageURLEnabled() {
return o.passImageNameMounts(ctx, info.Parent)
}
if needRemoteMounts {
return o.remoteMounts(ctx, *snap, metaSnapshotID)
}
Expand Down Expand Up @@ -716,7 +718,31 @@ func overlayMount(options []string) []mount.Mount {
},
}
}
func (o *snapshotter) passImageNameMounts(ctx context.Context, parent string) ([]mount.Mount, error) {
_, pInfo, _, err := snapshot.GetSnapshotInfo(ctx, o.ms, parent)
if err != nil {
return nil, errors.Wrapf(err, "passImageNameMounts get snapshot %q info failed", parent)
}
imageURL, ok := pInfo.Labels["containerd.io/snapshot/cri.image-ref"]

if !ok {
return nil, errors.Errorf("passImageNameMounts failed to find image ref of snapshot %s, labels %v",
parent, pInfo.Labels)
}
passImageOption := fmt.Sprintf("imageurl=%s", base64.StdEncoding.EncodeToString([]byte(imageURL)))

var overlayOptions []string
overlayOptions = append(overlayOptions, passImageOption)

return []mount.Mount{
{
Type: "fuse.nydus-overlayfs",
Source: "overlay",
Options: overlayOptions,
},
}, nil

}
func (o *snapshotter) prepareRemoteSnapshot(id string, labels map[string]string) error {
return o.fs.Mount(id, labels)
}
Expand Down

0 comments on commit 469a6ff

Please sign in to comment.