Add image verifier transfer service plugin system based on a binary directory
Signed-off-by: Ethan Lowman <ethan.lowman@datadoghq.com>
This commit is contained in:
		@@ -25,6 +25,7 @@ import (
 | 
			
		||||
	"github.com/containerd/containerd/leases"
 | 
			
		||||
	"github.com/containerd/containerd/log"
 | 
			
		||||
	"github.com/containerd/containerd/metadata"
 | 
			
		||||
	"github.com/containerd/containerd/pkg/imageverifier"
 | 
			
		||||
	"github.com/containerd/containerd/pkg/transfer/local"
 | 
			
		||||
	"github.com/containerd/containerd/pkg/unpack"
 | 
			
		||||
	"github.com/containerd/containerd/platforms"
 | 
			
		||||
@@ -45,6 +46,7 @@ func init() {
 | 
			
		||||
			plugin.LeasePlugin,
 | 
			
		||||
			plugin.MetadataPlugin,
 | 
			
		||||
			plugin.DiffPlugin,
 | 
			
		||||
			plugin.ImageVerifierPlugin,
 | 
			
		||||
		},
 | 
			
		||||
		Config: defaultConfig(),
 | 
			
		||||
		InitFn: func(ic *plugin.InitContext) (interface{}, error) {
 | 
			
		||||
@@ -59,6 +61,20 @@ func init() {
 | 
			
		||||
				return nil, err
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			vfs := make(map[string]imageverifier.ImageVerifier)
 | 
			
		||||
			vps, err := ic.GetByType(plugin.ImageVerifierPlugin)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				return nil, err
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			for name, vp := range vps {
 | 
			
		||||
				inst, err := vp.Instance()
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					return nil, err
 | 
			
		||||
				}
 | 
			
		||||
				vfs[name] = inst.(imageverifier.ImageVerifier)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// Set configuration based on default or user input
 | 
			
		||||
			var lc local.TransferConfig
 | 
			
		||||
			lc.MaxConcurrentDownloads = config.MaxConcurrentDownloads
 | 
			
		||||
@@ -126,7 +142,7 @@ func init() {
 | 
			
		||||
			}
 | 
			
		||||
			lc.RegistryConfigPath = config.RegistryConfigPath
 | 
			
		||||
 | 
			
		||||
			return local.NewTransferService(l.(leases.Manager), ms.ContentStore(), metadata.NewImageStore(ms), &lc), nil
 | 
			
		||||
			return local.NewTransferService(l.(leases.Manager), ms.ContentStore(), metadata.NewImageStore(ms), vfs, &lc), nil
 | 
			
		||||
		},
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user