summaryrefslogtreecommitdiffhomepage
path: root/pkg/test/testutil/testutil.go
diff options
context:
space:
mode:
authorAdin Scannell <ascannell@google.com>2020-04-24 14:10:28 -0700
committergVisor bot <gvisor-bot@google.com>2020-04-24 14:11:42 -0700
commitc60613475c92185c9b15468d0de87b321ef2b4d7 (patch)
tree470683d83c53ee44c174a06b5f673e5e19e1a38f /pkg/test/testutil/testutil.go
parentf13f26d17da56d585fd9857a81175bbd0be8ce60 (diff)
Standardize all Docker images.
This change moves all Docker images to a standard location, and abstracts the build process so that they can be maintained in an automated fashion. This also allows the images to be architecture-independent. All images will now be referred to by the test framework via the canonical `gvisor.dev/images/<name>`, where `<name>` is a function of the path within the source tree. In a subsequent change, continuous integration will be added so that the images will always be correct and available locally. In the end, using `bazel` for Docker containers is simply not possible. Given that we already have the need to use `make` with the base container (for Docker), we extend this approach to get more flexibility. This change also adds a self-documenting and powerful Makefile that is intended to replace the collection of scripts in scripts. Canonical (self-documenting) targets can be added here for targets that understand which images need to be loaded and/or built. PiperOrigin-RevId: 308322438
Diffstat (limited to 'pkg/test/testutil/testutil.go')
-rw-r--r--pkg/test/testutil/testutil.go38
1 files changed, 3 insertions, 35 deletions
diff --git a/pkg/test/testutil/testutil.go b/pkg/test/testutil/testutil.go
index d75ceca3d..ee8c78014 100644
--- a/pkg/test/testutil/testutil.go
+++ b/pkg/test/testutil/testutil.go
@@ -57,42 +57,10 @@ func IsCheckpointSupported() bool {
return *checkpoint
}
-// nameToActual is used by ImageByName (for now).
-var nameToActual = map[string]string{
- "basic/alpine": "alpine",
- "basic/busybox": "busybox:1.31.1",
- "basic/httpd": "httpd",
- "basic/mysql": "mysql",
- "basic/nginx": "nginx",
- "basic/python": "gcr.io/gvisor-presubmit/python-hello",
- "basic/resolv": "k8s.gcr.io/busybox",
- "basic/ruby": "ruby",
- "basic/tomcat": "tomcat:8.0",
- "basic/ubuntu": "ubuntu:trusty",
- "iptables": "gcr.io/gvisor-presubmit/iptables-test",
- "packetdrill": "gcr.io/gvisor-presubmit/packetdrill",
- "packetimpact": "gcr.io/gvisor-presubmit/packetimpact",
- "runtimes/go1.12": "gcr.io/gvisor-presubmit/go1.12",
- "runtimes/java11": "gcr.io/gvisor-presubmit/java11",
- "runtimes/nodejs12.4.0": "gcr.io/gvisor-presubmit/nodejs12.4.0",
- "runtimes/php7.3.6": "gcr.io/gvisor-presubmit/php7.3.6",
- "runtimes/python3.7.3": "gcr.io/gvisor-presubmit/python3.7.3",
-}
-
-// ImageByName mangles the image name used locally.
-//
-// For now, this is implemented as a static lookup table. In a subsequent
-// change, this will be used to reference a locally-generated image.
+// ImageByName mangles the image name used locally. This depends on the image
+// build infrastructure in images/ and tools/vm.
func ImageByName(name string) string {
- actual, ok := nameToActual[name]
- if !ok {
- panic(fmt.Sprintf("unknown image: %v", name))
- }
- // A terrible hack, for now execute a manual pull.
- if out, err := exec.Command("docker", "pull", actual).CombinedOutput(); err != nil {
- panic(fmt.Sprintf("error pulling image %q -> %q: %v, out: %s", name, actual, err, string(out)))
- }
- return actual
+ return fmt.Sprintf("gvisor.dev/images/%s", name)
}
// ConfigureExePath configures the executable for runsc in the test environment.