Merge pull request #5313 from claudiubelu/pull-images-once
cri-integration tests: Pull images once
This commit is contained in:
commit
c7e4747cfb
@ -49,12 +49,8 @@ func TestAdditionalGids(t *testing.T) {
|
||||
testImage = GetImage(BusyBox)
|
||||
containerName = "test-container"
|
||||
)
|
||||
t.Logf("Pull test image %q", testImage)
|
||||
img, err := imageService.PullImage(&runtime.ImageSpec{Image: testImage}, nil, sbConfig)
|
||||
require.NoError(t, err)
|
||||
defer func() {
|
||||
assert.NoError(t, imageService.RemoveImage(&runtime.ImageSpec{Image: img}))
|
||||
}()
|
||||
|
||||
EnsureImageExists(t, testImage)
|
||||
|
||||
t.Log("Create a container to print id")
|
||||
cnConfig := ContainerConfig(
|
||||
|
@ -21,10 +21,13 @@ package integration
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"testing"
|
||||
|
||||
"github.com/pelletier/go-toml"
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/stretchr/testify/require"
|
||||
cri "k8s.io/cri-api/pkg/apis"
|
||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||
)
|
||||
|
||||
// ImageList holds public image references
|
||||
@ -104,3 +107,20 @@ func initImageMap(imageList ImageList) map[int]string {
|
||||
func GetImage(image int) string {
|
||||
return imageMap[image]
|
||||
}
|
||||
|
||||
// EnsureImageExists pulls the given image, ensures that no error was encountered
|
||||
// while pulling it.
|
||||
func EnsureImageExists(t *testing.T, imageName string) string {
|
||||
img, err := imageService.ImageStatus(&runtime.ImageSpec{Image: imageName})
|
||||
require.NoError(t, err)
|
||||
if img != nil {
|
||||
t.Logf("Image %q already exists, not pulling.", imageName)
|
||||
return img.Id
|
||||
}
|
||||
|
||||
t.Logf("Pull test image %q", imageName)
|
||||
imgID, err := imageService.PullImage(&runtime.ImageSpec{Image: imageName}, nil, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
return imgID
|
||||
}
|
||||
|
@ -52,12 +52,8 @@ func TestContainerLogWithoutTailingNewLine(t *testing.T) {
|
||||
testImage = GetImage(BusyBox)
|
||||
containerName = "test-container"
|
||||
)
|
||||
t.Logf("Pull test image %q", testImage)
|
||||
img, err := imageService.PullImage(&runtime.ImageSpec{Image: testImage}, nil, sbConfig)
|
||||
require.NoError(t, err)
|
||||
defer func() {
|
||||
assert.NoError(t, imageService.RemoveImage(&runtime.ImageSpec{Image: img}))
|
||||
}()
|
||||
|
||||
EnsureImageExists(t, testImage)
|
||||
|
||||
t.Log("Create a container with log path")
|
||||
cnConfig := ContainerConfig(
|
||||
@ -112,12 +108,8 @@ func TestLongContainerLog(t *testing.T) {
|
||||
testImage = GetImage(BusyBox)
|
||||
containerName = "test-container"
|
||||
)
|
||||
t.Logf("Pull test image %q", testImage)
|
||||
img, err := imageService.PullImage(&runtime.ImageSpec{Image: testImage}, nil, sbConfig)
|
||||
require.NoError(t, err)
|
||||
defer func() {
|
||||
assert.NoError(t, imageService.RemoveImage(&runtime.ImageSpec{Image: img}))
|
||||
}()
|
||||
|
||||
EnsureImageExists(t, testImage)
|
||||
|
||||
t.Log("Create a container with log path")
|
||||
config, err := CRIConfig()
|
||||
|
@ -46,12 +46,8 @@ func TestSharedPidMultiProcessContainerStop(t *testing.T) {
|
||||
testImage = GetImage(BusyBox)
|
||||
containerName = "test-container"
|
||||
)
|
||||
t.Logf("Pull test image %q", testImage)
|
||||
img, err := imageService.PullImage(&runtime.ImageSpec{Image: testImage}, nil, sbConfig)
|
||||
require.NoError(t, err)
|
||||
defer func() {
|
||||
assert.NoError(t, imageService.RemoveImage(&runtime.ImageSpec{Image: img}))
|
||||
}()
|
||||
|
||||
EnsureImageExists(t, testImage)
|
||||
|
||||
t.Log("Create a multi-process container")
|
||||
cnConfig := ContainerConfig(
|
||||
@ -90,12 +86,8 @@ func TestContainerStopCancellation(t *testing.T) {
|
||||
testImage = GetImage(BusyBox)
|
||||
containerName = "test-container"
|
||||
)
|
||||
t.Logf("Pull test image %q", testImage)
|
||||
img, err := imageService.PullImage(&runtime.ImageSpec{Image: testImage}, nil, sbConfig)
|
||||
require.NoError(t, err)
|
||||
defer func() {
|
||||
assert.NoError(t, imageService.RemoveImage(&runtime.ImageSpec{Image: img}))
|
||||
}()
|
||||
|
||||
EnsureImageExists(t, testImage)
|
||||
|
||||
t.Log("Create a container which traps sigterm")
|
||||
cnConfig := ContainerConfig(
|
||||
|
@ -41,12 +41,8 @@ func TestContainerLifecycleWithoutImageRef(t *testing.T) {
|
||||
testImage = GetImage(BusyBox)
|
||||
containerName = "test-container"
|
||||
)
|
||||
t.Log("Pull test image")
|
||||
img, err := imageService.PullImage(&runtime.ImageSpec{Image: testImage}, nil, sbConfig)
|
||||
require.NoError(t, err)
|
||||
defer func() {
|
||||
assert.NoError(t, imageService.RemoveImage(&runtime.ImageSpec{Image: img}))
|
||||
}()
|
||||
|
||||
img := EnsureImageExists(t, testImage)
|
||||
|
||||
t.Log("Create test container")
|
||||
cnConfig := ContainerConfig(
|
||||
|
@ -185,13 +185,8 @@ func TestContainerdImageInOtherNamespaces(t *testing.T) {
|
||||
}
|
||||
require.NoError(t, Consistently(checkImage, 100*time.Millisecond, time.Second))
|
||||
|
||||
sbConfig := PodSandboxConfig("sandbox", "test")
|
||||
t.Logf("pull the image into cri plugin")
|
||||
id, err := imageService.PullImage(&runtime.ImageSpec{Image: testImage}, nil, sbConfig)
|
||||
require.NoError(t, err)
|
||||
defer func() {
|
||||
assert.NoError(t, imageService.RemoveImage(&runtime.ImageSpec{Image: id}))
|
||||
}()
|
||||
PodSandboxConfig("sandbox", "test")
|
||||
EnsureImageExists(t, testImage)
|
||||
|
||||
t.Logf("cri plugin should see the image now")
|
||||
img, err := imageService.ImageStatus(&runtime.ImageSpec{Image: testImage})
|
||||
|
@ -33,12 +33,8 @@ func TestImageFSInfo(t *testing.T) {
|
||||
config := PodSandboxConfig("running-pod", "imagefs")
|
||||
|
||||
t.Logf("Pull an image to make sure image fs is not empty")
|
||||
img, err := imageService.PullImage(&runtime.ImageSpec{Image: GetImage(BusyBox)}, nil, config)
|
||||
require.NoError(t, err)
|
||||
defer func() {
|
||||
err := imageService.RemoveImage(&runtime.ImageSpec{Image: img})
|
||||
assert.NoError(t, err)
|
||||
}()
|
||||
EnsureImageExists(t, GetImage(BusyBox))
|
||||
|
||||
t.Logf("Create a sandbox to make sure there is an active snapshot")
|
||||
sb, err := runtimeService.RunPodSandbox(config, *runtimeHandler)
|
||||
require.NoError(t, err)
|
||||
|
@ -50,12 +50,8 @@ func TestPodDualStack(t *testing.T) {
|
||||
testImage = GetImage(BusyBox)
|
||||
containerName = "test-container"
|
||||
)
|
||||
t.Logf("Pull test image %q", testImage)
|
||||
img, err := imageService.PullImage(&runtime.ImageSpec{Image: testImage}, nil, sbConfig)
|
||||
require.NoError(t, err)
|
||||
defer func() {
|
||||
assert.NoError(t, imageService.RemoveImage(&runtime.ImageSpec{Image: img}))
|
||||
}()
|
||||
|
||||
EnsureImageExists(t, testImage)
|
||||
|
||||
t.Log("Create a container to print env")
|
||||
cnConfig := ContainerConfig(
|
||||
|
@ -86,12 +86,8 @@ func TestPodHostname(t *testing.T) {
|
||||
testImage = GetImage(BusyBox)
|
||||
containerName = "test-container"
|
||||
)
|
||||
t.Logf("Pull test image %q", testImage)
|
||||
img, err := imageService.PullImage(&runtime.ImageSpec{Image: testImage}, nil, sbConfig)
|
||||
require.NoError(t, err)
|
||||
defer func() {
|
||||
assert.NoError(t, imageService.RemoveImage(&runtime.ImageSpec{Image: img}))
|
||||
}()
|
||||
|
||||
EnsureImageExists(t, testImage)
|
||||
|
||||
t.Log("Create a container to print env")
|
||||
cnConfig := ContainerConfig(
|
||||
|
@ -135,11 +135,7 @@ func TestContainerdRestart(t *testing.T) {
|
||||
|
||||
t.Logf("Pull test images")
|
||||
for _, image := range []string{GetImage(BusyBox), GetImage(Alpine)} {
|
||||
img, err := imageService.PullImage(&runtime.ImageSpec{Image: image}, nil, nil)
|
||||
require.NoError(t, err)
|
||||
defer func() {
|
||||
assert.NoError(t, imageService.RemoveImage(&runtime.ImageSpec{Image: img}))
|
||||
}()
|
||||
EnsureImageExists(t, image)
|
||||
}
|
||||
imagesBeforeRestart, err := imageService.ListImages(nil)
|
||||
assert.NoError(t, err)
|
||||
|
@ -35,12 +35,9 @@ func TestTruncIndex(t *testing.T) {
|
||||
|
||||
t.Logf("Pull an image")
|
||||
var appImage = GetImage(BusyBox)
|
||||
imgID, err := imageService.PullImage(&runtimeapi.ImageSpec{Image: appImage}, nil, sbConfig)
|
||||
require.NoError(t, err)
|
||||
|
||||
imgID := EnsureImageExists(t, appImage)
|
||||
imgTruncID := genTruncIndex(imgID)
|
||||
defer func() {
|
||||
assert.NoError(t, imageService.RemoveImage(&runtimeapi.ImageSpec{Image: imgTruncID}))
|
||||
}()
|
||||
|
||||
t.Logf("Get image status by truncindex, truncID: %s", imgTruncID)
|
||||
res, err := imageService.ImageStatus(&runtimeapi.ImageSpec{Image: imgTruncID})
|
||||
|
@ -26,7 +26,6 @@ import (
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||
)
|
||||
|
||||
func TestVolumeCopyUp(t *testing.T) {
|
||||
@ -44,9 +43,7 @@ func TestVolumeCopyUp(t *testing.T) {
|
||||
assert.NoError(t, runtimeService.RemovePodSandbox(sb))
|
||||
}()
|
||||
|
||||
t.Logf("Pull test image")
|
||||
_, err = imageService.PullImage(&runtime.ImageSpec{Image: testImage}, nil, sbConfig)
|
||||
require.NoError(t, err)
|
||||
EnsureImageExists(t, testImage)
|
||||
|
||||
t.Logf("Create a container with volume-copy-up test image")
|
||||
cnConfig := ContainerConfig(
|
||||
@ -106,9 +103,7 @@ func TestVolumeOwnership(t *testing.T) {
|
||||
assert.NoError(t, runtimeService.RemovePodSandbox(sb))
|
||||
}()
|
||||
|
||||
t.Logf("Pull test image")
|
||||
_, err = imageService.PullImage(&runtime.ImageSpec{Image: testImage}, nil, sbConfig)
|
||||
require.NoError(t, err)
|
||||
EnsureImageExists(t, testImage)
|
||||
|
||||
t.Logf("Create a container with volume-ownership test image")
|
||||
cnConfig := ContainerConfig(
|
||||
|
Loading…
Reference in New Issue
Block a user