diff --git a/SOURCES/0001-bump-github.com-containers-buildah-to-v1.11.5.patch b/SOURCES/0001-bump-github.com-containers-buildah-to-v1.11.5.patch new file mode 100644 index 0000000..e24f224 --- /dev/null +++ b/SOURCES/0001-bump-github.com-containers-buildah-to-v1.11.5.patch @@ -0,0 +1,2346 @@ +From 4f7d01ec556a450f17eca43b39d3ee34cd362bb8 Mon Sep 17 00:00:00 2001 +From: rpm-build <rpm-build> +Date: Wed, 29 Jul 2020 15:16:26 +0200 +Subject: [PATCH] bump github.com/containers/buildah to v1.11.5 + +Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1853326 +Signed-off-by: Valentin Rothber <rothberg@redhat.com> +--- + go.mod | 4 +- + go.sum | 7 ++ + .../github.com/containers/buildah/.travis.yml | 34 ++++--- + .../github.com/containers/buildah/buildah.go | 11 ++- + .../containers/buildah/changelog.txt | 27 ++++++ + .../github.com/containers/buildah/config.go | 5 +- + vendor/github.com/containers/buildah/go.mod | 4 +- + vendor/github.com/containers/buildah/go.sum | 58 ++++++++++++ + .../containers/buildah/imagebuildah/build.go | 3 +- + .../buildah/imagebuildah/executor.go | 9 ++ + .../buildah/imagebuildah/stage_executor.go | 4 +- + .../containers/buildah/imagebuildah/util.go | 5 +- + .../github.com/containers/buildah/import.go | 44 ++++++--- + vendor/github.com/containers/buildah/info.go | 3 + + vendor/github.com/containers/buildah/new.go | 91 ++++++++++++++----- + .../containers/buildah/pkg/cli/common.go | 20 ++-- + .../containers/buildah/pkg/secrets/secrets.go | 48 ++-------- + .../containers/buildah/run_linux.go | 2 +- + vendor/github.com/docker/docker/AUTHORS | 57 +++++++++++- + .../github.com/docker/docker/api/swagger.yaml | 32 ++++++- + .../docker/docker/api/types/client.go | 4 + + .../docker/docker/api/types/filters/parse.go | 9 ++ + .../docker/docker/api/types/swarm/service.go | 21 +++++ + .../docker/docker/client/container_list.go | 2 +- + .../github.com/docker/docker/client/events.go | 2 +- + .../github.com/docker/docker/client/hijack.go | 6 +- + .../docker/docker/client/image_list.go | 2 +- + .../docker/docker/client/network_list.go | 2 +- + .../github.com/docker/docker/client/ping.go | 4 +- + .../docker/docker/client/plugin_list.go | 2 +- + .../docker/docker/client/request.go | 14 +-- + .../docker/docker/client/service_list.go | 4 + + .../docker/docker/client/volume_list.go | 2 +- + .../docker/docker/pkg/homedir/homedir_unix.go | 7 +- + .../docker/pkg/jsonmessage/jsonmessage.go | 8 +- + .../docker/pkg/mount/mountinfo_linux.go | 1 - + .../pkg/namesgenerator/names-generator.go | 2 +- + .../docker/docker/pkg/pools/pools.go | 11 +-- + .../docker/docker/pkg/system/init_windows.go | 3 +- + .../docker/pkg/system/syscall_windows.go | 21 +---- + .../fsouza/go-dockerclient/Makefile | 5 - + .../fsouza/go-dockerclient/README.md | 22 +++-- + .../fsouza/go-dockerclient/appveyor.yml | 4 +- + .../fsouza/go-dockerclient/container.go | 30 ++++-- + .../github.com/fsouza/go-dockerclient/go.mod | 10 +- + .../github.com/fsouza/go-dockerclient/go.sum | 79 +++++++++++++--- + vendor/github.com/mtrmac/gpgme/gpgme.go | 2 +- + vendor/k8s.io/client-go/pkg/version/base.go | 4 +- + vendor/modules.txt | 6 +- + 49 files changed, 539 insertions(+), 218 deletions(-) + +diff --git a/go.mod b/go.mod +index 086d25cc902f..c8a2c298b8aa 100644 +--- a/go.mod ++++ b/go.mod +@@ -10,7 +10,7 @@ require ( + github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd // indirect + github.com/containernetworking/cni v0.7.1 + github.com/containernetworking/plugins v0.8.2 +- github.com/containers/buildah v1.11.5-0.20191031204705-20e92ffe0982 ++ github.com/containers/buildah v1.11.5 + github.com/containers/image/v5 v5.2.1 + github.com/containers/psgo v1.3.2 + github.com/containers/storage v1.15.8 +@@ -20,7 +20,7 @@ require ( + github.com/cyphar/filepath-securejoin v0.2.2 + github.com/davecgh/go-spew v1.1.1 + github.com/docker/distribution v2.7.1+incompatible +- github.com/docker/docker v1.4.2-0.20190927142053-ada3c14355ce ++ github.com/docker/docker v1.4.2-0.20191101170500-ac7306503d23 + github.com/docker/docker-credential-helpers v0.6.3 + github.com/docker/go-connections v0.4.0 + github.com/docker/go-units v0.4.0 +diff --git a/go.sum b/go.sum +index 9456b2bfba1a..8e3505c1bb5d 100644 +--- a/go.sum ++++ b/go.sum +@@ -19,6 +19,7 @@ github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5 h1:ygIc8M6tr + github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= + github.com/Microsoft/hcsshim v0.8.6 h1:ZfF0+zZeYdzMIVMZHKtDKJvLHj76XCuVae/jNkjj0IA= + github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= ++github.com/Microsoft/hcsshim v0.8.7-0.20191101173118-65519b62243c/go.mod h1:7xhjOwRV2+0HXGmM0jxaEu+ZiXJFoVZOTfL/dmqbrD8= + github.com/Microsoft/hcsshim v0.8.7 h1:ptnOoufxGSzauVTsdE+wMYnCWA301PdoN4xg5oRdZpg= + github.com/Microsoft/hcsshim v0.8.7/go.mod h1:OHd7sQqRFrYd3RmSgbgji+ctCwkbq2wbEYNSzOYtcBQ= + github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= +@@ -75,6 +76,8 @@ github.com/containers/buildah v1.11.4-0.20191028173731-21b4778b359e h1:iDavHEx5Y + github.com/containers/buildah v1.11.4-0.20191028173731-21b4778b359e/go.mod h1:Igrk75FAxLnzDaHUbtpWB8pwL+Bv+cnakWMvqAXW2v8= + github.com/containers/buildah v1.11.5-0.20191031204705-20e92ffe0982 h1:5WUe09k2sJSbmxwLHZLHc41TrIPrP0GlbhX+WDJBqvs= + github.com/containers/buildah v1.11.5-0.20191031204705-20e92ffe0982/go.mod h1:eGWB4tLoo0hIBuytQpvgUC0hk2mvl2ofaYBeDsU/qoc= ++github.com/containers/buildah v1.11.5 h1:bVpkaVlvA7G+1mBDAcX6yf7jNZJ/ZrrAHDt4WCx2i8E= ++github.com/containers/buildah v1.11.5/go.mod h1:bfNPqLO8GnI0qMPmI6MHSpQNK+a3TH9syYsRg+iqhRw= + github.com/containers/image/v5 v5.0.0 h1:arnXgbt1ucsC/ndtSpiQY87rA0UjhF+/xQnPzqdBDn4= + github.com/containers/image/v5 v5.0.0/go.mod h1:MgiLzCfIeo8lrHi+4Lb8HP+rh513sm0Mlk6RrhjFOLY= + github.com/containers/image/v5 v5.0.1-0.20200205124631-82291c45f2b0 h1:iV4aHKRoPcHp5BISsuiPMyaCjGJfLKp/FUMAG1NeqvE= +@@ -130,6 +133,8 @@ github.com/docker/docker v0.0.0-20171019062838-86f080cff091/go.mod h1:eEKB0N0r5N + github.com/docker/docker v0.0.0-20180522102801-da99009bbb11/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= + github.com/docker/docker v1.4.2-0.20190927142053-ada3c14355ce h1:H3csZuxZESJeeEiOxq4YXPNmLFbjl7u2qVBrAAGX/sA= + github.com/docker/docker v1.4.2-0.20190927142053-ada3c14355ce/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= ++github.com/docker/docker v1.4.2-0.20191101170500-ac7306503d23 h1:oqgGT9O61YAYvI41EBsLePOr+LE6roB0xY4gpkZuFSE= ++github.com/docker/docker v1.4.2-0.20191101170500-ac7306503d23/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= + github.com/docker/docker-credential-helpers v0.6.0/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= + github.com/docker/docker-credential-helpers v0.6.1 h1:Dq4iIfcM7cNtddhLVWe9h4QDjsi4OER3Z8voPu/I52g= + github.com/docker/docker-credential-helpers v0.6.1/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= +@@ -165,6 +170,8 @@ github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV + github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= + github.com/fsouza/go-dockerclient v1.5.0 h1:7OtayOe5HnoG+KWMHgyyPymwaodnB2IDYuVfseKyxbA= + github.com/fsouza/go-dockerclient v1.5.0/go.mod h1:AqZZK/zFO3phxYxlTsAaeAMSdQ9mgHuhy+bjN034Qds= ++github.com/fsouza/go-dockerclient v1.6.0 h1:f7j+AX94143JL1H3TiqSMkM4EcLDI0De1qD4GGn3Hig= ++github.com/fsouza/go-dockerclient v1.6.0/go.mod h1:YWwtNPuL4XTX1SKJQk86cWPmmqwx+4np9qfPbb+znGc= + github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa h1:RDBNVkRviHZtvDvId8XSGPu3rmpmSe+wKRcEWNgsfWU= + github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= + github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +diff --git a/vendor/github.com/containers/buildah/.travis.yml b/vendor/github.com/containers/buildah/.travis.yml +index a7410823043f..8bf3756f517d 100644 +--- a/vendor/github.com/containers/buildah/.travis.yml ++++ b/vendor/github.com/containers/buildah/.travis.yml +@@ -68,21 +68,25 @@ script: + # Fail fast + - set -e + # Let's do some docker stuff just for verification purposes +- - docker ps --all +- - docker images +- - ls -alF /home/travis/auth +- - docker pull docker.io/alpine +- - echo testpassword | docker login localhost:5000 --username testuser --password-stdin +- - docker tag alpine localhost:5000/my-alpine +- - docker push localhost:5000/my-alpine +- - docker ps --all +- - docker images +- - docker rmi docker.io/alpine +- - docker rmi localhost:5000/my-alpine +- - docker pull localhost:5000/my-alpine +- - docker ps --all +- - docker images +- - docker rmi localhost:5000/my-alpine ++# Commented out the following in order to get travis runs ++# under the 50 minute requirement. Do not remove as we may ++# want to use this in cirrius testing when we move there. ++# - docker ps --all ++# - docker images ++# - ls -alF /home/travis/auth ++# - docker pull docker.io/alpine ++# - echo testpassword | docker login localhost:5000 --username testuser --password-stdin ++# - docker tag alpine localhost:5000/my-alpine ++# - docker push localhost:5000/my-alpine ++# - docker ps --all ++# - docker images ++# - docker rmi docker.io/alpine ++# - docker rmi localhost:5000/my-alpine ++# - docker pull localhost:5000/my-alpine ++# - docker ps --all ++# - docker images ++# - docker rmi localhost:5000/my-alpine ++# End Speed up comment + # Setting up Docker Registry is complete, let's do Buildah testing! + - make install.tools -j4 + - make install.libseccomp.sudo all runc validate lint SECURITYTAGS="apparmor seccomp" +diff --git a/vendor/github.com/containers/buildah/buildah.go b/vendor/github.com/containers/buildah/buildah.go +index d57eea818e37..7042590d1432 100644 +--- a/vendor/github.com/containers/buildah/buildah.go ++++ b/vendor/github.com/containers/buildah/buildah.go +@@ -27,7 +27,7 @@ const ( + Package = "buildah" + // Version for the Package. Bump version in contrib/rpm/buildah.spec + // too. +- Version = "1.12.0-dev" ++ Version = "1.11.5" + // The value we use to identify what type of information, currently a + // serialized Builder structure, we are using as per-container state. + // This should only be changed when we make incompatible changes to +@@ -40,7 +40,7 @@ const ( + stateFile = Package + ".json" + ) + +-// PullPolicy takes the value PullIfMissing, PullAlways, or PullNever. ++// PullPolicy takes the value PullIfMissing, PullAlways, PullIfNewer, or PullNever. + type PullPolicy int + + const ( +@@ -52,6 +52,11 @@ const ( + // take, signalling that a fresh, possibly updated, copy of the image + // should be pulled from a registry before the build proceeds. + PullAlways ++ // PullIfNewer is one of the values that BuilderOptions.PullPolicy ++ // can take, signalling that the source image should only be pulled ++ // from a registry if a local copy is not already present or if a ++ // newer version the image is present on the repository. ++ PullIfNewer + // PullNever is one of the values that BuilderOptions.PullPolicy can + // take, signalling that the source image should not be pulled from a + // registry if a local copy of it is not already present. +@@ -65,6 +70,8 @@ func (p PullPolicy) String() string { + return "PullIfMissing" + case PullAlways: + return "PullAlways" ++ case PullIfNewer: ++ return "PullIfNewer" + case PullNever: + return "PullNever" + } +diff --git a/vendor/github.com/containers/buildah/changelog.txt b/vendor/github.com/containers/buildah/changelog.txt +index 6e98e54050dc..098e6d6d4f75 100644 +--- a/vendor/github.com/containers/buildah/changelog.txt ++++ b/vendor/github.com/containers/buildah/changelog.txt +@@ -1,3 +1,30 @@ ++- Changelog for v1.11.5 (2019-11-11) ++ * Enhance error on unsafe symbolic link targets ++ * Add OCIRuntime to info ++ * Check nonexsit authfile ++ * Only output image id if running buildah bud --quiet ++ * Fix --pull=true||false and add --pull-never to bud and from (retry) ++ * cgroups v2: tweak or skip tests ++ * Prepwork: new 'skip' helpers for tests ++ * Handle configuration blobs for manifest lists ++ * unmarshalConvertedConfig: avoid using the updated image's ref ++ * Add completions for Manifest commands ++ * Add disableFips option to secrets pkg ++ * Update bud.bats test archive test ++ * Add test for caching based on content digest ++ * Builder.untarPath(): always evaluate b.ContentDigester.Hash() ++ * Bump github.com/onsi/ginkgo from 1.10.1 to 1.10.2 ++ * Fix another broken test: copy-url-mtime ++ * yet more fixes ++ * Actual bug fix for 'add' test: fix the expected mode ++ * BATS tests - lots of mostly minor cleanup ++ * build: drop support for ostree ++ * Add support for make vendor-in-container ++ * imgtype: exit with error if storage fails ++ * remove XDG_RUNTIME_DIR from default authfile path ++ * fix troubleshooting redirect instructions ++ * Bump back to v1.12.0-dev ++ + - Changelog for v1.11.4 (2019-10-28) + * buildah: add a "manifest" command + * manifests: add the module +diff --git a/vendor/github.com/containers/buildah/config.go b/vendor/github.com/containers/buildah/config.go +index 617619e45c14..32f2171eb036 100644 +--- a/vendor/github.com/containers/buildah/config.go ++++ b/vendor/github.com/containers/buildah/config.go +@@ -26,7 +26,7 @@ func unmarshalConvertedConfig(ctx context.Context, dest interface{}, img types.I + return errors.Wrapf(err, "error getting manifest MIME type for %q", transports.ImageName(img.Reference())) + } + if wantedManifestMIMEType != actualManifestMIMEType { +- img, err = img.UpdatedImage(ctx, types.ManifestUpdateOptions{ ++ updatedImg, err := img.UpdatedImage(ctx, types.ManifestUpdateOptions{ + ManifestMIMEType: wantedManifestMIMEType, + InformationOnly: types.ManifestUpdateInformation{ // Strictly speaking, every value in here is invalid. But… + Destination: nil, // Destination is technically required, but actually necessary only for conversion _to_ v2s1. Leave it nil, we will crash if that ever changes. +@@ -35,8 +35,9 @@ func unmarshalConvertedConfig(ctx context.Context, dest interface{}, img types.I + }, + }) + if err != nil { +- return errors.Wrapf(err, "error converting image %q to %s", transports.ImageName(img.Reference()), wantedManifestMIMEType) ++ return errors.Wrapf(err, "error converting image %q from %q to %q", transports.ImageName(img.Reference()), actualManifestMIMEType, wantedManifestMIMEType) + } ++ img = updatedImg + } + config, err := img.ConfigBlob(ctx) + if err != nil { +diff --git a/vendor/github.com/containers/buildah/go.mod b/vendor/github.com/containers/buildah/go.mod +index c8741b7812d9..2c76c46bffeb 100644 +--- a/vendor/github.com/containers/buildah/go.mod ++++ b/vendor/github.com/containers/buildah/go.mod +@@ -14,7 +14,7 @@ require ( + github.com/docker/go-units v0.4.0 + github.com/docker/libnetwork v0.8.0-dev.2.0.20190625141545-5a177b73e316 + github.com/etcd-io/bbolt v1.3.3 +- github.com/fsouza/go-dockerclient v1.5.0 ++ github.com/fsouza/go-dockerclient v1.6.0 + github.com/ghodss/yaml v1.0.0 + github.com/hashicorp/go-multierror v1.0.0 + github.com/imdario/mergo v0.3.6 // indirect +@@ -43,7 +43,7 @@ require ( + github.com/vishvananda/netns v0.0.0-20190625233234-7109fa855b0f // indirect + github.com/xeipuuv/gojsonschema v1.1.0 // indirect + golang.org/x/crypto v0.0.0-20190927123631-a832865fa7ad +- golang.org/x/sys v0.0.0-20190902133755-9109b7679e13 ++ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3 + golang.org/x/time v0.0.0-20190921001708-c4c64cad1fd0 // indirect + google.golang.org/grpc v1.24.0 // indirect + k8s.io/api v0.0.0-20190813020757-36bff7324fb7 // indirect +diff --git a/vendor/github.com/containers/buildah/go.sum b/vendor/github.com/containers/buildah/go.sum +index 4a6673b04808..15dab479487e 100644 +--- a/vendor/github.com/containers/buildah/go.sum ++++ b/vendor/github.com/containers/buildah/go.sum +@@ -11,8 +11,12 @@ github.com/Microsoft/go-winio v0.4.12 h1:xAfWHN1IrQ0NJ9TBC0KBZoqLjzDTr1ML+4MywiU + github.com/Microsoft/go-winio v0.4.12/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= + github.com/Microsoft/go-winio v0.4.14 h1:+hMXMk01us9KgxGb7ftKQt2Xpf5hH/yky+TDA+qxleU= + github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= ++github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5 h1:ygIc8M6trr62pF5DucadTWGdEB4mEyvzi0e2nbcmcyA= ++github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= + github.com/Microsoft/hcsshim v0.8.6 h1:ZfF0+zZeYdzMIVMZHKtDKJvLHj76XCuVae/jNkjj0IA= + github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= ++github.com/Microsoft/hcsshim v0.8.7-0.20191101173118-65519b62243c h1:YMP6olTU903X3gxQJckdmiP8/zkSMq4kN3uipsU9XjU= ++github.com/Microsoft/hcsshim v0.8.7-0.20191101173118-65519b62243c/go.mod h1:7xhjOwRV2+0HXGmM0jxaEu+ZiXJFoVZOTfL/dmqbrD8= + github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= + github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= + github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +@@ -25,14 +29,25 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24 + github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= + github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= + github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= ++github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= + github.com/blang/semver v3.5.0+incompatible h1:CGxCgetQ64DKk7rdZ++Vfnb1+ogGNnB17OJKJXD2Cfs= + github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= + github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= ++github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f h1:tSNMc+rJDfmYntojat8lljbt1mgKNpTxUZJsSzJ9Y1s= ++github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko= ++github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= ++github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= + github.com/containerd/containerd v1.3.0 h1:xjvXQWABwS2uiv3TWgQt5Uth60Gu86LTGZXMJkjc7rY= + github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= + github.com/containerd/continuity v0.0.0-20180216233310-d8fb8589b0e8/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= + github.com/containerd/continuity v0.0.0-20181203112020-004b46473808 h1:4BX8f882bXEDKfWIf0wa8HRvpnBoPszJJXL+TVbBw4M= + github.com/containerd/continuity v0.0.0-20181203112020-004b46473808/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= ++github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc h1:TP+534wVlf61smEIq1nwLLAjQVEK2EADoW3CX9AuT+8= ++github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= ++github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= ++github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= ++github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= ++github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= + github.com/containernetworking/cni v0.7.1 h1:fE3r16wpSEyaqY4Z4oFrLMmIGfBYIKpPrHK31EJ9FzE= + github.com/containernetworking/cni v0.7.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= + github.com/containers/image/v4 v4.0.1 h1:idNGHChj0Pyv3vLrxul2oSVMZLeFqpoq3CjLeVgapSQ= +@@ -48,6 +63,7 @@ github.com/containers/storage v1.13.5/go.mod h1:HELz8Sn+UVbPaUZMI8RvIG9doD4y4z6G + github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= + github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= + github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= ++github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= + github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= + github.com/cyphar/filepath-securejoin v0.2.2 h1:jCwT2GTP+PY5nBz3c/YL5PAIbusElVrPujOBSCj8xRg= + github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= +@@ -64,6 +80,8 @@ github.com/docker/docker v1.4.2-0.20190710153559-aa8249ae1b8b h1:+Ga+YpCDpcY1fln + github.com/docker/docker v1.4.2-0.20190710153559-aa8249ae1b8b/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= + github.com/docker/docker v1.4.2-0.20190927142053-ada3c14355ce h1:H3csZuxZESJeeEiOxq4YXPNmLFbjl7u2qVBrAAGX/sA= + github.com/docker/docker v1.4.2-0.20190927142053-ada3c14355ce/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= ++github.com/docker/docker v1.4.2-0.20191101170500-ac7306503d23 h1:oqgGT9O61YAYvI41EBsLePOr+LE6roB0xY4gpkZuFSE= ++github.com/docker/docker v1.4.2-0.20191101170500-ac7306503d23/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= + github.com/docker/docker-credential-helpers v0.6.0/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= + github.com/docker/docker-credential-helpers v0.6.1 h1:Dq4iIfcM7cNtddhLVWe9h4QDjsi4OER3Z8voPu/I52g= + github.com/docker/docker-credential-helpers v0.6.1/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= +@@ -90,6 +108,8 @@ github.com/fsouza/go-dockerclient v1.4.4 h1:Sd5nD4wdAgiPxvrbYUzT2ZZNmPk3z+GGnZ+f + github.com/fsouza/go-dockerclient v1.4.4/go.mod h1:PrwszSL5fbmsESocROrOGq/NULMXRw+bajY0ltzD6MA= + github.com/fsouza/go-dockerclient v1.5.0 h1:7OtayOe5HnoG+KWMHgyyPymwaodnB2IDYuVfseKyxbA= + github.com/fsouza/go-dockerclient v1.5.0/go.mod h1:AqZZK/zFO3phxYxlTsAaeAMSdQ9mgHuhy+bjN034Qds= ++github.com/fsouza/go-dockerclient v1.6.0 h1:f7j+AX94143JL1H3TiqSMkM4EcLDI0De1qD4GGn3Hig= ++github.com/fsouza/go-dockerclient v1.6.0/go.mod h1:YWwtNPuL4XTX1SKJQk86cWPmmqwx+4np9qfPbb+znGc= + github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= + github.com/ghodss/yaml v0.0.0-20161207003320-04f313413ffd/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= + github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= +@@ -102,6 +122,7 @@ github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1 + github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= + github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= + github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= ++github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= + github.com/gogo/protobuf v0.0.0-20170815085658-fcdc5011193f/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= + github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= + github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +@@ -133,11 +154,15 @@ github.com/gorilla/mux v0.0.0-20170217192616-94e7d24fd285/go.mod h1:1lud6UwP+6or + github.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw= + github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= + github.com/gotestyourself/gotestyourself v2.2.0+incompatible/go.mod h1:zZKM6oeNM8k+FRljX1mnzVYeS8wiGgQyvST1/GafPbY= ++github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= + github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= + github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= ++github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= + github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o= + github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= + github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= ++github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= ++github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= + github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= + github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= + github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +@@ -219,19 +244,23 @@ github.com/onsi/gomega v1.5.0 h1:izbySO9zDPmjJ8rDjLvkA2zJHIo+HkYXHnf7eN7SSyo= + github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= + github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= + github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= ++github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= + github.com/opencontainers/go-digest v1.0.0-rc1 h1:WzifXhOVOEOuFYOJAW6aQqW0TooG2iki3E3Ii+WN7gQ= + github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= + github.com/opencontainers/image-spec v1.0.1 h1:JMemWkRwHx4Zj+fVxWoMCFm/8sYGGrUVojFA6h/TRcI= + github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= + github.com/opencontainers/image-spec v1.0.2-0.20190823105129-775207bd45b6 h1:yN8BPXVwMBAm3Cuvh1L5XE8XpvYRMdsVLd82ILprhUU= + github.com/opencontainers/image-spec v1.0.2-0.20190823105129-775207bd45b6/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= ++github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= + github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= + github.com/opencontainers/runc v1.0.0-rc8 h1:dDCFes8Hj1r/i5qnypONo5jdOme/8HWZC/aNDyhECt0= + github.com/opencontainers/runc v1.0.0-rc8/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= + github.com/opencontainers/runc v1.0.0-rc8.0.20190827142921-dd075602f158 h1:/A6bAdnSZoTQmKml3MdHAnSEPnBAQeigNBl4sxnfaaQ= + github.com/opencontainers/runc v1.0.0-rc8.0.20190827142921-dd075602f158/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= ++github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= + github.com/opencontainers/runtime-spec v0.1.2-0.20190618234442-a950415649c7 h1:Dliu5QO+4JYWu/yMshaMU7G3JN2POGpwjJN7gjy10Go= + github.com/opencontainers/runtime-spec v0.1.2-0.20190618234442-a950415649c7/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= ++github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= + github.com/opencontainers/runtime-tools v0.9.0 h1:FYgwVsKRI/H9hU32MJ/4MLOzXWodKK5zsQavY8NPMkU= + github.com/opencontainers/runtime-tools v0.9.0/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= + github.com/opencontainers/selinux v1.2.2 h1:Kx9J6eDG5/24A6DtUquGSpJQ+m2MUTahn4FtGEe8bFg= +@@ -271,6 +300,8 @@ github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R + github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= + github.com/prometheus/procfs v0.0.3 h1:CTwfnzjQ+8dS6MhHHu4YswVAD99sL2wjPqP+VkURmKE= + github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= ++github.com/prometheus/procfs v0.0.5 h1:3+auTFlqw+ZaQYJARz6ArODtkaIwtvBTx3N2NehQlL8= ++github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= + github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= + github.com/seccomp/containers-golang v0.0.0-20180629143253-cdfdaa7543f4 h1:rOG9oHVIndNR14f3HRyBy9UPQYmIPniWqTU1TDdHhq4= + github.com/seccomp/containers-golang v0.0.0-20180629143253-cdfdaa7543f4/go.mod h1:f/98/SnvAzhAEFQJ3u836FePXvcbE8BS0YGMQNn4mhA= +@@ -300,6 +331,7 @@ github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0 + github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= + github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= + github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= ++github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= + github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2 h1:b6uOv7YOFK0TYG7HtkIgExQo+2RdLuwRft63jn2HWj8= + github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= + github.com/tchap/go-patricia v2.3.0+incompatible h1:GkY4dP3cEfEASBPPkWd+AmjYxhmDkqO9/zg7R0lSQRs= +@@ -307,6 +339,7 @@ github.com/tchap/go-patricia v2.3.0+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ + github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= + github.com/ulikunitz/xz v0.5.6 h1:jGHAfXawEGZQ3blwU5wnWKQJvAraT7Ftq9EXjnXYgt8= + github.com/ulikunitz/xz v0.5.6/go.mod h1:2bypXElzHzzJZwzH67Y6wb67pO62Rzfn7BSiF4ABRW8= ++github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= + github.com/vbatts/tar-split v0.11.1 h1:0Odu65rhcZ3JZaPHxl7tCI3V/C/Q9Zf82UFravl02dE= + github.com/vbatts/tar-split v0.11.1/go.mod h1:LEuURwDEiWjRjwu46yU3KVGuUdVv/dcnpcEPSzR8z6g= + github.com/vbauerster/mpb v3.4.0+incompatible h1:mfiiYw87ARaeRW6x5gWwYRUawxaW1tLAD8IceomUCNw= +@@ -321,12 +354,15 @@ github.com/xeipuuv/gojsonpointer v0.0.0-20190809123943-df4f5c81cb3b h1:6cLsL+2FW + github.com/xeipuuv/gojsonpointer v0.0.0-20190809123943-df4f5c81cb3b/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= + github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= + github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= ++github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= + github.com/xeipuuv/gojsonschema v0.0.0-20190816131739-be0936907f66/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= + github.com/xeipuuv/gojsonschema v1.1.0 h1:ngVtJC9TY/lg0AA/1k48FYhBrhRoFlEmWzsehpNAaZg= + github.com/xeipuuv/gojsonschema v1.1.0/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= + github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= + go.etcd.io/bbolt v1.3.3 h1:MUGmc65QhB3pIlaQ5bB4LwqSj6GIonVJXpZiaKNyaKk= + go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= ++go.opencensus.io v0.22.0 h1:C9hSCOW830chIVkdja34wa6Ky+IzWllkUinR+BtRZd4= ++go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= + golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= + golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= + golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M= +@@ -335,12 +371,19 @@ golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4 h1:HuIa8hRrWRSrqYzx1qI49N + golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= + golang.org/x/crypto v0.0.0-20190927123631-a832865fa7ad h1:5E5raQxcv+6CZ11RrBYQe5WRbUIWpScjh0kvHZkZIrQ= + golang.org/x/crypto v0.0.0-20190927123631-a832865fa7ad/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= ++golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= ++golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= ++golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= + golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= + golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= ++golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= ++golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= + golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= + golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= ++golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= + golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= + golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= ++golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= + golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= + golang.org/x/net v0.0.0-20190628185345-da137c7871d7 h1:rTIdg5QFRR7XCaK4LCjBiPbx8j4DQRpdYMnGn/bJUEU= + golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +@@ -349,9 +392,11 @@ golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJ + golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= + golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 h1:YUO/7uOKsKeq9UokNS62b8FYywz3ker1l1vDZRCRefw= + golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= ++golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= + golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU= + golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= + golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= ++golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= + golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= + golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= + golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +@@ -360,7 +405,9 @@ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5h + golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/sys v0.0.0-20190422165155-953cdadca894 h1:Cz4ceDQGXuKRnVBDTS23GTn/pU5OE2C0WrNTOYK1Uuc= + golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= ++golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= ++golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb h1:fgwFCsaw9buMuxNd6+DQfAuSFqbNiQZpcgJQAgJsK6k= + golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +@@ -370,6 +417,8 @@ golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3 h1:4y9KwBHBgBNwDbtu44R5o1fdO + golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/sys v0.0.0-20190902133755-9109b7679e13 h1:tdsQdquKbTNMsSZLqnLELJGzCANp9oXhu6zFBW6ODx4= + golang.org/x/sys v0.0.0-20190902133755-9109b7679e13/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= ++golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3 h1:7TYNF4UdlohbFwpNH04CoPMp1cHUZgO1Ebq5r2hIjfo= ++golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= + golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= + golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +@@ -382,12 +431,19 @@ golang.org/x/tools v0.0.0-20180810170437-e96c4e24768d/go.mod h1:n7NCudcB/nEzxVGm + golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= + golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= + golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= ++golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= ++golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= + golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= + golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= + google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= ++google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= + google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= + google.golang.org/genproto v0.0.0-20180831171423-11092d34479b h1:lohp5blsw53GBXtLyLNaTXPXS9pJ1tiTw61ZHUoE9Qw= + google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= ++google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb h1:i1Ppqkc3WQXikh8bXiwHqAN5Rv3/qDCcRk0/Otx73BY= ++google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= ++google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= ++google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= + google.golang.org/grpc v1.22.0 h1:J0UbZOIrCAl+fpTOf8YLs4dJo8L/owV4LYVtAXQoPkw= + google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= + google.golang.org/grpc v1.24.0 h1:vb/1TCsVn3DcJlQ0Gs1yB1pKI6Do2/QNwxdKqmc/b0s= +@@ -410,6 +466,7 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= + gotest.tools v0.0.0-20190624233834-05ebafbffc79/go.mod h1:R//lfYlUuTOTfblYI3lGoAAAebUdzjvbmQsuB7Ykd90= + gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= + gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= ++honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= + honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= + k8s.io/api v0.0.0-20190813020757-36bff7324fb7 h1:4uJOjRn9kWq4AqJRE8+qzmAy+lJd9rh8TY455dNef4U= + k8s.io/api v0.0.0-20190813020757-36bff7324fb7/go.mod h1:3Iy+myeAORNCLgjd/Xu9ebwN7Vh59Bw0vh9jhoX+V58= +@@ -423,6 +480,7 @@ k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUc + k8s.io/klog v0.3.1 h1:RVgyDHY/kFKtLqh67NvEWIgkMneNoIrdkN0CxDSQc68= + k8s.io/klog v0.3.1/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= + k8s.io/kube-openapi v0.0.0-20190709113604-33be087ad058/go.mod h1:nfDlWeOsu3pUf4yWGL+ERqohP4YsZcBJXWMK+gkzOA4= ++k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= + sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI= + sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs= + sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= +diff --git a/vendor/github.com/containers/buildah/imagebuildah/build.go b/vendor/github.com/containers/buildah/imagebuildah/build.go +index 6b2c9c84c2ce..fb9600b1a369 100644 +--- a/vendor/github.com/containers/buildah/imagebuildah/build.go ++++ b/vendor/github.com/containers/buildah/imagebuildah/build.go +@@ -27,6 +27,7 @@ import ( + const ( + PullIfMissing = buildah.PullIfMissing + PullAlways = buildah.PullAlways ++ PullIfNewer = buildah.PullIfNewer + PullNever = buildah.PullNever + + Gzip = archive.Gzip +@@ -45,7 +46,7 @@ type BuildOptions struct { + // commands. + ContextDirectory string + // PullPolicy controls whether or not we pull images. It should be one +- // of PullIfMissing, PullAlways, or PullNever. ++ // of PullIfMissing, PullAlways, PullIfNewer, or PullNever. + PullPolicy buildah.PullPolicy + // Registry is a value which is prepended to the image's name, if it + // needs to be pulled and the image name alone can not be resolved to a +diff --git a/vendor/github.com/containers/buildah/imagebuildah/executor.go b/vendor/github.com/containers/buildah/imagebuildah/executor.go +index 27ec1bb23bbb..35fc3d63d4fc 100644 +--- a/vendor/github.com/containers/buildah/imagebuildah/executor.go ++++ b/vendor/github.com/containers/buildah/imagebuildah/executor.go +@@ -339,6 +339,11 @@ func (b *Executor) Build(ctx context.Context, stages imagebuilder.Stages) (image + var cleanupImages []string + cleanupStages := make(map[int]*StageExecutor) + ++ stdout := b.out ++ if b.quiet { ++ b.out = ioutil.Discard ++ } ++ + cleanup := func() error { + var lastErr error + // Clean up any containers associated with the final container +@@ -527,6 +532,10 @@ func (b *Executor) Build(ctx context.Context, stages imagebuilder.Stages) (image + if err = ioutil.WriteFile(b.iidfile, []byte(imageID), 0644); err != nil { + return imageID, ref, errors.Wrapf(err, "failed to write image ID to file %q", b.iidfile) + } ++ } else { ++ if _, err := stdout.Write([]byte(imageID + "\n")); err != nil { ++ return imageID, ref, errors.Wrapf(err, "failed to write image ID to stdout") ++ } + } + + return imageID, ref, nil +diff --git a/vendor/github.com/containers/buildah/imagebuildah/stage_executor.go b/vendor/github.com/containers/buildah/imagebuildah/stage_executor.go +index fad2bfe9558d..67c0a0eb9454 100644 +--- a/vendor/github.com/containers/buildah/imagebuildah/stage_executor.go ++++ b/vendor/github.com/containers/buildah/imagebuildah/stage_executor.go +@@ -318,7 +318,7 @@ func (s *StageExecutor) digestSpecifiedContent(node *parser.Node, argValues []st + // directory. + contextSrc, err := securejoin.SecureJoin(contextDir, src) + if err != nil { +- return "", errors.Wrapf(err, "error joining %q and %q", contextDir, src) ++ return "", errors.Wrapf(err, "forbidden path for %q, it is outside of the build context %q", src, contextDir) + } + sources = append(sources, contextSrc) + } +@@ -432,7 +432,7 @@ func (s *StageExecutor) Copy(excludes []string, copies ...imagebuilder.Copy) err + // directory. + srcSecure, err := securejoin.SecureJoin(contextDir, src) + if err != nil { +- return err ++ return errors.Wrapf(err, "forbidden path for %q, it is outside of the build context %q", src, contextDir) + } + if hadFinalPathSeparator { + // If destination is a folder, we need to take extra care to +diff --git a/vendor/github.com/containers/buildah/import.go b/vendor/github.com/containers/buildah/import.go +index 751ce6ae1c8d..329633b442a4 100644 +--- a/vendor/github.com/containers/buildah/import.go ++++ b/vendor/github.com/containers/buildah/import.go +@@ -5,8 +5,10 @@ import ( + + "github.com/containers/buildah/docker" + "github.com/containers/buildah/util" ++ "github.com/containers/image/v5/image" + "github.com/containers/image/v5/manifest" + is "github.com/containers/image/v5/storage" ++ "github.com/containers/image/v5/transports" + "github.com/containers/image/v5/types" + "github.com/containers/storage" + digest "github.com/opencontainers/go-digest" +@@ -28,12 +30,39 @@ func importBuilderDataFromImage(ctx context.Context, store storage.Store, system + if err != nil { + return nil, errors.Wrapf(err, "no such image %q", imageID) + } +- src, err2 := ref.NewImage(ctx, systemContext) +- if err2 != nil { +- return nil, errors.Wrapf(err2, "error instantiating image") ++ src, err := ref.NewImageSource(ctx, systemContext) ++ if err != nil { ++ return nil, errors.Wrapf(err, "error instantiating image source") + } + defer src.Close() + ++ imageDigest := "" ++ manifestBytes, manifestType, err := src.GetManifest(ctx, nil) ++ if err != nil { ++ return nil, errors.Wrapf(err, "error loading image manifest for %q", transports.ImageName(ref)) ++ } ++ if manifestDigest, err := manifest.Digest(manifestBytes); err == nil { ++ imageDigest = manifestDigest.String() ++ } ++ ++ var instanceDigest *digest.Digest ++ if manifest.MIMETypeIsMultiImage(manifestType) { ++ list, err := manifest.ListFromBlob(manifestBytes, manifestType) ++ if err != nil { ++ return nil, errors.Wrapf(err, "error parsing image manifest for %q as list", transports.ImageName(ref)) ++ } ++ instance, err := list.ChooseInstance(systemContext) ++ if err != nil { ++ return nil, errors.Wrapf(err, "error finding an appropriate image in manifest list %q", transports.ImageName(ref)) ++ } ++ instanceDigest = &instance ++ } ++ ++ image, err := image.FromUnparsedImage(ctx, systemContext, image.UnparsedInstance(src, instanceDigest)) ++ if err != nil { ++ return nil, errors.Wrapf(err, "error instantiating image for %q instance %q", transports.ImageName(ref), instanceDigest) ++ } ++ + imageName := "" + if img, err3 := store.Image(imageID); err3 == nil { + if len(img.Names) > 0 { +@@ -48,13 +77,6 @@ func importBuilderDataFromImage(ctx context.Context, store storage.Store, system + } + } + +- imageDigest := "" +- if manifestBytes, _, err := src.Manifest(ctx); err == nil { +- if manifestDigest, err := manifest.Digest(manifestBytes); err == nil { +- imageDigest = manifestDigest.String() +- } +- } +- + defaultNamespaceOptions, err := DefaultNamespaceOptions() + if err != nil { + return nil, err +@@ -79,7 +101,7 @@ func importBuilderDataFromImage(ctx context.Context, store storage.Store, system + }, + } + +- if err := builder.initConfig(ctx, src); err != nil { ++ if err := builder.initConfig(ctx, image); err != nil { + return nil, errors.Wrapf(err, "error preparing image configuration") + } + +diff --git a/vendor/github.com/containers/buildah/info.go b/vendor/github.com/containers/buildah/info.go +index c741bb449e11..322bd8834dff 100644 +--- a/vendor/github.com/containers/buildah/info.go ++++ b/vendor/github.com/containers/buildah/info.go +@@ -52,10 +52,13 @@ func hostInfo() map[string]interface{} { + logrus.Error(err, "err reading cgroups mode") + } + cgroupVersion := "v1" ++ ociruntime := "runc" + if unified { + cgroupVersion = "v2" ++ ociruntime = "crun" + } + info["CgroupVersion"] = cgroupVersion ++ info["OCIRuntime"] = ociruntime + + mi, err := system.ReadMemInfo() + if err != nil { +diff --git a/vendor/github.com/containers/buildah/new.go b/vendor/github.com/containers/buildah/new.go +index 87cfd5d0da6c..68c6ebd544ea 100644 +--- a/vendor/github.com/containers/buildah/new.go ++++ b/vendor/github.com/containers/buildah/new.go +@@ -5,8 +5,10 @@ import ( + "fmt" + "math/rand" + "strings" ++ "time" + + "github.com/containers/buildah/util" ++ "github.com/containers/image/v5/image" + "github.com/containers/image/v5/manifest" + "github.com/containers/image/v5/pkg/sysregistriesv2" + is "github.com/containers/image/v5/storage" +@@ -14,6 +16,7 @@ import ( + "github.com/containers/image/v5/transports/alltransports" + "github.com/containers/image/v5/types" + "github.com/containers/storage" ++ digest "github.com/opencontainers/go-digest" + "github.com/openshift/imagebuilder" + "github.com/pkg/errors" + "github.com/sirupsen/logrus" +@@ -154,23 +157,47 @@ func resolveImage(ctx context.Context, systemContext *types.SystemContext, store + if destImage == "" { + return nil, "", nil, errors.Errorf("error computing local image name for %q", transports.ImageName(srcRef)) + } +- + ref, err := is.Transport.ParseStoreReference(store, destImage) + if err != nil { + return nil, "", nil, errors.Wrapf(err, "error parsing reference to image %q", destImage) + } +- img, err := is.Transport.GetStoreImage(store, ref) +- if err == nil { +- return ref, transport, img, nil +- } + +- if errors.Cause(err) == storage.ErrImageUnknown && options.PullPolicy != PullIfMissing { +- logrus.Debugf("no such image %q: %v", transports.ImageName(ref), err) +- failures = append(failures, failure{ +- resolvedImageName: image, +- err: fmt.Errorf("no such image %q", transports.ImageName(ref)), +- }) +- continue ++ if options.PullPolicy == PullIfNewer { ++ img, err := is.Transport.GetStoreImage(store, ref) ++ if err == nil { ++ // Let's see if this image is on the repository and if it's there ++ // then note it's Created date. ++ var repoImageCreated time.Time ++ repoImageFound := false ++ repoImage, err := srcRef.NewImage(ctx, systemContext) ++ if err == nil { ++ inspect, err := repoImage.Inspect(ctx) ++ if err == nil { ++ repoImageFound = true ++ repoImageCreated = *inspect.Created ++ } ++ repoImage.Close() ++ } ++ if !repoImageFound || repoImageCreated == img.Created { ++ // The image is only local or the same date is on the ++ // local and repo versions of the image, no need to pull. ++ return ref, transport, img, nil ++ } ++ } ++ } else { ++ // Get the image from the store if present for PullNever and PullIfMissing ++ img, err := is.Transport.GetStoreImage(store, ref) ++ if err == nil { ++ return ref, transport, img, nil ++ } ++ if errors.Cause(err) == storage.ErrImageUnknown && options.PullPolicy == PullNever { ++ logrus.Debugf("no such image %q: %v", transports.ImageName(ref), err) ++ failures = append(failures, failure{ ++ resolvedImageName: image, ++ err: fmt.Errorf("no such image %q", transports.ImageName(ref)), ++ }) ++ continue ++ } + } + + pulledImg, pulledReference, err := pullAndFindImage(ctx, store, srcRef, options, systemContext) +@@ -253,35 +280,53 @@ func newBuilder(ctx context.Context, store storage.Store, options BuilderOptions + return nil, err + } + } +- image := options.FromImage ++ imageSpec := options.FromImage + imageID := "" + imageDigest := "" + topLayer := "" + if img != nil { +- image = getImageName(imageNamePrefix(image), img) ++ imageSpec = getImageName(imageNamePrefix(imageSpec), img) + imageID = img.ID + topLayer = img.TopLayer + } +- var src types.ImageCloser ++ var src types.Image + if ref != nil { +- src, err = ref.NewImage(ctx, systemContext) ++ srcSrc, err := ref.NewImageSource(ctx, systemContext) + if err != nil { + return nil, errors.Wrapf(err, "error instantiating image for %q", transports.ImageName(ref)) + } +- if manifestBytes, _, err := src.Manifest(ctx); err == nil { +- if manifestDigest, err := manifest.Digest(manifestBytes); err == nil { +- imageDigest = manifestDigest.String() ++ defer srcSrc.Close() ++ manifestBytes, manifestType, err := srcSrc.GetManifest(ctx, nil) ++ if err != nil { ++ return nil, errors.Wrapf(err, "error loading image manifest for %q", transports.ImageName(ref)) ++ } ++ if manifestDigest, err := manifest.Digest(manifestBytes); err == nil { ++ imageDigest = manifestDigest.String() ++ } ++ var instanceDigest *digest.Digest ++ if manifest.MIMETypeIsMultiImage(manifestType) { ++ list, err := manifest.ListFromBlob(manifestBytes, manifestType) ++ if err != nil { ++ return nil, errors.Wrapf(err, "error parsing image manifest for %q as list", transports.ImageName(ref)) ++ } ++ instance, err := list.ChooseInstance(systemContext) ++ if err != nil { ++ return nil, errors.Wrapf(err, "error finding an appropriate image in manifest list %q", transports.ImageName(ref)) + } ++ instanceDigest = &instance ++ } ++ src, err = image.FromUnparsedImage(ctx, systemContext, image.UnparsedInstance(srcSrc, instanceDigest)) ++ if err != nil { ++ return nil, errors.Wrapf(err, "error instantiating image for %q instance %q", transports.ImageName(ref), instanceDigest) + } +- defer src.Close() + } + + name := "working-container" + if options.Container != "" { + name = options.Container + } else { +- if image != "" { +- name = imageNamePrefix(image) + "-" + name ++ if imageSpec != "" { ++ name = imageNamePrefix(imageSpec) + "-" + name + } + } + var container *storage.Container +@@ -332,7 +377,7 @@ func newBuilder(ctx context.Context, store storage.Store, options BuilderOptions + builder := &Builder{ + store: store, + Type: containerType, +- FromImage: image, ++ FromImage: imageSpec, + FromImageID: imageID, + FromImageDigest: imageDigest, + Container: name, +diff --git a/vendor/github.com/containers/buildah/pkg/cli/common.go b/vendor/github.com/containers/buildah/pkg/cli/common.go +index e8979cd7f86f..6f49cc2406a7 100644 +--- a/vendor/github.com/containers/buildah/pkg/cli/common.go ++++ b/vendor/github.com/containers/buildah/pkg/cli/common.go +@@ -63,6 +63,7 @@ type BudResults struct { + Platform string + Pull bool + PullAlways bool ++ PullNever bool + Quiet bool + Rm bool + Runtime string +@@ -159,8 +160,9 @@ func GetBudFlags(flags *BudResults) pflag.FlagSet { + fs.StringVar(&flags.Logfile, "logfile", "", "log to `file` instead of stdout/stderr") + fs.IntVar(&flags.Loglevel, "loglevel", 0, "adjust logging level (range from -2 to 3)") + fs.StringVar(&flags.Platform, "platform", "", "CLI compatibility: no action or effect") +- fs.BoolVar(&flags.Pull, "pull", true, "pull the image if not present") +- fs.BoolVar(&flags.PullAlways, "pull-always", false, "pull the image, even if a version is present") ++ fs.BoolVar(&flags.Pull, "pull", true, "pull the image from the registry if newer or not present in store, if false, only pull the image if not present") ++ fs.BoolVar(&flags.PullAlways, "pull-always", false, "pull the image even if the named image is present in store") ++ fs.BoolVar(&flags.PullNever, "pull-never", false, "do not pull the image, use the image present in store if available") + fs.BoolVarP(&flags.Quiet, "quiet", "q", false, "refrain from announcing build instructions and image read/write progress") + fs.BoolVar(&flags.Rm, "rm", true, "Remove intermediate containers after a successful build") + // "runtime" definition moved to avoid name collision in podman build. Defined in cmd/buildah/bud.go. +@@ -265,9 +267,15 @@ func VerifyFlagsArgsOrder(args []string) error { + } + + func GetDefaultAuthFile() string { +- authfile := os.Getenv("REGISTRY_AUTH_FILE") +- if authfile != "" { +- return authfile ++ return os.Getenv("REGISTRY_AUTH_FILE") ++} ++ ++func CheckAuthFile(authfile string) error { ++ if authfile == "" { ++ return nil + } +- return "" ++ if _, err := os.Stat(authfile); err != nil { ++ return errors.Wrapf(err, "error checking authfile path %s", authfile) ++ } ++ return nil + } +diff --git a/vendor/github.com/containers/buildah/pkg/secrets/secrets.go b/vendor/github.com/containers/buildah/pkg/secrets/secrets.go +index ee2e9a7c84fe..80ca050165bd 100644 +--- a/vendor/github.com/containers/buildah/pkg/secrets/secrets.go ++++ b/vendor/github.com/containers/buildah/pkg/secrets/secrets.go +@@ -148,21 +148,12 @@ func getMountsMap(path string) (string, string, error) { + } + + // SecretMounts copies, adds, and mounts the secrets to the container root filesystem +-// Deprecated, Please use SecretMountWithUIDGID + func SecretMounts(mountLabel, containerWorkingDir, mountFile string, rootless, disableFips bool) []rspec.Mount { + return SecretMountsWithUIDGID(mountLabel, containerWorkingDir, mountFile, containerWorkingDir, 0, 0, rootless, disableFips) + } + +-// SecretMountsWithUIDGID copies, adds, and mounts the secrets to the container root filesystem +-// mountLabel: MAC/SELinux label for container content +-// containerWorkingDir: Private data for storing secrets on the host mounted in container. +-// mountFile: Additional mount points required for the container. +-// mountPoint: Container image mountpoint +-// uid: to assign to content created for secrets +-// gid: to assign to content created for secrets +-// rootless: indicates whether container is running in rootless mode +-// disableFips: indicates whether system should ignore fips mode +-func SecretMountsWithUIDGID(mountLabel, containerWorkingDir, mountFile, mountPoint string, uid, gid int, rootless, disableFips bool) []rspec.Mount { ++// SecretMountsWithUIDGID specifies the uid/gid of the owner ++func SecretMountsWithUIDGID(mountLabel, containerWorkingDir, mountFile, mountPrefix string, uid, gid int, rootless, disableFips bool) []rspec.Mount { + var ( + secretMounts []rspec.Mount + mountFiles []string +@@ -180,7 +171,7 @@ func SecretMountsWithUIDGID(mountLabel, containerWorkingDir, mountFile, mountPoi + } + for _, file := range mountFiles { + if _, err := os.Stat(file); err == nil { +- mounts, err := addSecretsFromMountsFile(file, mountLabel, containerWorkingDir, uid, gid) ++ mounts, err := addSecretsFromMountsFile(file, mountLabel, containerWorkingDir, mountPrefix, uid, gid) + if err != nil { + logrus.Warnf("error mounting secrets, skipping entry in %s: %v", file, err) + } +@@ -196,7 +187,7 @@ func SecretMountsWithUIDGID(mountLabel, containerWorkingDir, mountFile, mountPoi + // Add FIPS mode secret if /etc/system-fips exists on the host + _, err := os.Stat("/etc/system-fips") + if err == nil { +- if err := addFIPSModeSecret(&secretMounts, containerWorkingDir, mountPoint, mountLabel, uid, gid); err != nil { ++ if err := addFIPSModeSecret(&secretMounts, containerWorkingDir, mountPrefix, mountLabel, uid, gid); err != nil { + logrus.Errorf("error adding FIPS mode secret to container: %v", err) + } + } else if os.IsNotExist(err) { +@@ -215,7 +206,7 @@ func rchown(chowndir string, uid, gid int) error { + + // addSecretsFromMountsFile copies the contents of host directory to container directory + // and returns a list of mounts +-func addSecretsFromMountsFile(filePath, mountLabel, containerWorkingDir string, uid, gid int) ([]rspec.Mount, error) { ++func addSecretsFromMountsFile(filePath, mountLabel, containerWorkingDir, mountPrefix string, uid, gid int) ([]rspec.Mount, error) { + var mounts []rspec.Mount + defaultMountsPaths := getMounts(filePath) + for _, path := range defaultMountsPaths { +@@ -294,7 +285,7 @@ func addSecretsFromMountsFile(filePath, mountLabel, containerWorkingDir string, + } + + m := rspec.Mount{ +- Source: ctrDirOrFileOnHost, ++ Source: filepath.Join(mountPrefix, ctrDirOrFile), + Destination: ctrDirOrFile, + Type: "bind", + Options: []string{"bind", "rprivate"}, +@@ -309,15 +300,15 @@ func addSecretsFromMountsFile(filePath, mountLabel, containerWorkingDir string, + // root filesystem if /etc/system-fips exists on hosts. + // This enables the container to be FIPS compliant and run openssl in + // FIPS mode as the host is also in FIPS mode. +-func addFIPSModeSecret(mounts *[]rspec.Mount, containerWorkingDir, mountPoint, mountLabel string, uid, gid int) error { ++func addFIPSModeSecret(mounts *[]rspec.Mount, containerWorkingDir, mountPrefix, mountLabel string, uid, gid int) error { + secretsDir := "/run/secrets" + ctrDirOnHost := filepath.Join(containerWorkingDir, secretsDir) + if _, err := os.Stat(ctrDirOnHost); os.IsNotExist(err) { + if err = idtools.MkdirAllAs(ctrDirOnHost, 0755, uid, gid); err != nil { +- return errors.Wrapf(err, "making container directory %q on host failed", ctrDirOnHost) ++ return errors.Wrapf(err, "making container directory on host failed") + } + if err = label.Relabel(ctrDirOnHost, mountLabel, false); err != nil { +- return errors.Wrapf(err, "error applying correct labels on %q", ctrDirOnHost) ++ return errors.Wrap(err, "error applying correct labels") + } + } + fipsFile := filepath.Join(ctrDirOnHost, "system-fips") +@@ -332,7 +323,7 @@ func addFIPSModeSecret(mounts *[]rspec.Mount, containerWorkingDir, mountPoint, m + + if !mountExists(*mounts, secretsDir) { + m := rspec.Mount{ +- Source: ctrDirOnHost, ++ Source: filepath.Join(mountPrefix, secretsDir), + Destination: secretsDir, + Type: "bind", + Options: []string{"bind", "rprivate"}, +@@ -340,25 +331,6 @@ func addFIPSModeSecret(mounts *[]rspec.Mount, containerWorkingDir, mountPoint, m + *mounts = append(*mounts, m) + } + +- srcBackendDir := "/usr/share/crypto-policies/back-ends/FIPS" +- destDir := "/etc/crypto-policies/back-ends" +- srcOnHost := filepath.Join(mountPoint, srcBackendDir) +- if _, err := os.Stat(srcOnHost); err != nil { +- if os.IsNotExist(err) { +- return nil +- } +- return errors.Wrapf(err, "failed to stat FIPS Backend directory %q", ctrDirOnHost) +- } +- +- if !mountExists(*mounts, destDir) { +- m := rspec.Mount{ +- Source: srcOnHost, +- Destination: destDir, +- Type: "bind", +- Options: []string{"bind", "rprivate"}, +- } +- *mounts = append(*mounts, m) +- } + return nil + } + +diff --git a/vendor/github.com/docker/docker/AUTHORS b/vendor/github.com/docker/docker/AUTHORS +index d5b6cbbead48..ad166ba8df6c 100644 +--- a/vendor/github.com/docker/docker/AUTHORS ++++ b/vendor/github.com/docker/docker/AUTHORS +@@ -18,6 +18,7 @@ Abhishek Chanda <abhishek.becs@gmail.com> + Abhishek Sharma <abhishek@asharma.me> + Abin Shahab <ashahab@altiscale.com> + Adam Avilla <aavilla@yp.com> ++Adam Dobrawy <naczelnik@jawnosc.tk> + Adam Eijdenberg <adam.eijdenberg@gmail.com> + Adam Kunk <adam.kunk@tiaa-cref.org> + Adam Miller <admiller@redhat.com> +@@ -113,6 +114,7 @@ Anda Xu <anda.xu@docker.com> + Anders Janmyr <anders@janmyr.com> + Andre Dublin <81dublin@gmail.com> + Andre Granovsky <robotciti@live.com> ++Andrea Denisse Gómez <crypto.andrea@protonmail.ch> + Andrea Luzzardi <aluzzardi@gmail.com> + Andrea Turli <andrea.turli@gmail.com> + Andreas Elvers <andreas@work.de> +@@ -177,8 +179,10 @@ Anusha Ragunathan <anusha.ragunathan@docker.com> + apocas <petermdias@gmail.com> + Arash Deshmeh <adeshmeh@ca.ibm.com> + ArikaChen <eaglesora@gmail.com> ++Arko Dasgupta <arko.dasgupta@docker.com> + Arnaud Lefebvre <a.lefebvre@outlook.fr> + Arnaud Porterie <arnaud.porterie@docker.com> ++Arnaud Rebillout <arnaud.rebillout@collabora.com> + Arthur Barr <arthur.barr@uk.ibm.com> + Arthur Gautier <baloo@gandi.net> + Artur Meyster <arthurfbi@yahoo.com> +@@ -280,6 +284,7 @@ Carl Loa Odin <carlodin@gmail.com> + Carl X. Su <bcbcarl@gmail.com> + Carlo Mion <mion00@gmail.com> + Carlos Alexandro Becker <caarlos0@gmail.com> ++Carlos de Paula <me@carlosedp.com> + Carlos Sanchez <carlos@apache.org> + Carol Fager-Higgins <carol.fager-higgins@docker.com> + Cary <caryhartline@users.noreply.github.com> +@@ -329,6 +334,7 @@ Chris Gibson <chris@chrisg.io> + Chris Khoo <chris.khoo@gmail.com> + Chris McKinnel <chris.mckinnel@tangentlabs.co.uk> + Chris McKinnel <chrismckinnel@gmail.com> ++Chris Price <chris.price@docker.com> + Chris Seto <chriskseto@gmail.com> + Chris Snow <chsnow123@gmail.com> + Chris St. Pierre <chris.a.st.pierre@gmail.com> +@@ -418,12 +424,14 @@ Daniel Norberg <dano@spotify.com> + Daniel Nordberg <dnordberg@gmail.com> + Daniel Robinson <gottagetmac@gmail.com> + Daniel S <dan.streby@gmail.com> ++Daniel Sweet <danieljsweet@icloud.com> + Daniel Von Fange <daniel@leancoder.com> + Daniel Watkins <daniel@daniel-watkins.co.uk> + Daniel X Moore <yahivin@gmail.com> + Daniel YC Lin <dlin.tw@gmail.com> + Daniel Zhang <jmzwcn@gmail.com> + Danny Berger <dpb587@gmail.com> ++Danny Milosavljevic <dannym@scratchpost.org> + Danny Yates <danny@codeaholics.org> + Danyal Khaliq <danyal.khaliq@tenpearls.com> + Darren Coxall <darren@darrencoxall.com> +@@ -517,6 +525,8 @@ Dmitry Smirnov <onlyjob@member.fsf.org> + Dmitry V. Krivenok <krivenok.dmitry@gmail.com> + Dmitry Vorobev <dimahabr@gmail.com> + Dolph Mathews <dolph.mathews@gmail.com> ++Dominic Tubach <dominic.tubach@to.com> ++Dominic Yin <yindongchao@inspur.com> + Dominik Dingel <dingel@linux.vnet.ibm.com> + Dominik Finkbeiner <finkes93@gmail.com> + Dominik Honnef <dominik@honnef.co> +@@ -585,6 +595,7 @@ Erik Weathers <erikdw@gmail.com> + Erno Hopearuoho <erno.hopearuoho@gmail.com> + Erwin van der Koogh <info@erronis.nl> + Ethan Bell <ebgamer29@gmail.com> ++Ethan Mosbaugh <ethan@replicated.com> + Euan Kemp <euan.kemp@coreos.com> + Eugen Krizo <eugen.krizo@gmail.com> + Eugene Yakubovich <eugene.yakubovich@coreos.com> +@@ -621,6 +632,7 @@ Fareed Dudhia <fareeddudhia@googlemail.com> + Fathi Boudra <fathi.boudra@linaro.org> + Federico Gimenez <fgimenez@coit.es> + Felipe Oliveira <felipeweb.programador@gmail.com> ++Felipe Ruhland <felipe.ruhland@gmail.com> + Felix Abecassis <fabecassis@nvidia.com> + Felix Geisendörfer <felix@debuggable.com> + Felix Hupfeld <felix@quobyte.com> +@@ -655,6 +667,7 @@ Frank Groeneveld <frank@ivaldi.nl> + Frank Herrmann <fgh@4gh.tv> + Frank Macreery <frank@macreery.com> + Frank Rosquin <frank.rosquin+github@gmail.com> ++frankyang <yyb196@gmail.com> + Fred Lifton <fred.lifton@docker.com> + Frederick F. Kautz IV <fkautz@redhat.com> + Frederik Loeffert <frederik@zitrusmedia.de> +@@ -702,6 +715,7 @@ Gleb M Borisov <borisov.gleb@gmail.com> + Glyn Normington <gnormington@gopivotal.com> + GoBella <caili_welcome@163.com> + Goffert van Gool <goffert@phusion.nl> ++Goldwyn Rodrigues <rgoldwyn@suse.com> + Gopikannan Venugopalsamy <gopikannan.venugopalsamy@gmail.com> + Gosuke Miyashita <gosukenator@gmail.com> + Gou Rao <gou@portworx.com> +@@ -725,6 +739,7 @@ Guruprasad <lgp171188@gmail.com> + Gustav Sinder <gustav.sinder@gmail.com> + gwx296173 <gaojing3@huawei.com> + Günter Zöchbauer <guenter@gzoechbauer.com> ++Haichao Yang <yang.haichao@zte.com.cn> + haikuoliu <haikuo@amazon.com> + Hakan Özler <hakan.ozler@kodcu.com> + Hamish Hutchings <moredhel@aoeu.me> +@@ -733,6 +748,7 @@ Hans Rødtang <hansrodtang@gmail.com> + Hao Shu Wei <haosw@cn.ibm.com> + Hao Zhang <21521210@zju.edu.cn> + Harald Albers <github@albersweb.de> ++Harald Niesche <harald@niesche.de> + Harley Laue <losinggeneration@gmail.com> + Harold Cooper <hrldcpr@gmail.com> + Harrison Turton <harrisonturton@gmail.com> +@@ -752,9 +768,11 @@ Hobofan <goisser94@gmail.com> + Hollie Teal <hollie@docker.com> + Hong Xu <hong@topbug.net> + Hongbin Lu <hongbin034@gmail.com> ++Hongxu Jia <hongxu.jia@windriver.com> + hsinko <21551195@zju.edu.cn> + Hu Keping <hukeping@huawei.com> + Hu Tao <hutao@cn.fujitsu.com> ++HuanHuan Ye <logindaveye@gmail.com> + Huanzhong Zhang <zhanghuanzhong90@gmail.com> + Huayi Zhang <irachex@gmail.com> + Hugo Duncan <hugo@hugoduncan.org> +@@ -898,6 +916,7 @@ Jie Luo <luo612@zju.edu.cn> + Jihyun Hwang <jhhwang@telcoware.com> + Jilles Oldenbeuving <ojilles@gmail.com> + Jim Alateras <jima@comware.com.au> ++Jim Ehrismann <jim.ehrismann@docker.com> + Jim Galasyn <jim.galasyn@docker.com> + Jim Minter <jminter@redhat.com> + Jim Perrin <jperrin@centos.org> +@@ -935,7 +954,7 @@ John Feminella <jxf@jxf.me> + John Gardiner Myers <jgmyers@proofpoint.com> + John Gossman <johngos@microsoft.com> + John Harris <john@johnharris.io> +-John Howard (VM) <John.Howard@microsoft.com> ++John Howard <github@lowenna.com> + John Laswell <john.n.laswell@gmail.com> + John Maguire <jmaguire@duosecurity.com> + John Mulhausen <john@docker.com> +@@ -949,6 +968,7 @@ John Willis <john.willis@docker.com> + Jon Johnson <jonjohnson@google.com> + Jon Surrell <jon.surrell@gmail.com> + Jon Wedaman <jweede@gmail.com> ++Jonas Dohse <jonas@dohse.ch> + Jonas Pfenniger <jonas@pfenniger.name> + Jonathan A. Schweder <jonathanschweder@gmail.com> + Jonathan A. Sternberg <jonathansternberg@gmail.com> +@@ -1002,6 +1022,7 @@ Julio Montes <imc.coder@gmail.com> + Jun-Ru Chang <jrjang@gmail.com> + Jussi Nummelin <jussi.nummelin@gmail.com> + Justas Brazauskas <brazauskasjustas@gmail.com> ++Justen Martin <jmart@the-coder.com> + Justin Cormack <justin.cormack@docker.com> + Justin Force <justin.force@gmail.com> + Justin Menga <justin.menga@gmail.com> +@@ -1010,6 +1031,7 @@ Justin Simonelis <justin.p.simonelis@gmail.com> + Justin Terry <juterry@microsoft.com> + Justyn Temme <justyntemme@gmail.com> + Jyrki Puttonen <jyrkiput@gmail.com> ++Jérémy Leherpeur <amenophis@leherpeur.net> + Jérôme Petazzoni <jerome.petazzoni@docker.com> + Jörg Thalheim <joerg@higgsboson.tk> + K. Heller <pestophagous@gmail.com> +@@ -1047,6 +1069,7 @@ Ken Reese <krrgithub@gmail.com> + Kenfe-Mickaël Laventure <mickael.laventure@gmail.com> + Kenjiro Nakayama <nakayamakenjiro@gmail.com> + Kent Johnson <kentoj@gmail.com> ++Kenta Tada <Kenta.Tada@sony.com> + Kevin "qwazerty" Houdebert <kevin.houdebert@gmail.com> + Kevin Burke <kev@inburke.com> + Kevin Clark <kevin.clark@gmail.com> +@@ -1057,6 +1080,7 @@ Kevin Kern <kaiwentan@harmonycloud.cn> + Kevin Menard <kevin@nirvdrum.com> + Kevin Meredith <kevin.m.meredith@gmail.com> + Kevin P. Kucharczyk <kevinkucharczyk@gmail.com> ++Kevin Parsons <kevpar@microsoft.com> + Kevin Richardson <kevin@kevinrichardson.co> + Kevin Shi <kshi@andrew.cmu.edu> + Kevin Wallace <kevin@pentabarf.net> +@@ -1147,6 +1171,7 @@ longliqiang88 <394564827@qq.com> + Lorenz Leutgeb <lorenz.leutgeb@gmail.com> + Lorenzo Fontana <fontanalorenz@gmail.com> + Lotus Fenn <fenn.lotus@gmail.com> ++Louis Delossantos <ldelossa.ld@gmail.com> + Louis Opter <kalessin@kalessin.fr> + Luca Favatella <luca.favatella@erlang-solutions.com> + Luca Marturana <lucamarturana@gmail.com> +@@ -1159,12 +1184,14 @@ Lucas Silvestre <lukas.silvestre@gmail.com> + Luciano Mores <leslau@gmail.com> + Luis Martínez de Bartolomé Izquierdo <lmartinez@biicode.com> + Luiz Svoboda <luizek@gmail.com> ++Lukas Heeren <lukas-heeren@hotmail.com> + Lukas Waslowski <cr7pt0gr4ph7@gmail.com> + lukaspustina <lukas.pustina@centerdevice.com> + Lukasz Zajaczkowski <Lukasz.Zajaczkowski@ts.fujitsu.com> + Luke Marsden <me@lukemarsden.net> + Lyn <energylyn@zju.edu.cn> + Lynda O'Leary <lyndaoleary29@gmail.com> ++lzhfromutsc <lzhfromustc@gmail.com> + Lénaïc Huard <lhuard@amadeus.com> + Ma Müller <mueller-ma@users.noreply.github.com> + Ma Shimiao <mashimiao.fnst@cn.fujitsu.com> +@@ -1298,6 +1325,7 @@ Michael Stapelberg <michael+gh@stapelberg.de> + Michael Steinert <mike.steinert@gmail.com> + Michael Thies <michaelthies78@gmail.com> + Michael West <mwest@mdsol.com> ++Michael Zhao <michael.zhao@arm.com> + Michal Fojtik <mfojtik@redhat.com> + Michal Gebauer <mishak@mishak.net> + Michal Jemala <michal.jemala@gmail.com> +@@ -1382,6 +1410,7 @@ Neyazul Haque <nuhaque@gmail.com> + Nghia Tran <nghia@google.com> + Niall O'Higgins <niallo@unworkable.org> + Nicholas E. Rabenau <nerab@gmx.at> ++Nick Adcock <nick.adcock@docker.com> + Nick DeCoursin <n.decoursin@foodpanda.com> + Nick Irvine <nfirvine@nfirvine.com> + Nick Neisen <nwneisen@gmail.com> +@@ -1420,6 +1449,7 @@ Nuutti Kotivuori <naked@iki.fi> + nzwsch <hi@nzwsch.com> + O.S. Tezer <ostezer@gmail.com> + objectified <objectified@gmail.com> ++Odin Ugedal <odin@ugedal.com> + Oguz Bilgic <fisyonet@gmail.com> + Oh Jinkyun <tintypemolly@gmail.com> + Ohad Schneider <ohadschn@users.noreply.github.com> +@@ -1430,6 +1460,7 @@ Oliver Reason <oli@overrateddev.co> + Olivier Gambier <dmp42@users.noreply.github.com> + Olle Jonsson <olle.jonsson@gmail.com> + Olli Janatuinen <olli.janatuinen@gmail.com> ++Olly Pomeroy <oppomeroy@gmail.com> + Omri Shiv <Omri.Shiv@teradata.com> + Oriol Francès <oriolfa@gmail.com> + Oskar Niburski <oskarniburski@gmail.com> +@@ -1439,6 +1470,7 @@ Ovidio Mallo <ovidio.mallo@gmail.com> + Panagiotis Moustafellos <pmoust@elastic.co> + Paolo G. Giarrusso <p.giarrusso@gmail.com> + Pascal <pascalgn@users.noreply.github.com> ++Pascal Bach <pascal.bach@siemens.com> + Pascal Borreli <pascal@borreli.com> + Pascal Hartig <phartig@rdrei.net> + Patrick Böänziger <patrick.baenziger@bsi-software.com> +@@ -1463,6 +1495,7 @@ Paul Nasrat <pnasrat@gmail.com> + Paul Weaver <pauweave@cisco.com> + Paulo Ribeiro <paigr.io@gmail.com> + Pavel Lobashov <ShockwaveNN@gmail.com> ++Pavel Matěja <pavel@verotel.cz> + Pavel Pletenev <cpp.create@gmail.com> + Pavel Pospisil <pospispa@gmail.com> + Pavel Sutyrin <pavel.sutyrin@gmail.com> +@@ -1574,6 +1607,7 @@ Riku Voipio <riku.voipio@linaro.org> + Riley Guerin <rileytg.dev@gmail.com> + Ritesh H Shukla <sritesh@vmware.com> + Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com> ++Rob Gulewich <rgulewich@netflix.com> + Rob Vesse <rvesse@dotnetrdf.org> + Robert Bachmann <rb@robertbachmann.at> + Robert Bittle <guywithnose@gmail.com> +@@ -1582,11 +1616,13 @@ Robert Schneider <mail@shakeme.info> + Robert Stern <lexandro2000@gmail.com> + Robert Terhaar <rterhaar@atlanticdynamic.com> + Robert Wallis <smilingrob@gmail.com> ++Robert Wang <robert@arctic.tw> + Roberto G. Hashioka <roberto.hashioka@docker.com> + Roberto Muñoz Fernández <robertomf@gmail.com> + Robin Naundorf <r.naundorf@fh-muenster.de> + Robin Schneider <ypid@riseup.net> + Robin Speekenbrink <robin@kingsquare.nl> ++Robin Thoni <robin@rthoni.com> + robpc <rpcann@gmail.com> + Rodolfo Carvalho <rhcarvalho@gmail.com> + Rodrigo Vaz <rodrigo.vaz@gmail.com> +@@ -1620,6 +1656,7 @@ Rozhnov Alexandr <nox73@ya.ru> + Rudolph Gottesheim <r.gottesheim@loot.at> + Rui Cao <ruicao@alauda.io> + Rui Lopes <rgl@ruilopes.com> ++Ruilin Li <liruilin4@huawei.com> + Runshen Zhu <runshen.zhu@gmail.com> + Russ Magee <rmagee@gmail.com> + Ryan Abrams <rdabrams@gmail.com> +@@ -1658,6 +1695,7 @@ Sam J Sharpe <sam.sharpe@digital.cabinet-office.gov.uk> + Sam Neirinck <sam@samneirinck.com> + Sam Reis <sreis@atlassian.com> + Sam Rijs <srijs@airpost.net> ++Sam Whited <sam@samwhited.com> + Sambuddha Basu <sambuddhabasu1@gmail.com> + Sami Wagiaalla <swagiaal@redhat.com> + Samuel Andaya <samuel@andaya.net> +@@ -1672,6 +1710,7 @@ sapphiredev <se.imas.kr@gmail.com> + Sargun Dhillon <sargun@netflix.com> + Sascha Andres <sascha.andres@outlook.com> + Sascha Grunert <sgrunert@suse.com> ++SataQiu <qiushida@beyondcent.com> + Satnam Singh <satnam@raintown.org> + Satoshi Amemiya <satoshi_amemiya@voyagegroup.com> + Satoshi Tagomori <tagomoris@gmail.com> +@@ -1720,6 +1759,7 @@ Shijun Qin <qinshijun16@mails.ucas.ac.cn> + Shishir Mahajan <shishir.mahajan@redhat.com> + Shoubhik Bose <sbose78@gmail.com> + Shourya Sarcar <shourya.sarcar@gmail.com> ++Shu-Wai Chow <shu-wai.chow@seattlechildrens.org> + shuai-z <zs.broccoli@gmail.com> + Shukui Yang <yangshukui@huawei.com> + Shuwei Hao <haosw@cn.ibm.com> +@@ -1730,6 +1770,7 @@ Silas Sewell <silas@sewell.org> + Silvan Jegen <s.jegen@gmail.com> + Simão Reis <smnrsti@gmail.com> + Simei He <hesimei@zju.edu.cn> ++Simon Barendse <simon.barendse@gmail.com> + Simon Eskildsen <sirup@sirupsen.com> + Simon Ferquel <simon.ferquel@docker.com> + Simon Leinen <simon.leinen@gmail.com> +@@ -1738,6 +1779,7 @@ Simon Taranto <simon.taranto@gmail.com> + Simon Vikstrom <pullreq@devsn.se> + Sindhu S <sindhus@live.in> + Sjoerd Langkemper <sjoerd-github@linuxonly.nl> ++skanehira <sho19921005@gmail.com> + Solganik Alexander <solganik@gmail.com> + Solomon Hykes <solomon@docker.com> + Song Gao <song@gao.io> +@@ -1749,6 +1791,7 @@ Sridatta Thatipamala <sthatipamala@gmail.com> + Sridhar Ratnakumar <sridharr@activestate.com> + Srini Brahmaroutu <srbrahma@us.ibm.com> + Srinivasan Srivatsan <srinivasan.srivatsan@hpe.com> ++Staf Wagemakers <staf@wagemakers.be> + Stanislav Bondarenko <stanislav.bondarenko@gmail.com> + Steeve Morin <steeve.morin@gmail.com> + Stefan Berger <stefanb@linux.vnet.ibm.com> +@@ -1759,6 +1802,7 @@ Stefan Scherer <stefan.scherer@docker.com> + Stefan Staudenmeyer <doerte@instana.com> + Stefan Weil <sw@weilnetz.de> + Stephan Spindler <shutefan@gmail.com> ++Stephen Benjamin <stephen@redhat.com> + Stephen Crosby <stevecrozz@gmail.com> + Stephen Day <stephen.day@docker.com> + Stephen Drake <stephen@xenolith.net> +@@ -1775,10 +1819,12 @@ Steven Iveson <sjiveson@outlook.com> + Steven Merrill <steven.merrill@gmail.com> + Steven Richards <steven@axiomzen.co> + Steven Taylor <steven.taylor@me.com> ++Stig Larsson <stig@larsson.dev> + Subhajit Ghosh <isubuz.g@gmail.com> + Sujith Haridasan <sujith.h@gmail.com> + Sun Gengze <690388648@qq.com> + Sun Jianbo <wonderflow.sun@gmail.com> ++Sune Keller <sune.keller@gmail.com> + Sunny Gogoi <indiasuny000@gmail.com> + Suryakumar Sudar <surya.trunks@gmail.com> + Sven Dowideit <SvenDowideit@home.org.au> +@@ -1829,6 +1875,7 @@ Tianyi Wang <capkurmagati@gmail.com> + Tibor Vass <teabee89@gmail.com> + Tiffany Jernigan <tiffany.f.j@gmail.com> + Tiffany Low <tiffany@box.com> ++Tim <elatllat@gmail.com> + Tim Bart <tim@fewagainstmany.com> + Tim Bosse <taim@bosboot.org> + Tim Dettrick <t.dettrick@uq.edu.au> +@@ -1914,6 +1961,7 @@ Victor Palma <palma.victor@gmail.com> + Victor Vieux <victor.vieux@docker.com> + Victoria Bialas <victoria.bialas@docker.com> + Vijaya Kumar K <vijayak@caviumnetworks.com> ++Vikram bir Singh <vikrambir.singh@docker.com> + Viktor Stanchev <me@viktorstanchev.com> + Viktor Vojnovski <viktor.vojnovski@amadeus.com> + VinayRaghavanKS <raghavan.vinay@gmail.com> +@@ -1971,6 +2019,7 @@ Wenyu You <21551128@zju.edu.cn> + Wenzhi Liang <wenzhi.liang@gmail.com> + Wes Morgan <cap10morgan@gmail.com> + Wewang Xiaorenfine <wang.xiaoren@zte.com.cn> ++Wiktor Kwapisiewicz <wiktor@metacode.biz> + Will Dietz <w@wdtz.org> + Will Rouesnel <w.rouesnel@gmail.com> + Will Weaver <monkey@buildingbananas.com> +@@ -1998,6 +2047,7 @@ xichengliudui <1693291525@qq.com> + xiekeyang <xiekeyang@huawei.com> + Ximo Guanter Gonzálbez <joaquin.guantergonzalbez@telefonica.com> + Xinbo Weng <xihuanbo_0521@zju.edu.cn> ++Xinfeng Liu <xinfeng.liu@gmail.com> + Xinzi Zhou <imdreamrunner@gmail.com> + Xiuming Chen <cc@cxm.cc> + Xuecong Liao <satorulogic@gmail.com> +@@ -2012,6 +2062,7 @@ Yang Pengfei <yangpengfei4@huawei.com> + yangchenliang <yangchenliang@huawei.com> + Yanqiang Miao <miao.yanqiang@zte.com.cn> + Yao Zaiyong <yaozaiyong@hotmail.com> ++Yash Murty <yashmurty@gmail.com> + Yassine Tijani <yasstij11@gmail.com> + Yasunori Mahata <nori@mahata.net> + Yazhong Liu <yorkiefixer@gmail.com> +@@ -2026,6 +2077,7 @@ Yongxin Li <yxli@alauda.io> + Yongzhi Pan <panyongzhi@gmail.com> + Yosef Fertel <yfertel@gmail.com> + You-Sheng Yang (楊有勝) <vicamo@gmail.com> ++youcai <omegacoleman@gmail.com> + Youcef YEKHLEF <yyekhlef@gmail.com> + Yu Changchun <yuchangchun1@huawei.com> + Yu Chengxia <yuchengxia@huawei.com> +@@ -2062,6 +2114,7 @@ Zhoulin Xie <zhoulin.xie@daocloud.io> + Zhu Guihua <zhugh.fnst@cn.fujitsu.com> + Zhu Kunjia <zhu.kunjia@zte.com.cn> + Zhuoyun Wei <wzyboy@wzyboy.org> ++Ziheng Liu <lzhfromustc@gmail.com> + Zilin Du <zilin.du@gmail.com> + zimbatm <zimbatm@zimbatm.com> + Ziming Dong <bnudzm@foxmail.com> +@@ -2070,7 +2123,7 @@ zmarouf <zeid.marouf@gmail.com> + Zoltan Tombol <zoltan.tombol@gmail.com> + Zou Yu <zouyu7@huawei.com> + zqh <zqhxuyuan@gmail.com> +-Zuhayr Elahi <elahi.zuhayr@gmail.com> ++Zuhayr Elahi <zuhayr.elahi@docker.com> + Zunayed Ali <zunayed@gmail.com> + Álex González <agonzalezro@gmail.com> + Álvaro Lázaro <alvaro.lazaro.g@gmail.com> +diff --git a/vendor/github.com/docker/docker/api/swagger.yaml b/vendor/github.com/docker/docker/api/swagger.yaml +index cc2451f033a4..0698bba526d6 100644 +--- a/vendor/github.com/docker/docker/api/swagger.yaml ++++ b/vendor/github.com/docker/docker/api/swagger.yaml +@@ -3369,6 +3369,27 @@ definitions: + format: "dateTime" + Message: + type: "string" ++ ServiceStatus: ++ description: | ++ The status of the service's tasks. Provided only when requested as ++ part of a ServiceList operation. ++ type: "object" ++ properties: ++ RunningTasks: ++ description: "The number of tasks for the service currently in the Running state" ++ type: "integer" ++ format: "uint64" ++ example: 7 ++ DesiredTasks: ++ description: | ++ The number of tasks for the service desired to be running. ++ For replicated services, this is the replica count from the ++ service spec. For global services, this is computed by taking ++ count of all tasks for the service with a Desired State other ++ than Shutdown. ++ type: "integer" ++ format: "uint64" ++ example: 10 + example: + ID: "9mnpnzenvg8p8tdbtq4wvbkcz" + Version: +@@ -4924,6 +4945,8 @@ paths: + type: "integer" + Driver: + type: "string" ++ Platform: ++ type: "string" + MountLabel: + type: "string" + ProcessLabel: +@@ -9316,6 +9339,10 @@ paths: + - `label=<service label>` + - `mode=["replicated"|"global"]` + - `name=<service name>` ++ - name: "status" ++ in: "query" ++ type: "boolean" ++ description: "Include service status, with count of running and desired tasks" + tags: ["Service"] + /services/create: + post: +@@ -10414,9 +10441,6 @@ paths: + description: | + Start a new interactive session with a server. Session allows server to call back to the client for advanced capabilities. + +- > **Note**: This endpoint is *experimental* and only available if the daemon is started with experimental +- > features enabled. The specifications for this endpoint may still change in a future version of the API. +- + ### Hijacking + + This endpoint hijacks the HTTP connection to HTTP2 transport that allows the client to expose gPRC services on that connection. +@@ -10450,4 +10474,4 @@ paths: + description: "server error" + schema: + $ref: "#/definitions/ErrorResponse" +- tags: ["Session (experimental)"] ++ tags: ["Session"] +diff --git a/vendor/github.com/docker/docker/api/types/client.go b/vendor/github.com/docker/docker/api/types/client.go +index 4b9f50282b1f..8363ed736e3a 100644 +--- a/vendor/github.com/docker/docker/api/types/client.go ++++ b/vendor/github.com/docker/docker/api/types/client.go +@@ -363,6 +363,10 @@ type ServiceUpdateOptions struct { + // ServiceListOptions holds parameters to list services with. + type ServiceListOptions struct { + Filters filters.Args ++ ++ // Status indicates whether the server should include the service task ++ // count of running and desired tasks. ++ Status bool + } + + // ServiceInspectOptions holds parameters related to the "service inspect" +diff --git a/vendor/github.com/docker/docker/api/types/filters/parse.go b/vendor/github.com/docker/docker/api/types/filters/parse.go +index 2e24e769c10e..cd7ad92e79af 100644 +--- a/vendor/github.com/docker/docker/api/types/filters/parse.go ++++ b/vendor/github.com/docker/docker/api/types/filters/parse.go +@@ -36,6 +36,15 @@ func NewArgs(initialArgs ...KeyValuePair) Args { + return args + } + ++// Keys returns all the keys in list of Args ++func (args Args) Keys() []string { ++ keys := make([]string, 0, len(args.fields)) ++ for k := range args.fields { ++ keys = append(keys, k) ++ } ++ return keys ++} ++ + // MarshalJSON returns a JSON byte representation of the Args + func (args Args) MarshalJSON() ([]byte, error) { + if len(args.fields) == 0 { +diff --git a/vendor/github.com/docker/docker/api/types/swarm/service.go b/vendor/github.com/docker/docker/api/types/swarm/service.go +index abf192e75941..6b59711ab25a 100644 +--- a/vendor/github.com/docker/docker/api/types/swarm/service.go ++++ b/vendor/github.com/docker/docker/api/types/swarm/service.go +@@ -10,6 +10,13 @@ type Service struct { + PreviousSpec *ServiceSpec `json:",omitempty"` + Endpoint Endpoint `json:",omitempty"` + UpdateStatus *UpdateStatus `json:",omitempty"` ++ ++ // ServiceStatus is an optional, extra field indicating the number of ++ // desired and running tasks. It is provided primarily as a shortcut to ++ // calculating these values client-side, which otherwise would require ++ // listing all tasks for a service, an operation that could be ++ // computation and network expensive. ++ ServiceStatus *ServiceStatus `json:",omitempty"` + } + + // ServiceSpec represents the spec of a service. +@@ -122,3 +129,17 @@ type UpdateConfig struct { + // started, or the new task is started before the old task is shut down. + Order string + } ++ ++// ServiceStatus represents the number of running tasks in a service and the ++// number of tasks desired to be running. ++type ServiceStatus struct { ++ // RunningTasks is the number of tasks for the service actually in the ++ // Running state ++ RunningTasks uint64 ++ ++ // DesiredTasks is the number of tasks desired to be running by the ++ // service. For replicated services, this is the replica count. For global ++ // services, this is computed by taking the number of tasks with desired ++ // state of not-Shutdown. ++ DesiredTasks uint64 ++} +diff --git a/vendor/github.com/docker/docker/client/container_list.go b/vendor/github.com/docker/docker/client/container_list.go +index c099d80e2a24..a973de597fdf 100644 +--- a/vendor/github.com/docker/docker/client/container_list.go ++++ b/vendor/github.com/docker/docker/client/container_list.go +@@ -35,7 +35,7 @@ func (cli *Client) ContainerList(ctx context.Context, options types.ContainerLis + } + + if options.Filters.Len() > 0 { +- //lint:ignore SA1019 for old code ++ //nolint:staticcheck // ignore SA1019 for old code + filterJSON, err := filters.ToParamWithVersion(cli.version, options.Filters) + + if err != nil { +diff --git a/vendor/github.com/docker/docker/client/events.go b/vendor/github.com/docker/docker/client/events.go +index f347cadf1450..f0dc9d9e12f3 100644 +--- a/vendor/github.com/docker/docker/client/events.go ++++ b/vendor/github.com/docker/docker/client/events.go +@@ -90,7 +90,7 @@ func buildEventsQueryParams(cliVersion string, options types.EventsOptions) (url + } + + if options.Filters.Len() > 0 { +- //lint:ignore SA1019 for old code ++ //nolint:staticcheck // ignore SA1019 for old code + filterJSON, err := filters.ToParamWithVersion(cliVersion, options.Filters) + if err != nil { + return nil, err +diff --git a/vendor/github.com/docker/docker/client/hijack.go b/vendor/github.com/docker/docker/client/hijack.go +index e77084af64d7..e1dc49ef0f66 100644 +--- a/vendor/github.com/docker/docker/client/hijack.go ++++ b/vendor/github.com/docker/docker/client/hijack.go +@@ -24,7 +24,7 @@ func (cli *Client) postHijacked(ctx context.Context, path string, query url.Valu + } + + apiPath := cli.getAPIPath(ctx, path, query) +- req, err := http.NewRequest("POST", apiPath, bodyEncoded) ++ req, err := http.NewRequest(http.MethodPost, apiPath, bodyEncoded) + if err != nil { + return types.HijackedResponse{}, err + } +@@ -40,7 +40,7 @@ func (cli *Client) postHijacked(ctx context.Context, path string, query url.Valu + + // DialHijack returns a hijacked connection with negotiated protocol proto. + func (cli *Client) DialHijack(ctx context.Context, url, proto string, meta map[string][]string) (net.Conn, error) { +- req, err := http.NewRequest("POST", url, nil) ++ req, err := http.NewRequest(http.MethodPost, url, nil) + if err != nil { + return nil, err + } +@@ -88,7 +88,7 @@ func (cli *Client) setupHijackConn(ctx context.Context, req *http.Request, proto + // Server hijacks the connection, error 'connection closed' expected + resp, err := clientconn.Do(req) + +- //lint:ignore SA1019 for connecting to old (pre go1.8) daemons ++ //nolint:staticcheck // ignore SA1019 for connecting to old (pre go1.8) daemons + if err != httputil.ErrPersistEOF { + if err != nil { + return nil, err +diff --git a/vendor/github.com/docker/docker/client/image_list.go b/vendor/github.com/docker/docker/client/image_list.go +index a5bc4b095f7b..a4d7505094cd 100644 +--- a/vendor/github.com/docker/docker/client/image_list.go ++++ b/vendor/github.com/docker/docker/client/image_list.go +@@ -24,7 +24,7 @@ func (cli *Client) ImageList(ctx context.Context, options types.ImageListOptions + } + } + if optionFilters.Len() > 0 { +- //lint:ignore SA1019 for old code ++ //nolint:staticcheck // ignore SA1019 for old code + filterJSON, err := filters.ToParamWithVersion(cli.version, optionFilters) + if err != nil { + return images, err +diff --git a/vendor/github.com/docker/docker/client/network_list.go b/vendor/github.com/docker/docker/client/network_list.go +index 8ca7eb6128e6..ed2acb55711d 100644 +--- a/vendor/github.com/docker/docker/client/network_list.go ++++ b/vendor/github.com/docker/docker/client/network_list.go +@@ -13,7 +13,7 @@ import ( + func (cli *Client) NetworkList(ctx context.Context, options types.NetworkListOptions) ([]types.NetworkResource, error) { + query := url.Values{} + if options.Filters.Len() > 0 { +- //lint:ignore SA1019 for old code ++ //nolint:staticcheck // ignore SA1019 for old code + filterJSON, err := filters.ToParamWithVersion(cli.version, options.Filters) + if err != nil { + return nil, err +diff --git a/vendor/github.com/docker/docker/client/ping.go b/vendor/github.com/docker/docker/client/ping.go +index 90f39ec14f92..1cfc48a25d27 100644 +--- a/vendor/github.com/docker/docker/client/ping.go ++++ b/vendor/github.com/docker/docker/client/ping.go +@@ -19,7 +19,7 @@ func (cli *Client) Ping(ctx context.Context) (types.Ping, error) { + // Using cli.buildRequest() + cli.doRequest() instead of cli.sendRequest() + // because ping requests are used during API version negotiation, so we want + // to hit the non-versioned /_ping endpoint, not /v1.xx/_ping +- req, err := cli.buildRequest("HEAD", path.Join(cli.basePath, "/_ping"), nil, nil) ++ req, err := cli.buildRequest(http.MethodHead, path.Join(cli.basePath, "/_ping"), nil, nil) + if err != nil { + return ping, err + } +@@ -35,7 +35,7 @@ func (cli *Client) Ping(ctx context.Context) (types.Ping, error) { + return ping, err + } + +- req, err = cli.buildRequest("GET", path.Join(cli.basePath, "/_ping"), nil, nil) ++ req, err = cli.buildRequest(http.MethodGet, path.Join(cli.basePath, "/_ping"), nil, nil) + if err != nil { + return ping, err + } +diff --git a/vendor/github.com/docker/docker/client/plugin_list.go b/vendor/github.com/docker/docker/client/plugin_list.go +index a51c930e6d53..cf1935e2f5ee 100644 +--- a/vendor/github.com/docker/docker/client/plugin_list.go ++++ b/vendor/github.com/docker/docker/client/plugin_list.go +@@ -15,7 +15,7 @@ func (cli *Client) PluginList(ctx context.Context, filter filters.Args) (types.P + query := url.Values{} + + if filter.Len() > 0 { +- //lint:ignore SA1019 for old code ++ //nolint:staticcheck // ignore SA1019 for old code + filterJSON, err := filters.ToParamWithVersion(cli.version, filter) + if err != nil { + return plugins, err +diff --git a/vendor/github.com/docker/docker/client/request.go b/vendor/github.com/docker/docker/client/request.go +index 144c4163695d..ee15a46ed09b 100644 +--- a/vendor/github.com/docker/docker/client/request.go ++++ b/vendor/github.com/docker/docker/client/request.go +@@ -29,12 +29,12 @@ type serverResponse struct { + + // head sends an http request to the docker API using the method HEAD. + func (cli *Client) head(ctx context.Context, path string, query url.Values, headers map[string][]string) (serverResponse, error) { +- return cli.sendRequest(ctx, "HEAD", path, query, nil, headers) ++ return cli.sendRequest(ctx, http.MethodHead, path, query, nil, headers) + } + + // get sends an http request to the docker API using the method GET with a specific Go context. + func (cli *Client) get(ctx context.Context, path string, query url.Values, headers map[string][]string) (serverResponse, error) { +- return cli.sendRequest(ctx, "GET", path, query, nil, headers) ++ return cli.sendRequest(ctx, http.MethodGet, path, query, nil, headers) + } + + // post sends an http request to the docker API using the method POST with a specific Go context. +@@ -43,21 +43,21 @@ func (cli *Client) post(ctx context.Context, path string, query url.Values, obj + if err != nil { + return serverResponse{}, err + } +- return cli.sendRequest(ctx, "POST", path, query, body, headers) ++ return cli.sendRequest(ctx, http.MethodPost, path, query, body, headers) + } + + func (cli *Client) postRaw(ctx context.Context, path string, query url.Values, body io.Reader, headers map[string][]string) (serverResponse, error) { +- return cli.sendRequest(ctx, "POST", path, query, body, headers) ++ return cli.sendRequest(ctx, http.MethodPost, path, query, body, headers) + } + + // putRaw sends an http request to the docker API using the method PUT. + func (cli *Client) putRaw(ctx context.Context, path string, query url.Values, body io.Reader, headers map[string][]string) (serverResponse, error) { +- return cli.sendRequest(ctx, "PUT", path, query, body, headers) ++ return cli.sendRequest(ctx, http.MethodPut, path, query, body, headers) + } + + // delete sends an http request to the docker API using the method DELETE. + func (cli *Client) delete(ctx context.Context, path string, query url.Values, headers map[string][]string) (serverResponse, error) { +- return cli.sendRequest(ctx, "DELETE", path, query, nil, headers) ++ return cli.sendRequest(ctx, http.MethodDelete, path, query, nil, headers) + } + + type headers map[string][]string +@@ -79,7 +79,7 @@ func encodeBody(obj interface{}, headers headers) (io.Reader, headers, error) { + } + + func (cli *Client) buildRequest(method, path string, body io.Reader, headers headers) (*http.Request, error) { +- expectedPayload := (method == "POST" || method == "PUT") ++ expectedPayload := (method == http.MethodPost || method == http.MethodPut) + if expectedPayload && body == nil { + body = bytes.NewReader([]byte{}) + } +diff --git a/vendor/github.com/docker/docker/client/service_list.go b/vendor/github.com/docker/docker/client/service_list.go +index 64d35e715982..f97ec75a5cb7 100644 +--- a/vendor/github.com/docker/docker/client/service_list.go ++++ b/vendor/github.com/docker/docker/client/service_list.go +@@ -23,6 +23,10 @@ func (cli *Client) ServiceList(ctx context.Context, options types.ServiceListOpt + query.Set("filters", filterJSON) + } + ++ if options.Status { ++ query.Set("status", "true") ++ } ++ + resp, err := cli.get(ctx, "/services", query, nil) + defer ensureReaderClosed(resp) + if err != nil { +diff --git a/vendor/github.com/docker/docker/client/volume_list.go b/vendor/github.com/docker/docker/client/volume_list.go +index d68fc2b9860d..942498dde2c7 100644 +--- a/vendor/github.com/docker/docker/client/volume_list.go ++++ b/vendor/github.com/docker/docker/client/volume_list.go +@@ -15,7 +15,7 @@ func (cli *Client) VolumeList(ctx context.Context, filter filters.Args) (volumet + query := url.Values{} + + if filter.Len() > 0 { +- //lint:ignore SA1019 for old code ++ //nolint:staticcheck // ignore SA1019 for old code + filterJSON, err := filters.ToParamWithVersion(cli.version, filter) + if err != nil { + return volumes, err +diff --git a/vendor/github.com/docker/docker/pkg/homedir/homedir_unix.go b/vendor/github.com/docker/docker/pkg/homedir/homedir_unix.go +index 284e8be7ca83..441bd727b602 100644 +--- a/vendor/github.com/docker/docker/pkg/homedir/homedir_unix.go ++++ b/vendor/github.com/docker/docker/pkg/homedir/homedir_unix.go +@@ -16,8 +16,11 @@ func Key() string { + // Get returns the home directory of the current user with the help of + // environment variables depending on the target operating system. + // Returned path should be used with "path/filepath" to form new paths. +-// If compiling statically, ensure the osusergo build tag is used. +-// If needing to do nss lookups, do not compile statically. ++// ++// If linking statically with cgo enabled against glibc, ensure the ++// osusergo build tag is used. ++// ++// If needing to do nss lookups, do not disable cgo or set osusergo. + func Get() string { + home := os.Getenv(Key()) + if home == "" { +diff --git a/vendor/github.com/docker/docker/pkg/jsonmessage/jsonmessage.go b/vendor/github.com/docker/docker/pkg/jsonmessage/jsonmessage.go +index 6d66408984ff..814993ec36df 100644 +--- a/vendor/github.com/docker/docker/pkg/jsonmessage/jsonmessage.go ++++ b/vendor/github.com/docker/docker/pkg/jsonmessage/jsonmessage.go +@@ -139,13 +139,13 @@ type JSONMessage struct { + Stream string `json:"stream,omitempty"` + Status string `json:"status,omitempty"` + Progress *JSONProgress `json:"progressDetail,omitempty"` +- ProgressMessage string `json:"progress,omitempty"` //deprecated ++ ProgressMessage string `json:"progress,omitempty"` // deprecated + ID string `json:"id,omitempty"` + From string `json:"from,omitempty"` + Time int64 `json:"time,omitempty"` + TimeNano int64 `json:"timeNano,omitempty"` + Error *JSONError `json:"errorDetail,omitempty"` +- ErrorMessage string `json:"error,omitempty"` //deprecated ++ ErrorMessage string `json:"error,omitempty"` // deprecated + // Aux contains out-of-band data, such as digests for push signing and image id after building. + Aux *json.RawMessage `json:"aux,omitempty"` + } +@@ -177,7 +177,7 @@ func (jm *JSONMessage) Display(out io.Writer, isTerminal bool) error { + if isTerminal && jm.Stream == "" && jm.Progress != nil { + clearLine(out) + endl = "\r" +- fmt.Fprintf(out, endl) ++ fmt.Fprint(out, endl) + } else if jm.Progress != nil && jm.Progress.String() != "" { //disable progressbar in non-terminal + return nil + } +@@ -194,7 +194,7 @@ func (jm *JSONMessage) Display(out io.Writer, isTerminal bool) error { + } + if jm.Progress != nil && isTerminal { + fmt.Fprintf(out, "%s %s%s", jm.Status, jm.Progress.String(), endl) +- } else if jm.ProgressMessage != "" { //deprecated ++ } else if jm.ProgressMessage != "" { // deprecated + fmt.Fprintf(out, "%s %s%s", jm.Status, jm.ProgressMessage, endl) + } else if jm.Stream != "" { + fmt.Fprintf(out, "%s%s", jm.Stream, endl) +diff --git a/vendor/github.com/docker/docker/pkg/mount/mountinfo_linux.go b/vendor/github.com/docker/docker/pkg/mount/mountinfo_linux.go +index fe6e3ddba132..58ca61f3f7c4 100644 +--- a/vendor/github.com/docker/docker/pkg/mount/mountinfo_linux.go ++++ b/vendor/github.com/docker/docker/pkg/mount/mountinfo_linux.go +@@ -90,7 +90,6 @@ func parseInfoFile(r io.Reader, filter FilterFunc) ([]*Info, error) { + mount propagation flags in fields[6]. The correct + behavior is to ignore any unknown optional fields. + */ +- break + } + } + if i == numFields { +diff --git a/vendor/github.com/docker/docker/pkg/namesgenerator/names-generator.go b/vendor/github.com/docker/docker/pkg/namesgenerator/names-generator.go +index f3f46055ef3e..3c42cff5e335 100644 +--- a/vendor/github.com/docker/docker/pkg/namesgenerator/names-generator.go ++++ b/vendor/github.com/docker/docker/pkg/namesgenerator/names-generator.go +@@ -153,7 +153,7 @@ var ( + // Stefan Banach - Polish mathematician, was one of the founders of modern functional analysis. https://en.wikipedia.org/wiki/Stefan_Banach + "banach", + +- // Buckaroo Banzai and his mentor Dr. Hikita perfectd the "oscillation overthruster", a device that allows one to pass through solid matter. - https://en.wikipedia.org/wiki/The_Adventures_of_Buckaroo_Banzai_Across_the_8th_Dimension ++ // Buckaroo Banzai and his mentor Dr. Hikita perfected the "oscillation overthruster", a device that allows one to pass through solid matter. - https://en.wikipedia.org/wiki/The_Adventures_of_Buckaroo_Banzai_Across_the_8th_Dimension + "banzai", + + // John Bardeen co-invented the transistor - https://en.wikipedia.org/wiki/John_Bardeen +diff --git a/vendor/github.com/docker/docker/pkg/pools/pools.go b/vendor/github.com/docker/docker/pkg/pools/pools.go +index 3b978fd3b583..3792c67a9e45 100644 +--- a/vendor/github.com/docker/docker/pkg/pools/pools.go ++++ b/vendor/github.com/docker/docker/pkg/pools/pools.go +@@ -62,24 +62,23 @@ type bufferPool struct { + func newBufferPoolWithSize(size int) *bufferPool { + return &bufferPool{ + pool: sync.Pool{ +- New: func() interface{} { return make([]byte, size) }, ++ New: func() interface{} { s := make([]byte, size); return &s }, + }, + } + } + +-func (bp *bufferPool) Get() []byte { +- return bp.pool.Get().([]byte) ++func (bp *bufferPool) Get() *[]byte { ++ return bp.pool.Get().(*[]byte) + } + +-func (bp *bufferPool) Put(b []byte) { +- //nolint:staticcheck // TODO changing this to a pointer makes tests fail. Investigate if we should change or not (otherwise remove this TODO) ++func (bp *bufferPool) Put(b *[]byte) { + bp.pool.Put(b) + } + + // Copy is a convenience wrapper which uses a buffer to avoid allocation in io.Copy. + func Copy(dst io.Writer, src io.Reader) (written int64, err error) { + buf := buffer32KPool.Get() +- written, err = io.CopyBuffer(dst, src, buf) ++ written, err = io.CopyBuffer(dst, src, *buf) + buffer32KPool.Put(buf) + return + } +diff --git a/vendor/github.com/docker/docker/pkg/system/init_windows.go b/vendor/github.com/docker/docker/pkg/system/init_windows.go +index f303aa906392..7e4ac55d76da 100644 +--- a/vendor/github.com/docker/docker/pkg/system/init_windows.go ++++ b/vendor/github.com/docker/docker/pkg/system/init_windows.go +@@ -18,8 +18,7 @@ var ( + + // InitLCOW sets whether LCOW is supported or not. Requires RS5+ + func InitLCOW(experimental bool) { +- v := GetOSVersion() +- if experimental && v.Build >= osversion.RS5 { ++ if experimental && osversion.Build() >= osversion.RS5 { + lcowSupported = true + } + } +diff --git a/vendor/github.com/docker/docker/pkg/system/syscall_windows.go b/vendor/github.com/docker/docker/pkg/system/syscall_windows.go +index eb19f9c850cd..67bec7e30b1b 100644 +--- a/vendor/github.com/docker/docker/pkg/system/syscall_windows.go ++++ b/vendor/github.com/docker/docker/pkg/system/syscall_windows.go +@@ -5,6 +5,7 @@ import ( + "syscall" + "unsafe" + ++ "github.com/Microsoft/hcsshim/osversion" + "github.com/sirupsen/logrus" + "golang.org/x/sys/windows" + ) +@@ -61,12 +62,7 @@ var ( + + // OSVersion is a wrapper for Windows version information + // https://msdn.microsoft.com/en-us/library/windows/desktop/ms724439(v=vs.85).aspx +-type OSVersion struct { +- Version uint32 +- MajorVersion uint8 +- MinorVersion uint8 +- Build uint16 +-} ++type OSVersion osversion.OSVersion + + // https://msdn.microsoft.com/en-us/library/windows/desktop/ms724833(v=vs.85).aspx + type osVersionInfoEx struct { +@@ -85,18 +81,9 @@ type osVersionInfoEx struct { + + // GetOSVersion gets the operating system version on Windows. Note that + // dockerd.exe must be manifested to get the correct version information. ++// Deprecated: use github.com/Microsoft/hcsshim/osversion.Get() instead + func GetOSVersion() OSVersion { +- var err error +- osv := OSVersion{} +- osv.Version, err = windows.GetVersion() +- if err != nil { +- // GetVersion never fails. +- panic(err) +- } +- osv.MajorVersion = uint8(osv.Version & 0xFF) +- osv.MinorVersion = uint8(osv.Version >> 8 & 0xFF) +- osv.Build = uint16(osv.Version >> 16) +- return osv ++ return OSVersion(osversion.Get()) + } + + func (osv OSVersion) ToString() string { +diff --git a/vendor/github.com/fsouza/go-dockerclient/Makefile b/vendor/github.com/fsouza/go-dockerclient/Makefile +index e0880ff67b9e..84e1bfaba0ac 100644 +--- a/vendor/github.com/fsouza/go-dockerclient/Makefile ++++ b/vendor/github.com/fsouza/go-dockerclient/Makefile +@@ -1,7 +1,6 @@ + .PHONY: \ + all \ + lint \ +- fmt \ + pretest \ + test \ + integration +@@ -12,10 +11,6 @@ lint: + cd /tmp && GO111MODULE=on go get github.com/golangci/golangci-lint/cmd/golangci-lint@latest + golangci-lint run + +-fmt: +- GO111MODULE=off go get mvdan.cc/gofumpt +- gofumpt -s -w . +- + pretest: lint + + gotest: +diff --git a/vendor/github.com/fsouza/go-dockerclient/README.md b/vendor/github.com/fsouza/go-dockerclient/README.md +index b7af7d0b9f2d..f4ad8ca622f8 100644 +--- a/vendor/github.com/fsouza/go-dockerclient/README.md ++++ b/vendor/github.com/fsouza/go-dockerclient/README.md +@@ -18,10 +18,10 @@ documentation](https://docs.docker.com/engine/api/latest/). + Link for the official SDK: https://docs.docker.com/develop/sdk/ + + go-dockerclient was created before Docker had an official Go SDK and is +-still maintained and relatively active because it's still used out there. New +-features in the Docker API do not get automatically implemented here: it's +-based on demand, if someone wants it, they can file an issue or a PR and the +-feature may get implemented/merged. ++still maintained and active because it's still used out there. New features in ++the Docker API do not get automatically implemented here: it's based on demand, ++if someone wants it, they can file an issue or a PR and the feature may get ++implemented/merged. + + For new projects, using the official SDK is probably more appropriate as + go-dockerclient lags behind the official SDK. +@@ -105,7 +105,10 @@ import ( + ) + + func main() { +- client, _ := docker.NewClientFromEnv() ++ client, err := docker.NewClientFromEnv() ++ if err != nil { ++ // handle err ++ } + // use client + } + ``` +@@ -118,12 +121,11 @@ All development commands can be seen in the [Makefile](Makefile). + + Commited code must pass: + +-* [golangci-lint](integration_unix_test.go) +-* [gofumpt](https://github.com/mvdan/gofumpt) ++* [golangci-lint](https://github.com/golangci/golangci-lint) + * [go test](https://golang.org/cmd/go/#hdr-Test_packages) + +-Running ``make test`` will check all of these. You can reformat the code with +-``make fmt``. ++Running ``make test`` will run all checks, as well as install any required ++dependencies. + + ## Modules + +@@ -133,7 +135,7 @@ If you're using dep, you can check the [releases + page](https://github.com/fsouza/go-dockerclient/releases) for the latest + release fully compatible with dep. + +-With other vendoring tools, users might need to specify go-dockerclient's ++With other vendoring tools, users need to specify go-dockerclient's + dependencies manually. + + ## Using with Docker 1.9 and Go 1.4 +diff --git a/vendor/github.com/fsouza/go-dockerclient/appveyor.yml b/vendor/github.com/fsouza/go-dockerclient/appveyor.yml +index d9f374f50aa2..e1574cfc23f7 100644 +--- a/vendor/github.com/fsouza/go-dockerclient/appveyor.yml ++++ b/vendor/github.com/fsouza/go-dockerclient/appveyor.yml +@@ -7,8 +7,8 @@ environment: + GOPROXY: https://proxy.golang.org + GO111MODULE: on + matrix: +- - GOVERSION: "1.12.10" +- - GOVERSION: "1.13.1" ++ - GOVERSION: "1.12.13" ++ - GOVERSION: "1.13.4" + install: + - choco install make + - set PATH=%GOPATH%\bin;c:\go\bin;%PATH% +diff --git a/vendor/github.com/fsouza/go-dockerclient/container.go b/vendor/github.com/fsouza/go-dockerclient/container.go +index 0a8ab361cb97..f6bfb59dc99e 100644 +--- a/vendor/github.com/fsouza/go-dockerclient/container.go ++++ b/vendor/github.com/fsouza/go-dockerclient/container.go +@@ -546,26 +546,31 @@ func (c *Client) RenameContainer(opts RenameContainerOptions) error { + + // InspectContainer returns information about a container by its ID. + // +-// See https://goo.gl/FaI5JT for more details. ++// Deprecated: Use InspectContainerWithOptions instead. + func (c *Client) InspectContainer(id string) (*Container, error) { +- return c.inspectContainer(id, doOptions{}) ++ return c.InspectContainerWithOptions(InspectContainerOptions{ID: id}) + } + + // InspectContainerWithContext returns information about a container by its ID. + // The context object can be used to cancel the inspect request. + // +-// See https://goo.gl/FaI5JT for more details. ++// Deprecated: Use InspectContainerWithOptions instead. + //nolint:golint + func (c *Client) InspectContainerWithContext(id string, ctx context.Context) (*Container, error) { +- return c.inspectContainer(id, doOptions{context: ctx}) ++ return c.InspectContainerWithOptions(InspectContainerOptions{ID: id, Context: ctx}) + } + +-func (c *Client) inspectContainer(id string, opts doOptions) (*Container, error) { +- path := "/containers/" + id + "/json" +- resp, err := c.do(http.MethodGet, path, opts) ++// InspectContainerWithOptions returns information about a container by its ID. ++// ++// See https://goo.gl/FaI5JT for more details. ++func (c *Client) InspectContainerWithOptions(opts InspectContainerOptions) (*Container, error) { ++ path := "/containers/" + opts.ID + "/json?" + queryString(opts) ++ resp, err := c.do(http.MethodGet, path, doOptions{ ++ context: opts.Context, ++ }) + if err != nil { + if e, ok := err.(*Error); ok && e.Status == http.StatusNotFound { +- return nil, &NoSuchContainer{ID: id} ++ return nil, &NoSuchContainer{ID: opts.ID} + } + return nil, err + } +@@ -577,6 +582,15 @@ func (c *Client) inspectContainer(id string, opts doOptions) (*Container, error) + return &container, nil + } + ++// InspectContainerOptions specifies parameters for InspectContainerWithOptions. ++// ++// See https://goo.gl/FaI5JT for more details. ++type InspectContainerOptions struct { ++ Context context.Context ++ ID string `qs:"-"` ++ Size bool ++} ++ + // ContainerChanges returns changes in the filesystem of the given container. + // + // See https://goo.gl/15KKzh for more details. +diff --git a/vendor/github.com/fsouza/go-dockerclient/go.mod b/vendor/github.com/fsouza/go-dockerclient/go.mod +index cb0ef690c43f..7bb88972ca82 100644 +--- a/vendor/github.com/fsouza/go-dockerclient/go.mod ++++ b/vendor/github.com/fsouza/go-dockerclient/go.mod +@@ -4,16 +4,13 @@ go 1.12 + + require ( + github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 // indirect +- github.com/Microsoft/go-winio v0.4.14 +- github.com/Microsoft/hcsshim v0.8.6 // indirect ++ github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5 ++ github.com/Microsoft/hcsshim v0.8.7-0.20191101173118-65519b62243c // indirect + github.com/containerd/containerd v1.3.0 // indirect +- github.com/containerd/continuity v0.0.0-20181203112020-004b46473808 // indirect + github.com/docker/distribution v2.7.1+incompatible // indirect +- github.com/docker/docker v1.4.2-0.20190927142053-ada3c14355ce ++ github.com/docker/docker v1.4.2-0.20191101170500-ac7306503d23 + github.com/docker/go-connections v0.4.0 // indirect + github.com/docker/go-units v0.4.0 +- github.com/gogo/protobuf v1.2.1 // indirect +- github.com/golang/protobuf v1.3.0 // indirect + github.com/google/go-cmp v0.3.1 + github.com/gorilla/mux v1.7.3 + github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c // indirect +@@ -22,5 +19,4 @@ require ( + github.com/opencontainers/runc v0.1.1 // indirect + golang.org/x/crypto v0.0.0-20190927123631-a832865fa7ad + google.golang.org/grpc v1.22.0 // indirect +- gotest.tools v2.2.0+incompatible // indirect + ) +diff --git a/vendor/github.com/fsouza/go-dockerclient/go.sum b/vendor/github.com/fsouza/go-dockerclient/go.sum +index c4df2e9569e5..ce78fee7a941 100644 +--- a/vendor/github.com/fsouza/go-dockerclient/go.sum ++++ b/vendor/github.com/fsouza/go-dockerclient/go.sum +@@ -2,85 +2,134 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT + github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 h1:w+iIsaOQNcT7OZ575w+acHgRric5iCyQh+xv+KJ4HB8= + github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= + github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +-github.com/Microsoft/go-winio v0.4.14 h1:+hMXMk01us9KgxGb7ftKQt2Xpf5hH/yky+TDA+qxleU= +-github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= +-github.com/Microsoft/hcsshim v0.8.6 h1:ZfF0+zZeYdzMIVMZHKtDKJvLHj76XCuVae/jNkjj0IA= +-github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= ++github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5 h1:ygIc8M6trr62pF5DucadTWGdEB4mEyvzi0e2nbcmcyA= ++github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= ++github.com/Microsoft/hcsshim v0.8.7-0.20191101173118-65519b62243c h1:YMP6olTU903X3gxQJckdmiP8/zkSMq4kN3uipsU9XjU= ++github.com/Microsoft/hcsshim v0.8.7-0.20191101173118-65519b62243c/go.mod h1:7xhjOwRV2+0HXGmM0jxaEu+ZiXJFoVZOTfL/dmqbrD8= ++github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= + github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= ++github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f h1:tSNMc+rJDfmYntojat8lljbt1mgKNpTxUZJsSzJ9Y1s= ++github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko= ++github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= ++github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= + github.com/containerd/containerd v1.3.0 h1:xjvXQWABwS2uiv3TWgQt5Uth60Gu86LTGZXMJkjc7rY= + github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +-github.com/containerd/continuity v0.0.0-20181203112020-004b46473808 h1:4BX8f882bXEDKfWIf0wa8HRvpnBoPszJJXL+TVbBw4M= +-github.com/containerd/continuity v0.0.0-20181203112020-004b46473808/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= ++github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc h1:TP+534wVlf61smEIq1nwLLAjQVEK2EADoW3CX9AuT+8= ++github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= ++github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= ++github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= ++github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= ++github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= ++github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= + github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= + github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= + github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug= + github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +-github.com/docker/docker v1.4.2-0.20190927142053-ada3c14355ce h1:H3csZuxZESJeeEiOxq4YXPNmLFbjl7u2qVBrAAGX/sA= +-github.com/docker/docker v1.4.2-0.20190927142053-ada3c14355ce/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= ++github.com/docker/docker v1.4.2-0.20191101170500-ac7306503d23 h1:oqgGT9O61YAYvI41EBsLePOr+LE6roB0xY4gpkZuFSE= ++github.com/docker/docker v1.4.2-0.20191101170500-ac7306503d23/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= + github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= + github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= + github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= + github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= ++github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= + github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= + github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= + github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= + github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= + github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +-github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk= +-github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= ++github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg= ++github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= + github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= ++github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= + github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg= + github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= + github.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw= + github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= ++github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= ++github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= ++github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= ++github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= + github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= + github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= + github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= + github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= + github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c h1:nXxl5PrvVm2L/wCy8dQu6DMTwH4oIuGN8GJDAlqDdVE= + github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= ++github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= + github.com/opencontainers/go-digest v1.0.0-rc1 h1:WzifXhOVOEOuFYOJAW6aQqW0TooG2iki3E3Ii+WN7gQ= + github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= + github.com/opencontainers/image-spec v1.0.1 h1:JMemWkRwHx4Zj+fVxWoMCFm/8sYGGrUVojFA6h/TRcI= + github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= ++github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= + github.com/opencontainers/runc v0.1.1 h1:GlxAyO6x8rfZYN9Tt0Kti5a/cP41iuiO2yYT0IJGY8Y= + github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= ++github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= ++github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= + github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= + github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= + github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= + github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= ++github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= + github.com/sirupsen/logrus v1.4.1 h1:GL2rEmy6nsikmW0r8opw9JIRScdMF5hA8cOYLH7In1k= + github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= + github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= + github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= + github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= ++github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= ++github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= ++github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= ++github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= ++github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= ++go.opencensus.io v0.22.0 h1:C9hSCOW830chIVkdja34wa6Ky+IzWllkUinR+BtRZd4= ++go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= + golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M= + golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= + golang.org/x/crypto v0.0.0-20190927123631-a832865fa7ad h1:5E5raQxcv+6CZ11RrBYQe5WRbUIWpScjh0kvHZkZIrQ= + golang.org/x/crypto v0.0.0-20190927123631-a832865fa7ad/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= ++golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= ++golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= ++golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= + golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +-golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= ++golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= ++golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= ++golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= + golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= + golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= ++golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= + golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= + golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= ++golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= ++golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= ++golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= + golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU= + golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= ++golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= + golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= + golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= + golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +-golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b h1:ag/x1USPSsqHud38I9BAC88qdNLDHHtQ4mlgQIZPPNA= +-golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= ++golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= ++golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= ++golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3 h1:7TYNF4UdlohbFwpNH04CoPMp1cHUZgO1Ebq5r2hIjfo= ++golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= ++golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= + golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= ++golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= ++golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= ++golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= + golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= + golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= + google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= ++google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= + google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +-google.golang.org/genproto v0.0.0-20180831171423-11092d34479b h1:lohp5blsw53GBXtLyLNaTXPXS9pJ1tiTw61ZHUoE9Qw= +-google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= ++google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb h1:i1Ppqkc3WQXikh8bXiwHqAN5Rv3/qDCcRk0/Otx73BY= ++google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= ++google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= ++google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= + google.golang.org/grpc v1.22.0 h1:J0UbZOIrCAl+fpTOf8YLs4dJo8L/owV4LYVtAXQoPkw= + google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= + gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= + gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= ++honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= + honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= ++k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= +diff --git a/vendor/k8s.io/client-go/pkg/version/base.go b/vendor/k8s.io/client-go/pkg/version/base.go +index e95b17bb4670..9b4c79f89519 100644 +--- a/vendor/k8s.io/client-go/pkg/version/base.go ++++ b/vendor/k8s.io/client-go/pkg/version/base.go +@@ -55,8 +55,8 @@ var ( + // NOTE: The $Format strings are replaced during 'git archive' thanks to the + // companion .gitattributes file containing 'export-subst' in this same + // directory. See also https://git-scm.com/docs/gitattributes +- gitVersion string = "v0.0.0-master+5cc92849f7" +- gitCommit string = "5cc92849f7fc9dd734ca2fd8f3ae8830b9a7eb26" // sha1 from git, output of $(git rev-parse HEAD) ++ gitVersion string = "v0.0.0-master+$Format:%h$" ++ gitCommit string = "$Format:%H$" // sha1 from git, output of $(git rev-parse HEAD) + gitTreeState string = "" // state of git tree, either "clean" or "dirty" + + buildDate string = "1970-01-01T00:00:00Z" // build date in ISO8601 format, output of $(date -u +'%Y-%m-%dT%H:%M:%SZ') +diff --git a/vendor/modules.txt b/vendor/modules.txt +index 96aab0a0fb8e..43a9627fe01b 100644 +--- a/vendor/modules.txt ++++ b/vendor/modules.txt +@@ -61,7 +61,7 @@ github.com/containernetworking/plugins/pkg/ns + github.com/containernetworking/plugins/pkg/utils/hwaddr + github.com/containernetworking/plugins/plugins/ipam/host-local/backend + github.com/containernetworking/plugins/plugins/ipam/host-local/backend/allocator +-# github.com/containers/buildah v1.11.5-0.20191031204705-20e92ffe0982 ++# github.com/containers/buildah v1.11.5 + github.com/containers/buildah + github.com/containers/buildah/bind + github.com/containers/buildah/chroot +@@ -204,7 +204,7 @@ github.com/docker/distribution/registry/client/auth/challenge + github.com/docker/distribution/registry/client/transport + github.com/docker/distribution/registry/storage/cache + github.com/docker/distribution/registry/storage/cache/memory +-# github.com/docker/docker v1.4.2-0.20190927142053-ada3c14355ce ++# github.com/docker/docker v1.4.2-0.20191101170500-ac7306503d23 + github.com/docker/docker/api + github.com/docker/docker/api/types + github.com/docker/docker/api/types/blkiodev +@@ -264,7 +264,7 @@ github.com/etcd-io/bbolt + github.com/fatih/camelcase + # github.com/fsnotify/fsnotify v1.4.7 + github.com/fsnotify/fsnotify +-# github.com/fsouza/go-dockerclient v1.5.0 ++# github.com/fsouza/go-dockerclient v1.6.0 + github.com/fsouza/go-dockerclient + # github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa + github.com/fullsailor/pkcs7 +-- +2.26.2 + diff --git a/SOURCES/podman-1860506.patch b/SOURCES/podman-1860506.patch new file mode 100644 index 0000000..627b196 --- /dev/null +++ b/SOURCES/podman-1860506.patch @@ -0,0 +1,27 @@ +From 7b3cf0c085361546f45cf86391eb9809229d0ca1 Mon Sep 17 00:00:00 2001 +From: Matthew Heon <mheon@redhat.com> +Date: Wed, 12 Aug 2020 09:15:02 -0400 +Subject: [PATCH] Change /sys/fs/cgroup/systemd mount to rprivate + +I used the wrong propagation first time around because I forgot +that rprivate is the default propagation. Oops. Switch to +rprivate so we're using the default. + +Signed-off-by: Matthew Heon <mheon@redhat.com> +--- + libpod/container_internal_linux.go | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libpod/container_internal_linux.go b/libpod/container_internal_linux.go +index e2bc4e50ff..fdee3877cb 100644 +--- a/libpod/container_internal_linux.go ++++ b/libpod/container_internal_linux.go +@@ -626,7 +626,7 @@ func (c *Container) setupSystemd(mounts []spec.Mount, g generate.Generator) erro + Destination: "/sys/fs/cgroup/systemd", + Type: "bind", + Source: "/sys/fs/cgroup/systemd", +- Options: []string{"bind", "nodev", "noexec", "nosuid"}, ++ Options: []string{"bind", "nodev", "noexec", "nosuid", "rprivate"}, + } + g.AddMount(systemdMnt) + g.AddLinuxMaskedPaths("/sys/fs/cgroup/systemd/release_agent") diff --git a/SPECS/podman.spec b/SPECS/podman.spec index 6dc3273..dba96a6 100644 --- a/SPECS/podman.spec +++ b/SPECS/podman.spec @@ -30,9 +30,9 @@ Name: podman Version: 1.6.4 -Release: 18%{?dist} +Release: 22%{?dist} Summary: Manage Pods, Containers and Container Images -ExcludeArch: s390 ppc ppc64 +ExcludeArch: %{ix86} s390 ppc ppc64 License: ASL 2.0 URL: https://%{name}.io/ Source0: %{git0}/archive/%{commit0}/%{repo}-%{shortcommit0}.tar.gz @@ -63,6 +63,11 @@ Patch9: podman-CVE-2020-10696.patch # tracker bug: https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2020-8945 # backported: https://github.com/containers/skopeo/pull/825.patch Patch10: podman-CVE-2020-8945.patch +# related bug: https://bugzilla.redhat.com/show_bug.cgi?id=1853326 +Patch11: 0001-bump-github.com-containers-buildah-to-v1.11.5.patch +# related bug: https://bugzilla.redhat.com/show_bug.cgi?id=1860506 +# backported: https://github.com/containers/podman/pull/7306.patch +Patch12: podman-1860506.patch Provides: %{name}-manpages = %{version}-%{release} Obsoletes: %{name}-manpages < %{version}-%{release} %if 0%{?rhel} <= 7 && ! 0%{?fedora} @@ -366,6 +371,22 @@ exit 0 %{_datadir}/%{name}/test %changelog +* Sun Aug 30 2020 Jindrich Novy <jnovy@redhat.com> - 1.6.4-22 +- revert regressions introduced by 0001-bump-github.com-containers-buildah-to-v1.11.5.patch + regressed bugzilla list follows: +- Related: #1817743, #1792243, #1784950 + +* Mon Aug 17 2020 Jindrich Novy <jnovy@redhat.com> - 1.6.4-21 +- fix "podman launches a container with systemd instance inside - bind mounts of systemd cgroup entries are being leaked in host mount namespace" +- Resolves: #1860506 + +* Thu Jul 30 2020 Jindrich Novy <jnovy@redhat.com> - 1.6.4-20 +- rebuilt + +* Wed Jul 29 2020 Jindrich Novy <jnovy@redhat.com> - 1.6.4-19 +- fix "podman segfault upon doing buildah operations due to error handling message" +- Resolves: #1853326 + * Fri Apr 03 2020 Jindrich Novy <jnovy@redhat.com> - 1.6.4-18 - fix "CVE-2020-8945 proglottis/gpgme: Use-after-free in GPGME bindings during container image pull" - Resolves: #1806940