use multi-arch busybox for e2e

This commit is contained in:
Di Xu 2017-10-17 12:33:38 +08:00
parent cd25bbee46
commit f7f3577035
29 changed files with 28 additions and 63 deletions

View File

@ -34,7 +34,6 @@ go_library(
"//test/e2e/chaosmonkey:go_default_library", "//test/e2e/chaosmonkey:go_default_library",
"//test/e2e/common:go_default_library", "//test/e2e/common:go_default_library",
"//test/e2e/framework:go_default_library", "//test/e2e/framework:go_default_library",
"//test/utils/image:go_default_library",
"//vendor/github.com/onsi/ginkgo:go_default_library", "//vendor/github.com/onsi/ginkgo:go_default_library",
"//vendor/github.com/onsi/gomega:go_default_library", "//vendor/github.com/onsi/gomega:go_default_library",
"//vendor/k8s.io/api/batch/v1:go_default_library", "//vendor/k8s.io/api/batch/v1:go_default_library",

View File

@ -29,7 +29,6 @@ import (
fedutil "k8s.io/kubernetes/federation/pkg/federation-controller/util" fedutil "k8s.io/kubernetes/federation/pkg/federation-controller/util"
fedframework "k8s.io/kubernetes/federation/test/e2e/framework" fedframework "k8s.io/kubernetes/federation/test/e2e/framework"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
imageutils "k8s.io/kubernetes/test/utils/image"
. "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo"
. "github.com/onsi/gomega" . "github.com/onsi/gomega"
@ -279,7 +278,7 @@ func newJobForFed(namespace string, name string, completions int32, parallelism
Containers: []v1.Container{ Containers: []v1.Container{
{ {
Name: "sleep", Name: "sleep",
Image: imageutils.GetBusyBoxImage(), Image: "busybox",
Command: []string{"sleep", "1"}, Command: []string{"sleep", "1"},
}, },
}, },

View File

@ -36,7 +36,6 @@ import (
. "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo"
. "github.com/onsi/gomega" . "github.com/onsi/gomega"
imageutils "k8s.io/kubernetes/test/utils/image"
) )
var ( var (
@ -403,7 +402,7 @@ func discoverService(f *fedframework.Framework, name string, exists bool, podNam
Containers: []v1.Container{ Containers: []v1.Container{
{ {
Name: "federated-service-discovery-container", Name: "federated-service-discovery-container",
Image: imageutils.GetBusyBoxImage(), Image: "busybox",
Command: command, Command: command,
}, },
}, },

View File

@ -288,7 +288,7 @@ func newCronJob(name, schedule string) *batchv1beta1.CronJob {
Containers: []v1.Container{ Containers: []v1.Container{
{ {
Name: "c", Name: "c",
Image: imageutils.GetBusyBoxImage(), Image: "busybox",
Command: []string{"sleep", "300"}, Command: []string{"sleep", "300"},
}, },
}, },

View File

@ -243,7 +243,7 @@ func newTestingCronJob(name string, value string) *batchv1beta1.CronJob {
Containers: []v1.Container{ Containers: []v1.Container{
{ {
Name: "c", Name: "c",
Image: imageutils.GetBusyBoxImage(), Image: "busybox",
VolumeMounts: []v1.VolumeMount{ VolumeMounts: []v1.VolumeMount{
{ {
MountPath: "/data", MountPath: "/data",

View File

@ -35,7 +35,6 @@ import (
"k8s.io/kubernetes/pkg/controller/job" "k8s.io/kubernetes/pkg/controller/job"
"k8s.io/kubernetes/pkg/kubectl" "k8s.io/kubernetes/pkg/kubectl"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
imageutils "k8s.io/kubernetes/test/utils/image"
) )
const ( const (
@ -304,7 +303,7 @@ func newTestCronJob(name, schedule string, concurrencyPolicy batchv1beta1.Concur
Containers: []v1.Container{ Containers: []v1.Container{
{ {
Name: "c", Name: "c",
Image: imageutils.GetBusyBoxImage(), Image: "busybox",
VolumeMounts: []v1.VolumeMount{ VolumeMounts: []v1.VolumeMount{
{ {
MountPath: "/data", MountPath: "/data",

View File

@ -42,7 +42,7 @@ const (
var ( var (
mountImage = imageutils.GetE2EImage(imageutils.Mounttest) mountImage = imageutils.GetE2EImage(imageutils.Mounttest)
busyboxImage = imageutils.GetBusyBoxImage() busyboxImage = "busybox"
) )
var CurrentSuite Suite var CurrentSuite Suite
@ -52,7 +52,7 @@ var CurrentSuite Suite
// only used by node e2e test. // only used by node e2e test.
// TODO(random-liu): Change the image puller pod to use similar mechanism. // TODO(random-liu): Change the image puller pod to use similar mechanism.
var CommonImageWhiteList = sets.NewString( var CommonImageWhiteList = sets.NewString(
imageutils.GetBusyBoxImage(), "busybox",
imageutils.GetE2EImage(imageutils.EntrypointTester), imageutils.GetE2EImage(imageutils.EntrypointTester),
imageutils.GetE2EImage(imageutils.Liveness), imageutils.GetE2EImage(imageutils.Liveness),
imageutils.GetE2EImage(imageutils.Mounttest), imageutils.GetE2EImage(imageutils.Mounttest),

View File

@ -29,7 +29,6 @@ import (
"k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/fields"
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
imageutils "k8s.io/kubernetes/test/utils/image"
) )
func EtcdUpgrade(target_storage, target_version string) error { func EtcdUpgrade(target_storage, target_version string) error {
@ -327,7 +326,7 @@ func gceUpgradeScript() string {
func waitForSSHTunnels() { func waitForSSHTunnels() {
Logf("Waiting for SSH tunnels to establish") Logf("Waiting for SSH tunnels to establish")
RunKubectl("run", "ssh-tunnel-test", RunKubectl("run", "ssh-tunnel-test",
"--image="+imageutils.GetBusyBoxImage(), "--image=busybox",
"--restart=Never", "--restart=Never",
"--command", "--", "--command", "--",
"echo", "Hello") "echo", "Hello")

View File

@ -192,7 +192,7 @@ const (
) )
var ( var (
BusyBoxImage = imageutils.GetBusyBoxImage() BusyBoxImage = "busybox"
// Label allocated to the image puller static pod that runs on each node // Label allocated to the image puller static pod that runs on each node
// before e2es. // before e2es.
ImagePullerLabels = map[string]string{"name": "e2e-image-puller"} ImagePullerLabels = map[string]string{"name": "e2e-image-puller"}

View File

@ -17,7 +17,6 @@ go_library(
"//test/e2e/instrumentation/common:go_default_library", "//test/e2e/instrumentation/common:go_default_library",
"//test/e2e/instrumentation/logging/elasticsearch:go_default_library", "//test/e2e/instrumentation/logging/elasticsearch:go_default_library",
"//test/e2e/instrumentation/logging/stackdrvier:go_default_library", "//test/e2e/instrumentation/logging/stackdrvier:go_default_library",
"//test/utils/image:go_default_library",
"//vendor/github.com/onsi/ginkgo:go_default_library", "//vendor/github.com/onsi/ginkgo:go_default_library",
"//vendor/github.com/onsi/gomega:go_default_library", "//vendor/github.com/onsi/gomega:go_default_library",
"//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library",

View File

@ -28,7 +28,6 @@ import (
"k8s.io/api/core/v1" "k8s.io/api/core/v1"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
instrumentation "k8s.io/kubernetes/test/e2e/instrumentation/common" instrumentation "k8s.io/kubernetes/test/e2e/instrumentation/common"
imageutils "k8s.io/kubernetes/test/utils/image"
) )
var _ = instrumentation.SIGDescribe("Logging soak [Performance] [Slow] [Disruptive]", func() { var _ = instrumentation.SIGDescribe("Logging soak [Performance] [Slow] [Disruptive]", func() {
@ -101,7 +100,7 @@ func RunLogPodsWithSleepOf(f *framework.Framework, sleep time.Duration, podname
return v1.PodSpec{ return v1.PodSpec{
Containers: []v1.Container{{ Containers: []v1.Container{{
Name: "logging-soak", Name: "logging-soak",
Image: imageutils.GetBusyBoxImage(), Image: "busybox",
Args: []string{ Args: []string{
"/bin/sh", "/bin/sh",
"-c", "-c",

View File

@ -95,7 +95,7 @@ var (
kittenImage = imageutils.GetE2EImage(imageutils.Kitten) kittenImage = imageutils.GetE2EImage(imageutils.Kitten)
redisImage = imageutils.GetE2EImage(imageutils.Redis) redisImage = imageutils.GetE2EImage(imageutils.Redis)
nginxImage = imageutils.GetE2EImage(imageutils.NginxSlim) nginxImage = imageutils.GetE2EImage(imageutils.NginxSlim)
busyboxImage = imageutils.GetBusyBoxImage() busyboxImage = "busybox"
) )
var testImages = struct { var testImages = struct {

View File

@ -514,7 +514,7 @@ func createNetworkClientPod(f *framework.Framework, namespace *v1.Namespace, pod
Containers: []v1.Container{ Containers: []v1.Container{
{ {
Name: fmt.Sprintf("%s-container", podName), Name: fmt.Sprintf("%s-container", podName),
Image: imageutils.GetBusyBoxImage(), Image: "busybox",
Args: []string{ Args: []string{
"/bin/sh", "/bin/sh",
"-c", "-c",

View File

@ -17,7 +17,6 @@ go_library(
"//test/e2e/common:go_default_library", "//test/e2e/common:go_default_library",
"//test/e2e/framework:go_default_library", "//test/e2e/framework:go_default_library",
"//test/utils:go_default_library", "//test/utils:go_default_library",
"//test/utils/image:go_default_library",
"//vendor/github.com/onsi/ginkgo:go_default_library", "//vendor/github.com/onsi/ginkgo:go_default_library",
"//vendor/github.com/onsi/gomega:go_default_library", "//vendor/github.com/onsi/gomega:go_default_library",
"//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library",

View File

@ -34,7 +34,6 @@ import (
. "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo"
. "github.com/onsi/gomega" . "github.com/onsi/gomega"
imageutils "k8s.io/kubernetes/test/utils/image"
) )
const ( const (
@ -170,7 +169,7 @@ func createPodUsingNfs(f *framework.Framework, c clientset.Interface, ns, nfsIP,
Containers: []v1.Container{ Containers: []v1.Container{
{ {
Name: "pod-nfs-vol", Name: "pod-nfs-vol",
Image: imageutils.GetBusyBoxImage(), Image: "busybox",
Command: []string{"/bin/sh"}, Command: []string{"/bin/sh"},
Args: cmdLine, Args: cmdLine,
VolumeMounts: []v1.VolumeMount{ VolumeMounts: []v1.VolumeMount{

View File

@ -32,7 +32,6 @@ import (
. "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo"
. "github.com/onsi/gomega" . "github.com/onsi/gomega"
imageutils "k8s.io/kubernetes/test/utils/image"
) )
func scTestPod(hostIPC bool, hostPID bool) *v1.Pod { func scTestPod(hostIPC bool, hostPID bool) *v1.Pod {
@ -50,7 +49,7 @@ func scTestPod(hostIPC bool, hostPID bool) *v1.Pod {
Containers: []v1.Container{ Containers: []v1.Container{
{ {
Name: "test-container", Name: "test-container",
Image: imageutils.GetBusyBoxImage(), Image: "busybox",
}, },
}, },
RestartPolicy: v1.RestartPolicyNever, RestartPolicy: v1.RestartPolicyNever,

View File

@ -27,7 +27,6 @@ import (
"k8s.io/apimachinery/pkg/util/uuid" "k8s.io/apimachinery/pkg/util/uuid"
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
imageutils "k8s.io/kubernetes/test/utils/image"
) )
// This test requires that --terminated-pod-gc-threshold=100 be set on the controller manager // This test requires that --terminated-pod-gc-threshold=100 be set on the controller manager
@ -90,7 +89,7 @@ func createTerminatingPod(f *framework.Framework) (*v1.Pod, error) {
Containers: []v1.Container{ Containers: []v1.Container{
{ {
Name: string(uuid), Name: string(uuid),
Image: imageutils.GetBusyBoxImage(), Image: "busybox",
}, },
}, },
SchedulerName: "please don't schedule my pods", SchedulerName: "please don't schedule my pods",

View File

@ -80,7 +80,7 @@ func testPreStop(c clientset.Interface, ns string) {
Containers: []v1.Container{ Containers: []v1.Container{
{ {
Name: "tester", Name: "tester",
Image: imageutils.GetBusyBoxImage(), Image: "busybox",
Command: []string{"sleep", "600"}, Command: []string{"sleep", "600"},
Lifecycle: &v1.Lifecycle{ Lifecycle: &v1.Lifecycle{
PreStop: &v1.Handler{ PreStop: &v1.Handler{

View File

@ -351,7 +351,7 @@ func testNoWrappedVolumeRace(f *framework.Framework, volumes []v1.Volume, volume
Containers: []v1.Container{ Containers: []v1.Container{
{ {
Name: "test-container", Name: "test-container",
Image: imageutils.GetBusyBoxImage(), Image: "busybox",
Command: []string{"sleep", "10000"}, Command: []string{"sleep", "10000"},
Resources: v1.ResourceRequirements{ Resources: v1.ResourceRequirements{
Requests: v1.ResourceList{ Requests: v1.ResourceList{

View File

@ -38,7 +38,6 @@ import (
v1core "k8s.io/client-go/kubernetes/typed/core/v1" v1core "k8s.io/client-go/kubernetes/typed/core/v1"
"k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/pkg/api/testapi"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
imageutils "k8s.io/kubernetes/test/utils/image"
) )
const ( const (
@ -486,7 +485,7 @@ func testPDPod(diskNames []string, targetNode types.NodeName, readOnly bool, num
if numContainers > 1 { if numContainers > 1 {
containers[i].Name = fmt.Sprintf("mycontainer%v", i+1) containers[i].Name = fmt.Sprintf("mycontainer%v", i+1)
} }
containers[i].Image = imageutils.GetBusyBoxImage() containers[i].Image = "busybox"
containers[i].Command = []string{"sleep", "6000"} containers[i].Command = []string{"sleep", "6000"}
containers[i].VolumeMounts = make([]v1.VolumeMount, len(diskNames)) containers[i].VolumeMounts = make([]v1.VolumeMount, len(diskNames))
for k := range diskNames { for k := range diskNames {

View File

@ -45,7 +45,6 @@ import (
storageutil "k8s.io/kubernetes/pkg/apis/storage/v1/util" storageutil "k8s.io/kubernetes/pkg/apis/storage/v1/util"
kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis" kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
imageutils "k8s.io/kubernetes/test/utils/image"
) )
type storageClassTest struct { type storageClassTest struct {
@ -796,7 +795,7 @@ func runInPodWithVolume(c clientset.Interface, ns, claimName, command string) {
Containers: []v1.Container{ Containers: []v1.Container{
{ {
Name: "volume-tester", Name: "volume-tester",
Image: imageutils.GetBusyBoxImage(), Image: "busybox",
Command: []string{"/bin/sh"}, Command: []string{"/bin/sh"},
Args: []string{"-c", command}, Args: []string{"-c", command},
VolumeMounts: []v1.VolumeMount{ VolumeMounts: []v1.VolumeMount{

View File

@ -36,7 +36,6 @@ import (
"k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vclib" "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vclib"
"k8s.io/kubernetes/pkg/volume/util/volumehelper" "k8s.io/kubernetes/pkg/volume/util/volumehelper"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
imageutils "k8s.io/kubernetes/test/utils/image"
) )
// Sanity check for vSphere testing. Verify the persistent disk attached to the node. // Sanity check for vSphere testing. Verify the persistent disk attached to the node.
@ -245,7 +244,7 @@ func getVSpherePodSpecWithClaim(claimName string, nodeSelectorKV map[string]stri
Containers: []v1.Container{ Containers: []v1.Container{
{ {
Name: "volume-tester", Name: "volume-tester",
Image: imageutils.GetBusyBoxImage(), Image: "busybox",
Command: []string{"/bin/sh"}, Command: []string{"/bin/sh"},
Args: []string{"-c", command}, Args: []string{"-c", command},
VolumeMounts: []v1.VolumeMount{ VolumeMounts: []v1.VolumeMount{
@ -310,7 +309,7 @@ func getVSpherePodSpecWithVolumePaths(volumePaths []string, keyValuelabel map[st
Containers: []v1.Container{ Containers: []v1.Container{
{ {
Name: "vsphere-e2e-container-" + string(uuid.NewUUID()), Name: "vsphere-e2e-container-" + string(uuid.NewUUID()),
Image: imageutils.GetBusyBoxImage(), Image: "busybox",
Command: commands, Command: commands,
VolumeMounts: volumeMounts, VolumeMounts: volumeMounts,
}, },

View File

@ -118,7 +118,7 @@ func (t *ConfigMapUpgradeTest) testPod(f *framework.Framework) {
}, },
{ {
Name: "configmap-env-test", Name: "configmap-env-test",
Image: imageutils.GetBusyBoxImage(), Image: "busybox",
Command: []string{"sh", "-c", "env"}, Command: []string{"sh", "-c", "env"},
Env: []v1.EnvVar{ Env: []v1.EnvVar{
{ {

View File

@ -114,7 +114,7 @@ func (t *SecretUpgradeTest) testPod(f *framework.Framework) {
}, },
{ {
Name: "secret-env-test", Name: "secret-env-test",
Image: imageutils.GetBusyBoxImage(), Image: "busybox",
Command: []string{"sh", "-c", "env"}, Command: []string{"sh", "-c", "env"},
Env: []v1.EnvVar{ Env: []v1.EnvVar{
{ {

View File

@ -30,7 +30,6 @@ import (
"k8s.io/kubernetes/pkg/kubelet/sysctl" "k8s.io/kubernetes/pkg/kubelet/sysctl"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
imageutils "k8s.io/kubernetes/test/utils/image"
) )
// SecretUpgradeTest tests that a pod with sysctls runs before and after an upgrade. During // SecretUpgradeTest tests that a pod with sysctls runs before and after an upgrade. During
@ -132,7 +131,7 @@ func sysctlTestPod(name string, sysctls map[string]string) *v1.Pod {
Containers: []v1.Container{ Containers: []v1.Container{
{ {
Name: "test-container", Name: "test-container",
Image: imageutils.GetBusyBoxImage(), Image: "busybox",
Command: append([]string{"/bin/sysctl"}, keys...), Command: append([]string{"/bin/sysctl"}, keys...),
}, },
}, },

View File

@ -24,7 +24,6 @@ import (
"k8s.io/api/core/v1" "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
imageutils "k8s.io/kubernetes/test/utils/image"
. "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo"
. "github.com/onsi/gomega" . "github.com/onsi/gomega"
@ -55,12 +54,12 @@ var _ = framework.KubeDescribe("Docker features [Feature:Docker]", func() {
Containers: []v1.Container{ Containers: []v1.Container{
{ {
Name: "test-container-1", Name: "test-container-1",
Image: imageutils.GetBusyBoxImage(), Image: "busybox",
Command: []string{"/bin/top"}, Command: []string{"/bin/top"},
}, },
{ {
Name: "test-container-2", Name: "test-container-2",
Image: imageutils.GetBusyBoxImage(), Image: "busybox",
Command: []string{"/bin/sleep"}, Command: []string{"/bin/sleep"},
Args: []string{"10000"}, Args: []string{"10000"},
}, },

View File

@ -341,7 +341,7 @@ var _ = framework.KubeDescribe("Security Context", func() {
createAndWaitUserPod := func(readOnlyRootFilesystem bool) string { createAndWaitUserPod := func(readOnlyRootFilesystem bool) string {
podName := fmt.Sprintf("busybox-readonly-%v-%s", readOnlyRootFilesystem, uuid.NewUUID()) podName := fmt.Sprintf("busybox-readonly-%v-%s", readOnlyRootFilesystem, uuid.NewUUID())
podClient.Create(makeUserPod(podName, podClient.Create(makeUserPod(podName,
imageutils.GetBusyBoxImage(), "busybox",
[]string{"sh", "-c", "touch checkfile"}, []string{"sh", "-c", "touch checkfile"},
readOnlyRootFilesystem, readOnlyRootFilesystem,
)) ))

View File

@ -45,7 +45,6 @@ import (
. "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo"
. "github.com/onsi/gomega" . "github.com/onsi/gomega"
imageutils "k8s.io/kubernetes/test/utils/image"
) )
// TODO(random-liu): Get this automatically from kubelet flag. // TODO(random-liu): Get this automatically from kubelet flag.
@ -53,7 +52,7 @@ var kubeletAddress = flag.String("kubelet-address", "http://127.0.0.1:10255", "H
var startServices = flag.Bool("start-services", true, "If true, start local node services") var startServices = flag.Bool("start-services", true, "If true, start local node services")
var stopServices = flag.Bool("stop-services", true, "If true, stop local node services after running tests") var stopServices = flag.Bool("stop-services", true, "If true, stop local node services after running tests")
var busyboxImage = imageutils.GetBusyBoxImage() var busyboxImage = "busybox"
func getNodeSummary() (*stats.Summary, error) { func getNodeSummary() (*stats.Summary, error) {
req, err := http.NewRequest("GET", *kubeletAddress+"/stats/summary", nil) req, err := http.NewRequest("GET", *kubeletAddress+"/stats/summary", nil)

View File

@ -86,21 +86,3 @@ var (
func GetE2EImage(image ImageConfig) string { func GetE2EImage(image ImageConfig) string {
return fmt.Sprintf("%s/%s-%s:%s", image.registry, image.name, runtime.GOARCH, image.version) return fmt.Sprintf("%s/%s-%s:%s", image.registry, image.name, runtime.GOARCH, image.version)
} }
// GetBusyboxImage returns multi-arch busybox docker image
func GetBusyBoxImage() string {
switch arch := runtime.GOARCH; arch {
case "amd64":
return "busybox"
case "arm":
return "arm32v6/busybox"
case "arm64":
return "arm64v8/busybox"
case "ppc64le":
return "ppc64le/busybox"
case "s390x":
return "s390x/busybox"
default:
return ""
}
}