detect moby worker supports multiplatform feature through containerd snapshotter

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
This commit is contained in:
Nicolas De Loof 2022-08-09 14:41:08 +02:00
parent 17dc0e1108
commit 1d8db8a738
No known key found for this signature in database
GPG Key ID: 9858809D6F8F6E7E

View File

@ -54,11 +54,22 @@ func (d *Driver) Client(ctx context.Context) (*client.Client, error) {
}
func (d *Driver) Features() map[driver.Feature]bool {
var useContainerdSnapshotter bool
ctx := context.Background()
c, err := d.Client(ctx)
if err == nil {
workers, _ := c.ListWorkers(ctx)
for _, w := range workers {
if _, ok := w.Labels["org.mobyproject.buildkit.worker.snapshotter"]; ok {
useContainerdSnapshotter = true
}
}
}
return map[driver.Feature]bool{
driver.OCIExporter: false,
driver.DockerExporter: false,
driver.CacheExport: false,
driver.MultiPlatform: false,
driver.MultiPlatform: useContainerdSnapshotter,
}
}