Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tests: Use a function to build path for utility images #11540

Merged
merged 3 commits into from Apr 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions tests/BUILD.bazel
Expand Up @@ -207,6 +207,7 @@ go_test(
"//tests/libnet/cloudinit:go_default_library",
"//tests/libnode:go_default_library",
"//tests/libpod:go_default_library",
"//tests/libregistry:go_default_library",
"//tests/libreplicaset:go_default_library",
"//tests/libsecret:go_default_library",
"//tests/libssh:go_default_library",
Expand Down
2 changes: 1 addition & 1 deletion tests/libpod/BUILD.bazel
Expand Up @@ -15,8 +15,8 @@ go_library(
"//pkg/pointer:go_default_library",
"//staging/src/kubevirt.io/api/core/v1:go_default_library",
"//tests/exec:go_default_library",
"//tests/flags:go_default_library",
"//tests/framework/kubevirt:go_default_library",
"//tests/libregistry:go_default_library",
"//tests/testsuite:go_default_library",
"//vendor/github.com/onsi/gomega:go_default_library",
"//vendor/k8s.io/api/core/v1:go_default_library",
Expand Down
10 changes: 4 additions & 6 deletions tests/libpod/render.go
Expand Up @@ -20,16 +20,14 @@
package libpod

import (
"fmt"

v1 "k8s.io/api/core/v1"
v12 "k8s.io/apimachinery/pkg/apis/meta/v1"

v13 "kubevirt.io/api/core/v1"

"kubevirt.io/kubevirt/pkg/pointer"

"kubevirt.io/kubevirt/tests/flags"
"kubevirt.io/kubevirt/tests/libregistry"
"kubevirt.io/kubevirt/tests/testsuite"
)

Expand All @@ -42,7 +40,7 @@ func RenderPrivilegedPod(name string, cmd []string, args []string) *v1.Pod {
}
pod.Spec.Containers = []v1.Container{
renderPrivilegedContainerSpec(
fmt.Sprintf("%s/vm-killer:%s", flags.KubeVirtUtilityRepoPrefix, flags.KubeVirtUtilityVersionTag),
libregistry.GetUtilityImageFromRegistry("vm-killer"),
name,
cmd,
args),
Expand All @@ -63,7 +61,7 @@ func RenderPod(name string, cmd []string, args []string) *v1.Pod {
RestartPolicy: v1.RestartPolicyNever,
Containers: []v1.Container{
renderContainerSpec(
fmt.Sprintf("%s/vm-killer:%s", flags.KubeVirtUtilityRepoPrefix, flags.KubeVirtUtilityVersionTag),
libregistry.GetUtilityImageFromRegistry("vm-killer"),
name,
cmd,
args),
Expand Down Expand Up @@ -137,7 +135,7 @@ func RenderTargetcliPod(name, disksPVC string) *v1.Pod {
)
hostPathDirectory := v1.HostPathDirectory
targetcliContainer := renderPrivilegedContainerSpec(
fmt.Sprintf("%s/vm-killer:%s", flags.KubeVirtUtilityRepoPrefix, flags.KubeVirtUtilityVersionTag),
libregistry.GetUtilityImageFromRegistry("vm-killer"),
"targetcli", []string{"tail", "-f", "/dev/null"}, []string{})
targetcliContainer.VolumeMounts = []v1.VolumeMount{
{
Expand Down
11 changes: 11 additions & 0 deletions tests/libregistry/BUILD.bazel
@@ -0,0 +1,11 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")

go_library(
name = "go_default_library",
srcs = ["images.go"],
importpath = "kubevirt.io/kubevirt/tests/libregistry",
visibility = ["//visibility:public"],
deps = [
"//tests/flags:go_default_library",
],
)
30 changes: 30 additions & 0 deletions tests/libregistry/images.go
@@ -0,0 +1,30 @@
/*
* This file is part of the KubeVirt project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Copyright The KubeVirt Authors.
*
*/

package libregistry

import (
"fmt"

"kubevirt.io/kubevirt/tests/flags"
)

func GetUtilityImageFromRegistry(imageName string) string {
return fmt.Sprintf("%s/%s:%s", flags.KubeVirtUtilityRepoPrefix, imageName, flags.KubeVirtUtilityVersionTag)
}
1 change: 1 addition & 0 deletions tests/libstorage/BUILD.bazel
Expand Up @@ -21,6 +21,7 @@ go_library(
"//tests/framework/kubevirt:go_default_library",
"//tests/framework/matcher:go_default_library",
"//tests/libnode:go_default_library",
"//tests/libregistry:go_default_library",
"//tests/util:go_default_library",
"//vendor/github.com/kubernetes-csi/external-snapshotter/client/v4/apis/volumesnapshot/v1:go_default_library",
"//vendor/github.com/onsi/ginkgo/v2:go_default_library",
Expand Down
7 changes: 3 additions & 4 deletions tests/libstorage/pvc.go
Expand Up @@ -24,8 +24,6 @@ import (
"fmt"
"time"

"kubevirt.io/kubevirt/tests/framework/kubevirt"

. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"

Expand All @@ -39,9 +37,10 @@ import (
v1 "kubevirt.io/api/core/v1"

"kubevirt.io/kubevirt/pkg/util/net/ip"
"kubevirt.io/kubevirt/tests/flags"
"kubevirt.io/kubevirt/tests/framework/cleanup"
"kubevirt.io/kubevirt/tests/framework/kubevirt"
"kubevirt.io/kubevirt/tests/libnode"
"kubevirt.io/kubevirt/tests/libregistry"
"kubevirt.io/kubevirt/tests/util"
)

Expand All @@ -68,7 +67,7 @@ func RenderPodWithPVC(name string, cmd []string, args []string, pvc *k8sv1.Persi
Containers: []k8sv1.Container{
{
Name: name,
Image: fmt.Sprintf("%s/vm-killer:%s", flags.KubeVirtUtilityRepoPrefix, flags.KubeVirtUtilityVersionTag),
Image: libregistry.GetUtilityImageFromRegistry("vm-killer"),
Command: cmd,
Args: args,
SecurityContext: &k8sv1.SecurityContext{
Expand Down
1 change: 1 addition & 0 deletions tests/network/BUILD.bazel
Expand Up @@ -69,6 +69,7 @@ go_library(
"//tests/libnet/vmnetserver:go_default_library",
"//tests/libnode:go_default_library",
"//tests/libpod:go_default_library",
"//tests/libregistry:go_default_library",
"//tests/libvmifact:go_default_library",
"//tests/libwait:go_default_library",
"//tests/testsuite:go_default_library",
Expand Down
3 changes: 2 additions & 1 deletion tests/network/bindingplugin.go
Expand Up @@ -35,6 +35,7 @@ import (
"kubevirt.io/kubevirt/tests/framework/kubevirt"
"kubevirt.io/kubevirt/tests/libkvconfig"
"kubevirt.io/kubevirt/tests/libnet"
"kubevirt.io/kubevirt/tests/libregistry"
"kubevirt.io/kubevirt/tests/libvmifact"
"kubevirt.io/kubevirt/tests/libwait"
"kubevirt.io/kubevirt/tests/testsuite"
Expand All @@ -52,7 +53,7 @@ var _ = SIGDescribe("[Serial]network binding plugin", Serial, decorators.NetCust
Context("with CNI and Sidecar", func() {
BeforeEach(func() {
const passtBindingName = "passt"
const passtSidecarImage = "registry:5000/kubevirt/network-passt-binding:devel"
passtSidecarImage := libregistry.GetUtilityImageFromRegistry("network-passt-binding")

err := libkvconfig.WithNetBindingPlugin(passtBindingName, v1.InterfaceBindingPlugin{
SidecarImage: passtSidecarImage,
Expand Down
3 changes: 2 additions & 1 deletion tests/network/bindingplugin_passt.go
Expand Up @@ -47,6 +47,7 @@ import (
"kubevirt.io/kubevirt/tests/libnet"
"kubevirt.io/kubevirt/tests/libnet/cloudinit"
"kubevirt.io/kubevirt/tests/libnet/vmnetserver"
"kubevirt.io/kubevirt/tests/libregistry"
"kubevirt.io/kubevirt/tests/libvmifact"
"kubevirt.io/kubevirt/tests/libwait"
"kubevirt.io/kubevirt/tests/testsuite"
Expand All @@ -61,7 +62,7 @@ var _ = SIGDescribe("[Serial] VirtualMachineInstance with passt network binding

BeforeEach(func() {
const passtBindingName = "passt"
const passtSidecarImage = "registry:5000/kubevirt/network-passt-binding:devel"
passtSidecarImage := libregistry.GetUtilityImageFromRegistry("network-passt-binding")

err := libkvconfig.WithNetBindingPlugin(passtBindingName, v1.InterfaceBindingPlugin{
SidecarImage: passtSidecarImage,
Expand Down
3 changes: 2 additions & 1 deletion tests/network/vmi_istio.go
Expand Up @@ -56,6 +56,7 @@ import (
"kubevirt.io/kubevirt/tests/libnet/job"
netservice "kubevirt.io/kubevirt/tests/libnet/service"
"kubevirt.io/kubevirt/tests/libnet/vmnetserver"
"kubevirt.io/kubevirt/tests/libregistry"
"kubevirt.io/kubevirt/tests/libvmifact"
"kubevirt.io/kubevirt/tests/libwait"
"kubevirt.io/kubevirt/tests/testsuite"
Expand Down Expand Up @@ -468,7 +469,7 @@ var istioTestsWithPasstBinding = func() {

BeforeEach(func() {
const passtBindingName = "passt"
const passtSidecarImage = "registry:5000/kubevirt/network-passt-binding:devel"
passtSidecarImage := libregistry.GetUtilityImageFromRegistry("network-passt-binding")

err := libkvconfig.WithNetBindingPlugin(passtBindingName, v1.InterfaceBindingPlugin{
SidecarImage: passtSidecarImage,
Expand Down
1 change: 1 addition & 0 deletions tests/storage/BUILD.bazel
Expand Up @@ -60,6 +60,7 @@ go_library(
"//tests/libnet:go_default_library",
"//tests/libnode:go_default_library",
"//tests/libpod:go_default_library",
"//tests/libregistry:go_default_library",
"//tests/libstorage:go_default_library",
"//tests/libvmifact:go_default_library",
"//tests/libwait:go_default_library",
Expand Down
16 changes: 7 additions & 9 deletions tests/storage/hotplug.go
Expand Up @@ -28,15 +28,9 @@ import (
"sync"
"time"

"kubevirt.io/kubevirt/tests/libmigration"

"k8s.io/apimachinery/pkg/api/resource"
"k8s.io/utils/pointer"

"kubevirt.io/kubevirt/tests/decorators"
"kubevirt.io/kubevirt/tests/framework/kubevirt"
"kubevirt.io/kubevirt/tests/util"

"kubevirt.io/client-go/log"

expect "github.com/google/goexpect"
Expand All @@ -59,14 +53,18 @@ import (
"kubevirt.io/kubevirt/tests/clientcmd"
"kubevirt.io/kubevirt/tests/console"
cd "kubevirt.io/kubevirt/tests/containerdisk"
"kubevirt.io/kubevirt/tests/flags"
"kubevirt.io/kubevirt/tests/decorators"
"kubevirt.io/kubevirt/tests/framework/kubevirt"
"kubevirt.io/kubevirt/tests/framework/matcher"
"kubevirt.io/kubevirt/tests/libdv"
"kubevirt.io/kubevirt/tests/libmigration"
"kubevirt.io/kubevirt/tests/libnode"
"kubevirt.io/kubevirt/tests/libregistry"
"kubevirt.io/kubevirt/tests/libstorage"
"kubevirt.io/kubevirt/tests/libvmifact"
"kubevirt.io/kubevirt/tests/libwait"
"kubevirt.io/kubevirt/tests/testsuite"
"kubevirt.io/kubevirt/tests/util"
)

const (
Expand Down Expand Up @@ -1315,8 +1313,8 @@ var _ = SIGDescribe("Hotplug", func() {
renameImgFile(pvc, newDiskImgName)

By("start VM with disk mutation sidecar")
hookSidecarsValue := fmt.Sprintf(`[{"args": ["--version", "v1alpha2"], "image": "%s/%s:%s", "imagePullPolicy": "IfNotPresent"}]`,
flags.KubeVirtUtilityRepoPrefix, hookSidecarImage, flags.KubeVirtUtilityVersionTag)
hookSidecarsValue := fmt.Sprintf(`[{"args": ["--version", "v1alpha2"], "image": "%s", "imagePullPolicy": "IfNotPresent"}]`,
libregistry.GetUtilityImageFromRegistry(hookSidecarImage))
vmi := libvmi.New(
libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()),
libvmi.WithNetwork(v1.DefaultPodNetwork()),
Expand Down
4 changes: 2 additions & 2 deletions tests/sysprep_test.go
Expand Up @@ -42,9 +42,9 @@ import (
"kubevirt.io/kubevirt/tests"
"kubevirt.io/kubevirt/tests/decorators"
"kubevirt.io/kubevirt/tests/exec"
"kubevirt.io/kubevirt/tests/flags"
"kubevirt.io/kubevirt/tests/framework/checks"
"kubevirt.io/kubevirt/tests/framework/kubevirt"
"kubevirt.io/kubevirt/tests/libregistry"
"kubevirt.io/kubevirt/tests/libstorage"
"kubevirt.io/kubevirt/tests/libvmifact"
"kubevirt.io/kubevirt/tests/libwait"
Expand Down Expand Up @@ -381,7 +381,7 @@ func winRMCliPod() *k8sv1.Pod {
Containers: []k8sv1.Container{
{
Name: winrmCli,
Image: fmt.Sprintf("%s/%s:%s", flags.KubeVirtUtilityRepoPrefix, winrmCli, flags.KubeVirtUtilityVersionTag),
Image: libregistry.GetUtilityImageFromRegistry(winrmCli),
Command: []string{"sleep"},
Args: []string{"3600"},
SecurityContext: &k8sv1.SecurityContext{
Expand Down
12 changes: 5 additions & 7 deletions tests/vmi_cloudinit_hook_sidecar_test.go
Expand Up @@ -27,26 +27,24 @@ import (

metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

"kubevirt.io/kubevirt/tests/decorators"

expect "github.com/google/goexpect"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
k8sv1 "k8s.io/api/core/v1"

"kubevirt.io/kubevirt/tests/util"

v1 "kubevirt.io/api/core/v1"
"kubevirt.io/client-go/kubecli"

"kubevirt.io/kubevirt/pkg/libvmi"

"kubevirt.io/kubevirt/tests"
"kubevirt.io/kubevirt/tests/console"
"kubevirt.io/kubevirt/tests/flags"
"kubevirt.io/kubevirt/tests/decorators"
"kubevirt.io/kubevirt/tests/framework/kubevirt"
"kubevirt.io/kubevirt/tests/libregistry"
"kubevirt.io/kubevirt/tests/libvmifact"
"kubevirt.io/kubevirt/tests/libwait"
"kubevirt.io/kubevirt/tests/util"
)

const cloudinitHookSidecarImage = "example-cloudinit-hook-sidecar"
Expand Down Expand Up @@ -102,8 +100,8 @@ var _ = Describe("[sig-compute]CloudInitHookSidecars", decorators.SigCompute, fu
virtClient = kubevirt.Client()
vmi = libvmifact.NewCirros(
libvmi.WithAnnotation("hooks.kubevirt.io/hookSidecars",
fmt.Sprintf(`[{"args": ["--version", "v1alpha2"], "image": "%s/%s:%s", "imagePullPolicy": "IfNotPresent"}]`,
flags.KubeVirtUtilityRepoPrefix, cloudinitHookSidecarImage, flags.KubeVirtUtilityVersionTag)))
fmt.Sprintf(`[{"args": ["--version", "v1alpha2"], "image": "%s", "imagePullPolicy": "IfNotPresent"}]`,
libregistry.GetUtilityImageFromRegistry(cloudinitHookSidecarImage))))
})

Describe("VMI definition", func() {
Expand Down
20 changes: 10 additions & 10 deletions tests/vmi_hook_sidecar_test.go
Expand Up @@ -25,11 +25,6 @@ import (
"fmt"
"time"

"kubevirt.io/kubevirt/tests/decorators"
"kubevirt.io/kubevirt/tests/libmigration"
"kubevirt.io/kubevirt/tests/libpod"
"kubevirt.io/kubevirt/tests/util"

. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"

Expand All @@ -45,14 +40,19 @@ import (
hooksv1alpha2 "kubevirt.io/kubevirt/pkg/hooks/v1alpha2"
hooksv1alpha3 "kubevirt.io/kubevirt/pkg/hooks/v1alpha3"
virtconfig "kubevirt.io/kubevirt/pkg/virt-config"

"kubevirt.io/kubevirt/tests"
"kubevirt.io/kubevirt/tests/clientcmd"
cd "kubevirt.io/kubevirt/tests/containerdisk"
"kubevirt.io/kubevirt/tests/flags"
"kubevirt.io/kubevirt/tests/decorators"
"kubevirt.io/kubevirt/tests/framework/checks"
"kubevirt.io/kubevirt/tests/framework/kubevirt"
"kubevirt.io/kubevirt/tests/libmigration"
"kubevirt.io/kubevirt/tests/libpod"
"kubevirt.io/kubevirt/tests/libregistry"
"kubevirt.io/kubevirt/tests/libwait"
"kubevirt.io/kubevirt/tests/testsuite"
"kubevirt.io/kubevirt/tests/util"
)

const (
Expand Down Expand Up @@ -343,22 +343,22 @@ func getHookSidecarLogs(virtCli kubecli.KubevirtClient, vmi *v1.VirtualMachineIn

func RenderSidecar(version string) map[string]string {
return map[string]string{
"hooks.kubevirt.io/hookSidecars": fmt.Sprintf(`[{"args": ["--version", "%s"],"image": "%s/%s:%s", "imagePullPolicy": "IfNotPresent"}]`, version, flags.KubeVirtUtilityRepoPrefix, hookSidecarImage, flags.KubeVirtUtilityVersionTag),
"hooks.kubevirt.io/hookSidecars": fmt.Sprintf(`[{"args": ["--version", "%s"],"image": "%s", "imagePullPolicy": "IfNotPresent"}]`, version, libregistry.GetUtilityImageFromRegistry(hookSidecarImage)),
"smbios.vm.kubevirt.io/baseBoardManufacturer": "Radical Edward",
}
}

func RenderInvalidSMBiosSidecar() map[string]string {
return map[string]string{
"hooks.kubevirt.io/hookSidecars": fmt.Sprintf(`[{"image": "%s/%s:%s", "imagePullPolicy": "IfNotPresent"}]`, flags.KubeVirtUtilityRepoPrefix, hookSidecarImage, flags.KubeVirtUtilityVersionTag),
"hooks.kubevirt.io/hookSidecars": fmt.Sprintf(`[{"image": "%s", "imagePullPolicy": "IfNotPresent"}]`, libregistry.GetUtilityImageFromRegistry(hookSidecarImage)),
"smbios.vm.kubevirt.io/baseBoardManufacturer": "Radical Edward",
}
}

func RenderSidecarWithConfigMapPlusImage(version, name string) map[string]string {
return map[string]string{
"hooks.kubevirt.io/hookSidecars": fmt.Sprintf(`[{"args": ["--version", "%s"], "image":"%s/%s:%s", "configMap": {"name": "%s","key": "%s", "hookPath": "/usr/bin/onDefineDomain"}}]`,
version, flags.KubeVirtUtilityRepoPrefix, sidecarShimImage, flags.KubeVirtVersionTag, name, configMapKey),
"hooks.kubevirt.io/hookSidecars": fmt.Sprintf(`[{"args": ["--version", "%s"], "image":"%s", "configMap": {"name": "%s","key": "%s", "hookPath": "/usr/bin/onDefineDomain"}}]`,
version, libregistry.GetUtilityImageFromRegistry(sidecarShimImage), name, configMapKey),
}
}

Expand Down