Skip to content

Commit

Permalink
Import manifest lists with linux/amd64 platform
Browse files Browse the repository at this point in the history
  • Loading branch information
Oleg Bulatov committed Sep 13, 2017
1 parent 4ca1b92 commit 157f754
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions pkg/image/importer/importer.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (

"github.com/docker/distribution"
"github.com/docker/distribution/digest"
"github.com/docker/distribution/manifest/manifestlist"
"github.com/docker/distribution/manifest/schema1"
"github.com/docker/distribution/manifest/schema2"
"github.com/docker/distribution/reference"
Expand Down Expand Up @@ -537,6 +538,25 @@ func (isi *ImageStreamImporter) importRepositoryFromDocker(ctx gocontext.Context
manifest = m
}

if manifestList, isManifestList := manifest.(*manifestlist.DeserializedManifestList); isManifestList {
found := false
for _, m := range manifestList.Manifests {
if m.Platform.OS == "linux" && m.Platform.Architecture == "amd64" {
manifest, err = s.Get(ctx, m.Digest)
if err != nil {
glog.V(5).Infof("unable to access digest %q for tag %q for repository %#v: %#v", m.Digest, importTag.Name, repository, err)
importTag.Err = formatRepositoryError(repository, importTag.Name, "", err)
continue
}
found = true
}
}
if !found {
glog.V(5).Infof("unsupported manifest list: %#v", manifestList)
continue
}
}

if signedManifest, isSchema1 := manifest.(*schema1.SignedManifest); isSchema1 {
importTag.Image, err = schema1ToImage(signedManifest, "")
} else if deserializedManifest, isSchema2 := manifest.(*schema2.DeserializedManifest); isSchema2 {
Expand Down

0 comments on commit 157f754

Please sign in to comment.