Update containerd version to 193abed96e.
Signed-off-by: Random-Liu <lantaol@google.com>
This commit is contained in:
@@ -268,11 +268,11 @@ func (c *criContainerdService) getImageInfo(ctx context.Context, ref string) (
|
||||
normalizedRef, err)
|
||||
}
|
||||
// Get image config
|
||||
desc, err := image.Config(ctx, c.contentProvider)
|
||||
desc, err := image.Config(ctx, c.contentStoreService)
|
||||
if err != nil {
|
||||
return "", 0, nil, fmt.Errorf("failed to get image config descriptor: %v", err)
|
||||
}
|
||||
rc, err := c.contentProvider.Reader(ctx, desc.Digest)
|
||||
rc, err := c.contentStoreService.Reader(ctx, desc.Digest)
|
||||
if err != nil {
|
||||
return "", 0, nil, fmt.Errorf("failed to get image config reader: %v", err)
|
||||
}
|
||||
@@ -282,13 +282,13 @@ func (c *criContainerdService) getImageInfo(ctx context.Context, ref string) (
|
||||
return "", 0, nil, fmt.Errorf("failed to decode image config: %v", err)
|
||||
}
|
||||
// Get image chainID
|
||||
diffIDs, err := image.RootFS(ctx, c.contentProvider)
|
||||
diffIDs, err := image.RootFS(ctx, c.contentStoreService)
|
||||
if err != nil {
|
||||
return "", 0, nil, fmt.Errorf("failed to get image diff ids: %v", err)
|
||||
}
|
||||
chainID := identity.ChainID(diffIDs)
|
||||
// Get image size
|
||||
size, err := image.Size(ctx, c.contentProvider)
|
||||
size, err := image.Size(ctx, c.contentStoreService)
|
||||
if err != nil {
|
||||
return "", 0, nil, fmt.Errorf("failed to get image size: %v", err)
|
||||
}
|
||||
@@ -325,7 +325,7 @@ func (c *criContainerdService) localResolve(ctx context.Context, ref string) (st
|
||||
return "", fmt.Errorf("an error occurred when getting image %q from containerd image store: %v",
|
||||
normalized.String(), err)
|
||||
}
|
||||
desc, err := image.Config(ctx, c.contentProvider)
|
||||
desc, err := image.Config(ctx, c.contentStoreService)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("failed to get image config descriptor: %v", err)
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ package server
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
|
||||
"github.com/containerd/containerd/content"
|
||||
containerdimages "github.com/containerd/containerd/images"
|
||||
@@ -72,7 +73,6 @@ import (
|
||||
// contents are missing but snapshots are ready, is the image still "READY"?
|
||||
|
||||
// PullImage pulls an image with authentication config.
|
||||
// TODO(mikebrow): add authentication
|
||||
// TODO(mikebrow): harden api (including figuring out at what layer we should be blocking on duplicate requests.)
|
||||
func (c *criContainerdService) PullImage(ctx context.Context, r *runtime.PullImageRequest) (retRes *runtime.PullImageResponse, retErr error) {
|
||||
glog.V(2).Infof("PullImage %q with auth config %+v", r.GetImage().GetImage(), r.GetAuth())
|
||||
@@ -158,7 +158,12 @@ func (c *criContainerdService) PullImage(ctx context.Context, r *runtime.PullIma
|
||||
func (c *criContainerdService) pullImage(ctx context.Context, ref string) (
|
||||
imagedigest.Digest, imagedigest.Digest, error) {
|
||||
// Resolve the image reference to get descriptor and fetcher.
|
||||
resolver := docker.NewResolver()
|
||||
resolver := docker.NewResolver(docker.ResolverOptions{
|
||||
// TODO(random-liu): Add authentication by setting credentials.
|
||||
// TODO(random-liu): Handle https.
|
||||
PlainHTTP: true,
|
||||
Client: http.DefaultClient,
|
||||
})
|
||||
_, desc, fetcher, err := resolver.Resolve(ctx, ref)
|
||||
if err != nil {
|
||||
return "", "", fmt.Errorf("failed to resolve ref %q: %v", ref, err)
|
||||
@@ -185,8 +190,8 @@ func (c *criContainerdService) pullImage(ctx context.Context, ref string) (
|
||||
err = containerdimages.Dispatch(
|
||||
ctx,
|
||||
containerdimages.Handlers(
|
||||
remotes.FetchHandler(c.contentIngester, fetcher),
|
||||
containerdimages.ChildrenHandler(c.contentProvider)),
|
||||
remotes.FetchHandler(c.contentStoreService, fetcher),
|
||||
containerdimages.ChildrenHandler(c.contentStoreService)),
|
||||
desc)
|
||||
if err != nil {
|
||||
return "", "", fmt.Errorf("failed to fetch image %q desc %+v: %v", ref, desc, err)
|
||||
@@ -198,7 +203,7 @@ func (c *criContainerdService) pullImage(ctx context.Context, ref string) (
|
||||
}
|
||||
// Read the image manifest from content store.
|
||||
manifestDigest := image.Target.Digest
|
||||
p, err := content.ReadBlob(ctx, c.contentProvider, manifestDigest)
|
||||
p, err := content.ReadBlob(ctx, c.contentStoreService, manifestDigest)
|
||||
if err != nil {
|
||||
return "", "", fmt.Errorf("readblob failed for manifest digest %q: %v", manifestDigest, err)
|
||||
}
|
||||
@@ -214,7 +219,7 @@ func (c *criContainerdService) pullImage(ctx context.Context, ref string) (
|
||||
}
|
||||
// TODO(random-liu): Considering how to deal with the disk usage of content.
|
||||
|
||||
configDesc, err := image.Config(ctx, c.contentProvider)
|
||||
configDesc, err := image.Config(ctx, c.contentStoreService)
|
||||
if err != nil {
|
||||
return "", "", fmt.Errorf("failed to get config descriptor for image %q: %v", ref, err)
|
||||
}
|
||||
|
||||
@@ -85,12 +85,8 @@ type criContainerdService struct {
|
||||
containerNameIndex *registrar.Registrar
|
||||
// containerService is containerd container service client.
|
||||
containerService execution.ContainerServiceClient
|
||||
// contentIngester is the containerd service to ingest content into
|
||||
// content store.
|
||||
contentIngester content.Ingester
|
||||
// contentProvider is the containerd service to get content from
|
||||
// content store.
|
||||
contentProvider content.Provider
|
||||
// contentStoreService is the containerd content service client..
|
||||
contentStoreService content.Store
|
||||
// rootfsUnpacker is the containerd service to unpack image content
|
||||
// into snapshots.
|
||||
rootfsUnpacker rootfs.Unpacker
|
||||
@@ -116,12 +112,11 @@ func NewCRIContainerdService(conn *grpc.ClientConn, rootDir, networkPluginBinDir
|
||||
sandboxNameIndex: registrar.NewRegistrar(),
|
||||
sandboxIDIndex: truncindex.NewTruncIndex(nil),
|
||||
// TODO(random-liu): Add container id index.
|
||||
containerNameIndex: registrar.NewRegistrar(),
|
||||
containerService: execution.NewContainerServiceClient(conn),
|
||||
imageStoreService: imagesservice.NewStoreFromClient(imagesapi.NewImagesClient(conn)),
|
||||
contentIngester: contentservice.NewIngesterFromClient(contentapi.NewContentClient(conn)),
|
||||
contentProvider: contentservice.NewProviderFromClient(contentapi.NewContentClient(conn)),
|
||||
rootfsUnpacker: rootfsservice.NewUnpackerFromClient(rootfsapi.NewRootFSClient(conn)),
|
||||
containerNameIndex: registrar.NewRegistrar(),
|
||||
containerService: execution.NewContainerServiceClient(conn),
|
||||
imageStoreService: imagesservice.NewStoreFromClient(imagesapi.NewImagesClient(conn)),
|
||||
contentStoreService: contentservice.NewStoreFromClient(contentapi.NewContentClient(conn)),
|
||||
rootfsUnpacker: rootfsservice.NewUnpackerFromClient(rootfsapi.NewRootFSClient(conn)),
|
||||
}
|
||||
|
||||
netPlugin, err := ocicni.InitCNI(networkPluginBinDir, networkPluginConfDir)
|
||||
|
||||
@@ -359,3 +359,15 @@ func (f *FakeExecutionClient) CloseStdin(ctx context.Context, closeStdinOpts *ex
|
||||
// TODO: implement CloseStdin()
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
// Pause is a test implementation of execution.Pause
|
||||
func (f *FakeExecutionClient) Pause(ctx context.Context, in *execution.PauseRequest, opts ...grpc.CallOption) (*googleprotobuf.Empty, error) {
|
||||
// TODO: implement Pause()
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
// Resume is a test implementation of execution.Resume
|
||||
func (f *FakeExecutionClient) Resume(ctx context.Context, in *execution.ResumeRequest, opts ...grpc.CallOption) (*googleprotobuf.Empty, error) {
|
||||
// TODO: implement Resume()
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user