containerd/images
Akihiro Suda 5ca3ac65c4
add Image content converter
Go example:
```go
opts := []converter.Opt{
  // convert Docker media types to OCI ones
  converter.WithDocker2OCI(true),
  // convert tar.gz layers to uncompressed tar layers
  converter.WithLayerConvertFunc(uncompress.LayerConvertFunc),
}
srcRef := "example.com/foo:orig"
dstRef := "example.com/foo:converted"
dstImg, err = converter.Convert(ctx, client, dstRef, srcRef, opts...)
fmt.Println(dstImg.Target)
```

ctr example: `ctr images convert --oci --uncompress example.com/foo:orig example.com/foo:converted`

Go test: `go test -exec sudo -test.root -test.run TestConvert`

The implementation is from https://github.com/containerd/stargz-snapshotter/pull/224,
but eStargz-specific functions are not included in this PR.

eStargz converter can be specified by importing `estargz` package and using `WithLayerConvertFunc(estargz.LayerConvertFunc)` option.

This converter interface will be potentially useful for converting zstd and ocicrypt layers as well.

Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2021-01-22 13:33:19 +09:00
..
archive export: add --skip-non-distributable 2021-01-01 06:32:01 +09:00
converter add Image content converter 2021-01-22 13:33:19 +09:00
annotations.go Use a single custom annotation for export 2019-05-21 17:21:26 -07:00
diffid.go add Image content converter 2021-01-22 13:33:19 +09:00
handlers.go Set content labels based on content type 2020-07-21 00:46:07 -07:00
image.go docs: Various typo found by codespell 2020-12-22 13:22:16 +08:00
importexport.go Refactor image importer 2018-09-14 14:21:26 -07:00
mediatypes.go add Image content converter 2021-01-22 13:33:19 +09:00