diff --git a/Makefile b/Makefile index 518b564af889..f52ba0091f3d 100644 --- a/Makefile +++ b/Makefile @@ -209,6 +209,7 @@ lint: if [ $$(wc -l < tests/utils.go) -gt 2027 ]; then echo >&2 "do not make tests/utils longer"; exit 1; fi hack/dockerized "golangci-lint run --timeout 20m --verbose \ pkg/instancetype/... \ + pkg/libvmi/... \ pkg/network/namescheme/... \ pkg/network/domainspec/... \ pkg/network/sriov/... \ @@ -216,7 +217,7 @@ lint: tests/libnet/... \ tests/libnode/... \ tests/libpod/... \ - tests/libvmi/... \ + tests/libvmifact/... \ && \ golangci-lint run --disable-all -E ginkgolinter --timeout 10m --verbose --no-config \ ./pkg/... \ diff --git a/tests/libvmi/BUILD.bazel b/pkg/libvmi/BUILD.bazel similarity index 84% rename from tests/libvmi/BUILD.bazel rename to pkg/libvmi/BUILD.bazel index 7a95727ce3da..216c86852375 100644 --- a/tests/libvmi/BUILD.bazel +++ b/pkg/libvmi/BUILD.bazel @@ -3,11 +3,9 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library") go_library( name = "go_default_library", srcs = [ - "architecture.go", "cloudinit.go", "config.go", "cpu.go", - "factory.go", "memory.go", "network.go", "selector.go", @@ -15,12 +13,11 @@ go_library( "vm.go", "vmi.go", ], - importpath = "kubevirt.io/kubevirt/tests/libvmi", + importpath = "kubevirt.io/kubevirt/pkg/libvmi", visibility = ["//visibility:public"], deps = [ "//pkg/pointer:go_default_library", "//staging/src/kubevirt.io/api/core/v1:go_default_library", - "//tests/containerdisk:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/tests/libvmi/OWNERS b/pkg/libvmi/OWNERS similarity index 100% rename from tests/libvmi/OWNERS rename to pkg/libvmi/OWNERS diff --git a/tests/libvmi/README.md b/pkg/libvmi/README.md similarity index 92% rename from tests/libvmi/README.md rename to pkg/libvmi/README.md index cf7dfca17963..058d51488cf2 100644 --- a/tests/libvmi/README.md +++ b/pkg/libvmi/README.md @@ -6,7 +6,7 @@ libvmi is a VMI manifest composer. ### Motivation -While reading code, especially e2e test code, a difficulty has been +While reading code, especially test code, a difficulty has been observed to understand in an easy and clear manner, what is the content of a VMI object. In a long chain of function call stack, different portions of the VMI got updated, sometime overriding previously set fields. @@ -60,9 +60,6 @@ and should not be overused. It would be better to just ask to change the rules. - VMI: `vmi.go` contains the most basic tooling to start building VMI manifests. It contains the most basic factory (`New`), the definition of how the builders look like and any other helper that serves the whole libvmi package. -- Factory: `factory.go` file contains commonly used base VMI specs. - Users will usually pick one factory to use and then add different - builders to continue building the spec. - Subject builders: Various files in which builders and defined. These files should group builders with some commonality, such that they can be easily found. With time, the grouping and naming may change diff --git a/tests/libvmi/cloudinit.go b/pkg/libvmi/cloudinit.go similarity index 100% rename from tests/libvmi/cloudinit.go rename to pkg/libvmi/cloudinit.go diff --git a/tests/libvmi/config.go b/pkg/libvmi/config.go similarity index 100% rename from tests/libvmi/config.go rename to pkg/libvmi/config.go diff --git a/tests/libvmi/cpu.go b/pkg/libvmi/cpu.go similarity index 100% rename from tests/libvmi/cpu.go rename to pkg/libvmi/cpu.go diff --git a/tests/libvmi/memory.go b/pkg/libvmi/memory.go similarity index 100% rename from tests/libvmi/memory.go rename to pkg/libvmi/memory.go diff --git a/tests/libvmi/network.go b/pkg/libvmi/network.go similarity index 100% rename from tests/libvmi/network.go rename to pkg/libvmi/network.go diff --git a/tests/libvmi/selector.go b/pkg/libvmi/selector.go similarity index 100% rename from tests/libvmi/selector.go rename to pkg/libvmi/selector.go diff --git a/tests/libvmi/storage.go b/pkg/libvmi/storage.go similarity index 100% rename from tests/libvmi/storage.go rename to pkg/libvmi/storage.go diff --git a/tests/libvmi/vm.go b/pkg/libvmi/vm.go similarity index 100% rename from tests/libvmi/vm.go rename to pkg/libvmi/vm.go diff --git a/tests/libvmi/vmi.go b/pkg/libvmi/vmi.go similarity index 100% rename from tests/libvmi/vmi.go rename to pkg/libvmi/vmi.go diff --git a/pkg/network/netbinding/BUILD.bazel b/pkg/network/netbinding/BUILD.bazel index b26432f09b5d..69745cc09a23 100644 --- a/pkg/network/netbinding/BUILD.bazel +++ b/pkg/network/netbinding/BUILD.bazel @@ -23,9 +23,9 @@ go_test( deps = [ ":go_default_library", "//pkg/hooks:go_default_library", + "//pkg/libvmi:go_default_library", "//staging/src/kubevirt.io/api/core/v1:go_default_library", "//staging/src/kubevirt.io/client-go/testutils:go_default_library", - "//tests/libvmi:go_default_library", "//vendor/github.com/onsi/ginkgo/v2:go_default_library", "//vendor/github.com/onsi/gomega:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/pkg/network/netbinding/netbinding_test.go b/pkg/network/netbinding/netbinding_test.go index b6262b15fb86..a8f959e64a58 100644 --- a/pkg/network/netbinding/netbinding_test.go +++ b/pkg/network/netbinding/netbinding_test.go @@ -31,9 +31,8 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/kubevirt/pkg/hooks" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/network/netbinding" - - "kubevirt.io/kubevirt/tests/libvmi" ) var _ = Describe("Network Binding", func() { diff --git a/pkg/network/vmispec/BUILD.bazel b/pkg/network/vmispec/BUILD.bazel index 1230178eb344..b2a2e5cb4578 100644 --- a/pkg/network/vmispec/BUILD.bazel +++ b/pkg/network/vmispec/BUILD.bazel @@ -24,9 +24,9 @@ go_test( ], deps = [ ":go_default_library", + "//pkg/libvmi:go_default_library", "//staging/src/kubevirt.io/api/core/v1:go_default_library", "//staging/src/kubevirt.io/client-go/testutils:go_default_library", - "//tests/libvmi:go_default_library", "//vendor/github.com/onsi/ginkgo/v2:go_default_library", "//vendor/github.com/onsi/gomega:go_default_library", ], diff --git a/pkg/network/vmispec/interface_test.go b/pkg/network/vmispec/interface_test.go index 13a8b3779d0c..a955c0167620 100644 --- a/pkg/network/vmispec/interface_test.go +++ b/pkg/network/vmispec/interface_test.go @@ -24,8 +24,8 @@ import ( . "github.com/onsi/gomega" v1 "kubevirt.io/api/core/v1" + "kubevirt.io/kubevirt/pkg/libvmi" netvmispec "kubevirt.io/kubevirt/pkg/network/vmispec" - "kubevirt.io/kubevirt/tests/libvmi" ) var _ = Describe("VMI network spec", func() { diff --git a/pkg/virt-controller/network/BUILD.bazel b/pkg/virt-controller/network/BUILD.bazel index a71367ee3e94..e1cc40e352df 100644 --- a/pkg/virt-controller/network/BUILD.bazel +++ b/pkg/virt-controller/network/BUILD.bazel @@ -34,12 +34,12 @@ go_test( ], embed = [":go_default_library"], deps = [ + "//pkg/libvmi:go_default_library", "//pkg/network/vmispec:go_default_library", "//pkg/testutils:go_default_library", "//pkg/virt-config:go_default_library", "//staging/src/kubevirt.io/api/core/v1:go_default_library", "//staging/src/kubevirt.io/client-go/testutils:go_default_library", - "//tests/libvmi:go_default_library", "//vendor/github.com/k8snetworkplumbingwg/network-attachment-definition-client/pkg/apis/k8s.cni.cncf.io/v1:go_default_library", "//vendor/github.com/onsi/ginkgo/v2:go_default_library", "//vendor/github.com/onsi/gomega:go_default_library", diff --git a/pkg/virt-controller/network/hotplug_test.go b/pkg/virt-controller/network/hotplug_test.go index e539ad4bb1e7..40ad39b73062 100644 --- a/pkg/virt-controller/network/hotplug_test.go +++ b/pkg/virt-controller/network/hotplug_test.go @@ -29,9 +29,9 @@ import ( v1 "kubevirt.io/api/core/v1" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/network/vmispec" "kubevirt.io/kubevirt/pkg/virt-controller/network" - "kubevirt.io/kubevirt/tests/libvmi" ) var _ = Describe("Network interface hot{un}plug", func() { diff --git a/pkg/virt-controller/watch/BUILD.bazel b/pkg/virt-controller/watch/BUILD.bazel index 5a232db10237..a4d80f3e996f 100644 --- a/pkg/virt-controller/watch/BUILD.bazel +++ b/pkg/virt-controller/watch/BUILD.bazel @@ -156,7 +156,7 @@ go_test( "//staging/src/kubevirt.io/client-go/kubecli:go_default_library", "//staging/src/kubevirt.io/client-go/log:go_default_library", "//staging/src/kubevirt.io/client-go/testutils:go_default_library", - "//tests/libvmi:go_default_library", + "//tests/libvmifact:go_default_library", "//vendor/github.com/emicklei/go-restful/v3:go_default_library", "//vendor/github.com/evanphx/json-patch:go_default_library", "//vendor/github.com/golang/mock/gomock:go_default_library", diff --git a/pkg/virt-controller/watch/clone/BUILD.bazel b/pkg/virt-controller/watch/clone/BUILD.bazel index ab70a92a421a..13691b981275 100644 --- a/pkg/virt-controller/watch/clone/BUILD.bazel +++ b/pkg/virt-controller/watch/clone/BUILD.bazel @@ -42,6 +42,7 @@ go_test( ], embed = [":go_default_library"], deps = [ + "//pkg/libvmi:go_default_library", "//pkg/pointer:go_default_library", "//pkg/testutils:go_default_library", "//staging/src/kubevirt.io/api/clone/v1alpha1:go_default_library", @@ -50,7 +51,6 @@ go_test( "//staging/src/kubevirt.io/client-go/generated/kubevirt/clientset/versioned/fake:go_default_library", "//staging/src/kubevirt.io/client-go/kubecli:go_default_library", "//staging/src/kubevirt.io/client-go/testutils:go_default_library", - "//tests/libvmi:go_default_library", "//tests/util:go_default_library", "//vendor/github.com/evanphx/json-patch:go_default_library", "//vendor/github.com/golang/mock/gomock:go_default_library", diff --git a/pkg/virt-controller/watch/clone/clone_test.go b/pkg/virt-controller/watch/clone/clone_test.go index e4772eb3d5c4..7d9f5bebc9cf 100644 --- a/pkg/virt-controller/watch/clone/clone_test.go +++ b/pkg/virt-controller/watch/clone/clone_test.go @@ -44,9 +44,9 @@ import ( kubevirtfake "kubevirt.io/client-go/generated/kubevirt/clientset/versioned/fake" "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/pointer" "kubevirt.io/kubevirt/pkg/testutils" - "kubevirt.io/kubevirt/tests/libvmi" "kubevirt.io/kubevirt/tests/util" ) diff --git a/pkg/virt-controller/watch/topology/BUILD.bazel b/pkg/virt-controller/watch/topology/BUILD.bazel index ada12c7a4f5d..1b802fe3fbf1 100644 --- a/pkg/virt-controller/watch/topology/BUILD.bazel +++ b/pkg/virt-controller/watch/topology/BUILD.bazel @@ -39,12 +39,12 @@ go_test( ], embed = [":go_default_library"], deps = [ + "//pkg/libvmi:go_default_library", "//pkg/testutils:go_default_library", "//pkg/virt-config:go_default_library", "//staging/src/kubevirt.io/api/core/v1:go_default_library", "//staging/src/kubevirt.io/client-go/kubecli:go_default_library", "//staging/src/kubevirt.io/client-go/testutils:go_default_library", - "//tests/libvmi:go_default_library", "//vendor/github.com/golang/mock/gomock:go_default_library", "//vendor/github.com/onsi/ginkgo/v2:go_default_library", "//vendor/github.com/onsi/gomega:go_default_library", diff --git a/pkg/virt-controller/watch/topology/tsc_test.go b/pkg/virt-controller/watch/topology/tsc_test.go index c066d9c658f8..234d6ff6a3a4 100644 --- a/pkg/virt-controller/watch/topology/tsc_test.go +++ b/pkg/virt-controller/watch/topology/tsc_test.go @@ -7,11 +7,10 @@ import ( v1 "kubevirt.io/api/core/v1" - "kubevirt.io/kubevirt/tests/libvmi" - . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/virt-controller/watch/topology" ) diff --git a/pkg/virt-controller/watch/vsock_test.go b/pkg/virt-controller/watch/vsock_test.go index bbf0b81360ac..966fe2d744b6 100644 --- a/pkg/virt-controller/watch/vsock_test.go +++ b/pkg/virt-controller/watch/vsock_test.go @@ -9,7 +9,7 @@ import ( virtv1 "kubevirt.io/api/core/v1" "kubevirt.io/kubevirt/pkg/controller" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" ) var _ = Describe("VSOCK", func() { @@ -18,7 +18,7 @@ var _ = Describe("VSOCK", func() { newRandomVMIsWithORWithoutVSOCK := func(totalVMINum, vsockVMINum int) []*virtv1.VirtualMachineInstance { var vmis []*virtv1.VirtualMachineInstance for i := 0; i < totalVMINum; i++ { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() // NewCirros isn't guaranteed to have a unique name. vmi.Name = fmt.Sprintf("%s-%d", vmi.Name, i) vmi.Namespace = "vsock" @@ -91,12 +91,12 @@ var _ = Describe("VSOCK", func() { Context("CIDs iteration", func() { It("should wrap arround if reaches the maximum", func() { m.randCID = func() uint32 { return math.MaxUint32 } - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() Expect(m.Allocate(vmi)).To(Succeed()) Expect(vmi.Status.VSOCKCID).NotTo(BeNil()) Expect(*vmi.Status.VSOCKCID).To(BeNumerically("==", math.MaxUint32)) - vmi2 := libvmi.NewCirros() + vmi2 := libvmifact.NewCirros() Expect(m.Allocate(vmi2)).To(Succeed()) Expect(vmi2.Status.VSOCKCID).NotTo(BeNil()) Expect(*vmi2.Status.VSOCKCID).To(BeNumerically("==", 3)) @@ -118,7 +118,7 @@ var _ = Describe("VSOCK", func() { Expect(m.reverse).To(HaveLen(len(vmis))) // The next one will fail - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() Expect(m.Allocate(vmi)).NotTo(Succeed()) }) }) diff --git a/tests/BUILD.bazel b/tests/BUILD.bazel index 474772497204..4d68584d3888 100644 --- a/tests/BUILD.bazel +++ b/tests/BUILD.bazel @@ -11,6 +11,7 @@ go_library( visibility = ["//visibility:public"], deps = [ "//pkg/certificates/triple/cert:go_default_library", + "//pkg/libvmi:go_default_library", "//pkg/pointer:go_default_library", "//pkg/util:go_default_library", "//pkg/virt-controller/services:go_default_library", @@ -30,7 +31,6 @@ go_library( "//tests/libnode:go_default_library", "//tests/libpod:go_default_library", "//tests/libstorage:go_default_library", - "//tests/libvmi:go_default_library", "//tests/libwait:go_default_library", "//tests/testsuite:go_default_library", "//tests/util:go_default_library", @@ -149,6 +149,7 @@ go_test( "//pkg/hooks/v1alpha2:go_default_library", "//pkg/hooks/v1alpha3:go_default_library", "//pkg/instancetype:go_default_library", + "//pkg/libvmi:go_default_library", "//pkg/network/dns:go_default_library", "//pkg/pointer:go_default_library", "//pkg/storage/backend-storage:go_default_library", @@ -210,7 +211,7 @@ go_test( "//tests/libreplicaset:go_default_library", "//tests/libssh:go_default_library", "//tests/libstorage:go_default_library", - "//tests/libvmi:go_default_library", + "//tests/libvmifact:go_default_library", "//tests/libwait:go_default_library", "//tests/migration:go_default_library", "//tests/monitoring:go_default_library", diff --git a/tests/clone_test.go b/tests/clone_test.go index c0a8fc8a8593..f38a10936fc3 100644 --- a/tests/clone_test.go +++ b/tests/clone_test.go @@ -8,6 +8,8 @@ import ( "k8s.io/apimachinery/pkg/api/errors" + "kubevirt.io/kubevirt/pkg/libvmi" + "kubevirt.io/kubevirt/tests/decorators" "kubevirt.io/kubevirt/tests/testsuite" @@ -36,7 +38,7 @@ import ( . "kubevirt.io/kubevirt/tests/framework/matcher" "kubevirt.io/kubevirt/tests/libinstancetype" "kubevirt.io/kubevirt/tests/libstorage" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" ) const ( @@ -58,7 +60,7 @@ var _ = Describe("[Serial]VirtualMachineClone Tests", Serial, func() { }) createVM := func(options ...libvmi.Option) (vm *virtv1.VirtualMachine) { - vmi := libvmi.NewCirros(options...) + vmi := libvmifact.NewCirros(options...) vmi.Namespace = testsuite.GetTestNamespace(nil) vm = libvmi.NewVirtualMachine(vmi) vm.Annotations = vmi.Annotations diff --git a/tests/compute/BUILD.bazel b/tests/compute/BUILD.bazel index 794720ab8186..04e58745cd31 100644 --- a/tests/compute/BUILD.bazel +++ b/tests/compute/BUILD.bazel @@ -11,6 +11,7 @@ go_library( importpath = "kubevirt.io/kubevirt/tests/compute", visibility = ["//visibility:public"], deps = [ + "//pkg/libvmi:go_default_library", "//pkg/pointer:go_default_library", "//pkg/virt-launcher/virtwrap/api:go_default_library", "//staging/src/kubevirt.io/api/core/v1:go_default_library", @@ -20,7 +21,7 @@ go_library( "//tests/decorators:go_default_library", "//tests/framework/kubevirt:go_default_library", "//tests/framework/matcher:go_default_library", - "//tests/libvmi:go_default_library", + "//tests/libvmifact:go_default_library", "//tests/libwait:go_default_library", "//tests/testsuite:go_default_library", "//tests/util:go_default_library", diff --git a/tests/compute/console.go b/tests/compute/console.go index b038e95971ec..e23def091cd5 100644 --- a/tests/compute/console.go +++ b/tests/compute/console.go @@ -32,10 +32,12 @@ import ( 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/framework/kubevirt" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/testsuite" ) @@ -60,7 +62,7 @@ var _ = SIGDescribe("[rfe_id:127][posneg:negative][crit:medium][vendor:cnv-qe@re Describe("[rfe_id:127][posneg:negative][crit:medium][vendor:cnv-qe@redhat.com][level:component]A new VirtualMachineInstance", func() { Context("with a serial console", func() { It("[test_id:1588]should return OS login", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() vmi = tests.RunVMIAndExpectLaunch(vmi, startupTimeout) expectConsoleOutput( vmi, @@ -68,7 +70,7 @@ var _ = SIGDescribe("[rfe_id:127][posneg:negative][crit:medium][vendor:cnv-qe@re ) }) It("[test_id:1590]should be able to reconnect to console multiple times", func() { - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() vmi = tests.RunVMIAndExpectLaunch(vmi, startupTimeout) for i := 0; i < 5; i++ { @@ -77,7 +79,7 @@ var _ = SIGDescribe("[rfe_id:127][posneg:negative][crit:medium][vendor:cnv-qe@re }) It("[test_id:1591]should close console connection when new console connection is opened", func() { - vmi := tests.RunVMIAndExpectLaunch(libvmi.NewAlpine(), startupTimeout) + vmi := tests.RunVMIAndExpectLaunch(libvmifact.NewAlpine(), startupTimeout) By("opening 1st console connection") stream, err := virtClient.VirtualMachineInstance(vmi.Namespace).SerialConsole(vmi.Name, &kubecli.SerialConsoleOptions{}) @@ -105,7 +107,7 @@ var _ = SIGDescribe("[rfe_id:127][posneg:negative][crit:medium][vendor:cnv-qe@re }) It("[test_id:1592]should wait until the virtual machine is in running state and return a stream interface", func() { - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() By("Creating a new VirtualMachineInstance") vmi, err := virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(vmi)).Create(context.Background(), vmi, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) @@ -116,7 +118,7 @@ var _ = SIGDescribe("[rfe_id:127][posneg:negative][crit:medium][vendor:cnv-qe@re }) It("[test_id:1593]should not be connected if scheduled to non-existing host", func() { - vmi := libvmi.NewAlpine( + vmi := libvmifact.NewAlpine( libvmi.WithNodeAffinityFor("nonexistent"), ) @@ -131,7 +133,7 @@ var _ = SIGDescribe("[rfe_id:127][posneg:negative][crit:medium][vendor:cnv-qe@re Context("without a serial console", func() { It("[test_id:4118]should run but not be connectable via the serial console", func() { - vmi := libvmi.NewAlpine(libvmi.WithoutSerialConsole()) + vmi := libvmifact.NewAlpine(libvmi.WithoutSerialConsole()) vmi = tests.RunVMIAndExpectLaunch(vmi, startupTimeout) By("failing to connect to serial console") diff --git a/tests/compute/credentials.go b/tests/compute/credentials.go index 4bc684f8bec4..e9a3c981f0ea 100644 --- a/tests/compute/credentials.go +++ b/tests/compute/credentials.go @@ -31,7 +31,7 @@ import ( "kubevirt.io/kubevirt/tests/console" "kubevirt.io/kubevirt/tests/framework/kubevirt" "kubevirt.io/kubevirt/tests/framework/matcher" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/testsuite" "kubevirt.io/kubevirt/tests/util" @@ -41,6 +41,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" v1 "kubevirt.io/api/core/v1" + + "kubevirt.io/kubevirt/pkg/libvmi" ) var _ = SIGDescribe("Guest Access Credentials", func() { @@ -79,7 +81,7 @@ var _ = SIGDescribe("Guest Access Credentials", func() { It("[test_id:6220]should propagate public ssh keys", func() { const secretID = "my-pub-key" - vmi := libvmi.NewFedora(withSSHPK(secretID, withQuestAgentPropagationMethod)) + vmi := libvmifact.NewFedora(withSSHPK(secretID, withQuestAgentPropagationMethod)) By("Creating a secret with three ssh keys") createNewSecret(testsuite.GetTestNamespace(vmi), secretID, map[string][]byte{ @@ -118,7 +120,7 @@ var _ = SIGDescribe("Guest Access Credentials", func() { It("[test_id:6221]should propagate user password", func() { const secretID = "my-user-pass" - vmi := libvmi.NewFedora(withPassword(secretID)) + vmi := libvmifact.NewFedora(withPassword(secretID)) customPassword := "imadethisup" @@ -151,7 +153,7 @@ var _ = SIGDescribe("Guest Access Credentials", func() { It("[test_id:6222]should update guest agent for public ssh keys", func() { const secretID = "my-pub-key" - vmi := libvmi.NewFedora( + vmi := libvmifact.NewFedora( withSSHPK(secretID, withQuestAgentPropagationMethod), libvmi.WithCloudInitNoCloudUserData( tests.GetFedoraToolsGuestAgentBlacklistUserData("guest-exec"), @@ -174,7 +176,7 @@ var _ = SIGDescribe("Guest Access Credentials", func() { It("[test_id:6223]should update guest agent for user password", func() { const secretID = "my-user-pass" - vmi := libvmi.NewFedora( + vmi := libvmifact.NewFedora( withPassword(secretID), libvmi.WithCloudInitNoCloudUserData(tests.GetFedoraToolsGuestAgentBlacklistUserData("guest-set-user-password")), ) @@ -222,7 +224,7 @@ var _ = SIGDescribe("Guest Access Credentials", func() { DescribeTable("should have ssh-key under authorized keys added ", func(volumeCreationOption func(data string) libvmi.Option, propagationMethod v1.SSHPublicKeyAccessCredentialPropagationMethod) { By("Creating a secret with three ssh keys") - vmi := libvmi.NewFedora( + vmi := libvmifact.NewFedora( volumeCreationOption(userData), withSSHPK(secretID, propagationMethod)) createNewSecret(testsuite.GetTestNamespace(vmi), secretID, map[string][]byte{ diff --git a/tests/compute/vmidefaults.go b/tests/compute/vmidefaults.go index ae5693f98529..64752692dda6 100644 --- a/tests/compute/vmidefaults.go +++ b/tests/compute/vmidefaults.go @@ -28,7 +28,7 @@ import ( "kubevirt.io/kubevirt/pkg/pointer" "kubevirt.io/kubevirt/tests/framework/kubevirt" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" "kubevirt.io/kubevirt/tests/util" @@ -36,6 +36,7 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/virt-launcher/virtwrap/api" "kubevirt.io/kubevirt/tests" ) @@ -219,7 +220,7 @@ var _ = SIGDescribe("VMIDefaults", func() { It("[test_id:TODO]Should be set in VirtualMachineInstance", func() { By("Creating a VirtualMachineInstance with an input device without a bus or type set") - vmi = libvmi.NewCirros() + vmi = libvmifact.NewCirros() vmi.Spec.Domain.Devices.Inputs = append(vmi.Spec.Domain.Devices.Inputs, v1.Input{ Name: "foo-1", }) @@ -236,7 +237,7 @@ var _ = SIGDescribe("VMIDefaults", func() { It("[test_id:TODO]Should be applied to a device added by AutoattachInputDevice", func() { By("Creating a VirtualMachine with AutoattachInputDevice enabled") - vm := libvmi.NewVirtualMachine(libvmi.NewCirros()) + vm := libvmi.NewVirtualMachine(libvmifact.NewCirros()) vm.Spec.Template.Spec.Domain.Devices.AutoattachInputDevice = pointer.P(true) vm, err := virtClient.VirtualMachine(testsuite.GetTestNamespace(nil)).Create(context.Background(), vm) Expect(err).ToNot(HaveOccurred()) diff --git a/tests/config_test.go b/tests/config_test.go index 2a9fbf624e85..22257480842a 100644 --- a/tests/config_test.go +++ b/tests/config_test.go @@ -37,12 +37,14 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/kubevirt/pkg/config" + "kubevirt.io/kubevirt/pkg/libvmi" + "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/console" "kubevirt.io/kubevirt/tests/decorators" "kubevirt.io/kubevirt/tests/exec" "kubevirt.io/kubevirt/tests/libpod" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/testsuite" ) @@ -101,7 +103,7 @@ var _ = Describe("[rfe_id:899][crit:medium][vendor:cnv-qe@redhat.com][level:comp expectedOutput := "value1value2value3" By("Running VMI") - vmi := libvmi.NewAlpine(libvmi.WithConfigMapDisk(configMapName, configMapName)) + vmi := libvmifact.NewAlpine(libvmi.WithConfigMapDisk(configMapName, configMapName)) vmi = tests.RunVMIAndExpectLaunch(vmi, 90) Expect(console.LoginToAlpine(vmi)).To(Succeed()) @@ -158,7 +160,7 @@ var _ = Describe("[rfe_id:899][crit:medium][vendor:cnv-qe@redhat.com][level:comp }) It("[test_id:783]Should start VMI with multiple ConfigMaps", func() { - vmi := libvmi.NewAlpine( + vmi := libvmifact.NewAlpine( libvmi.WithConfigMapDisk(configMaps[0], configMaps[0]), libvmi.WithConfigMapDisk(configMaps[1], configMaps[1]), libvmi.WithConfigMapDisk(configMaps[2], configMaps[2])) @@ -196,7 +198,7 @@ var _ = Describe("[rfe_id:899][crit:medium][vendor:cnv-qe@redhat.com][level:comp expectedOutput := "adminredhat" By("Running VMI") - vmi := libvmi.NewAlpine(libvmi.WithSecretDisk(secretName, secretName)) + vmi := libvmifact.NewAlpine(libvmi.WithSecretDisk(secretName, secretName)) vmi = tests.RunVMIAndExpectLaunch(vmi, 90) Expect(console.LoginToAlpine(vmi)).To(Succeed()) @@ -251,7 +253,7 @@ var _ = Describe("[rfe_id:899][crit:medium][vendor:cnv-qe@redhat.com][level:comp }) It("[test_id:780]Should start VMI with multiple Secrets", func() { - vmi := libvmi.NewAlpine( + vmi := libvmifact.NewAlpine( libvmi.WithSecretDisk(secrets[0], secrets[0]), libvmi.WithSecretDisk(secrets[1], secrets[1]), libvmi.WithSecretDisk(secrets[2], secrets[2])) @@ -269,7 +271,7 @@ var _ = Describe("[rfe_id:899][crit:medium][vendor:cnv-qe@redhat.com][level:comp It("[test_id:998]Should be the namespace and token the same for a pod and vmi", func() { By("Running VMI") - vmi := libvmi.NewAlpine(libvmi.WithServiceAccountDisk("default")) + vmi := libvmifact.NewAlpine(libvmi.WithServiceAccountDisk("default")) vmi = tests.RunVMIAndExpectLaunch(vmi, 90) Expect(console.LoginToAlpine(vmi)).To(Succeed()) @@ -358,7 +360,7 @@ var _ = Describe("[rfe_id:899][crit:medium][vendor:cnv-qe@redhat.com][level:comp expectedOutputSecret := "adminredhat" By("Running VMI") - vmi := libvmi.NewFedora(libvmi.WithConfigMapDisk(configMapName, configMapName), + vmi := libvmifact.NewFedora(libvmi.WithConfigMapDisk(configMapName, configMapName), libvmi.WithSecretDisk(secretName, secretName), libvmi.WithLabelledConfigMapDisk(configMapName, "random1", "configlabel"), libvmi.WithLabelledSecretDisk(secretName, "random2", "secretlabel")) @@ -478,7 +480,7 @@ var _ = Describe("[rfe_id:899][crit:medium][vendor:cnv-qe@redhat.com][level:comp expectedPublicKey := string(publicKeyBytes) By("Running VMI") - vmi := libvmi.NewAlpine(libvmi.WithSecretDisk(secretName, secretName)) + vmi := libvmifact.NewAlpine(libvmi.WithSecretDisk(secretName, secretName)) vmi = tests.RunVMIAndExpectLaunch(vmi, 90) Expect(console.LoginToAlpine(vmi)).To(Succeed()) @@ -537,7 +539,7 @@ var _ = Describe("[rfe_id:899][crit:medium][vendor:cnv-qe@redhat.com][level:comp It("[test_id:790]Should be the namespace and token the same for a pod and vmi", func() { By("Running VMI") - vmi := libvmi.NewAlpine( + vmi := libvmifact.NewAlpine( libvmi.WithLabel(testLabelKey, testLabelVal), libvmi.WithDownwardAPIDisk(downwardAPIName)) vmi = tests.RunVMIAndExpectLaunch(vmi, 90) diff --git a/tests/container_disk_test.go b/tests/container_disk_test.go index d2d77ee91299..60164f5322bc 100644 --- a/tests/container_disk_test.go +++ b/tests/container_disk_test.go @@ -25,6 +25,8 @@ import ( "strings" "time" + "kubevirt.io/kubevirt/pkg/libvmi" + "kubevirt.io/kubevirt/tests/decorators" "kubevirt.io/kubevirt/tests/framework/kubevirt" @@ -46,7 +48,7 @@ import ( "kubevirt.io/kubevirt/tests/console" cd "kubevirt.io/kubevirt/tests/containerdisk" "kubevirt.io/kubevirt/tests/libpod" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" ) @@ -102,7 +104,7 @@ var _ = Describe("[rfe_id:588][crit:medium][vendor:cnv-qe@redhat.com][level:comp Describe("[rfe_id:273][crit:medium][vendor:cnv-qe@redhat.com][level:component]Starting a VirtualMachineInstance", func() { Context("with ephemeral registry disk", func() { It("[test_id:1464]should not modify the spec on status update", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() v1.SetObjectDefaults_VirtualMachineInstance(vmi) By("Starting the VirtualMachineInstance") @@ -126,7 +128,7 @@ var _ = Describe("[rfe_id:588][crit:medium][vendor:cnv-qe@redhat.com][level:comp Expect(err).ToNot(HaveOccurred()) By("Starting the VirtualMachineInstance") - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() _, err = virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(vmi)).Create(context.Background(), vmi, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) By("Checking that the VMI failed") @@ -152,7 +154,7 @@ var _ = Describe("[rfe_id:588][crit:medium][vendor:cnv-qe@redhat.com][level:comp for i := 0; i < count; i++ { // Provide 1Mi of memory to prevent VMIs from actually booting. // We only care about the volume containers inside the virt-launcher Pod. - vmi := libvmi.NewCirros(libvmi.WithResourceMemory("1Mi")) + vmi := libvmifact.NewCirros(libvmi.WithResourceMemory("1Mi")) vmi, err := virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(vmi)).Create(context.Background(), vmi, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) vmis = append(vmis, vmi) @@ -188,7 +190,7 @@ var _ = Describe("[rfe_id:588][crit:medium][vendor:cnv-qe@redhat.com][level:comp Describe("[rfe_id:273][crit:medium][vendor:cnv-qe@redhat.com][level:component]Starting with virtio-win", func() { Context("with virtio-win as secondary disk", func() { It("[test_id:1467]should boot and have the virtio as sata CDROM", func() { - vmi := libvmi.NewAlpine( + vmi := libvmifact.NewAlpine( libvmi.WithEphemeralCDRom("disk4", v1.DiskBusSATA, cd.ContainerDiskFor(cd.ContainerDiskVirtio)), ) vmi = tests.RunVMIAndExpectLaunch(vmi, 60) @@ -216,7 +218,7 @@ var _ = Describe("[rfe_id:588][crit:medium][vendor:cnv-qe@redhat.com][level:comp Describe("[rfe_id:4052][crit:high][arm64][vendor:cnv-qe@redhat.com][level:component]VMI disk permissions", func() { Context("with ephemeral registry disk", func() { It("[test_id:4299]should not have world write permissions", func() { - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() vmi = tests.RunVMIAndExpectLaunch(vmi, 60) By("Ensuring VMI is running by logging in") @@ -254,7 +256,7 @@ var _ = Describe("[rfe_id:588][crit:medium][vendor:cnv-qe@redhat.com][level:comp Describe("Bogus container disk path", func() { Context("that points to outside of the volume", func() { It("should be rejected on VMI creation", func() { - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() vmi.Spec.Volumes[0].ContainerDisk.Path = "../test" By("Starting the VirtualMachineInstance") _, err := virtClient.RestClient().Post().Resource("virtualmachineinstances").Namespace(testsuite.GetTestNamespace(vmi)).Body(vmi).Do(context.Background()).Get() diff --git a/tests/dryrun_test.go b/tests/dryrun_test.go index fd845afa9b7c..03c6e4b0390c 100644 --- a/tests/dryrun_test.go +++ b/tests/dryrun_test.go @@ -27,7 +27,7 @@ import ( "kubevirt.io/kubevirt/tests/decorators" "kubevirt.io/kubevirt/tests/framework/kubevirt" "kubevirt.io/kubevirt/tests/libmigration" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" @@ -46,7 +46,9 @@ import ( "kubevirt.io/api/snapshot/v1alpha1" "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" virtconfig "kubevirt.io/kubevirt/pkg/virt-config" + "kubevirt.io/kubevirt/tests" cd "kubevirt.io/kubevirt/tests/containerdisk" "kubevirt.io/kubevirt/tests/testsuite" @@ -70,7 +72,7 @@ var _ = Describe("[sig-compute]Dry-Run requests", decorators.SigCompute, func() resource := "virtualmachineinstances" BeforeEach(func() { - vmi = libvmi.NewAlpine( + vmi = libvmifact.NewAlpine( libvmi.WithNamespace(testsuite.GetTestNamespace(nil)), libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), @@ -237,7 +239,7 @@ var _ = Describe("[sig-compute]Dry-Run requests", decorators.SigCompute, func() resource := "virtualmachineinstancemigrations" BeforeEach(func() { - vmi := libvmi.NewAlpine( + vmi := libvmifact.NewAlpine( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -747,7 +749,7 @@ func newVMIPreset(name, labelKey, labelValue string) *v1.VirtualMachineInstanceP } func newVMIReplicaSet(name string) *v1.VirtualMachineInstanceReplicaSet { - vmi := libvmi.NewAlpine( + vmi := libvmifact.NewAlpine( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) diff --git a/tests/guestlog/BUILD.bazel b/tests/guestlog/BUILD.bazel index 3e6a665a98fb..79f042fe70e9 100644 --- a/tests/guestlog/BUILD.bazel +++ b/tests/guestlog/BUILD.bazel @@ -15,7 +15,7 @@ go_library( "//tests/framework/kubevirt:go_default_library", "//tests/framework/matcher:go_default_library", "//tests/libpod:go_default_library", - "//tests/libvmi:go_default_library", + "//tests/libvmifact:go_default_library", "//tests/testsuite:go_default_library", "//vendor/github.com/google/goexpect:go_default_library", "//vendor/github.com/onsi/ginkgo/v2:go_default_library", diff --git a/tests/guestlog/guestlog.go b/tests/guestlog/guestlog.go index ffa23717a920..bcea3d827ed1 100644 --- a/tests/guestlog/guestlog.go +++ b/tests/guestlog/guestlog.go @@ -27,7 +27,7 @@ import ( "kubevirt.io/kubevirt/tests/framework/kubevirt" . "kubevirt.io/kubevirt/tests/framework/matcher" "kubevirt.io/kubevirt/tests/libpod" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/testsuite" ) @@ -41,7 +41,7 @@ var _ = Describe("[sig-compute]Guest console log", decorators.SigCompute, func() ) BeforeEach(func() { - cirrosVmi = libvmi.NewCirros() + cirrosVmi = libvmifact.NewCirros() cirrosVmi.Spec.Domain.Devices.AutoattachSerialConsole = pointer.P(true) cirrosVmi.Spec.Domain.Devices.LogSerialConsole = pointer.P(true) }) diff --git a/tests/hotplug/BUILD.bazel b/tests/hotplug/BUILD.bazel index a1947c024033..fd46412df9b7 100644 --- a/tests/hotplug/BUILD.bazel +++ b/tests/hotplug/BUILD.bazel @@ -12,6 +12,7 @@ go_library( visibility = ["//visibility:public"], deps = [ "//pkg/apimachinery/patch:go_default_library", + "//pkg/libvmi:go_default_library", "//pkg/pointer:go_default_library", "//staging/src/kubevirt.io/api/core/v1:go_default_library", "//staging/src/kubevirt.io/client-go/kubecli:go_default_library", @@ -25,7 +26,7 @@ go_library( "//tests/libmigration:go_default_library", "//tests/libnet:go_default_library", "//tests/libpod:go_default_library", - "//tests/libvmi:go_default_library", + "//tests/libvmifact:go_default_library", "//tests/libwait:go_default_library", "//tests/migration:go_default_library", "//tests/testsuite:go_default_library", diff --git a/tests/hotplug/affinity.go b/tests/hotplug/affinity.go index fd1d96d86dc1..08590b8fe3be 100644 --- a/tests/hotplug/affinity.go +++ b/tests/hotplug/affinity.go @@ -8,13 +8,14 @@ import ( "kubevirt.io/kubevirt/tests/libnet" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/pointer" v1 "kubevirt.io/api/core/v1" util2 "kubevirt.io/kubevirt/tests/util" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/testsuite" @@ -104,7 +105,7 @@ var _ = Describe("[sig-compute]VM Affinity", decorators.SigCompute, decorators.S By("Creating a running VM") options := libnet.WithMasqueradeNetworking() options = append(options, libvmi.WithCPUCount(1, 2, 1)) - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( options..., ) vmi.Namespace = testsuite.GetTestNamespace(vmi) @@ -161,7 +162,7 @@ var _ = Describe("[sig-compute]VM Affinity", decorators.SigCompute, decorators.S It("should successfully update node affinity", func() { By("Creating a running VM") - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libnet.WithMasqueradeNetworking()..., ) vmi.Namespace = testsuite.GetTestNamespace(vmi) diff --git a/tests/hotplug/cpu.go b/tests/hotplug/cpu.go index cb56558ac65f..453b7b564ba3 100644 --- a/tests/hotplug/cpu.go +++ b/tests/hotplug/cpu.go @@ -8,6 +8,7 @@ import ( "kubevirt.io/kubevirt/tests/libnet" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/pointer" "kubevirt.io/kubevirt/tests/framework/checks" @@ -17,7 +18,7 @@ import ( "github.com/onsi/gomega/gstruct" gomegatypes "github.com/onsi/gomega/types" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/flags" util2 "kubevirt.io/kubevirt/tests/util" @@ -90,7 +91,7 @@ var _ = Describe("[sig-compute][Serial]CPU Hotplug", decorators.SigCompute, deco maxSockets uint32 = 2 ) - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libnet.WithMasqueradeNetworking()..., ) vmi.Namespace = testsuite.GetTestNamespace(vmi) @@ -188,7 +189,7 @@ var _ = Describe("[sig-compute][Serial]CPU Hotplug", decorators.SigCompute, deco const maxSockets uint32 = 3 By("Creating a running VM with 1 socket and 2 max sockets") - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libnet.WithMasqueradeNetworking()..., ) vmi.Namespace = testsuite.GetTestNamespace(vmi) diff --git a/tests/hotplug/memory.go b/tests/hotplug/memory.go index 334a6b84bb57..37b7d95d6f07 100644 --- a/tests/hotplug/memory.go +++ b/tests/hotplug/memory.go @@ -8,7 +8,7 @@ import ( "kubevirt.io/kubevirt/tests/libnet" "kubevirt.io/kubevirt/tests/libmigration" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/migration" util2 "kubevirt.io/kubevirt/tests/util" @@ -24,7 +24,9 @@ import ( "kubevirt.io/client-go/kubecli" "kubevirt.io/kubevirt/pkg/apimachinery/patch" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/pointer" + "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/decorators" "kubevirt.io/kubevirt/tests/framework/kubevirt" @@ -58,7 +60,7 @@ var _ = Describe("[sig-compute][Serial]Memory Hotplug", decorators.SigCompute, d Context("A VM with memory liveUpdate enabled", func() { createHotplugVM := func(guest, maxGuest *resource.Quantity, sockets *uint32, maxSockets uint32) (*v1.VirtualMachine, *v1.VirtualMachineInstance) { - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libnet.WithMasqueradeNetworking()..., ) vmi.Namespace = testsuite.GetTestNamespace(vmi) diff --git a/tests/hotplug/rolloutstrategy.go b/tests/hotplug/rolloutstrategy.go index 29d426c2cff6..34996b0ddd4a 100644 --- a/tests/hotplug/rolloutstrategy.go +++ b/tests/hotplug/rolloutstrategy.go @@ -9,13 +9,15 @@ import ( . "github.com/onsi/gomega" "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/pointer" + "kubevirt.io/kubevirt/tests/console" "kubevirt.io/kubevirt/tests/decorators" "kubevirt.io/kubevirt/tests/flags" "kubevirt.io/kubevirt/tests/framework/kubevirt" . "kubevirt.io/kubevirt/tests/framework/matcher" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" util2 "kubevirt.io/kubevirt/tests/util" @@ -54,7 +56,7 @@ var _ = Describe("[Serial][sig-compute]VM Rollout Strategy", decorators.SigCompu It("should set RestartRequired when changing any spec field", func() { By("Creating a VM with CPU topology") - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() vmi.Namespace = testsuite.GetTestNamespace(vmi) vmi.Spec.Domain.CPU = &v1.CPU{ Sockets: 1, diff --git a/tests/hyperv_test.go b/tests/hyperv_test.go index 5276e1fa4408..d531796e3787 100644 --- a/tests/hyperv_test.go +++ b/tests/hyperv_test.go @@ -7,6 +7,7 @@ import ( "strings" "time" + "kubevirt.io/kubevirt/pkg/libvmi" virtpointer "kubevirt.io/kubevirt/pkg/pointer" "kubevirt.io/kubevirt/pkg/virt-launcher/virtwrap/api" "kubevirt.io/kubevirt/tests/framework/matcher" @@ -43,7 +44,7 @@ import ( "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/console" "kubevirt.io/kubevirt/tests/libpod" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/util" ) @@ -63,7 +64,7 @@ var _ = Describe("[sig-compute] Hyper-V enlightenments", decorators.SigCompute, vmiWithReEnlightenment := func() *v1.VirtualMachineInstance { options := libnet.WithMasqueradeNetworking() options = append(options, withReEnlightenment()) - return libvmi.NewAlpine(options...) + return libvmifact.NewAlpine(options...) } BeforeEach(func() { @@ -233,7 +234,7 @@ var _ = Describe("[sig-compute] Hyper-V enlightenments", decorators.SigCompute, } for _, label := range supportedKVMInfoFeature { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() features := enableHyperVInVMI(label) vmi.Spec.Domain.Features = &v1.Features{ Hyperv: &features, @@ -250,7 +251,7 @@ var _ = Describe("[sig-compute] Hyper-V enlightenments", decorators.SigCompute, DescribeTable("[Serial] the vmi with EVMCS HyperV feature should have correct HyperV and cpu features auto filled", Serial, func(featureState *v1.FeatureState) { tests.EnableFeatureGate(virtconfig.HypervStrictCheckGate) - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() vmi.Spec.Domain.Features = &v1.Features{ Hyperv: &v1.FeatureHyperv{ EVMCS: featureState, @@ -286,7 +287,7 @@ var _ = Describe("[sig-compute] Hyper-V enlightenments", decorators.SigCompute, Context("VMI with HyperV passthrough", func() { It("should be usable and non-migratable", func() { - vmi := libvmi.NewCirros(withHypervPassthrough()) + vmi := libvmifact.NewCirros(withHypervPassthrough()) vmi = tests.RunVMIAndExpectLaunch(vmi, 60) domXml, err := tests.GetRunningVirtualMachineInstanceDomainXML(virtClient, vmi) diff --git a/tests/infrastructure/BUILD.bazel b/tests/infrastructure/BUILD.bazel index 6c1aba48fc02..34f20fb114d5 100644 --- a/tests/infrastructure/BUILD.bazel +++ b/tests/infrastructure/BUILD.bazel @@ -21,6 +21,7 @@ go_library( deps = [ "//pkg/apimachinery/patch:go_default_library", "//pkg/certificates/bootstrap:go_default_library", + "//pkg/libvmi:go_default_library", "//pkg/util/cluster:go_default_library", "//pkg/util/tls:go_default_library", "//pkg/virt-config:go_default_library", @@ -42,7 +43,7 @@ go_library( "//tests/libnet:go_default_library", "//tests/libnode:go_default_library", "//tests/libreplicaset:go_default_library", - "//tests/libvmi:go_default_library", + "//tests/libvmifact:go_default_library", "//tests/libwait:go_default_library", "//tests/testsuite:go_default_library", "//tests/util:go_default_library", diff --git a/tests/infrastructure/certificates.go b/tests/infrastructure/certificates.go index c7659324d50a..c131f484b0ba 100644 --- a/tests/infrastructure/certificates.go +++ b/tests/infrastructure/certificates.go @@ -26,7 +26,7 @@ import ( "time" "kubevirt.io/kubevirt/tests/libinfra" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/framework/kubevirt" @@ -128,7 +128,7 @@ var _ = DescribeInfra("[rfe_id:4102][crit:medium][vendor:cnv-qe@redhat.com][leve }, 10*time.Second, 1*time.Second).Should(BeTrue()) By("checking that we can still start virtual machines and connect to the VMI") - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() vmi = tests.RunVMIAndExpectLaunch(vmi, 60) Expect(console.LoginToAlpine(vmi)).To(Succeed()) }) @@ -144,7 +144,7 @@ var _ = DescribeInfra("[rfe_id:4102][crit:medium][vendor:cnv-qe@redhat.com][leve By("repeatedly starting VMIs until virt-api and virt-handler certificates are updated") Eventually(func() (rotated bool) { - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() vmi = tests.RunVMIAndExpectLaunch(vmi, 60) Expect(console.LoginToAlpine(vmi)).To(Succeed()) err = virtClient.VirtualMachineInstance(vmi.Namespace).Delete(context.Background(), vmi.Name, metav1.DeleteOptions{}) diff --git a/tests/infrastructure/downward-metrics.go b/tests/infrastructure/downward-metrics.go index c5868c349989..8c7b982d6773 100644 --- a/tests/infrastructure/downward-metrics.go +++ b/tests/infrastructure/downward-metrics.go @@ -32,7 +32,9 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "kubevirt.io/client-go/kubecli" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/pkg/libvmi" + + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/console" @@ -48,7 +50,7 @@ var _ = DescribeInfra("downwardMetrics", func() { DescribeTable("should start a vmi and get the metrics", func(via libvmi.Option, metricsGetter libinfra.MetricsGetter) { - vmi := libvmi.NewFedora(via) + vmi := libvmifact.NewFedora(via) vmi = tests.RunVMIAndExpectLaunch(vmi, 180) Expect(console.LoginToFedora(vmi)).To(Succeed()) @@ -71,7 +73,7 @@ var _ = DescribeInfra("downwardMetrics", func() { ) It("metric ResourceProcessorLimit should be present", func() { - vmi := libvmi.NewFedora(libvmi.WithCPUCount(1, 1, 1), libvmi.WithDownwardMetricsVolume("vhostmd")) + vmi := libvmifact.NewFedora(libvmi.WithCPUCount(1, 1, 1), libvmi.WithDownwardMetricsVolume("vhostmd")) vmi = tests.RunVMIAndExpectLaunch(vmi, 180) Expect(console.LoginToFedora(vmi)).To(Succeed()) diff --git a/tests/infrastructure/k8s-client-changes.go b/tests/infrastructure/k8s-client-changes.go index 76c9c9d48a12..8d4f2f576141 100644 --- a/tests/infrastructure/k8s-client-changes.go +++ b/tests/infrastructure/k8s-client-changes.go @@ -39,7 +39,9 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/kubecli" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/pkg/libvmi" + + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests" ) @@ -71,7 +73,7 @@ var _ = DescribeInfra("changes to the kubernetes client", func() { It("on the controller rate limiter should lead to delayed VMI starts", func() { By("first getting the basetime for a replicaset") - replicaset := tests.NewRandomReplicaSetFromVMI(libvmi.NewCirros(libvmi.WithResourceMemory("1Mi")), int32(0)) + replicaset := tests.NewRandomReplicaSetFromVMI(libvmifact.NewCirros(libvmi.WithResourceMemory("1Mi")), int32(0)) replicaset, err = virtClient.ReplicaSet(testsuite.GetTestNamespace(nil)).Create(replicaset) Expect(err).ToNot(HaveOccurred()) start := time.Now() diff --git a/tests/infrastructure/node-labeller.go b/tests/infrastructure/node-labeller.go index 0955424918c0..796e73dfb75c 100644 --- a/tests/infrastructure/node-labeller.go +++ b/tests/infrastructure/node-labeller.go @@ -46,8 +46,9 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/kubecli" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" + "kubevirt.io/kubevirt/pkg/libvmi" nodelabellerutil "kubevirt.io/kubevirt/pkg/virt-handler/node-labeller/util" "kubevirt.io/kubevirt/tests" ) @@ -376,7 +377,7 @@ var _ = DescribeInfra("Node-labeller", func() { }) It("[Serial]should not schedule vmi with host-model cpuModel to node with obsolete host-model cpuModel", func() { - vmi := libvmi.NewFedora( + vmi := libvmifact.NewFedora( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) diff --git a/tests/infrastructure/prometheus.go b/tests/infrastructure/prometheus.go index 9f2cbb0c2826..a79dfd02b937 100644 --- a/tests/infrastructure/prometheus.go +++ b/tests/infrastructure/prometheus.go @@ -28,10 +28,11 @@ import ( "strings" "time" + "kubevirt.io/kubevirt/pkg/libvmi" clusterutil "kubevirt.io/kubevirt/pkg/util/cluster" "kubevirt.io/kubevirt/tests/libinfra" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/framework/kubevirt" @@ -116,7 +117,7 @@ var _ = DescribeInfra("[rfe_id:3187][crit:medium][vendor:cnv-qe@redhat.com][leve */ By("creating a VMI in a user defined namespace") - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() startVMI(vmi) By("finding virt-operator pod") @@ -231,9 +232,9 @@ var _ = DescribeInfra("[rfe_id:3187][crit:medium][vendor:cnv-qe@redhat.com][leve // but if the default disk is not vda, the test will break // TODO: introspect the VMI and get the device name of this // block device? - vmi := libvmi.NewAlpine(libvmi.WithEmptyDisk("testdisk", v1.VirtIO, resource.MustParse("1G"))) + vmi := libvmifact.NewAlpine(libvmi.WithEmptyDisk("testdisk", v1.VirtIO, resource.MustParse("1G"))) if preferredNodeName != "" { - vmi = libvmi.NewAlpine(libvmi.WithEmptyDisk("testdisk", v1.VirtIO, resource.MustParse("1G")), + vmi = libvmifact.NewAlpine(libvmi.WithEmptyDisk("testdisk", v1.VirtIO, resource.MustParse("1G")), libvmi.WithNodeSelectorFor(&k8sv1.Node{ObjectMeta: metav1.ObjectMeta{Name: preferredNodeName}})) } diff --git a/tests/infrastructure/virt-controller-leader-election.go b/tests/infrastructure/virt-controller-leader-election.go index 42982fc8930b..529d19451ce4 100644 --- a/tests/infrastructure/virt-controller-leader-election.go +++ b/tests/infrastructure/virt-controller-leader-election.go @@ -24,7 +24,7 @@ import ( "time" "kubevirt.io/kubevirt/tests/libinfra" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/framework/kubevirt" @@ -81,7 +81,7 @@ var _ = DescribeInfra("Start a VirtualMachineInstance", func() { Expect(matcher.ThisPod(newLeaderPod)()).To(matcher.HaveConditionTrue(k8sv1.PodReady)) - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() By("Starting a new VirtualMachineInstance") obj, err := virtClient.RestClient().Post().Resource("virtualmachineinstances").Namespace(testsuite.GetTestNamespace(vmi)).Body(vmi).Do(context.Background()).Get() diff --git a/tests/instancetype_test.go b/tests/instancetype_test.go index 10ae65cae08b..af03a01ba00b 100644 --- a/tests/instancetype_test.go +++ b/tests/instancetype_test.go @@ -34,6 +34,7 @@ import ( cdiv1beta1 "kubevirt.io/containerized-data-importer-api/pkg/apis/core/v1beta1" instancetypepkg "kubevirt.io/kubevirt/pkg/instancetype" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/apimachinery/patch" "kubevirt.io/kubevirt/pkg/controller" @@ -41,7 +42,7 @@ import ( "kubevirt.io/kubevirt/tests/framework/cleanup" . "kubevirt.io/kubevirt/tests/framework/matcher" "kubevirt.io/kubevirt/tests/libstorage" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/testsuite" "kubevirt.io/kubevirt/tests/util" ) @@ -118,7 +119,7 @@ var _ = Describe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-c Context("VM with invalid InstancetypeMatcher", func() { It("[test_id:CNV-9086] should fail to create VM with non-existing cluster instancetype", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() vm := libvmi.NewVirtualMachine(vmi) vm.Spec.Instancetype = &v1.InstancetypeMatcher{ Name: "non-existing-cluster-instancetype", @@ -137,7 +138,7 @@ var _ = Describe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-c }) It("[test_id:CNV-9089] should fail to create VM with non-existing namespaced instancetype", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() vm := libvmi.NewVirtualMachine(vmi) vm.Spec.Instancetype = &v1.InstancetypeMatcher{ Name: "non-existing-instancetype", @@ -159,7 +160,7 @@ var _ = Describe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-c Context("VM with invalid PreferenceMatcher", func() { It("[test_id:CNV-9091] should fail to create VM with non-existing cluster preference", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() vm := libvmi.NewVirtualMachine(vmi) vm.Spec.Preference = &v1.PreferenceMatcher{ Name: "non-existing-cluster-preference", @@ -178,7 +179,7 @@ var _ = Describe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-c }) It("[test_id:CNV-9090] should fail to create VM with non-existing namespaced preference", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() vm := libvmi.NewVirtualMachine(vmi) vm.Spec.Preference = &v1.PreferenceMatcher{ Name: "non-existing-preference", @@ -206,7 +207,7 @@ var _ = Describe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-c tests.UpdateKubeVirtConfigValueAndWait(config) }) It("should apply memory overcommit instancetype to VMI even with cluster overcommit set", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() instancetype := newVirtualMachineInstancetype(vmi) instancetype.Spec.Memory.OvercommitPercent = 15 @@ -256,7 +257,7 @@ var _ = Describe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-c Context("Instancetype and preference application", func() { It("[test_id:CNV-9094] should find and apply cluster instancetype and preferences when kind isn't provided", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() clusterInstancetype := newVirtualMachineClusterInstancetype(vmi) clusterInstancetype, err := virtClient.VirtualMachineClusterInstancetype(). @@ -293,7 +294,7 @@ var _ = Describe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-c }) It("[test_id:CNV-9095] should apply instancetype and preferences to VMI", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() instancetype := newVirtualMachineInstancetype(vmi) instancetype.Spec.Annotations = map[string]string{ @@ -398,7 +399,7 @@ var _ = Describe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-c Expect(vmi.Annotations).To(HaveKeyWithValue("preferred-annotation-2", "2")) }) It("should apply memory overcommit instancetype to VMI", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() instancetype := newVirtualMachineInstancetype(vmi) instancetype.Spec.Memory.OvercommitPercent = 15 @@ -446,7 +447,7 @@ var _ = Describe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-c }) It("[test_id:CNV-9096] should fail if instancetype and VM define CPU", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() instancetype := newVirtualMachineInstancetype(vmi) instancetype, err := virtClient.VirtualMachineInstancetype(testsuite.GetTestNamespace(instancetype)). @@ -490,7 +491,7 @@ var _ = Describe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-c DescribeTable("[test_id:CNV-9301] should fail if the VirtualMachine has ", func(resources virtv1.ResourceRequirements, expectedField string) { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() instancetype := newVirtualMachineInstancetype(vmi) instancetype, err := virtClient.VirtualMachineInstancetype(testsuite.GetTestNamespace(instancetype)). Create(context.Background(), instancetype, metav1.CreateOptions{}) @@ -538,7 +539,7 @@ var _ = Describe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-c ) It("[test_id:CNV-9302] should apply preferences to default network interface", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() clusterPreference := newVirtualMachineClusterPreference() clusterPreference.Spec.Devices = &instancetypev1beta1.DevicePreferences{ @@ -566,7 +567,7 @@ var _ = Describe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-c }) It("[test_id:CNV-9303] should apply preferences to default volume disks", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() clusterPreference := newVirtualMachineClusterPreference() clusterPreference.Spec.Devices = &instancetypev1beta1.DevicePreferences{ @@ -597,7 +598,7 @@ var _ = Describe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-c }) It("[test_id:CNV-9098] should store and use ControllerRevisions of VirtualMachineInstancetypeSpec and VirtualMachinePreferenceSpec", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() By("Creating a VirtualMachineInstancetype") instancetype := newVirtualMachineInstancetype(vmi) @@ -681,7 +682,7 @@ var _ = Describe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-c Expect(vmi.Spec.Domain.CPU.Sockets).To(Equal(originalInstancetypeCPUGuest)) By("Creating a second VirtualMachine using the now updated VirtualMachineInstancetype and original VirtualMachinePreference") - newVMI := libvmi.NewCirros() + newVMI := libvmifact.NewCirros() removeResourcesAndPreferencesFromVMI(newVMI) newVM := libvmi.NewVirtualMachine(newVMI) newVM.Spec.Instancetype = &v1.InstancetypeMatcher{ @@ -726,7 +727,7 @@ var _ = Describe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-c }) It("[test_id:CNV-9304] should fail if stored ControllerRevisions are different", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() By("Creating a VirtualMachineInstancetype") instancetype := newVirtualMachineInstancetype(vmi) @@ -889,7 +890,7 @@ var _ = Describe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-c preferenceRevision, err = virtClient.AppsV1().ControllerRevisions(namespace).Create(context.Background(), preferenceRevision, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() removeResourcesAndPreferencesFromVMI(vmi) vm := libvmi.NewVirtualMachine(vmi) vm.Spec.Instancetype = &virtv1.InstancetypeMatcher{ @@ -1416,7 +1417,7 @@ var _ = Describe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-c }) It("should be accepted and result in running VirtualMachineInstance", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() clusterInstancetype := newVirtualMachineClusterInstancetype(vmi) clusterInstancetype.Spec.CPU.DedicatedCPUPlacement = pointer.Bool(true) diff --git a/tests/kubectl_test.go b/tests/kubectl_test.go index 25bbdadac4be..a757a1a5ebca 100644 --- a/tests/kubectl_test.go +++ b/tests/kubectl_test.go @@ -14,7 +14,7 @@ import ( "kubevirt.io/kubevirt/tests/framework/kubevirt" "kubevirt.io/kubevirt/tests/testsuite" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/clientcmd" "kubevirt.io/kubevirt/tests/console" @@ -26,6 +26,8 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" + "kubevirt.io/kubevirt/tests" ) @@ -172,7 +174,7 @@ var _ = Describe("[sig-compute]oc/kubectl integration", decorators.SigCompute, f Context("'kubectl get vmim'", func() { It("print the expected columns and their corresponding values", func() { - vmi := libvmi.NewCirros( + vmi := libvmifact.NewCirros( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -230,7 +232,7 @@ var _ = Describe("[sig-compute]oc/kubectl integration", decorators.SigCompute, f ) It("oc/kubectl logs return default container log", func() { - vm = libvmi.NewCirros() + vm = libvmifact.NewCirros() vm = tests.RunVMIAndExpectLaunch(vm, 30) k8sClient := clientcmd.GetK8sCmdClient() diff --git a/tests/launchsecurity/BUILD.bazel b/tests/launchsecurity/BUILD.bazel index 9f9d45bcf709..ff6a296a15d4 100644 --- a/tests/launchsecurity/BUILD.bazel +++ b/tests/launchsecurity/BUILD.bazel @@ -6,6 +6,7 @@ go_library( importpath = "kubevirt.io/kubevirt/tests/launchsecurity", visibility = ["//visibility:public"], deps = [ + "//pkg/libvmi:go_default_library", "//pkg/virt-config:go_default_library", "//staging/src/kubevirt.io/api/core/v1:go_default_library", "//staging/src/kubevirt.io/client-go/kubecli:go_default_library", @@ -17,7 +18,7 @@ go_library( "//tests/framework/kubevirt:go_default_library", "//tests/framework/matcher:go_default_library", "//tests/libpod:go_default_library", - "//tests/libvmi:go_default_library", + "//tests/libvmifact:go_default_library", "//tests/libwait:go_default_library", "//tests/testsuite:go_default_library", "//vendor/github.com/google/goexpect:go_default_library", diff --git a/tests/launchsecurity/sev.go b/tests/launchsecurity/sev.go index 31d46034bd75..172c03aedf26 100644 --- a/tests/launchsecurity/sev.go +++ b/tests/launchsecurity/sev.go @@ -31,6 +31,7 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" virtconfig "kubevirt.io/kubevirt/pkg/virt-config" "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/console" @@ -39,7 +40,7 @@ import ( "kubevirt.io/kubevirt/tests/framework/kubevirt" . "kubevirt.io/kubevirt/tests/framework/matcher" "kubevirt.io/kubevirt/tests/libpod" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" ) @@ -55,7 +56,7 @@ var _ = Describe("[sig-compute]AMD Secure Encrypted Virtualization (SEV)", decor libvmi.WithSEV(withES), } opts = append(sevOptions, opts...) - return libvmi.NewFedora(opts...) + return libvmifact.NewFedora(opts...) } // As per section 6.5 LAUNCH_MEASURE of the AMD SEV specification the launch diff --git a/tests/libnet/BUILD.bazel b/tests/libnet/BUILD.bazel index 0bae1002c8c7..77dfd047298b 100644 --- a/tests/libnet/BUILD.bazel +++ b/tests/libnet/BUILD.bazel @@ -17,6 +17,7 @@ go_library( importpath = "kubevirt.io/kubevirt/tests/libnet", visibility = ["//visibility:public"], deps = [ + "//pkg/libvmi:go_default_library", "//pkg/virtctl/expose:go_default_library", "//staging/src/kubevirt.io/api/core/v1:go_default_library", "//staging/src/kubevirt.io/client-go/kubecli:go_default_library", @@ -24,7 +25,6 @@ go_library( "//tests/framework/kubevirt:go_default_library", "//tests/libnet/cloudinit:go_default_library", "//tests/libnet/cluster:go_default_library", - "//tests/libvmi:go_default_library", "//vendor/github.com/k8snetworkplumbingwg/network-attachment-definition-client/pkg/apis/k8s.cni.cncf.io/v1:go_default_library", "//vendor/github.com/onsi/ginkgo/v2:go_default_library", "//vendor/github.com/onsi/gomega:go_default_library", diff --git a/tests/libnet/vmibuilder.go b/tests/libnet/vmibuilder.go index 9f2868e655f5..71755c9f30c6 100644 --- a/tests/libnet/vmibuilder.go +++ b/tests/libnet/vmibuilder.go @@ -22,8 +22,9 @@ package libnet import ( v1 "kubevirt.io/api/core/v1" + "kubevirt.io/kubevirt/pkg/libvmi" + "kubevirt.io/kubevirt/tests/libnet/cloudinit" - "kubevirt.io/kubevirt/tests/libvmi" ) func WithMasqueradeNetworking(ports ...v1.Port) []libvmi.Option { diff --git a/tests/libvmifact/BUILD.bazel b/tests/libvmifact/BUILD.bazel new file mode 100644 index 000000000000..83980d913758 --- /dev/null +++ b/tests/libvmifact/BUILD.bazel @@ -0,0 +1,17 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "architecture.go", + "factory.go", + ], + importpath = "kubevirt.io/kubevirt/tests/libvmifact", + visibility = ["//visibility:public"], + deps = [ + "//pkg/libvmi:go_default_library", + "//pkg/pointer:go_default_library", + "//staging/src/kubevirt.io/api/core/v1:go_default_library", + "//tests/containerdisk:go_default_library", + ], +) diff --git a/tests/libvmifact/OWNERS b/tests/libvmifact/OWNERS new file mode 100644 index 000000000000..210a84c3ac66 --- /dev/null +++ b/tests/libvmifact/OWNERS @@ -0,0 +1,3 @@ +# See the OWNERS docs at https://go.k8s.io/owners +approvers: + - EdDev diff --git a/tests/libvmifact/README.md b/tests/libvmifact/README.md new file mode 100644 index 000000000000..c005b7c2ba24 --- /dev/null +++ b/tests/libvmifact/README.md @@ -0,0 +1,57 @@ +# libvmifact + +libvmifact is a VMI manifest factory. + +## Overview + +### Motivation + +While reading code, especially test code, a difficulty has been +observed to understand in an easy and clear manner, what is the content +of a VMI object. In a long chain of function call stack, different portions +of the VMI got updated, sometime overriding previously set fields. + +### Goal + - Simplify the creation of VMI objects. + - Easily understand what VMI objects contain. + +## How +libvmifact is aimed to build the vmi manifest with a predefined set of settings +that are commonly used by the e2e tests. + +It uses the `libvmi` package, allowing a modular construction of VMI +different sections. + +### Rules +In order to keep the package useful and easy to maintain, a few +rules are in order. + +The main goal of these rules are to keep the package simple to use and +easy to grow. While exceptions may apply, they will need a wide consensus +and should not be overused. It would be better to just ask to change the rules. + +- Do **not** add logic in factories, unless they fell into these categories: + - It is a factory that is widely used. (e.g. amount of memory depending on + the architecture). + - It is a widely used abstraction that combines several fields that have some + dependency on each other. +- Do **not** add commands on objects, e.g. calls through clients. + +> **Note**: A factory is considered `widely used` when it is needed from multiple +> packages. In case a single package or test file is using it, it may fit better +> under that package or test. The reason is simple, it has more context closer to +> the usage and known by the developers in a more accurate manner. + +### Structure + +- Factory: `factory.go` file contains commonly used base VMI specs. + Users will usually pick one factory to use and then add different + builders to continue building the spec. + +## Maintenance and Ownership + +Maintainers are expected to follow the above rules or ask for exceptions. +Possibly asking to change a rule with a good reasoning. + +Make sure to always keep things in focus, simple and clean. +When things get out of control, things get slower, not faster. diff --git a/tests/libvmi/architecture.go b/tests/libvmifact/architecture.go similarity index 97% rename from tests/libvmi/architecture.go rename to tests/libvmifact/architecture.go index 56dfd34cff5f..368c3149a8d3 100644 --- a/tests/libvmi/architecture.go +++ b/tests/libvmifact/architecture.go @@ -17,7 +17,7 @@ * */ -package libvmi +package libvmifact var architecture string diff --git a/tests/libvmi/factory.go b/tests/libvmifact/factory.go similarity index 61% rename from tests/libvmi/factory.go rename to tests/libvmifact/factory.go index b6aed8657876..f783297c337c 100644 --- a/tests/libvmi/factory.go +++ b/tests/libvmifact/factory.go @@ -17,12 +17,14 @@ * */ -package libvmi +package libvmifact import ( kvirtv1 "kubevirt.io/api/core/v1" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/pointer" + cd "kubevirt.io/kubevirt/tests/containerdisk" ) @@ -35,61 +37,61 @@ const ( // NewFedora instantiates a new Fedora based VMI configuration, // building its extra properties based on the specified With* options. // This image has tooling for the guest agent, stress, SR-IOV and more. -func NewFedora(opts ...Option) *kvirtv1.VirtualMachineInstance { - fedoraOptions := []Option{ - WithResourceMemory("512Mi"), - WithRng(), - WithContainerDisk("disk0", cd.ContainerDiskFor(cd.ContainerDiskFedoraTestTooling)), +func NewFedora(opts ...libvmi.Option) *kvirtv1.VirtualMachineInstance { + fedoraOptions := []libvmi.Option{ + libvmi.WithResourceMemory("512Mi"), + libvmi.WithRng(), + libvmi.WithContainerDisk("disk0", cd.ContainerDiskFor(cd.ContainerDiskFedoraTestTooling)), } opts = append(fedoraOptions, opts...) - return New(opts...) + return libvmi.New(opts...) } // NewCirros instantiates a new CirrOS based VMI configuration -func NewCirros(opts ...Option) *kvirtv1.VirtualMachineInstance { +func NewCirros(opts ...libvmi.Option) *kvirtv1.VirtualMachineInstance { // Supplied with no user data, Cirros image takes 230s to allow login - withNonEmptyUserData := WithCloudInitNoCloudEncodedUserData("#!/bin/bash\necho hello\n") + withNonEmptyUserData := libvmi.WithCloudInitNoCloudEncodedUserData("#!/bin/bash\necho hello\n") - cirrosOpts := []Option{ - WithContainerDisk("disk0", cd.ContainerDiskFor(cd.ContainerDiskCirros)), + cirrosOpts := []libvmi.Option{ + libvmi.WithContainerDisk("disk0", cd.ContainerDiskFor(cd.ContainerDiskCirros)), withNonEmptyUserData, - WithResourceMemory(cirrosMemory()), + libvmi.WithResourceMemory(cirrosMemory()), } cirrosOpts = append(cirrosOpts, opts...) - return New(cirrosOpts...) + return libvmi.New(cirrosOpts...) } // NewAlpine instantiates a new Alpine based VMI configuration -func NewAlpine(opts ...Option) *kvirtv1.VirtualMachineInstance { +func NewAlpine(opts ...libvmi.Option) *kvirtv1.VirtualMachineInstance { alpineMemory := cirrosMemory - alpineOpts := []Option{ - WithContainerDisk("disk0", cd.ContainerDiskFor(cd.ContainerDiskAlpine)), - WithResourceMemory(alpineMemory()), - WithRng(), + alpineOpts := []libvmi.Option{ + libvmi.WithContainerDisk("disk0", cd.ContainerDiskFor(cd.ContainerDiskAlpine)), + libvmi.WithResourceMemory(alpineMemory()), + libvmi.WithRng(), } alpineOpts = append(alpineOpts, opts...) - return New(alpineOpts...) + return libvmi.New(alpineOpts...) } -func NewAlpineWithTestTooling(opts ...Option) *kvirtv1.VirtualMachineInstance { +func NewAlpineWithTestTooling(opts ...libvmi.Option) *kvirtv1.VirtualMachineInstance { // Supplied with no user data, AlpimeWithTestTooling image takes more than 200s to allow login - withNonEmptyUserData := WithCloudInitNoCloudEncodedUserData("#!/bin/bash\necho hello\n") + withNonEmptyUserData := libvmi.WithCloudInitNoCloudEncodedUserData("#!/bin/bash\necho hello\n") alpineMemory := cirrosMemory - alpineOpts := []Option{ - WithContainerDisk("disk0", cd.ContainerDiskFor(cd.ContainerDiskAlpineTestTooling)), + alpineOpts := []libvmi.Option{ + libvmi.WithContainerDisk("disk0", cd.ContainerDiskFor(cd.ContainerDiskAlpineTestTooling)), withNonEmptyUserData, - WithResourceMemory(alpineMemory()), - WithRng(), + libvmi.WithResourceMemory(alpineMemory()), + libvmi.WithRng(), } alpineOpts = append(alpineOpts, opts...) - return New(alpineOpts...) + return libvmi.New(alpineOpts...) } -func NewGuestless(opts ...Option) *kvirtv1.VirtualMachineInstance { +func NewGuestless(opts ...libvmi.Option) *kvirtv1.VirtualMachineInstance { opts = append( - []Option{WithResourceMemory(qemuMinimumMemory())}, + []libvmi.Option{libvmi.WithResourceMemory(qemuMinimumMemory())}, opts...) - return New(opts...) + return libvmi.New(opts...) } func qemuMinimumMemory() string { @@ -109,18 +111,18 @@ func cirrosMemory() string { return "128Mi" } -func NewWindows(opts ...Option) *kvirtv1.VirtualMachineInstance { +func NewWindows(opts ...libvmi.Option) *kvirtv1.VirtualMachineInstance { const cpuCount = 2 const featureSpinlocks = 8191 - windowsOpts := []Option{ - WithTerminationGracePeriod(0), - WithCPUCount(cpuCount, cpuCount, cpuCount), - WithResourceMemory("2048Mi"), - WithEphemeralPersistentVolumeClaim(windowsDiskName, WindowsPVCName), + windowsOpts := []libvmi.Option{ + libvmi.WithTerminationGracePeriod(0), + libvmi.WithCPUCount(cpuCount, cpuCount, cpuCount), + libvmi.WithResourceMemory("2048Mi"), + libvmi.WithEphemeralPersistentVolumeClaim(windowsDiskName, WindowsPVCName), } windowsOpts = append(windowsOpts, opts...) - vmi := New(windowsOpts...) + vmi := libvmi.New(windowsOpts...) vmi.Spec.Domain.Features = &kvirtv1.Features{ ACPI: kvirtv1.FeatureState{}, diff --git a/tests/mdev_configuration_allocation_test.go b/tests/mdev_configuration_allocation_test.go index ec5f726f1732..01806aa79d3d 100644 --- a/tests/mdev_configuration_allocation_test.go +++ b/tests/mdev_configuration_allocation_test.go @@ -34,7 +34,7 @@ import ( "kubevirt.io/kubevirt/tests/libnet" "kubevirt.io/kubevirt/tests/libnode" "kubevirt.io/kubevirt/tests/libpod" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" ) @@ -254,7 +254,7 @@ var _ = Describe("[Serial][sig-compute]MediatedDevices", Serial, decorators.VGPU It("Should successfully passthrough a mediated device", func() { By("Creating a Fedora VMI") - vmi = libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi = libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Spec.Domain.Resources.Requests[k8sv1.ResourceMemory] = resource.MustParse("1G") vGPUs := []v1.GPU{ { @@ -285,7 +285,7 @@ var _ = Describe("[Serial][sig-compute]MediatedDevices", Serial, decorators.VGPU It("Should successfully passthrough a mediated device with a disabled display", func() { _false := false By("Creating a Fedora VMI") - vmi = libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi = libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Spec.Domain.Resources.Requests[k8sv1.ResourceMemory] = resource.MustParse("1G") vGPUs := []v1.GPU{ { @@ -335,7 +335,7 @@ var _ = Describe("[Serial][sig-compute]MediatedDevices", Serial, decorators.VGPU libnode.AddLabelToNode(singleNode.Name, cleanup.TestLabelForNamespace(testsuite.GetTestNamespace(vmi)), mdevTestLabel) By("Creating a Fedora VMI") - vmi = libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi = libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Spec.Domain.Resources.Requests[k8sv1.ResourceMemory] = resource.MustParse("1G") vGPUs := []v1.GPU{ { diff --git a/tests/migration/BUILD.bazel b/tests/migration/BUILD.bazel index 24487a77147b..31a1644e4ebf 100644 --- a/tests/migration/BUILD.bazel +++ b/tests/migration/BUILD.bazel @@ -14,6 +14,7 @@ go_library( "//pkg/apimachinery/patch:go_default_library", "//pkg/certificates/triple:go_default_library", "//pkg/certificates/triple/cert:go_default_library", + "//pkg/libvmi:go_default_library", "//pkg/pointer:go_default_library", "//pkg/util/hardware:go_default_library", "//pkg/virt-config:go_default_library", @@ -50,7 +51,7 @@ go_library( "//tests/libnode:go_default_library", "//tests/libpod:go_default_library", "//tests/libstorage:go_default_library", - "//tests/libvmi:go_default_library", + "//tests/libvmifact:go_default_library", "//tests/libwait:go_default_library", "//tests/testsuite:go_default_library", "//tests/util:go_default_library", diff --git a/tests/migration/eviction_strategy.go b/tests/migration/eviction_strategy.go index c8912a3943ac..27cdbc2615ff 100644 --- a/tests/migration/eviction_strategy.go +++ b/tests/migration/eviction_strategy.go @@ -35,7 +35,7 @@ import ( "kubevirt.io/kubevirt/tests/libnet" "kubevirt.io/kubevirt/tests/libnode" "kubevirt.io/kubevirt/tests/libpod" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/util" . "github.com/onsi/ginkgo/v2" @@ -52,6 +52,8 @@ import ( 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" ) @@ -418,7 +420,7 @@ var _ = SIGMigrationDescribe("Live Migration", func() { libvmi.WithPreferredPodAffinity(podAffinityTerm), libvmi.WithPreferredNodeAffinity(nodeAffinityTerm), ) - vmi_noevict := libvmi.NewAlpine( + vmi_noevict := libvmifact.NewAlpine( libvmi.WithNamespace(testsuite.GetTestNamespace(nil)), libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), @@ -594,7 +596,7 @@ var _ = SIGMigrationDescribe("Live Migration", func() { Context("with no eviction strategy set", func() { It("[test_id:10155]should block the eviction api and migrate", func() { // no EvictionStrategy set - vmi := libvmi.NewAlpine( + vmi := libvmifact.NewAlpine( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -635,7 +637,7 @@ var _ = SIGMigrationDescribe("Live Migration", func() { Context("with eviction strategy set to 'None'", func() { It("[test_id:10156]The VMI should get evicted", func() { - vmi := libvmi.NewAlpine( + vmi := libvmifact.NewAlpine( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithEvictionStrategy(v1.EvictionStrategyNone), @@ -657,7 +659,7 @@ func fedoraVMIWithEvictionStrategy() *v1.VirtualMachineInstance { libvmi.WithEvictionStrategy(v1.EvictionStrategyLiveMigrate), libvmi.WithNamespace(testsuite.GetTestNamespace(nil)), ) - return libvmi.NewFedora(opts...) + return libvmifact.NewFedora(opts...) } func alpineVMIWithEvictionStrategy(additionalOpts ...libvmi.Option) *v1.VirtualMachineInstance { @@ -668,7 +670,7 @@ func alpineVMIWithEvictionStrategy(additionalOpts ...libvmi.Option) *v1.VirtualM opts = append(opts, additionalOpts...) - return libvmi.NewAlpine(opts...) + return libvmifact.NewAlpine(opts...) } func filterRunningMigrations(migrations []v1.VirtualMachineInstanceMigration) []v1.VirtualMachineInstanceMigration { diff --git a/tests/migration/migration.go b/tests/migration/migration.go index aa18c900d37e..a1b89f79a2de 100644 --- a/tests/migration/migration.go +++ b/tests/migration/migration.go @@ -35,6 +35,7 @@ import ( migrationsv1 "kubevirt.io/api/migrations/v1alpha1" + "kubevirt.io/kubevirt/pkg/libvmi" kvpointer "kubevirt.io/kubevirt/pkg/pointer" "kubevirt.io/kubevirt/pkg/virt-controller/services" @@ -82,7 +83,7 @@ import ( "k8s.io/apimachinery/pkg/util/rand" "k8s.io/utils/pointer" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" . "kubevirt.io/kubevirt/tests/framework/matcher" @@ -161,7 +162,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { secretName := createSecret(namespace) configMapName := createConfigMap(namespace) - return libvmi.NewFedora( + return libvmifact.NewFedora( libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithLabel(downwardTestLabelKey, downwardTestLabelVal), @@ -225,7 +226,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { const labelKey = "subdomain" const labelValue = "mysub" - vmi := libvmi.NewCirros( + vmi := libvmifact.NewCirros( withHostnameAndSubdomain(hostname, subdomain), libvmi.WithLabel(labelKey, labelValue), libvmi.WithNetwork(v1.DefaultPodNetwork()), @@ -340,7 +341,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { Context("with a bridge network interface", func() { It("[test_id:3226]should reject a migration of a vmi with a bridge interface", func() { - vmi := libvmi.NewAlpine( + vmi := libvmifact.NewAlpine( libvmi.WithInterface(libvmi.InterfaceDeviceWithBridgeBinding("default")), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -392,7 +393,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { } It("[test_id:6968]should apply them and result in different migration durations", func() { - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libnet.WithMasqueradeNetworking()..., ) By("Starting the VirtualMachineInstance") @@ -405,7 +406,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { }) Context("with a Alpine disk", func() { It("[test_id:6969]should be successfully migrate with a tablet device", func() { - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libnet.WithMasqueradeNetworking()..., ) vmi.Spec.Domain.Devices.Inputs = []v1.Input{ @@ -430,7 +431,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { libmigration.ConfirmVMIPostMigration(virtClient, vmi, migration) }) It("should be successfully migrate with a WriteBack disk cache", func() { - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libnet.WithMasqueradeNetworking()..., ) vmi.Spec.Domain.Devices.Disks[0].Cache = v1.CacheWriteBack @@ -458,7 +459,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { }) It("[test_id:6970]should migrate vmi with cdroms on various bus types", func() { - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( append(libnet.WithMasqueradeNetworking(), libvmi.WithEphemeralCDRom("cdrom-0", v1.DiskBusSATA, cd.ContainerDiskFor(cd.ContainerDiskAlpine)), libvmi.WithEphemeralCDRom("cdrom-1", v1.DiskBusSCSI, cd.ContainerDiskFor(cd.ContainerDiskAlpine)), @@ -481,7 +482,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { }) It("should migrate vmi with LiveMigrateIfPossible eviction strategy", func() { - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libnet.WithMasqueradeNetworking()..., ) strategy := v1.EvictionStrategyLiveMigrateIfPossible @@ -555,7 +556,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { }) DescribeTable("should migrate with a downwardMetrics", func(via libvmi.Option, metricsGetter libinfra.MetricsGetter) { - vmi := libvmi.NewFedora( + vmi := libvmifact.NewFedora( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), via, @@ -594,7 +595,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { ) It("[test_id:6842]should migrate with TSC frequency set", decorators.Invtsc, decorators.TscFrequencies, func() { - vmi := libvmi.NewAlpine( + vmi := libvmifact.NewAlpine( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithCPUFeature("invtsc", "require"), @@ -634,7 +635,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { }) It("[test_id:4113]should be successfully migrate with cloud-init disk with devices on the root bus", func() { - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libnet.WithMasqueradeNetworking()..., ) vmi.Annotations = map[string]string{ @@ -669,7 +670,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { It("[test_id:9795]should migrate vmi with a usb disk", func() { - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libvmi.WithEmptyDisk("uniqueusbdisk", v1.DiskBusUSB, resource.MustParse("128Mi")), libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), @@ -691,7 +692,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { }) It("[test_id:1783]should be successfully migrated multiple times with cloud-init disk", func() { - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libnet.WithMasqueradeNetworking()..., ) @@ -731,7 +732,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { // prevented things like migration. This test verifies we can migrate after // resetting virtqemud It("[test_id:4746]should migrate even if virtqemud has restarted at some point.", func() { - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libnet.WithMasqueradeNetworking()..., ) @@ -778,7 +779,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { }) It("[test_id:6972]should migrate to a persistent (non-transient) libvirt domain.", func() { - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libnet.WithMasqueradeNetworking()..., ) @@ -805,7 +806,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { libmigration.EnsureNoMigrationMetadataInPersistentXML(vmi) }) It("[test_id:6973]should be able to successfully migrate with a paused vmi", func() { - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libnet.WithMasqueradeNetworking()..., ) @@ -861,7 +862,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { It("should automatically cancel unschedulable migration after a timeout period", func() { // Add node affinity to ensure VMI affinity rules block target pod from being created opts := append(libnet.WithMasqueradeNetworking(), libvmi.WithNodeAffinityFor(nodes.Items[0].Name)) - vmi := libvmi.NewFedora(opts...) + vmi := libvmifact.NewFedora(opts...) vmi.Spec.Domain.Resources.Requests[k8sv1.ResourceMemory] = resource.MustParse(fedoraVMSize) By("Starting the VirtualMachineInstance") @@ -916,7 +917,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { }) It("should automatically cancel pending target pod after a catch all timeout period", func() { - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Spec.Domain.Resources.Requests[k8sv1.ResourceMemory] = resource.MustParse(fedoraVMSize) By("Starting the VirtualMachineInstance") @@ -980,7 +981,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { }) It("[test_id:3237]should complete a migration", func() { - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Spec.Domain.Resources.Requests[k8sv1.ResourceMemory] = resource.MustParse(fedoraVMSize) By("Starting the VirtualMachineInstance") @@ -1005,7 +1006,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { }) Context("with setting guest time", func() { It("[test_id:4114]should set an updated time after a migration", func() { - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Spec.Domain.Resources.Requests[k8sv1.ResourceMemory] = resource.MustParse(fedoraVMSize) vmi.Spec.Domain.Devices.Rng = &v1.Rng{} @@ -1118,7 +1119,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { libmigration.ConfirmVMIPostMigration(virtClient, vmi, migration) }) It("[test_id:6974]should reject additional migrations on the same VMI if the first one is not finished", func() { - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Spec.Domain.Resources.Requests[k8sv1.ResourceMemory] = resource.MustParse(fedoraVMSize) By("Starting the VirtualMachineInstance") @@ -1370,7 +1371,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { Expect(vmi.Annotations).To(HaveKey(v1.DeprecatedNonRootVMIAnnotation)) }, Entry("[test_id:8609] with simple VMI", func() *v1.VirtualMachineInstance { - return libvmi.NewAlpine( + return libvmifact.NewAlpine( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork())) }, console.LoginToAlpine), @@ -1460,7 +1461,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { Expect(vmi.Annotations).ToNot(HaveKey(v1.DeprecatedNonRootVMIAnnotation)) }, Entry("with simple VMI", func() *v1.VirtualMachineInstance { - return libvmi.NewAlpine( + return libvmifact.NewAlpine( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork())) }, console.LoginToAlpine), @@ -1500,7 +1501,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { cfg.MigrationConfiguration.DisableTLS = pointer.BoolPtr(true) tests.UpdateKubeVirtConfigValueAndWait(cfg) - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libnet.WithMasqueradeNetworking()..., ) @@ -1523,7 +1524,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { cfg.MigrationConfiguration.BandwidthPerMigration = resource.NewQuantity(1, resource.BinarySI) cfg.MigrationConfiguration.DisableTLS = pointer.BoolPtr(true) tests.UpdateKubeVirtConfigValueAndWait(cfg) - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Spec.Domain.Resources.Requests[k8sv1.ResourceMemory] = resource.MustParse(fedoraVMSize) By("Starting the VirtualMachineInstance") @@ -1601,7 +1602,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { }) It("[test_id:2303][posneg:negative] should secure migrations with TLS", func() { - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Spec.Domain.Resources.Requests[k8sv1.ResourceMemory] = resource.MustParse(fedoraVMSize) By("Limiting the bandwidth of migrations in the test namespace") @@ -1750,7 +1751,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { ) DescribeTable("[test_id:4747] using", func(settingsType applySettingsType) { - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Spec.Domain.Resources.Requests[k8sv1.ResourceMemory] = resource.MustParse("512Mi") vmi.Spec.Domain.Devices.Rng = &v1.Rng{} vmi.Namespace = testsuite.NamespacePrivileged @@ -1820,7 +1821,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { }) It("[test_id:2227] should abort a vmi migration", func() { - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Spec.Domain.Resources.Requests[k8sv1.ResourceMemory] = resource.MustParse("1Gi") By("Starting the VirtualMachineInstance") @@ -1846,7 +1847,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { }) It("[test_id:6978] Should detect a failed migration", func() { - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Spec.Domain.Resources.Requests[k8sv1.ResourceMemory] = resource.MustParse("1Gi") By("Starting the VirtualMachineInstance") @@ -1931,7 +1932,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { }) It("old finalized migrations should get garbage collected", func() { - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Spec.Domain.Resources.Requests[k8sv1.ResourceMemory] = resource.MustParse("1Gi") // this annotation causes virt launcher to immediately fail a migration @@ -1972,7 +1973,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { }) It("[test_id:6979]Target pod should exit after failed migration", func() { - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Spec.Domain.Resources.Requests[k8sv1.ResourceMemory] = resource.MustParse("1Gi") // this annotation causes virt launcher to immediately fail a migration @@ -2006,7 +2007,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { }) It("[test_id:6980]Migration should fail if target pod fails during target preparation", func() { - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Spec.Domain.Resources.Requests[k8sv1.ResourceMemory] = resource.MustParse("1Gi") // this annotation causes virt launcher to immediately fail a migration @@ -2076,7 +2077,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { tests.CreateConfigMap(configMapName, testsuite.GetTestNamespace(nil), config_data) tests.CreateSecret(secretName, testsuite.GetTestNamespace(nil), secret_data) - vmi := libvmi.NewAlpine( + vmi := libvmifact.NewAlpine( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithConfigMapDisk(configMapName, configMapName), @@ -2179,7 +2180,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { type vmiBuilder func() *v1.VirtualMachineInstance newVirtualMachineInstanceWithFedoraContainerDisk := func() *v1.VirtualMachineInstance { - return libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + return libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) } newVirtualMachineInstanceWithFedoraRWXBlockDisk := func() *v1.VirtualMachineInstance { @@ -2242,7 +2243,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { Entry("[sig-storage][storage-req][test_id:2732] with RWX block disk and virtctl", decorators.StorageReq, newVirtualMachineInstanceWithFedoraRWXBlockDisk, true)) DescribeTable("Immediate migration cancellation after migration starts running", func(with_virtctl bool) { - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Spec.Domain.Resources.Requests[k8sv1.ResourceMemory] = resource.MustParse(fedoraVMSize) By("Limiting the bandwidth of migrations in the test namespace") @@ -2301,7 +2302,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { ) DescribeTable("Immediate migration cancellation before migration starts running", func(with_virtctl bool) { - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Spec.Domain.Resources.Requests[k8sv1.ResourceMemory] = resource.MustParse(fedoraVMSize) By("Limiting the bandwidth of migrations in the test namespace") @@ -2375,7 +2376,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { It("should be able to properly abort migration", func() { By("Starting a VirtualMachineInstance") - vmi := libvmi.NewGuestless( + vmi := libvmifact.NewGuestless( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -2498,7 +2499,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { } By("Creating a VMI with default CPU mode to land in source node") - vmi := libvmi.NewAlpine( + vmi := libvmifact.NewAlpine( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithEvictionStrategy(v1.EvictionStrategyLiveMigrate), @@ -2667,7 +2668,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { const numberOfMigrationThreads uint = 4 newVmi := func() *v1.VirtualMachineInstance { - return libvmi.NewCirros( + return libvmifact.NewCirros( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -2717,7 +2718,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { config.MigrationConfiguration.AllowAutoConverge = pointer.BoolPtr(true) tests.UpdateKubeVirtConfigValueAndWait(config) - vmi := libvmi.NewAlpine( + vmi := libvmifact.NewAlpine( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -2767,7 +2768,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { }) It("should be able to migrate", func() { - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libnet.WithMasqueradeNetworking()..., ) @@ -2821,7 +2822,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { Context("[test_id:8482] Migration Metrics", func() { It("exposed to prometheus during VM migration", func() { - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Spec.Domain.Resources.Requests[k8sv1.ResourceMemory] = resource.MustParse(fedoraVMSize) By("Limiting the bandwidth of migrations in the test namespace") @@ -2862,7 +2863,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { Skip(fmt.Sprintf("Not enough nodes with hugepages %s capacity. Need 2, found %d.", hugepageType, count)) } - hugepagesVmi := libvmi.NewAlpine( + hugepagesVmi := libvmifact.NewAlpine( libvmi.WithNamespace(testsuite.GetTestNamespace(nil)), libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), @@ -2891,7 +2892,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { It("should not make migrations fail", func() { checks.SkipTestIfNotEnoughNodesWithCPUManagerWith2MiHugepages(2) var err error - cpuVMI := libvmi.NewAlpine( + cpuVMI := libvmifact.NewAlpine( libvmi.WithNamespace(testsuite.GetTestNamespace(nil)), libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), @@ -2915,7 +2916,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { checks.SkipTestIfNoFeatureGate(virtconfig.NUMAFeatureGate) checks.SkipTestIfNotEnoughNodesWithCPUManagerWith2MiHugepages(2) var err error - cpuVMI := libvmi.NewAlpine( + cpuVMI := libvmifact.NewAlpine( libvmi.WithNamespace(testsuite.GetTestNamespace(nil)), libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), @@ -2968,7 +2969,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { It("Should be able to migrate back to the initial node from target node with host-model even if target is newer than source", func() { libnode.AddLabelToNode(targetNode.Name, fakeRequiredFeature, "true") - vmiToMigrate := libvmi.NewFedora( + vmiToMigrate := libvmifact.NewFedora( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -3031,7 +3032,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { targetNode = libnode.RemoveLabelFromNode(targetNode.Name, v1.HostModelCPULabel+targetHostModel) targetNode = libnode.AddLabelToNode(targetNode.Name, fakeHostModel, "true") - vmiToMigrate := libvmi.NewFedora( + vmiToMigrate := libvmifact.NewFedora( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -3195,7 +3196,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { libnode.AddLabelToNode(nodes[0].Name, testLabel1, "true") By("creating a migratable VMI with 2 dedicated CPU cores") - vmi := libvmi.NewAlpine( + vmi := libvmifact.NewAlpine( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithCPUCount(2, 1, 1), @@ -3279,7 +3280,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { Expect(err).NotTo(HaveOccurred(), "Failed to delete the Network Attachment Definition") }) It("Should migrate over that network", func() { - vmi := libvmi.NewAlpine( + vmi := libvmifact.NewAlpine( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -3298,7 +3299,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { It("should update MigrationState's MigrationConfiguration of VMI status", func() { By("Starting a VMI") - vmi := libvmi.NewAlpine( + vmi := libvmifact.NewAlpine( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -3320,7 +3321,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { Context("with a live-migration in flight", func() { It("there should always be a single active migration per VMI", func() { By("Starting a VMI") - vmi := libvmi.NewGuestless( + vmi := libvmifact.NewGuestless( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -3378,7 +3379,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { }) It("HyperV reenlightenment is enabled", func() { - vmi := libvmi.NewWindows() + vmi := libvmifact.NewWindows() vmi.Spec.Domain.Devices.Disks = []v1.Disk{} vmi.Spec.Volumes = []v1.Volume{} vmi.Spec.Domain.Features.Hyperv.Reenlightenment = &v1.FeatureState{Enabled: pointer.Bool(true)} @@ -3403,7 +3404,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { } BeforeEach(func() { - vmi = libvmi.NewCirros( + vmi = libvmifact.NewCirros( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithAnnotation(v1.FuncTestForceLauncherMigrationFailureAnnotation, ""), @@ -3467,7 +3468,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() { Context("ResourceQuota rejection", func() { It("Should contain condition when migrating with quota that doesn't have resources for both source and target", func() { vmiRequest := resource.MustParse("200Mi") - vmi := libvmi.NewCirros( + vmi := libvmifact.NewCirros( libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithResourceMemory(vmiRequest.String()), diff --git a/tests/monitoring/BUILD.bazel b/tests/monitoring/BUILD.bazel index e783f3f327ca..05ba23dc12aa 100644 --- a/tests/monitoring/BUILD.bazel +++ b/tests/monitoring/BUILD.bazel @@ -11,6 +11,7 @@ go_library( visibility = ["//visibility:public"], deps = [ "//pkg/apimachinery/patch:go_default_library", + "//pkg/libvmi:go_default_library", "//pkg/virtctl/pause:go_default_library", "//staging/src/kubevirt.io/api/core/v1:go_default_library", "//staging/src/kubevirt.io/client-go/kubecli:go_default_library", @@ -27,7 +28,7 @@ go_library( "//tests/libnet:go_default_library", "//tests/libnode:go_default_library", "//tests/libpod:go_default_library", - "//tests/libvmi:go_default_library", + "//tests/libvmifact:go_default_library", "//tests/libwait:go_default_library", "//tests/testsuite:go_default_library", "//tests/util:go_default_library", diff --git a/tests/monitoring/component_monitoring.go b/tests/monitoring/component_monitoring.go index ecaf31a6f9ff..75504b3a5689 100644 --- a/tests/monitoring/component_monitoring.go +++ b/tests/monitoring/component_monitoring.go @@ -45,7 +45,7 @@ import ( "kubevirt.io/kubevirt/tests/flags" "kubevirt.io/kubevirt/tests/framework/kubevirt" "kubevirt.io/kubevirt/tests/libmonitoring" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/util" ) @@ -225,7 +225,7 @@ var _ = Describe("[Serial][sig-monitoring]Component Monitoring", Serial, decorat err = virtClient.RbacV1().ClusterRoleBindings().Delete(context.Background(), "kubevirt-controller", metav1.DeleteOptions{}) Expect(err).ToNot(HaveOccurred()) - vmi := libvmi.NewGuestless() + vmi := libvmifact.NewGuestless() Eventually(func(g Gomega) { _, _ = virtClient.VirtualMachineInstance(util.NamespaceTestDefault).Create(context.Background(), vmi, metav1.CreateOptions{}) @@ -240,7 +240,7 @@ var _ = Describe("[Serial][sig-monitoring]Component Monitoring", Serial, decorat err = virtClient.RbacV1().ClusterRoleBindings().Delete(context.Background(), "kubevirt-handler", metav1.DeleteOptions{}) Expect(err).ToNot(HaveOccurred()) - vmi := libvmi.NewGuestless() + vmi := libvmifact.NewGuestless() Eventually(func(g Gomega) { _, _ = virtClient.VirtualMachineInstance(util.NamespaceTestDefault).Create(context.Background(), vmi, metav1.CreateOptions{}) diff --git a/tests/monitoring/monitoring.go b/tests/monitoring/monitoring.go index 71d2f62bed31..e0c8602066e4 100644 --- a/tests/monitoring/monitoring.go +++ b/tests/monitoring/monitoring.go @@ -40,12 +40,14 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" + "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/flags" "kubevirt.io/kubevirt/tests/framework/checks" "kubevirt.io/kubevirt/tests/framework/kubevirt" "kubevirt.io/kubevirt/tests/libmonitoring" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" "kubevirt.io/kubevirt/tests/util" @@ -182,7 +184,7 @@ var _ = Describe("[Serial][sig-monitoring]Monitoring", Serial, decorators.SigMon Context("Deprecation Alerts", decorators.SigComputeMigrations, func() { It("KubeVirtDeprecatedAPIRequested should be triggered when a deprecated API is requested", func() { By("Creating a VMI with deprecated API version") - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() vmi.APIVersion = "v1alpha3" vmi.Namespace = testsuite.GetTestNamespace(vmi) vmi, err := virtClient.VirtualMachineInstance(vmi.Namespace).Create(context.Background(), vmi, metav1.CreateOptions{}) diff --git a/tests/monitoring/vm_monitoring.go b/tests/monitoring/vm_monitoring.go index a2f55df6fcc4..48362f86413e 100644 --- a/tests/monitoring/vm_monitoring.go +++ b/tests/monitoring/vm_monitoring.go @@ -37,6 +37,7 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" virtctlpause "kubevirt.io/kubevirt/pkg/virtctl/pause" "kubevirt.io/kubevirt/tests" @@ -51,7 +52,7 @@ import ( "kubevirt.io/kubevirt/tests/libnet" "kubevirt.io/kubevirt/tests/libnode" "kubevirt.io/kubevirt/tests/libpod" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" "kubevirt.io/kubevirt/tests/util" @@ -68,7 +69,7 @@ var _ = Describe("[Serial][sig-monitoring]VM Monitoring", Serial, decorators.Sig Context("Cluster VM metrics", func() { It("kubevirt_number_of_vms should reflect the number of VMs", func() { for i := 0; i < 5; i++ { - vmi := libvmi.NewGuestless() + vmi := libvmifact.NewGuestless() vm := libvmi.NewVirtualMachine(vmi) _, err = virtClient.VirtualMachine(testsuite.GetTestNamespace(nil)).Create(context.Background(), vm) Expect(err).ToNot(HaveOccurred()) @@ -87,7 +88,7 @@ var _ = Describe("[Serial][sig-monitoring]VM Monitoring", Serial, decorators.Sig } BeforeEach(func() { - vmi := libvmi.NewGuestless() + vmi := libvmifact.NewGuestless() vm = libvmi.NewVirtualMachine(vmi) By("Create a VirtualMachine") @@ -157,7 +158,7 @@ var _ = Describe("[Serial][sig-monitoring]VM Monitoring", Serial, decorators.Sig It("Should correctly update metrics on successful VMIM", func() { By("Creating VMIs") - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi = tests.RunVMIAndExpectLaunch(vmi, 240) By("Migrating VMIs") @@ -180,7 +181,7 @@ var _ = Describe("[Serial][sig-monitoring]VM Monitoring", Serial, decorators.Sig It("Should correctly update metrics on failing VMIM", func() { By("Creating VMIs") - vmi := libvmi.NewFedora( + vmi := libvmifact.NewFedora( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithNodeAffinityFor(nodes.Items[0].Name), @@ -261,7 +262,7 @@ var _ = Describe("[Serial][sig-monitoring]VM Monitoring", Serial, decorators.Sig It("should fire KubevirtVmHighMemoryUsage alert", func() { By("starting VMI") - vmi := libvmi.NewGuestless() + vmi := libvmifact.NewGuestless() vmi = tests.RunVMIAndExpectLaunch(vmi, 240) By("fill up the vmi pod memory") @@ -281,7 +282,7 @@ var _ = Describe("[Serial][sig-monitoring]VM Monitoring", Serial, decorators.Sig It("[test_id:9260] should fire OrphanedVirtualMachineInstances alert", func() { By("starting VMI") - vmi := libvmi.NewGuestless() + vmi := libvmifact.NewGuestless() tests.RunVMIAndExpectLaunch(vmi, 240) By("delete virt-handler daemonset") @@ -294,7 +295,7 @@ var _ = Describe("[Serial][sig-monitoring]VM Monitoring", Serial, decorators.Sig It("should fire VMCannotBeEvicted alert", func() { By("starting non-migratable VMI with eviction strategy set to LiveMigrate ") - vmi := libvmi.NewAlpine(libvmi.WithEvictionStrategy(v1.EvictionStrategyLiveMigrate)) + vmi := libvmifact.NewAlpine(libvmi.WithEvictionStrategy(v1.EvictionStrategyLiveMigrate)) vmi, err := virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(vmi)).Create(context.Background(), vmi, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) diff --git a/tests/network/BUILD.bazel b/tests/network/BUILD.bazel index f29a0bbf3876..9e961adba3be 100644 --- a/tests/network/BUILD.bazel +++ b/tests/network/BUILD.bazel @@ -35,6 +35,7 @@ go_library( deps = [ "//pkg/apimachinery/patch:go_default_library", "//pkg/cloud-init:go_default_library", + "//pkg/libvmi:go_default_library", "//pkg/network/istio:go_default_library", "//pkg/network/netbinding:go_default_library", "//pkg/network/setup:go_default_library", @@ -70,7 +71,7 @@ go_library( "//tests/libnet/vmnetserver:go_default_library", "//tests/libnode:go_default_library", "//tests/libpod:go_default_library", - "//tests/libvmi:go_default_library", + "//tests/libvmifact:go_default_library", "//tests/libwait:go_default_library", "//tests/testsuite:go_default_library", "//tests/util:go_default_library", diff --git a/tests/network/bindingplugin.go b/tests/network/bindingplugin.go index 7db69e01fb86..a5798d7af304 100644 --- a/tests/network/bindingplugin.go +++ b/tests/network/bindingplugin.go @@ -35,10 +35,11 @@ import ( "kubevirt.io/kubevirt/tests/framework/kubevirt" "kubevirt.io/kubevirt/tests/libkvconfig" "kubevirt.io/kubevirt/tests/libnet" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" + "kubevirt.io/kubevirt/pkg/libvmi" virtconfig "kubevirt.io/kubevirt/pkg/virt-config" ) @@ -70,7 +71,7 @@ var _ = SIGDescribe("[Serial]network binding plugin", Serial, decorators.NetCust ) passtIface := libvmi.InterfaceWithPasstBindingPlugin() passtIface.MacAddress = macAddress - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libvmi.WithInterface(passtIface), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -126,7 +127,7 @@ var _ = SIGDescribe("[Serial]network binding plugin", Serial, decorators.NetCust macvtapIface := libvmi.InterfaceWithBindingPlugin( ifaceName, v1.PluginBinding{Name: macvtapBindingName}, ) - vmi = libvmi.NewAlpineWithTestTooling( + vmi = libvmifact.NewAlpineWithTestTooling( libvmi.WithInterface( *libvmi.InterfaceWithMac(&macvtapIface, chosenMAC)), libvmi.WithNetwork(libvmi.MultusNetwork(ifaceName, macvtapNetworkName))) diff --git a/tests/network/bindingplugin_macvtap.go b/tests/network/bindingplugin_macvtap.go index 12ab5cf6b14a..e975c9cbc666 100644 --- a/tests/network/bindingplugin_macvtap.go +++ b/tests/network/bindingplugin_macvtap.go @@ -34,6 +34,7 @@ import ( v1 "kubevirt.io/api/core/v1" + "kubevirt.io/kubevirt/pkg/libvmi" virtconfig "kubevirt.io/kubevirt/pkg/virt-config" "kubevirt.io/kubevirt/tests" @@ -45,7 +46,7 @@ import ( "kubevirt.io/kubevirt/tests/libmigration" "kubevirt.io/kubevirt/tests/libnet" "kubevirt.io/kubevirt/tests/libnode" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" ) @@ -100,8 +101,8 @@ var _ = SIGDescribe("VirtualMachineInstance with macvtap network binding plugin" libvmi.WithNetwork(libvmi.MultusNetwork(macvtapNetworkName, macvtapNetworkName)), libvmi.WithNodeAffinityFor(nodeName), } - serverVMI := libvmi.NewAlpineWithTestTooling(opts...) - clientVMI := libvmi.NewAlpineWithTestTooling(opts...) + serverVMI := libvmifact.NewAlpineWithTestTooling(opts...) + clientVMI := libvmifact.NewAlpineWithTestTooling(opts...) var err error ns := testsuite.GetTestNamespace(nil) @@ -125,7 +126,7 @@ var _ = SIGDescribe("VirtualMachineInstance with macvtap network binding plugin" BeforeEach(checks.SkipIfMigrationIsNotPossible) BeforeEach(func() { - clientVMI = libvmi.NewAlpineWithTestTooling( + clientVMI = libvmifact.NewAlpineWithTestTooling( libvmi.WithInterface(*libvmi.InterfaceWithMac( libvmi.InterfaceWithMacvtapBindingPlugin("test"), clientMAC)), libvmi.WithNetwork(libvmi.MultusNetwork("test", macvtapNetworkName)), @@ -156,7 +157,7 @@ var _ = SIGDescribe("VirtualMachineInstance with macvtap network binding plugin" const macvtapIfaceIPReportTimeout = 4 * time.Minute BeforeEach(func() { - serverVMI = libvmi.NewFedora( + serverVMI = libvmifact.NewFedora( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithInterface(*libvmi.InterfaceWithMac( libvmi.InterfaceWithMacvtapBindingPlugin(macvtapNetworkName), serverMAC)), diff --git a/tests/network/bindingplugin_passt.go b/tests/network/bindingplugin_passt.go index ed5d720f0d94..f6645c69b1f0 100644 --- a/tests/network/bindingplugin_passt.go +++ b/tests/network/bindingplugin_passt.go @@ -34,6 +34,7 @@ import ( v1 "kubevirt.io/api/core/v1" + "kubevirt.io/kubevirt/pkg/libvmi" virtconfig "kubevirt.io/kubevirt/pkg/virt-config" "kubevirt.io/kubevirt/tests" @@ -46,7 +47,7 @@ import ( "kubevirt.io/kubevirt/tests/libnet" "kubevirt.io/kubevirt/tests/libnet/cloudinit" "kubevirt.io/kubevirt/tests/libnet/vmnetserver" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" ) @@ -81,7 +82,7 @@ var _ = SIGDescribe("[Serial] VirtualMachineInstance with passt network binding passtIface.Ports = []v1.Port{{Port: 1234, Protocol: "TCP"}} passtIface.MacAddress = testMACAddr passtIface.PciAddress = testPCIAddr - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libvmi.WithInterface(passtIface), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -112,7 +113,7 @@ var _ = SIGDescribe("[Serial] VirtualMachineInstance with passt network binding startServerVMI := func(ports []v1.Port) { passtIface := libvmi.InterfaceWithPasstBindingPlugin(ports...) - serverVMI = libvmi.NewAlpineWithTestTooling( + serverVMI = libvmifact.NewAlpineWithTestTooling( libvmi.WithInterface(passtIface), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -163,7 +164,7 @@ var _ = SIGDescribe("[Serial] VirtualMachineInstance with passt network binding } startClientVMI := func() { - clientVMI = libvmi.NewAlpineWithTestTooling( + clientVMI = libvmifact.NewAlpineWithTestTooling( libvmi.WithPasstInterfaceWithPort(), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -255,7 +256,7 @@ EOL`, inetSuffix, serverIP, serverPort) vmnetserver.StartPythonUDPServer(serverVMI, SERVER_PORT, ipFamily) By("Starting client VMI") - clientVMI = libvmi.NewAlpineWithTestTooling( + clientVMI = libvmifact.NewAlpineWithTestTooling( libvmi.WithInterface(libvmi.InterfaceWithPasstBindingPlugin()), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -294,7 +295,7 @@ EOL`, inetSuffix, serverIP, serverPort) dns = flags.ConnectivityCheckDNS } - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libvmi.WithPasstInterfaceWithPort(), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -321,7 +322,7 @@ EOL`, inetSuffix, serverIP, serverPort) ipv6Address = flags.IPV6ConnectivityCheckAddress } - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libvmi.WithPasstInterfaceWithPort(), libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithAnnotation("kubevirt.io/libvirt-log-filters", "3:remote 4:event 3:util.json 3:util.object 3:util.dbus 3:util.netlink 3:node_device 3:rpc 3:access 1:*"), @@ -343,11 +344,11 @@ EOL`, inetSuffix, serverIP, serverPort) libnet.SkipWhenClusterNotSupportIPFamily(ipFamily) By("Starting a VMI") - migrateVMI := startPasstVMI(libvmi.NewFedora, console.LoginToFedora) + migrateVMI := startPasstVMI(libvmifact.NewFedora, console.LoginToFedora) beforeMigNodeName := migrateVMI.Status.NodeName By("Starting another VMI") - anotherVMI := startPasstVMI(libvmi.NewAlpine, console.LoginToAlpine) + anotherVMI := startPasstVMI(libvmifact.NewAlpine, console.LoginToAlpine) By("Verify the VMIs can ping each other") migrateVmiBeforeMigIP := libnet.GetVmiPrimaryIPByFamily(migrateVMI, ipFamily) @@ -414,7 +415,7 @@ func startPasstVMI(vmiBuilder func(opts ...libvmi.Option) *v1.VirtualMachineInst ), ) ExpectWithOffset(1, err).ToNot(HaveOccurred()) - vmi := libvmi.NewFedora( + vmi := libvmifact.NewFedora( libvmi.WithInterface(libvmi.InterfaceWithPasstBindingPlugin()), libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithCloudInitNoCloudNetworkData(networkData), diff --git a/tests/network/expose.go b/tests/network/expose.go index 2ef2dd4f8a0b..bb8c81187859 100644 --- a/tests/network/expose.go +++ b/tests/network/expose.go @@ -30,11 +30,13 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" + "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/clientcmd" "kubevirt.io/kubevirt/tests/libnet" "kubevirt.io/kubevirt/tests/libpod" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" ) const ( @@ -52,7 +54,7 @@ func newLabeledVMI(label string) (vmi *v1.VirtualMachineInstance) { {Name: "test-port-tcp", Port: 1500, Protocol: "TCP"}, {Name: "udp", Port: 82, Protocol: "UDP"}, {Name: "test-port-udp", Port: 1500, Protocol: "UDP"}} - vmi = libvmi.NewAlpineWithTestTooling( + vmi = libvmifact.NewAlpineWithTestTooling( libnet.WithMasqueradeNetworking(ports...)..., ) vmi.Labels = map[string]string{"expose": label} diff --git a/tests/network/hotplug.go b/tests/network/hotplug.go index 3519741e84ed..7601bcf24c0c 100644 --- a/tests/network/hotplug.go +++ b/tests/network/hotplug.go @@ -29,7 +29,7 @@ import ( "k8s.io/apimachinery/pkg/types" "kubevirt.io/kubevirt/pkg/apimachinery/patch" - + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/network/vmispec" . "github.com/onsi/ginkgo/v2" @@ -40,7 +40,7 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/kubevirt/tests/framework/kubevirt" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" ) const ( @@ -153,7 +153,7 @@ func interfaceStatusFromInterfaceNames(queueCount int32, ifaceNames ...string) [ } func newVMWithOneInterface() *v1.VirtualMachine { - vm := libvmi.NewVirtualMachine(libvmi.NewAlpineWithTestTooling(), libvmi.WithRunning()) + vm := libvmi.NewVirtualMachine(libvmifact.NewAlpineWithTestTooling(), libvmi.WithRunning()) vm.Spec.Template.Spec.Networks = []v1.Network{*v1.DefaultPodNetwork()} vm.Spec.Template.Spec.Domain.Devices.Interfaces = []v1.Interface{*v1.DefaultMasqueradeNetworkInterface()} return vm diff --git a/tests/network/hotplug_bridge.go b/tests/network/hotplug_bridge.go index 90d90dc77d6c..6b03dac1643c 100644 --- a/tests/network/hotplug_bridge.go +++ b/tests/network/hotplug_bridge.go @@ -33,6 +33,7 @@ import ( v1 "kubevirt.io/api/core/v1" + "kubevirt.io/kubevirt/pkg/libvmi" virtconfig "kubevirt.io/kubevirt/pkg/virt-config" "kubevirt.io/kubevirt/tests/console" @@ -41,7 +42,7 @@ import ( "kubevirt.io/kubevirt/tests/framework/kubevirt" "kubevirt.io/kubevirt/tests/libnet" "kubevirt.io/kubevirt/tests/libnet/cloudinit" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" "kubevirt.io/kubevirt/tests/util" @@ -178,7 +179,7 @@ var _ = SIGDescribe("bridge nic-hotplug", func() { }, } - anotherVmi := libvmi.NewFedora( + anotherVmi := libvmifact.NewFedora( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithInterface(iface), @@ -264,7 +265,7 @@ var _ = SIGDescribe("bridge nic-hotunplug", func() { libvmi.WithInterface(libvmi.InterfaceDeviceWithBridgeBinding(linuxBridgeNetworkName1)), libvmi.WithInterface(libvmi.InterfaceDeviceWithBridgeBinding(linuxBridgeNetworkName2)), ) - vmi = libvmi.NewAlpineWithTestTooling(opts...) + vmi = libvmifact.NewAlpineWithTestTooling(opts...) vm = libvmi.NewVirtualMachine(vmi, libvmi.WithRunning()) var err error @@ -323,7 +324,7 @@ var _ = SIGDescribe("bridge nic-hotunplug", func() { libvmi.WithInterface(libvmi.InterfaceDeviceWithBridgeBinding(linuxBridgeNetworkName1)), libvmi.WithInterface(libvmi.InterfaceDeviceWithBridgeBinding(linuxBridgeNetworkName2)), ) - vmi = libvmi.NewAlpineWithTestTooling(opts...) + vmi = libvmifact.NewAlpineWithTestTooling(opts...) vm = libvmi.NewVirtualMachine(vmi) var err error diff --git a/tests/network/kubectl.go b/tests/network/kubectl.go index 4b987b9f5d5c..68c41b22d403 100644 --- a/tests/network/kubectl.go +++ b/tests/network/kubectl.go @@ -36,11 +36,11 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/network/vmispec" "kubevirt.io/kubevirt/tests/clientcmd" "kubevirt.io/kubevirt/tests/libnet" - "kubevirt.io/kubevirt/tests/libvmi" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" ) diff --git a/tests/network/macvtap.go b/tests/network/macvtap.go index 522edc89f022..7825b31183b9 100644 --- a/tests/network/macvtap.go +++ b/tests/network/macvtap.go @@ -28,6 +28,7 @@ import ( v1 "kubevirt.io/api/core/v1" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/virt-config/deprecation" "kubevirt.io/kubevirt/tests" @@ -35,7 +36,7 @@ import ( "kubevirt.io/kubevirt/tests/decorators" "kubevirt.io/kubevirt/tests/framework/kubevirt" "kubevirt.io/kubevirt/tests/libnet" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" ) @@ -62,7 +63,7 @@ var _ = SIGDescribe("Macvtap", decorators.Macvtap, Serial, func() { mac := macHW.String() const macvtapNetName = "test-macvtap" - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libvmi.WithInterface(*libvmi.InterfaceWithMac(v1.DefaultMacvtapNetworkInterface(macvtapNetName), mac)), libvmi.WithNetwork(libvmi.MultusNetwork(macvtapNetName, macvtapNetAttachDefName)), ) diff --git a/tests/network/networkpolicy.go b/tests/network/networkpolicy.go index 90c8d0ad270c..8711d50bc476 100644 --- a/tests/network/networkpolicy.go +++ b/tests/network/networkpolicy.go @@ -28,7 +28,7 @@ import ( "kubevirt.io/kubevirt/tests/console" "kubevirt.io/kubevirt/tests/libnet" "kubevirt.io/kubevirt/tests/libnet/vmnetserver" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" ) @@ -397,7 +397,7 @@ func assertIPsNotEmptyForVMI(vmi *v1.VirtualMachineInstance) { } func createClientVmi(namespace string, virtClient kubecli.KubevirtClient) (*v1.VirtualMachineInstance, error) { - clientVMI := libvmi.NewAlpineWithTestTooling(libnet.WithMasqueradeNetworking()...) + clientVMI := libvmifact.NewAlpineWithTestTooling(libnet.WithMasqueradeNetworking()...) var err error clientVMI, err = virtClient.VirtualMachineInstance(namespace).Create(context.Background(), clientVMI, metav1.CreateOptions{}) if err != nil { @@ -409,7 +409,7 @@ func createClientVmi(namespace string, virtClient kubecli.KubevirtClient) (*v1.V } func createServerVmi(virtClient kubecli.KubevirtClient, namespace string, serverVMILabels map[string]string) (*v1.VirtualMachineInstance, error) { - serverVMI := libvmi.NewAlpineWithTestTooling( + serverVMI := libvmifact.NewAlpineWithTestTooling( libnet.WithMasqueradeNetworking( v1.Port{ Name: "http80", diff --git a/tests/network/port_forward.go b/tests/network/port_forward.go index 73cada01c154..24269643170d 100644 --- a/tests/network/port_forward.go +++ b/tests/network/port_forward.go @@ -39,12 +39,14 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" + "kubevirt.io/kubevirt/tests/clientcmd" "kubevirt.io/kubevirt/tests/console" "kubevirt.io/kubevirt/tests/libnet" "kubevirt.io/kubevirt/tests/libnet/vmnetserver" "kubevirt.io/kubevirt/tests/libpod" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" ) @@ -166,7 +168,7 @@ func killPortForwardCommand(portForwardCmd *exec.Cmd) error { } func createCirrosVMIWithPortsAndBlockUntilReady(virtClient kubecli.KubevirtClient, ports []v1.Port) *v1.VirtualMachineInstance { - vmi := libvmi.NewCirros( + vmi := libvmifact.NewCirros( libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding(ports...)), ) diff --git a/tests/network/primary_pod_network.go b/tests/network/primary_pod_network.go index 71b88995c94b..edb08119e8df 100644 --- a/tests/network/primary_pod_network.go +++ b/tests/network/primary_pod_network.go @@ -36,11 +36,13 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" + "kubevirt.io/kubevirt/tests/console" "kubevirt.io/kubevirt/tests/libnet" "kubevirt.io/kubevirt/tests/libnet/cloudinit" "kubevirt.io/kubevirt/tests/libpod" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" ) @@ -64,7 +66,7 @@ var _ = SIGDescribe("Primary Pod Network", func() { var vmi *v1.VirtualMachineInstance BeforeEach(func() { - vmi = setupVMI(virtClient, libvmi.NewAlpine()) + vmi = setupVMI(virtClient, libvmifact.NewAlpine()) }) It("should report PodIP as its own on interface status", func() { AssertReportedIP(vmi) }) @@ -120,7 +122,7 @@ var _ = SIGDescribe("Primary Pod Network", func() { BeforeEach(func() { vmi = setupVMI( virtClient, - libvmi.NewAlpine( + libvmifact.NewAlpine( libvmi.WithInterface(*v1.DefaultBridgeNetworkInterface()), libvmi.WithNetwork(v1.DefaultPodNetwork()), ), @@ -167,7 +169,7 @@ var _ = SIGDescribe("Primary Pod Network", func() { BeforeEach(func() { vmi = setupVMI( virtClient, - libvmi.NewAlpine( + libvmifact.NewAlpine( libvmi.WithInterface(*v1.DefaultMasqueradeNetworkInterface()), libvmi.WithNetwork(v1.DefaultPodNetwork()), ), @@ -195,7 +197,7 @@ func setupVMI(virtClient kubecli.KubevirtClient, vmi *v1.VirtualMachineInstance) func newFedoraWithGuestAgentAndDefaultInterface(iface v1.Interface) (*v1.VirtualMachineInstance, error) { networkData := cloudinit.CreateDefaultCloudInitNetworkData() - vmi := libvmi.NewFedora( + vmi := libvmifact.NewFedora( libvmi.WithInterface(iface), libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithCloudInitNoCloudNetworkData(networkData), diff --git a/tests/network/probes.go b/tests/network/probes.go index 13325eb4fb23..c27c50b6eff0 100644 --- a/tests/network/probes.go +++ b/tests/network/probes.go @@ -19,12 +19,14 @@ import ( 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/framework/matcher" "kubevirt.io/kubevirt/tests/libnet" "kubevirt.io/kubevirt/tests/libnet/vmnetserver" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" ) const ( @@ -105,7 +107,7 @@ var _ = SIGDescribe("[ref_id:1182]Probes", func() { serverStarter(vmi, readinessProbe, 1500) } else { By(specifyingVMReadinessProbe) - vmi = libvmi.NewFedora( + vmi = libvmifact.NewFedora( withMasqueradeNetworkingAndFurtherUserConfig(withReadinessProbe(readinessProbe))...) vmi = tests.RunVMIAndExpectLaunchIgnoreWarnings(vmi, 180) @@ -128,7 +130,7 @@ var _ = SIGDescribe("[ref_id:1182]Probes", func() { ) BeforeEach(func() { - vmi = libvmi.NewFedora( + vmi = libvmifact.NewFedora( withMasqueradeNetworkingAndFurtherUserConfig( withReadinessProbe( createGuestAgentPingProbe(period, initialSeconds)))...) @@ -163,10 +165,10 @@ var _ = SIGDescribe("[ref_id:1182]Probes", func() { By("Checking that the VMI is consistently non-ready") Consistently(matcher.ThisVMI(vmi), 30*time.Second, 100*time.Millisecond).Should(matcher.HaveConditionMissingOrFalse(v1.VirtualMachineInstanceReady)) }, - Entry("[test_id:1220][posneg:negative]with working TCP probe and no running server", tcpProbe, libvmi.NewAlpine), - Entry("[test_id:1219][posneg:negative]with working HTTP probe and no running server", httpProbe, libvmi.NewAlpine), - Entry("[test_id:TODO]with working Exec probe and invalid command", createExecProbe(period, initialSeconds, timeoutSeconds, "exit", "1"), libvmi.NewFedora), - Entry("[test_id:TODO]with working Exec probe and infinitely running command", createExecProbe(period, initialSeconds, timeoutSeconds, "tail", "-f", "/dev/null"), libvmi.NewFedora), + Entry("[test_id:1220][posneg:negative]with working TCP probe and no running server", tcpProbe, libvmifact.NewAlpine), + Entry("[test_id:1219][posneg:negative]with working HTTP probe and no running server", httpProbe, libvmifact.NewAlpine), + Entry("[test_id:TODO]with working Exec probe and invalid command", createExecProbe(period, initialSeconds, timeoutSeconds, "exit", "1"), libvmifact.NewFedora), + Entry("[test_id:TODO]with working Exec probe and infinitely running command", createExecProbe(period, initialSeconds, timeoutSeconds, "tail", "-f", "/dev/null"), libvmifact.NewFedora), ) }) @@ -206,7 +208,7 @@ var _ = SIGDescribe("[ref_id:1182]Probes", func() { serverStarter(vmi, livenessProbe, 1500) } else { By(specifyingVMLivenessProbe) - vmi = libvmi.NewFedora( + vmi = libvmifact.NewFedora( withMasqueradeNetworkingAndFurtherUserConfig( withLivelinessProbe(livenessProbe))...) vmi = tests.RunVMIAndExpectLaunchIgnoreWarnings(vmi, 180) @@ -231,7 +233,7 @@ var _ = SIGDescribe("[ref_id:1182]Probes", func() { Context("guest agent ping", func() { BeforeEach(func() { - vmi = libvmi.NewFedora(withMasqueradeNetworkingAndFurtherUserConfig( + vmi = libvmifact.NewFedora(withMasqueradeNetworkingAndFurtherUserConfig( withLivelinessProbe(createGuestAgentPingProbe(period, initialSeconds)), )...) vmi = tests.RunVMIAndExpectLaunchIgnoreWarnings(vmi, 180) @@ -262,9 +264,9 @@ var _ = SIGDescribe("[ref_id:1182]Probes", func() { return vmi.IsFinal() }, 120, 1).Should(BeTrue()) }, - Entry("[test_id:1217][posneg:negative]with working TCP probe and no running server", tcpProbe, libvmi.NewCirros), - Entry("[test_id:1218][posneg:negative]with working HTTP probe and no running server", httpProbe, libvmi.NewCirros), - Entry("[test_id:5880]with working Exec probe and invalid command", createExecProbe(period, initialSeconds, timeoutSeconds, "exit", "1"), libvmi.NewFedora), + Entry("[test_id:1217][posneg:negative]with working TCP probe and no running server", tcpProbe, libvmifact.NewCirros), + Entry("[test_id:1218][posneg:negative]with working HTTP probe and no running server", httpProbe, libvmifact.NewCirros), + Entry("[test_id:5880]with working Exec probe and invalid command", createExecProbe(period, initialSeconds, timeoutSeconds, "exit", "1"), libvmifact.NewFedora), ) }) }) @@ -293,14 +295,14 @@ func guestAgentOperation(vmi *v1.VirtualMachineInstance, startStopOperation stri } func createReadyAlpineVMIWithReadinessProbe(probe *v1.Probe) *v1.VirtualMachineInstance { - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( withMasqueradeNetworkingAndFurtherUserConfig(withReadinessProbe(probe))...) return tests.RunVMIAndExpectLaunchIgnoreWarnings(vmi, 180) } func createReadyAlpineVMIWithLivenessProbe(probe *v1.Probe) *v1.VirtualMachineInstance { - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( withMasqueradeNetworkingAndFurtherUserConfig(withLivelinessProbe(probe))...) return tests.RunVMIAndExpectLaunchIgnoreWarnings(vmi, 180) diff --git a/tests/network/services.go b/tests/network/services.go index 6e553afcc115..a1d97b613a5b 100644 --- a/tests/network/services.go +++ b/tests/network/services.go @@ -39,12 +39,14 @@ import ( v1 "kubevirt.io/api/core/v1" + "kubevirt.io/kubevirt/pkg/libvmi" + "kubevirt.io/kubevirt/tests/console" "kubevirt.io/kubevirt/tests/libnet" "kubevirt.io/kubevirt/tests/libnet/job" netservice "kubevirt.io/kubevirt/tests/libnet/service" "kubevirt.io/kubevirt/tests/libnet/vmnetserver" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" ) @@ -68,7 +70,7 @@ var _ = SIGDescribe("Services", func() { BeforeEach(func() { libnet.SkipWhenClusterNotSupportIpv4() - inboundVMI = libvmi.NewCirros( + inboundVMI = libvmifact.NewCirros( libvmi.WithInterface(libvmi.InterfaceDeviceWithBridgeBinding(v1.DefaultPodNetwork().Name)), libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithLabel(selectorLabelKey, selectorLabelValue), @@ -142,7 +144,7 @@ var _ = SIGDescribe("Services", func() { ) BeforeEach(func() { - inboundVMI = libvmi.NewFedora(append( + inboundVMI = libvmifact.NewFedora(append( libnet.WithMasqueradeNetworking(), libvmi.WithLabel(selectorLabelKey, selectorLabelValue), libvmi.WithSubdomain("vmi"), diff --git a/tests/network/sriov.go b/tests/network/sriov.go index e12a699dae16..5e3d5460328b 100644 --- a/tests/network/sriov.go +++ b/tests/network/sriov.go @@ -47,6 +47,7 @@ import ( "kubevirt.io/client-go/kubecli" cloudinit "kubevirt.io/kubevirt/pkg/cloud-init" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/network/vmispec" "kubevirt.io/kubevirt/pkg/util/hardware" "kubevirt.io/kubevirt/pkg/util/net/dns" @@ -62,7 +63,7 @@ import ( netcloudinit "kubevirt.io/kubevirt/tests/libnet/cloudinit" "kubevirt.io/kubevirt/tests/libnode" "kubevirt.io/kubevirt/tests/libpod" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/util" ) @@ -665,7 +666,7 @@ func newSRIOVVmi(networks []string, cloudInitNetworkData string) *v1.VirtualMach libvmi.WithNetwork(libvmi.MultusNetwork(name, name)), ) } - return libvmi.NewFedora(options...) + return libvmifact.NewFedora(options...) } func checkInterfacesInGuest(vmi *v1.VirtualMachineInstance, interfaces []string) { diff --git a/tests/network/vmi_infosource.go b/tests/network/vmi_infosource.go index a7cff9da0aa8..b99482fb8969 100644 --- a/tests/network/vmi_infosource.go +++ b/tests/network/vmi_infosource.go @@ -35,11 +35,13 @@ import ( "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" network "kubevirt.io/kubevirt/pkg/network/setup" netvmispec "kubevirt.io/kubevirt/pkg/network/vmispec" + "kubevirt.io/kubevirt/tests/framework/matcher" "kubevirt.io/kubevirt/tests/libnet" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/util" ) @@ -78,7 +80,7 @@ var _ = SIGDescribe("Infosource", func() { defaultBridgeInterface := libvmi.InterfaceDeviceWithBridgeBinding(primaryNetwork) secondaryLinuxBridgeInterface1 := libvmi.InterfaceDeviceWithBridgeBinding(secondaryNetwork1.Name) secondaryLinuxBridgeInterface2 := libvmi.InterfaceDeviceWithBridgeBinding(secondaryNetwork2.Name) - vmiSpec := libvmi.NewFedora( + vmiSpec := libvmifact.NewFedora( libvmi.WithInterface(*libvmi.InterfaceWithMac(&defaultBridgeInterface, primaryInterfaceMac)), libvmi.WithNetwork(kvirtv1.DefaultPodNetwork()), libvmi.WithInterface(*libvmi.InterfaceWithMac(&secondaryLinuxBridgeInterface1, secondaryInterface1Mac)), diff --git a/tests/network/vmi_istio.go b/tests/network/vmi_istio.go index 06f5402e893e..6f33cc6a30e4 100644 --- a/tests/network/vmi_istio.go +++ b/tests/network/vmi_istio.go @@ -40,6 +40,7 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/network/istio" virtconfig "kubevirt.io/kubevirt/pkg/virt-config" @@ -55,7 +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/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" ) @@ -213,7 +214,7 @@ var istioTests = func(vmType VmType) { } BeforeEach(func() { - bastionVMI = libvmi.NewCirros( + bastionVMI = libvmifact.NewCirros( libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding([]v1.Port{}...)), ) @@ -342,7 +343,7 @@ var istioTests = func(vmType VmType) { BeforeEach(func() { networkData := cloudinit.CreateDefaultCloudInitNetworkData() - serverVMI = libvmi.NewAlpineWithTestTooling( + serverVMI = libvmifact.NewAlpineWithTestTooling( libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding([]v1.Port{}...)), libvmi.WithLabel("version", "v1"), @@ -505,7 +506,7 @@ func newVMIWithIstioSidecar(ports []v1.Port, vmType VmType) (*v1.VirtualMachineI func createMasqueradeVm(ports []v1.Port) *v1.VirtualMachineInstance { networkData := cloudinit.CreateDefaultCloudInitNetworkData() - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding(ports...)), libvmi.WithLabel(vmiAppSelectorKey, vmiAppSelectorValue), @@ -517,7 +518,7 @@ func createMasqueradeVm(ports []v1.Port) *v1.VirtualMachineInstance { } func createPasstVm(ports []v1.Port) *v1.VirtualMachineInstance { - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithInterface(libvmi.InterfaceWithPasstBindingPlugin(ports...)), libvmi.WithLabel(vmiAppSelectorKey, vmiAppSelectorValue), diff --git a/tests/network/vmi_lifecycle.go b/tests/network/vmi_lifecycle.go index 484107ccc420..8270e0e42a93 100644 --- a/tests/network/vmi_lifecycle.go +++ b/tests/network/vmi_lifecycle.go @@ -44,7 +44,7 @@ import ( "kubevirt.io/kubevirt/tests/framework/kubevirt" "kubevirt.io/kubevirt/tests/libnet" "kubevirt.io/kubevirt/tests/libpod" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" ) @@ -54,7 +54,7 @@ var _ = SIGDescribe("[crit:high][arm64][vendor:cnv-qe@redhat.com][level:componen BeforeEach(func() { virtClient = kubevirt.Client() - vmi = libvmi.NewAlpine() + vmi = libvmifact.NewAlpine() }) Describe("[crit:high][vendor:cnv-qe@redhat.com][level:component]Creating a VirtualMachineInstance", func() { @@ -92,7 +92,7 @@ var _ = SIGDescribe("[crit:high][arm64][vendor:cnv-qe@redhat.com][level:componen }, 50, 5).Should(Equal(k8sv1.PodSucceeded)) By("starting another VMI on the same node, to verify kubelet is running again") - newVMI := libvmi.NewCirros() + newVMI := libvmifact.NewCirros() newVMI.Spec.NodeSelector = map[string]string{"kubernetes.io/hostname": nodeName} Eventually(func() error { newVMI, err = virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(newVMI)).Create(context.Background(), newVMI, metav1.CreateOptions{}) @@ -110,7 +110,7 @@ var _ = SIGDescribe("[crit:high][arm64][vendor:cnv-qe@redhat.com][level:componen It("VMIs with Bridge Networking should work with Duplicate Address Detection (DAD)", decorators.Networking, func() { libnet.SkipWhenClusterNotSupportIpv4() - bridgeVMI := libvmi.NewCirros() + bridgeVMI := libvmifact.NewCirros() // Remove the masquerade interface to use the default bridge one bridgeVMI.Spec.Domain.Devices.Interfaces = nil bridgeVMI.Spec.Networks = nil diff --git a/tests/network/vmi_multus.go b/tests/network/vmi_multus.go index 8af53c44354a..9b747db10a1c 100644 --- a/tests/network/vmi_multus.go +++ b/tests/network/vmi_multus.go @@ -45,13 +45,15 @@ import ( 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/libnet" "kubevirt.io/kubevirt/tests/libnet/cloudinit" "kubevirt.io/kubevirt/tests/libnode" "kubevirt.io/kubevirt/tests/libpod" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" ) @@ -181,7 +183,7 @@ var _ = SIGDescribe("[Serial]Multus", Serial, decorators.Multus, func() { createVMIOnNode := func(interfaces []v1.Interface, networks []v1.Network) *v1.VirtualMachineInstance { // Arbitrarily select one compute node in the cluster, on which it is possible to create a VMI // (i.e. a schedulable node). - vmi := libvmi.NewAlpine(libvmi.WithNodeAffinityFor(nodes.Items[0].Name)) + vmi := libvmifact.NewAlpine(libvmi.WithNodeAffinityFor(nodes.Items[0].Name)) vmi.Spec.Domain.Devices.Interfaces = interfaces vmi.Spec.Networks = networks vmi, err := virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(vmi)).Create(context.Background(), vmi, metav1.CreateOptions{}) @@ -205,7 +207,7 @@ var _ = SIGDescribe("[Serial]Multus", Serial, decorators.Multus, func() { }) It("[test_id:1751]should create a virtual machine with one interface", func() { By("checking virtual machine instance can ping using ptp cni plugin") - detachedVMI := libvmi.NewAlpineWithTestTooling( + detachedVMI := libvmifact.NewAlpineWithTestTooling( libvmi.WithCloudInitNoCloudNetworkData(networkData), ) detachedVMI.Spec.Domain.Devices.Interfaces = []v1.Interface{{Name: "ptp", InterfaceBindingMethod: v1.InterfaceBindingMethod{Bridge: &v1.InterfaceBridge{}}}} @@ -225,7 +227,7 @@ var _ = SIGDescribe("[Serial]Multus", Serial, decorators.Multus, func() { It("[test_id:1752]should create a virtual machine with one interface with network definition from different namespace", func() { checks.SkipIfOpenShift4("OpenShift 4 does not support usage of the network definition from the different namespace") By("checking virtual machine instance can ping using ptp cni plugin") - detachedVMI := libvmi.NewAlpineWithTestTooling( + detachedVMI := libvmifact.NewAlpineWithTestTooling( libvmi.WithCloudInitNoCloudNetworkData(networkData), ) detachedVMI.Spec.Domain.Devices.Interfaces = []v1.Interface{{Name: "ptp", InterfaceBindingMethod: v1.InterfaceBindingMethod{Bridge: &v1.InterfaceBridge{}}}} @@ -244,7 +246,7 @@ var _ = SIGDescribe("[Serial]Multus", Serial, decorators.Multus, func() { It("[test_id:1753]should create a virtual machine with two interfaces", func() { By("checking virtual machine instance can ping using ptp cni plugin") - detachedVMI := libvmi.NewCirros() + detachedVMI := libvmifact.NewCirros() detachedVMI.Spec.Domain.Devices.Interfaces = []v1.Interface{ defaultInterface, @@ -289,7 +291,7 @@ var _ = SIGDescribe("[Serial]Multus", Serial, decorators.Multus, func() { ), ) Expect(err).NotTo(HaveOccurred()) - detachedVMI := libvmi.NewAlpineWithTestTooling( + detachedVMI := libvmifact.NewAlpineWithTestTooling( libvmi.WithCloudInitNoCloudNetworkData(networkData), ) detachedVMI.Spec.Domain.Devices.Interfaces = []v1.Interface{{Name: "ptp", InterfaceBindingMethod: v1.InterfaceBindingMethod{Bridge: &v1.InterfaceBridge{}}}} @@ -441,7 +443,7 @@ var _ = SIGDescribe("[Serial]Multus", Serial, decorators.Multus, func() { BeforeEach(func() { By("Creating a VM with Linux bridge CNI network interface and default MAC address.") - vmiTwo := libvmi.NewFedora( + vmiTwo := libvmifact.NewFedora( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithInterface(linuxBridgeInterface), @@ -457,7 +459,7 @@ var _ = SIGDescribe("[Serial]Multus", Serial, decorators.Multus, func() { By("Creating another VM with custom MAC address on its Linux bridge CNI interface.") linuxBridgeInterfaceWithCustomMac := linuxBridgeInterface linuxBridgeInterfaceWithCustomMac.MacAddress = customMacAddress - vmiOne := libvmi.NewFedora( + vmiOne := libvmifact.NewFedora( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithInterface(linuxBridgeInterfaceWithCustomMac), @@ -556,7 +558,7 @@ var _ = SIGDescribe("[Serial]Multus", Serial, decorators.Multus, func() { } - vmi := libvmi.NewFedora( + vmi := libvmifact.NewFedora( libvmi.WithInterface(linuxBridgeInterface), libvmi.WithNetwork(&linuxBridgeNetwork), ) @@ -575,7 +577,7 @@ var _ = SIGDescribe("[Serial]Multus", Serial, decorators.Multus, func() { By("Start VMI") linuxBridgeIfIdx := 1 - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() vmi.Spec.Domain.Devices.Interfaces = []v1.Interface{ defaultInterface, linuxBridgeInterface, @@ -632,7 +634,7 @@ var _ = SIGDescribe("[Serial]Multus", Serial, decorators.Multus, func() { linuxBridgeInterfaceWithCustomMac := linuxBridgeInterfaceWithMACSpoofCheck libvmi.InterfaceWithMac(&linuxBridgeInterfaceWithCustomMac, initialMacAddressStr) - vmiUnderTest := libvmi.NewFedora( + vmiUnderTest := libvmifact.NewFedora( libvmi.WithInterface(linuxBridgeInterfaceWithCustomMac), libvmi.WithNetwork(libvmi.MultusNetwork(linuxBridgeWithMACSpoofCheckNetwork, linuxBridgeWithMACSpoofCheckNetwork)), libvmi.WithCloudInitNoCloudNetworkData(cloudinit.CreateNetworkDataWithStaticIPsByMac(linuxBridgeInterfaceWithCustomMac.Name, linuxBridgeInterfaceWithCustomMac.MacAddress, vmUnderTestIPAddress+bridgeSubnetMask)), @@ -641,7 +643,7 @@ var _ = SIGDescribe("[Serial]Multus", Serial, decorators.Multus, func() { ExpectWithOffset(1, err).ToNot(HaveOccurred()) By("Creating a target VM with Linux bridge CNI network interface and default MAC address.") - targetVmi := libvmi.NewFedora( + targetVmi := libvmifact.NewFedora( libvmi.WithInterface(linuxBridgeInterfaceWithMACSpoofCheck), libvmi.WithNetwork(libvmi.MultusNetwork(linuxBridgeWithMACSpoofCheckNetwork, linuxBridgeWithMACSpoofCheckNetwork)), libvmi.WithCloudInitNoCloudNetworkData(cloudinit.CreateNetworkDataWithStaticIPsByIface("eth0", targetVMIPAddress+bridgeSubnetMask)), @@ -695,7 +697,7 @@ var _ = SIGDescribe("[Serial]Multus", Serial, decorators.Multus, func() { ip addr add %s dev ep1 ip addr add %s dev ep2 `, ep1Cidr, ep2Cidr, ep1CidrV6, ep2CidrV6) - agentVMI := libvmi.NewFedora(libvmi.WithCloudInitNoCloudUserData(userdata)) + agentVMI := libvmifact.NewFedora(libvmi.WithCloudInitNoCloudUserData(userdata)) agentVMI.Spec.Domain.Devices.Interfaces = interfaces agentVMI.Spec.Networks = networks diff --git a/tests/network/vmi_networking.go b/tests/network/vmi_networking.go index 585164b75ac1..4e41d24a6a76 100644 --- a/tests/network/vmi_networking.go +++ b/tests/network/vmi_networking.go @@ -56,6 +56,7 @@ import ( "kubevirt.io/client-go/kubecli" "kubevirt.io/client-go/log" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/network/netbinding" "kubevirt.io/kubevirt/pkg/virt-controller/services" "kubevirt.io/kubevirt/pkg/virt-launcher/virtwrap/api" @@ -67,7 +68,7 @@ import ( "kubevirt.io/kubevirt/tests/libnet/cloudinit" "kubevirt.io/kubevirt/tests/libnet/vmnetserver" "kubevirt.io/kubevirt/tests/libpod" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" ) @@ -141,8 +142,8 @@ var _ = SIGDescribe("[rfe_id:694][crit:medium][vendor:cnv-qe@redhat.com][level:c }) Context("with a test outbound VMI", func() { BeforeEach(func() { - inboundVMI = libvmi.NewCirros() - outboundVMI = libvmi.NewCirros() + inboundVMI = libvmifact.NewCirros() + outboundVMI = libvmifact.NewCirros() inboundVMIWithPodNetworkSet = vmiWithPodNetworkSet() inboundVMIWithCustomMacAddress = vmiWithCustomMacAddress("de:ad:00:00:be:af") @@ -229,7 +230,7 @@ var _ = SIGDescribe("[rfe_id:694][crit:medium][vendor:cnv-qe@redhat.com][level:c namespace = testsuite.NamespacePrivileged } - inboundVMI = libvmi.NewCirros() + inboundVMI = libvmifact.NewCirros() inboundVMI, err = virtClient.VirtualMachineInstance(namespace).Create(context.Background(), inboundVMI, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) inboundVMI = libwait.WaitUntilVMIReady(inboundVMI, console.LoginToCirros) @@ -275,8 +276,8 @@ var _ = SIGDescribe("[rfe_id:694][crit:medium][vendor:cnv-qe@redhat.com][level:c Context("VirtualMachineInstance with default interface model", func() { BeforeEach(func() { libnet.SkipWhenClusterNotSupportIpv4() - inboundVMI = libvmi.NewCirros() - outboundVMI = libvmi.NewCirros() + inboundVMI = libvmifact.NewCirros() + outboundVMI = libvmifact.NewCirros() inboundVMI, err = virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(nil)).Create(context.Background(), inboundVMI, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) @@ -305,7 +306,7 @@ var _ = SIGDescribe("[rfe_id:694][crit:medium][vendor:cnv-qe@redhat.com][level:c // Create a virtual machine with an unsupported interface model masqIface := libvmi.InterfaceDeviceWithMasqueradeBinding() masqIface.Model = "gibberish" - customIfVMI := libvmi.NewCirros( + customIfVMI := libvmifact.NewCirros( libvmi.WithInterface(masqIface), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -319,7 +320,7 @@ var _ = SIGDescribe("[rfe_id:694][crit:medium][vendor:cnv-qe@redhat.com][level:c Context("VirtualMachineInstance with default settings", func() { It("[test_id:1542]should be able to reach the internet", func() { libnet.SkipWhenClusterNotSupportIpv4() - outboundVMI := libvmi.NewCirros() + outboundVMI := libvmifact.NewCirros() outboundVMI = runVMI(outboundVMI) libwait.WaitUntilVMIReady(outboundVMI, console.LoginToCirros) @@ -343,7 +344,7 @@ var _ = SIGDescribe("[rfe_id:694][crit:medium][vendor:cnv-qe@redhat.com][level:c // Use alpine because cirros dhcp client starts prematurely before link is ready masqIface := libvmi.InterfaceDeviceWithMasqueradeBinding() masqIface.Model = "e1000" - e1000VMI := libvmi.NewAlpine( + e1000VMI := libvmifact.NewAlpine( libvmi.WithInterface(masqIface), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -364,7 +365,7 @@ var _ = SIGDescribe("[rfe_id:694][crit:medium][vendor:cnv-qe@redhat.com][level:c masqIface.MacAddress = "de:ad:00:00:be:af" networkData := cloudinit.CreateDefaultCloudInitNetworkData() - deadbeafVMI := libvmi.NewAlpineWithTestTooling( + deadbeafVMI := libvmifact.NewAlpineWithTestTooling( libvmi.WithInterface(masqIface), libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithCloudInitNoCloudNetworkData(networkData), @@ -383,7 +384,7 @@ var _ = SIGDescribe("[rfe_id:694][crit:medium][vendor:cnv-qe@redhat.com][level:c By(checkingEth0MACAddr) masqIface := libvmi.InterfaceDeviceWithMasqueradeBinding() masqIface.MacAddress = "BE-AF-00-00-DE-AD" - beafdeadVMI := libvmi.NewCirros( + beafdeadVMI := libvmifact.NewCirros( libvmi.WithInterface(masqIface), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -400,7 +401,7 @@ var _ = SIGDescribe("[rfe_id:694][crit:medium][vendor:cnv-qe@redhat.com][level:c By("Start VMI") masqIface := libvmi.InterfaceDeviceWithMasqueradeBinding() masqIface.MacAddress = "de:00c:00c:00:00:de:abc" - beafdeadVMI := libvmi.NewAlpine( + beafdeadVMI := libvmifact.NewAlpine( libvmi.WithInterface(masqIface), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -416,7 +417,7 @@ var _ = SIGDescribe("[rfe_id:694][crit:medium][vendor:cnv-qe@redhat.com][level:c By(checkingEth0MACAddr) slirpIface := libvmi.InterfaceDeviceWithSlirpBinding(v1.DefaultPodNetwork().Name) slirpIface.MacAddress = "de:ad:00:00:be:af" - deadbeafVMI := libvmi.NewAlpine( + deadbeafVMI := libvmifact.NewAlpine( libvmi.WithInterface(slirpIface), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -437,7 +438,7 @@ var _ = SIGDescribe("[rfe_id:694][crit:medium][vendor:cnv-qe@redhat.com][level:c It("[test_id:1774]should not configure any external interfaces", func() { By("checking loopback is the only guest interface") autoAttach := false - detachedVMI := libvmi.NewAlpine() + detachedVMI := libvmifact.NewAlpine() // Remove the masquerade interface to use the default bridge one detachedVMI.Spec.Domain.Devices.Interfaces = nil detachedVMI.Spec.Networks = nil @@ -459,7 +460,7 @@ var _ = SIGDescribe("[rfe_id:694][crit:medium][vendor:cnv-qe@redhat.com][level:c It("[test_id:1775]should not request a tun device", func() { By("Creating random VirtualMachineInstance") autoAttach := false - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() vmi.Spec.Domain.Devices.AutoattachPodInterface = &autoAttach vmi, err = virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(nil)).Create(context.Background(), vmi, metav1.CreateOptions{}) @@ -512,7 +513,7 @@ var _ = SIGDescribe("[rfe_id:694][crit:medium][vendor:cnv-qe@redhat.com][level:c It("[test_id:1776]should configure custom Pci address", func() { By("checking eth0 Pci address") - testVMI := libvmi.NewAlpine(libnet.WithMasqueradeNetworking()...) + testVMI := libvmifact.NewAlpine(libnet.WithMasqueradeNetworking()...) testVMI.Spec.Domain.Devices.Interfaces[0].PciAddress = "0000:01:00.0" testVMI, err = virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(nil)).Create(context.Background(), testVMI, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) @@ -528,7 +529,7 @@ var _ = SIGDescribe("[rfe_id:694][crit:medium][vendor:cnv-qe@redhat.com][level:c iface := *v1.DefaultMasqueradeNetworkInterface() iface.ACPIIndex = acpiIndex iface.PciAddress = pciAddress - testVMI := libvmi.NewAlpine( + testVMI := libvmifact.NewAlpine( libvmi.WithInterface(iface), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -550,7 +551,7 @@ var _ = SIGDescribe("[rfe_id:694][crit:medium][vendor:cnv-qe@redhat.com][level:c It("[test_id:1777]should disable learning on pod iface", func() { libnet.SkipWhenClusterNotSupportIpv4() By("checking learning flag") - learningDisabledVMI := libvmi.NewAlpine() + learningDisabledVMI := libvmifact.NewAlpine() learningDisabledVMI, err = virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(nil)).Create(context.Background(), learningDisabledVMI, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) @@ -562,7 +563,7 @@ var _ = SIGDescribe("[rfe_id:694][crit:medium][vendor:cnv-qe@redhat.com][level:c Context("VirtualMachineInstance with dhcp options", func() { It("[test_id:1778]should offer extra dhcp options to pod iface", func() { libnet.SkipWhenClusterNotSupportIpv4() - dhcpVMI := libvmi.NewFedora(append(libnet.WithMasqueradeNetworking(), + dhcpVMI := libvmifact.NewFedora(append(libnet.WithMasqueradeNetworking(), libvmi.WithResourceMemory("1024M"))...) // This IPv4 address tests backwards compatibility of the "DHCPOptions.NTPServers" field. @@ -606,7 +607,7 @@ var _ = SIGDescribe("[rfe_id:694][crit:medium][vendor:cnv-qe@redhat.com][level:c It("[test_id:1779]should have custom resolv.conf", func() { libnet.SkipWhenClusterNotSupportIpv4() userData := "#cloud-config\n" - dnsVMI := libvmi.NewCirros(libvmi.WithCloudInitNoCloudUserData(userData)) + dnsVMI := libvmifact.NewCirros(libvmi.WithCloudInitNoCloudUserData(userData)) dnsVMI.Spec.DNSPolicy = "None" @@ -651,7 +652,7 @@ var _ = SIGDescribe("[rfe_id:694][crit:medium][vendor:cnv-qe@redhat.com][level:c if ipv4NetworkCIDR != "" { net.NetworkSource.Pod.VMNetworkCIDR = ipv4NetworkCIDR } - return libvmi.NewCirros( + return libvmifact.NewCirros( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding(ports...)), libvmi.WithNetwork(net), ) @@ -674,7 +675,7 @@ var _ = SIGDescribe("[rfe_id:694][crit:medium][vendor:cnv-qe@redhat.com][level:c net := v1.DefaultPodNetwork() net.Pod.VMIPv6NetworkCIDR = ipv6NetworkCIDR - vmi := libvmi.NewFedora( + vmi := libvmifact.NewFedora( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding(ports...)), libvmi.WithNetwork(net), libvmi.WithCloudInitNoCloudNetworkData(networkData), @@ -988,7 +989,7 @@ var _ = SIGDescribe("[rfe_id:694][crit:medium][vendor:cnv-qe@redhat.com][level:c ) Expect(err).ToNot(HaveOccurred()) - vmi = libvmi.NewFedora( + vmi = libvmifact.NewFedora( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithCloudInitNoCloudNetworkData(networkData), @@ -998,7 +999,7 @@ var _ = SIGDescribe("[rfe_id:694][crit:medium][vendor:cnv-qe@redhat.com][level:c Expect(err).ToNot(HaveOccurred()) By("Create another VMI") - anotherVmi = libvmi.NewAlpineWithTestTooling( + anotherVmi = libvmifact.NewAlpineWithTestTooling( libnet.WithMasqueradeNetworking()..., ) anotherVmi, err = virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(nil)).Create(context.Background(), anotherVmi, metav1.CreateOptions{}) @@ -1062,7 +1063,7 @@ var _ = SIGDescribe("[rfe_id:694][crit:medium][vendor:cnv-qe@redhat.com][level:c Context("VirtualMachineInstance with TX offload disabled", func() { It("[test_id:1781]should have tx checksumming disabled on interface serving dhcp", func() { - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() vmi.Spec.Domain.Resources.Requests[k8sv1.ResourceName("memory")] = resource.MustParse("1024M") vmi, err = virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(nil)).Create(context.Background(), vmi, metav1.CreateOptions{}) @@ -1084,7 +1085,7 @@ var _ = SIGDescribe("[rfe_id:694][crit:medium][vendor:cnv-qe@redhat.com][level:c setBridgeEnabled(true) }) It("[test_id:2964]should reject VMIs with bridge interface when it's not permitted on pod network", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() _, err = virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(nil)).Create(context.Background(), vmi, metav1.CreateOptions{}) Expect(err.Error()).To(ContainSubstring("Bridge interface is not enabled in kubevirt-config")) @@ -1150,13 +1151,13 @@ func runVMI(vmi *v1.VirtualMachineInstance) *v1.VirtualMachineInstance { } func vmiWithPodNetworkSet() *v1.VirtualMachineInstance { - return libvmi.NewCirros( + return libvmifact.NewCirros( libvmi.WithInterface(*v1.DefaultBridgeNetworkInterface()), libvmi.WithNetwork(v1.DefaultPodNetwork())) } func vmiWithCustomMacAddress(mac string) *v1.VirtualMachineInstance { - return libvmi.NewCirros( + return libvmifact.NewCirros( libvmi.WithInterface(*libvmi.InterfaceWithMac(v1.DefaultBridgeNetworkInterface(), mac)), libvmi.WithNetwork(v1.DefaultPodNetwork())) } diff --git a/tests/network/vmi_passt.go b/tests/network/vmi_passt.go index 69da85ee07f2..8eb4b8b57155 100644 --- a/tests/network/vmi_passt.go +++ b/tests/network/vmi_passt.go @@ -27,13 +27,14 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" v1 "kubevirt.io/api/core/v1" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/virt-config/deprecation" "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/console" "kubevirt.io/kubevirt/tests/decorators" "kubevirt.io/kubevirt/tests/framework/kubevirt" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" ) @@ -48,7 +49,7 @@ var _ = SIGDescribe("[Serial] Passt", decorators.PasstGate, Serial, func() { macAddress = "02:00:00:00:00:02" ) - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libvmi.WithInterface(v1.Interface{ Name: v1.DefaultPodNetwork().Name, InterfaceBindingMethod: v1.InterfaceBindingMethod{Passt: &v1.InterfacePasst{}}, diff --git a/tests/network/vmi_slirp_interface.go b/tests/network/vmi_slirp_interface.go index 40887d1df765..c49a6c01fa23 100644 --- a/tests/network/vmi_slirp_interface.go +++ b/tests/network/vmi_slirp_interface.go @@ -32,6 +32,8 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/log" + "kubevirt.io/kubevirt/pkg/libvmi" + "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/console" "kubevirt.io/kubevirt/tests/decorators" @@ -39,7 +41,7 @@ import ( "kubevirt.io/kubevirt/tests/framework/kubevirt" "kubevirt.io/kubevirt/tests/libnet" "kubevirt.io/kubevirt/tests/libpod" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" ) @@ -49,7 +51,7 @@ var _ = SIGDescribe("Slirp", decorators.Networking, func() { BeforeEach(libnet.SkipWhenClusterNotSupportIpv4) It("VMI with SLIRP interface, custom mac and port is configured correctly", func() { - vmi := libvmi.NewCirros( + vmi := libvmifact.NewCirros( libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithInterface( libvmi.InterfaceDeviceWithSlirpBinding(v1.DefaultPodNetwork().Name, v1.Port{Name: "http", Port: 80}), diff --git a/tests/network/vmi_subdomain.go b/tests/network/vmi_subdomain.go index 3b79f12cf794..50565bb30868 100644 --- a/tests/network/vmi_subdomain.go +++ b/tests/network/vmi_subdomain.go @@ -38,10 +38,12 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" + "kubevirt.io/kubevirt/tests/console" "kubevirt.io/kubevirt/tests/libnet" netservice "kubevirt.io/kubevirt/tests/libnet/service" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/util" ) @@ -151,13 +153,13 @@ var _ = SIGDescribe("Subdomain", func() { }) func fedoraMasqueradeVMI() *v1.VirtualMachineInstance { - return libvmi.NewFedora( + return libvmifact.NewFedora( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork())) } func fedoraBridgeBindingVMI() *v1.VirtualMachineInstance { - return libvmi.NewFedora( + return libvmifact.NewFedora( libvmi.WithInterface(libvmi.InterfaceDeviceWithBridgeBinding(v1.DefaultPodNetwork().Name)), libvmi.WithNetwork(v1.DefaultPodNetwork())) } diff --git a/tests/numa/BUILD.bazel b/tests/numa/BUILD.bazel index f9b9491cf3b3..3852ac340af9 100644 --- a/tests/numa/BUILD.bazel +++ b/tests/numa/BUILD.bazel @@ -16,7 +16,7 @@ go_library( "//tests/framework/checks:go_default_library", "//tests/framework/kubevirt:go_default_library", "//tests/libnode:go_default_library", - "//tests/libvmi:go_default_library", + "//tests/libvmifact:go_default_library", "//tests/libwait:go_default_library", "//tests/util:go_default_library", "//vendor/github.com/onsi/ginkgo/v2:go_default_library", diff --git a/tests/numa/numa.go b/tests/numa/numa.go index d2a79a14af90..0466ace5a796 100644 --- a/tests/numa/numa.go +++ b/tests/numa/numa.go @@ -29,7 +29,7 @@ import ( "kubevirt.io/kubevirt/tests/console" "kubevirt.io/kubevirt/tests/exec" "kubevirt.io/kubevirt/tests/framework/checks" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/util" ) @@ -46,7 +46,7 @@ var _ = Describe("[sig-compute][Serial]NUMA", Serial, decorators.SigCompute, fun checks.SkipTestIfNoFeatureGate(virtconfig.NUMAFeatureGate) checks.SkipTestIfNotEnoughNodesWithCPUManagerWith2MiHugepages(1) var err error - cpuVMI := libvmi.NewCirros() + cpuVMI := libvmifact.NewCirros() cpuVMI.Spec.Domain.Resources.Requests[k8sv1.ResourceMemory] = resource.MustParse("128Mi") cpuVMI.Spec.Domain.CPU = &v1.CPU{ Cores: 3, diff --git a/tests/operator/BUILD.bazel b/tests/operator/BUILD.bazel index 70553ce5457f..7c88ae7f0a8a 100644 --- a/tests/operator/BUILD.bazel +++ b/tests/operator/BUILD.bazel @@ -7,6 +7,7 @@ go_library( visibility = ["//visibility:public"], deps = [ "//pkg/controller:go_default_library", + "//pkg/libvmi:go_default_library", "//pkg/virt-config:go_default_library", "//pkg/virt-operator/resource/apply:go_default_library", "//pkg/virt-operator/resource/generate/components:go_default_library", @@ -30,7 +31,7 @@ go_library( "//tests/libnode:go_default_library", "//tests/libpod:go_default_library", "//tests/libstorage:go_default_library", - "//tests/libvmi:go_default_library", + "//tests/libvmifact:go_default_library", "//tests/libwait:go_default_library", "//tests/testsuite:go_default_library", "//tests/util:go_default_library", diff --git a/tests/operator/operator.go b/tests/operator/operator.go index 1d874e9ad6d1..a2e3749e78ee 100644 --- a/tests/operator/operator.go +++ b/tests/operator/operator.go @@ -69,6 +69,7 @@ import ( sdkapi "kubevirt.io/controller-lifecycle-operator-sdk/api" "kubevirt.io/kubevirt/pkg/controller" + "kubevirt.io/kubevirt/pkg/libvmi" virtconfig "kubevirt.io/kubevirt/pkg/virt-config" "kubevirt.io/kubevirt/pkg/virt-operator/resource/apply" "kubevirt.io/kubevirt/pkg/virt-operator/resource/generate/components" @@ -88,7 +89,7 @@ import ( "kubevirt.io/kubevirt/tests/libnode" "kubevirt.io/kubevirt/tests/libpod" "kubevirt.io/kubevirt/tests/libstorage" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" util2 "kubevirt.io/kubevirt/tests/util" @@ -717,7 +718,7 @@ var _ = Describe("[Serial][sig-operator]Operator", Serial, decorators.SigOperato tests.CreateConfigMap(configMapName, testsuite.GetTestNamespace(nil), config_data) tests.CreateSecret(secretName, testsuite.GetTestNamespace(nil), secret_data) - vmi := libvmi.NewCirros( + vmi := libvmifact.NewCirros( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithConfigMapDisk(configMapName, configMapName), @@ -2916,7 +2917,7 @@ spec: tests.UpdateKubeVirtConfigValueAndWait(kv.Spec.Configuration) By("Checking launcher seccomp policy") - vmi, err := virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(nil)).Create(context.Background(), libvmi.NewCirros(), metav1.CreateOptions{}) + vmi, err := virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(nil)).Create(context.Background(), libvmifact.NewCirros(), metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) fetchVMI := matcher.ThisVMI(vmi) psaRelatedErrorDetected := false diff --git a/tests/pausing_test.go b/tests/pausing_test.go index 42f1418ae462..3bc45498dcd4 100644 --- a/tests/pausing_test.go +++ b/tests/pausing_test.go @@ -33,7 +33,7 @@ import ( "kubevirt.io/kubevirt/tests/framework/kubevirt" "kubevirt.io/kubevirt/tests/framework/matcher" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/util" @@ -46,6 +46,8 @@ import ( "k8s.io/apimachinery/pkg/api/errors" v12 "k8s.io/apimachinery/pkg/apis/meta/v1" + "kubevirt.io/kubevirt/pkg/libvmi" + v1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/kubecli" @@ -70,7 +72,7 @@ var _ = Describe("[rfe_id:3064][crit:medium][vendor:cnv-qe@redhat.com][level:com var vmi *v1.VirtualMachineInstance BeforeEach(func() { - vmi = tests.RunVMIAndExpectLaunch(libvmi.NewCirros(), cirrosStartupTimeout) + vmi = tests.RunVMIAndExpectLaunch(libvmifact.NewCirros(), cirrosStartupTimeout) }) When("paused via API", func() { @@ -198,7 +200,7 @@ var _ = Describe("[rfe_id:3064][crit:medium][vendor:cnv-qe@redhat.com][level:com var vm *v1.VirtualMachine BeforeEach(func() { - vmi := libvmi.NewCirros( + vmi := libvmifact.NewCirros( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -433,7 +435,7 @@ var _ = Describe("[rfe_id:3064][crit:medium][vendor:cnv-qe@redhat.com][level:com BeforeEach(func() { By("Starting a Cirros VMI") - vmi = tests.RunVMIAndExpectLaunch(libvmi.NewCirros(), cirrosStartupTimeout) + vmi = tests.RunVMIAndExpectLaunch(libvmifact.NewCirros(), cirrosStartupTimeout) By("Checking that the VirtualMachineInstance console has expected output") Expect(console.LoginToCirros(vmi)).To(Succeed()) diff --git a/tests/performance/BUILD.bazel b/tests/performance/BUILD.bazel index cc79ce670782..7651847f1ffc 100644 --- a/tests/performance/BUILD.bazel +++ b/tests/performance/BUILD.bazel @@ -10,6 +10,7 @@ go_library( importpath = "kubevirt.io/kubevirt/tests/performance", visibility = ["//visibility:public"], deps = [ + "//pkg/libvmi:go_default_library", "//pkg/virt-config:go_default_library", "//staging/src/kubevirt.io/api/core/v1:go_default_library", "//staging/src/kubevirt.io/api/instancetype:go_default_library", @@ -20,7 +21,7 @@ go_library( "//tests/decorators:go_default_library", "//tests/framework/checks:go_default_library", "//tests/framework/kubevirt:go_default_library", - "//tests/libvmi:go_default_library", + "//tests/libvmifact:go_default_library", "//tests/libwait:go_default_library", "//tests/util:go_default_library", "//tools/perfscale-audit/api:go_default_library", diff --git a/tests/performance/density.go b/tests/performance/density.go index fb07f97cdf18..9ccc174fcbca 100644 --- a/tests/performance/density.go +++ b/tests/performance/density.go @@ -43,7 +43,9 @@ import ( "kubevirt.io/client-go/kubecli" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/pkg/libvmi" + + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/util" ) @@ -201,7 +203,7 @@ func createBatchVMIWithRateControl(virtClient kubecli.KubevirtClient, vmCount in func createBatchRunningVMWithInstancetypeWithRateControl(virtClient kubecli.KubevirtClient, vmCount int, instancetypeName, preferenceName string) { createBatchRunningVMWithRateControl(virtClient, vmCount, func() *kvv1.VirtualMachine { - vm := libvmi.NewVirtualMachine(libvmi.NewCirros(), libvmi.WithRunning()) + vm := libvmi.NewVirtualMachine(libvmifact.NewCirros(), libvmi.WithRunning()) vm.Spec.Template.Spec.Domain.Resources = kvv1.ResourceRequirements{} vm.Spec.Instancetype = &kvv1.InstancetypeMatcher{ Name: instancetypeName, @@ -272,7 +274,7 @@ func createPreference(virtClient kubecli.KubevirtClient) *instancetypev1beta1.Vi func createVMISpecWithResources() *kvv1.VirtualMachineInstance { cpuLimit := "100m" memLimit := "90Mi" - vmi := libvmi.NewCirros( + vmi := libvmifact.NewCirros( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(kvv1.DefaultPodNetwork()), libvmi.WithResourceMemory(memLimit), diff --git a/tests/performance/realtime.go b/tests/performance/realtime.go index e78f2e52e98c..9242a0e87702 100644 --- a/tests/performance/realtime.go +++ b/tests/performance/realtime.go @@ -19,11 +19,12 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" virtconfig "kubevirt.io/kubevirt/pkg/virt-config" + "kubevirt.io/kubevirt/tests/console" cd "kubevirt.io/kubevirt/tests/containerdisk" "kubevirt.io/kubevirt/tests/framework/checks" - "kubevirt.io/kubevirt/tests/libvmi" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/util" ) diff --git a/tests/pool_test.go b/tests/pool_test.go index 43442b5e4ac0..3d9ccf77aafd 100644 --- a/tests/pool_test.go +++ b/tests/pool_test.go @@ -24,6 +24,7 @@ import ( "fmt" "time" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/pointer" "kubevirt.io/kubevirt/tests/decorators" @@ -46,7 +47,7 @@ import ( "kubevirt.io/kubevirt/tests/framework/kubevirt" "kubevirt.io/kubevirt/tests/framework/matcher" "kubevirt.io/kubevirt/tests/libstorage" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/util" v1 "kubevirt.io/api/core/v1" @@ -160,7 +161,7 @@ var _ = Describe("[sig-compute]VirtualMachinePool", decorators.SigCompute, func( newOfflineVirtualMachinePool := func() *poolv1.VirtualMachinePool { By("Create a new VirtualMachinePool") - return createVirtualMachinePool(newPoolFromVMI(libvmi.NewCirros())) + return createVirtualMachinePool(newPoolFromVMI(libvmifact.NewCirros())) } DescribeTable("[Serial]pool should scale", Serial, func(startScale int, stopScale int) { diff --git a/tests/portforward_test.go b/tests/portforward_test.go index 06875025c9a9..79c652c88119 100644 --- a/tests/portforward_test.go +++ b/tests/portforward_test.go @@ -35,7 +35,7 @@ import ( "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/framework/kubevirt" "kubevirt.io/kubevirt/tests/libnet" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/util" ) @@ -48,7 +48,7 @@ var _ = Describe("[sig-compute]PortForward", decorators.SigCompute, func() { }) It("should successfully open connection to guest", func() { - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Namespace = util.NamespaceTestDefault tests.RunVMIAndExpectLaunchIgnoreWarnings(vmi, 180) diff --git a/tests/realtime/BUILD.bazel b/tests/realtime/BUILD.bazel index b553e705088b..bb61b12eaefe 100644 --- a/tests/realtime/BUILD.bazel +++ b/tests/realtime/BUILD.bazel @@ -6,6 +6,7 @@ go_library( importpath = "kubevirt.io/kubevirt/tests/realtime", visibility = ["//visibility:public"], deps = [ + "//pkg/libvmi:go_default_library", "//pkg/virt-config:go_default_library", "//staging/src/kubevirt.io/api/core/v1:go_default_library", "//staging/src/kubevirt.io/client-go/kubecli:go_default_library", @@ -17,7 +18,6 @@ go_library( "//tests/framework/checks:go_default_library", "//tests/framework/kubevirt:go_default_library", "//tests/libpod:go_default_library", - "//tests/libvmi:go_default_library", "//tests/libwait:go_default_library", "//tests/testsuite:go_default_library", "//tests/util:go_default_library", diff --git a/tests/realtime/realtime.go b/tests/realtime/realtime.go index 9b0490df99fc..927e892deeaf 100644 --- a/tests/realtime/realtime.go +++ b/tests/realtime/realtime.go @@ -17,7 +17,9 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" virtconfig "kubevirt.io/kubevirt/pkg/virt-config" + "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/console" cd "kubevirt.io/kubevirt/tests/containerdisk" @@ -25,7 +27,6 @@ import ( "kubevirt.io/kubevirt/tests/framework/checks" "kubevirt.io/kubevirt/tests/framework/kubevirt" "kubevirt.io/kubevirt/tests/libpod" - "kubevirt.io/kubevirt/tests/libvmi" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" "kubevirt.io/kubevirt/tests/util" diff --git a/tests/replicaset_test.go b/tests/replicaset_test.go index 193ff23064eb..d82e2c19db16 100644 --- a/tests/replicaset_test.go +++ b/tests/replicaset_test.go @@ -26,6 +26,7 @@ import ( "strings" "time" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/pointer" "kubevirt.io/kubevirt/tests/decorators" @@ -46,7 +47,7 @@ import ( "k8s.io/apimachinery/pkg/util/json" "kubevirt.io/kubevirt/tests/libreplicaset" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" v1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/kubecli" @@ -127,7 +128,7 @@ var _ = Describe("[rfe_id:588][crit:medium][vendor:cnv-qe@redhat.com][level:comp newReplicaSet := func() *v1.VirtualMachineInstanceReplicaSet { By("Create a new VirtualMachineInstance replica set") - template := libvmi.NewCirros( + template := libvmifact.NewCirros( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -156,7 +157,7 @@ var _ = Describe("[rfe_id:588][crit:medium][vendor:cnv-qe@redhat.com][level:comp ) DescribeTable("[rfe_id:588][crit:medium][vendor:cnv-qe@redhat.com][level:component]should scale with the horizontal pod autoscaler", func(startScale int, stopScale int) { - template := libvmi.NewCirros( + template := libvmifact.NewCirros( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -406,7 +407,7 @@ var _ = Describe("[rfe_id:588][crit:medium][vendor:cnv-qe@redhat.com][level:comp It("should replace a VMI immediately when a virt-launcher pod gets deleted", func() { By("Creating new replica set") - template := libvmi.NewCirros( + template := libvmifact.NewCirros( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) diff --git a/tests/security_features_test.go b/tests/security_features_test.go index 7744cde786fc..e49aaec849ea 100644 --- a/tests/security_features_test.go +++ b/tests/security_features_test.go @@ -53,7 +53,7 @@ import ( "kubevirt.io/kubevirt/tests/console" cd "kubevirt.io/kubevirt/tests/containerdisk" "kubevirt.io/kubevirt/tests/libpod" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" ) @@ -87,7 +87,7 @@ var _ = Describe("[Serial][sig-compute]SecurityFeatures", Serial, decorators.Sig config.SELinuxLauncherType = "container_t" tests.UpdateKubeVirtConfigValueAndWait(*config) - vmi = libvmi.NewCirros() + vmi = libvmifact.NewCirros() // VMIs with selinuxLauncherType container_t cannot have network interfaces, since that requires // the `virt_launcher.process` selinux context @@ -321,7 +321,7 @@ var _ = Describe("[Serial][sig-compute]SecurityFeatures", Serial, decorators.Sig }) Context("The VMI SELinux context status", func() { It("Should get set and stay the the same after a migration", decorators.RequiresTwoSchedulableNodes, func() { - vmi := libvmi.NewAlpine(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewAlpine(libnet.WithMasqueradeNetworking()...) By("Starting a New VMI") vmi, err = virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(nil)).Create(context.Background(), vmi, metav1.CreateOptions{}) diff --git a/tests/softreboot_test.go b/tests/softreboot_test.go index 184b34b927ad..41dab7b2f61e 100644 --- a/tests/softreboot_test.go +++ b/tests/softreboot_test.go @@ -34,14 +34,16 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" virtctlpause "kubevirt.io/kubevirt/pkg/virtctl/pause" virtctlsoftreboot "kubevirt.io/kubevirt/pkg/virtctl/softreboot" + "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/clientcmd" "kubevirt.io/kubevirt/tests/console" "kubevirt.io/kubevirt/tests/framework/kubevirt" "kubevirt.io/kubevirt/tests/framework/matcher" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/testsuite" ) @@ -83,7 +85,7 @@ var _ = Describe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-c When("soft reboot vmi with agent connected via API", func() { It("should succeed", func() { - vmi = tests.RunVMIAndExpectLaunch(libvmi.NewFedora(withoutACPI()), vmiLaunchTimeout) + vmi = tests.RunVMIAndExpectLaunch(libvmifact.NewFedora(withoutACPI()), vmiLaunchTimeout) Eventually(matcher.ThisVMI(vmi), 12*time.Minute, 2*time.Second).Should(matcher.HaveConditionTrue(v1.VirtualMachineInstanceAgentConnected)) @@ -96,7 +98,7 @@ var _ = Describe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-c When("soft reboot vmi with ACPI feature enabled via API", func() { It("should succeed", func() { - vmi = tests.RunVMIAndExpectLaunch(libvmi.NewCirros(), vmiLaunchTimeout) + vmi = tests.RunVMIAndExpectLaunch(libvmifact.NewCirros(), vmiLaunchTimeout) Expect(console.LoginToCirros(vmi)).To(Succeed()) Eventually(matcher.ThisVMI(vmi), 30*time.Second, 2*time.Second).Should(matcher.HaveConditionMissingOrFalse(v1.VirtualMachineInstanceAgentConnected)) @@ -110,7 +112,7 @@ var _ = Describe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-c When("soft reboot vmi with agent connected via virtctl", func() { It("should succeed", func() { - vmi = tests.RunVMIAndExpectLaunch(libvmi.NewFedora(withoutACPI()), vmiLaunchTimeout) + vmi = tests.RunVMIAndExpectLaunch(libvmifact.NewFedora(withoutACPI()), vmiLaunchTimeout) Eventually(matcher.ThisVMI(vmi), 12*time.Minute, 2*time.Second).Should(matcher.HaveConditionTrue(v1.VirtualMachineInstanceAgentConnected)) @@ -123,7 +125,7 @@ var _ = Describe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-c When("soft reboot vmi with ACPI feature enabled via virtctl", func() { It("should succeed", func() { - vmi = tests.RunVMIAndExpectLaunch(libvmi.NewCirros(), vmiLaunchTimeout) + vmi = tests.RunVMIAndExpectLaunch(libvmifact.NewCirros(), vmiLaunchTimeout) Expect(console.LoginToCirros(vmi)).To(Succeed()) Eventually(matcher.ThisVMI(vmi), 30*time.Second, 2*time.Second).Should(matcher.HaveConditionMissingOrFalse(v1.VirtualMachineInstanceAgentConnected)) @@ -137,7 +139,7 @@ var _ = Describe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-c When("soft reboot vmi neither have the agent connected nor the ACPI feature enabled via virtctl", func() { It("should failed", func() { - vmi = tests.RunVMIAndExpectLaunch(libvmi.NewCirros(withoutACPI()), vmiLaunchTimeout) + vmi = tests.RunVMIAndExpectLaunch(libvmifact.NewCirros(withoutACPI()), vmiLaunchTimeout) Expect(console.LoginToCirros(vmi)).To(Succeed()) Eventually(matcher.ThisVMI(vmi), 30*time.Second, 2*time.Second).Should(matcher.HaveConditionMissingOrFalse(v1.VirtualMachineInstanceAgentConnected)) @@ -151,7 +153,7 @@ var _ = Describe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-c When("soft reboot vmi after paused and unpaused via virtctl", func() { It("should failed to soft reboot a paused vmi", func() { - vmi = tests.RunVMIAndExpectLaunch(libvmi.NewFedora(), vmiLaunchTimeout) + vmi = tests.RunVMIAndExpectLaunch(libvmifact.NewFedora(), vmiLaunchTimeout) Eventually(matcher.ThisVMI(vmi), 12*time.Minute, 2*time.Second).Should(matcher.HaveConditionTrue(v1.VirtualMachineInstanceAgentConnected)) command := clientcmd.NewRepeatableVirtctlCommand(virtctlpause.COMMAND_PAUSE, "vmi", "--namespace", testsuite.GetTestNamespace(vmi), vmi.Name) diff --git a/tests/stability_test.go b/tests/stability_test.go index 1d7760f2f7a6..5f90b70b2210 100644 --- a/tests/stability_test.go +++ b/tests/stability_test.go @@ -7,7 +7,7 @@ import ( "github.com/onsi/gomega/gmeasure" "kubevirt.io/kubevirt/tests" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" ) // Replace PDescribe with FDescribe in order to measure if your changes made @@ -19,7 +19,7 @@ var _ = PDescribe("Ensure stable functionality", func() { experiment.Sample(func(idx int) { experiment.MeasureDuration("Create VM", func() { - tests.RunVMIAndExpectLaunch(libvmi.NewCirros(), 30) + tests.RunVMIAndExpectLaunch(libvmifact.NewCirros(), 30) }) }, gmeasure.SamplingConfig{N: 15, Duration: 10 * time.Minute}) }) diff --git a/tests/storage/BUILD.bazel b/tests/storage/BUILD.bazel index 0a7f55935256..c52e555cf65f 100644 --- a/tests/storage/BUILD.bazel +++ b/tests/storage/BUILD.bazel @@ -23,6 +23,7 @@ go_library( "//pkg/apimachinery/patch:go_default_library", "//pkg/certificates/triple/cert:go_default_library", "//pkg/host-disk:go_default_library", + "//pkg/libvmi:go_default_library", "//pkg/pointer:go_default_library", "//pkg/storage/reservation:go_default_library", "//pkg/storage/types:go_default_library", @@ -60,7 +61,7 @@ go_library( "//tests/libnode:go_default_library", "//tests/libpod:go_default_library", "//tests/libstorage:go_default_library", - "//tests/libvmi:go_default_library", + "//tests/libvmifact:go_default_library", "//tests/libwait:go_default_library", "//tests/testsuite:go_default_library", "//tests/util:go_default_library", diff --git a/tests/storage/datavolume.go b/tests/storage/datavolume.go index c1bbd8c46851..a2eb0c844a49 100644 --- a/tests/storage/datavolume.go +++ b/tests/storage/datavolume.go @@ -51,6 +51,7 @@ import ( instanceType "kubevirt.io/api/instancetype/v1beta1" "kubevirt.io/kubevirt/pkg/apimachinery/patch" + "kubevirt.io/kubevirt/pkg/libvmi" virtconfig "kubevirt.io/kubevirt/pkg/virt-config" "kubevirt.io/kubevirt/tests" @@ -64,7 +65,6 @@ import ( "kubevirt.io/kubevirt/tests/libdv" "kubevirt.io/kubevirt/tests/libpod" "kubevirt.io/kubevirt/tests/libstorage" - "kubevirt.io/kubevirt/tests/libvmi" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" ) diff --git a/tests/storage/events.go b/tests/storage/events.go index bccb0bd7cb74..63f1b558bfa3 100644 --- a/tests/storage/events.go +++ b/tests/storage/events.go @@ -31,10 +31,11 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" + "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/events" "kubevirt.io/kubevirt/tests/framework/kubevirt" - "kubevirt.io/kubevirt/tests/libvmi" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" ) diff --git a/tests/storage/export.go b/tests/storage/export.go index 62f6762a410e..c7259b8c6f2d 100644 --- a/tests/storage/export.go +++ b/tests/storage/export.go @@ -36,7 +36,6 @@ import ( "kubevirt.io/kubevirt/tests/framework/kubevirt" "kubevirt.io/kubevirt/tests/exec" - "kubevirt.io/kubevirt/tests/libvmi" "kubevirt.io/kubevirt/tests/testsuite" . "github.com/onsi/ginkgo/v2" @@ -64,7 +63,9 @@ import ( "kubevirt.io/kubevirt/pkg/apimachinery/patch" certutil "kubevirt.io/kubevirt/pkg/certificates/triple/cert" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/virt-operator/resource/generate/components" + "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/clientcmd" cd "kubevirt.io/kubevirt/tests/containerdisk" diff --git a/tests/storage/hotplug.go b/tests/storage/hotplug.go index a7bb0349afa5..e0bf44d4b4a9 100644 --- a/tests/storage/hotplug.go +++ b/tests/storage/hotplug.go @@ -52,7 +52,9 @@ import ( "kubevirt.io/client-go/kubecli" cdiv1 "kubevirt.io/containerized-data-importer-api/pkg/apis/core/v1beta1" + "kubevirt.io/kubevirt/pkg/libvmi" virtctl "kubevirt.io/kubevirt/pkg/virtctl/vm" + "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/clientcmd" "kubevirt.io/kubevirt/tests/console" @@ -62,7 +64,7 @@ import ( "kubevirt.io/kubevirt/tests/libdv" "kubevirt.io/kubevirt/tests/libnode" "kubevirt.io/kubevirt/tests/libstorage" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" ) @@ -439,7 +441,7 @@ var _ = SIGDescribe("Hotplug", func() { } createAndStartWFFCStorageHotplugVM := func() *v1.VirtualMachine { - vm, err := virtClient.VirtualMachine(testsuite.GetTestNamespace(nil)).Create(context.Background(), libvmi.NewVirtualMachine(libvmi.NewCirros(), libvmi.WithRunning())) + vm, err := virtClient.VirtualMachine(testsuite.GetTestNamespace(nil)).Create(context.Background(), libvmi.NewVirtualMachine(libvmifact.NewCirros(), libvmi.WithRunning())) Expect(err).ToNot(HaveOccurred()) Eventually(func() bool { vm, err := virtClient.VirtualMachine(testsuite.GetTestNamespace(vm)).Get(context.Background(), vm.Name, &metav1.GetOptions{}) @@ -547,7 +549,7 @@ var _ = SIGDescribe("Hotplug", func() { ) BeforeEach(func() { By("Creating VirtualMachine") - vm, err = virtClient.VirtualMachine(testsuite.GetTestNamespace(nil)).Create(context.Background(), libvmi.NewVirtualMachine(libvmi.NewCirros())) + vm, err = virtClient.VirtualMachine(testsuite.GetTestNamespace(nil)).Create(context.Background(), libvmi.NewVirtualMachine(libvmifact.NewCirros())) Expect(err).ToNot(HaveOccurred()) }) @@ -785,7 +787,7 @@ var _ = SIGDescribe("Hotplug", func() { if node != "" { opts = append(opts, libvmi.WithNodeSelectorFor(&corev1.Node{ObjectMeta: metav1.ObjectMeta{Name: node}})) } - vmi := libvmi.NewCirros(opts...) + vmi := libvmifact.NewCirros(opts...) vm, err = virtClient.VirtualMachine(testsuite.GetTestNamespace(vmi)).Create(context.Background(), libvmi.NewVirtualMachine(vmi, libvmi.WithRunning())) Expect(err).ToNot(HaveOccurred()) @@ -1141,7 +1143,7 @@ var _ = SIGDescribe("Hotplug", func() { ) containerDiskVMIFunc := func() *v1.VirtualMachineInstance { - return libvmi.NewCirros( + return libvmifact.NewCirros( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -1409,7 +1411,7 @@ var _ = SIGDescribe("Hotplug", func() { libdv.WithForceBindAnnotation(), ) } - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() vm := libvmi.NewVirtualMachine(vmi, libvmi.WithRunning()) vm, err = virtClient.VirtualMachine(testsuite.GetTestNamespace(vm)).Create(context.Background(), vm) Expect(err).ToNot(HaveOccurred()) @@ -1465,7 +1467,7 @@ var _ = SIGDescribe("Hotplug", func() { ) createVMWithRatio := func(memRatio, cpuRatio float64) *v1.VirtualMachine { - vm := libvmi.NewVirtualMachine(libvmi.NewCirros(), libvmi.WithRunning()) + vm := libvmi.NewVirtualMachine(libvmifact.NewCirros(), libvmi.WithRunning()) memLimit := int64(1024 * 1024 * 128) //128Mi memRequest := int64(math.Ceil(float64(memLimit) / memRatio)) @@ -1736,7 +1738,7 @@ var _ = SIGDescribe("Hotplug", func() { if pvNode != "" { opts = append(opts, libvmi.WithNodeSelectorFor(&corev1.Node{ObjectMeta: metav1.ObjectMeta{Name: pvNode}})) } - vmi := libvmi.NewCirros(opts...) + vmi := libvmifact.NewCirros(opts...) vm, err = virtClient.VirtualMachine(testsuite.GetTestNamespace(vmi)).Create(context.Background(), libvmi.NewVirtualMachine(vmi, libvmi.WithRunning())) Expect(err).ToNot(HaveOccurred()) @@ -1785,7 +1787,7 @@ var _ = SIGDescribe("Hotplug", func() { ) BeforeEach(func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() policy := v1.IOThreadsPolicyShared vmi.Spec.Domain.IOThreadsPolicy = &policy vm, err = virtClient.VirtualMachine(testsuite.GetTestNamespace(vmi)).Create(context.Background(), libvmi.NewVirtualMachine(vmi, libvmi.WithRunning())) @@ -1843,7 +1845,7 @@ var _ = SIGDescribe("Hotplug", func() { BeforeEach(func() { libstorage.CreateAllSeparateDeviceHostPathPvs(tests.CustomHostPath, testsuite.GetTestNamespace(nil)) - vm, err = virtClient.VirtualMachine(testsuite.GetTestNamespace(nil)).Create(context.Background(), libvmi.NewVirtualMachine(libvmi.NewCirros(), libvmi.WithRunning())) + vm, err = virtClient.VirtualMachine(testsuite.GetTestNamespace(nil)).Create(context.Background(), libvmi.NewVirtualMachine(libvmifact.NewCirros(), libvmi.WithRunning())) Expect(err).ToNot(HaveOccurred()) Eventually(func() bool { vm, err := virtClient.VirtualMachine(testsuite.GetTestNamespace(nil)).Get(context.Background(), vm.Name, &metav1.GetOptions{}) @@ -1922,7 +1924,7 @@ var _ = SIGDescribe("Hotplug", func() { It("on an offline VM", func() { By("Creating VirtualMachine") - vm, err = virtClient.VirtualMachine(util.NamespaceTestDefault).Create(context.Background(), libvmi.NewVirtualMachine(libvmi.NewCirros())) + vm, err = virtClient.VirtualMachine(util.NamespaceTestDefault).Create(context.Background(), libvmi.NewVirtualMachine(libvmifact.NewCirros())) Expect(err).ToNot(HaveOccurred()) By("Adding test volumes") pv2, pvc2, err := tests.CreatePVandPVCwithSCSIDisk(nodeName, device, util.NamespaceTestDefault, "scsi-disks-test2", "scsipv2", "scsipvc2") @@ -1951,7 +1953,7 @@ var _ = SIGDescribe("Hotplug", func() { }) It("on an online VM", func() { - vmi := libvmi.NewCirros(libvmi.WithNodeSelectorFor(&corev1.Node{ + vmi := libvmifact.NewCirros(libvmi.WithNodeSelectorFor(&corev1.Node{ ObjectMeta: metav1.ObjectMeta{ Name: nodeName, }, diff --git a/tests/storage/imageupload.go b/tests/storage/imageupload.go index 65ae1cf59ff3..26ce15918300 100644 --- a/tests/storage/imageupload.go +++ b/tests/storage/imageupload.go @@ -22,6 +22,8 @@ import ( "kubevirt.io/client-go/log" cdiv1 "kubevirt.io/containerized-data-importer-api/pkg/apis/core/v1beta1" + "kubevirt.io/kubevirt/pkg/libvmi" + "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/clientcmd" "kubevirt.io/kubevirt/tests/decorators" @@ -31,7 +33,6 @@ import ( "kubevirt.io/kubevirt/tests/framework/kubevirt" "kubevirt.io/kubevirt/tests/framework/matcher" "kubevirt.io/kubevirt/tests/libstorage" - "kubevirt.io/kubevirt/tests/libvmi" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" ) diff --git a/tests/storage/memorydump.go b/tests/storage/memorydump.go index 5fb6e9b95356..4663706d063e 100644 --- a/tests/storage/memorydump.go +++ b/tests/storage/memorydump.go @@ -49,10 +49,12 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" + "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/clientcmd" "kubevirt.io/kubevirt/tests/framework/matcher" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" ) const ( @@ -97,7 +99,7 @@ var _ = SIGDescribe("Memory dump", func() { createAndStartVM := func() *v1.VirtualMachine { By("Creating VirtualMachine") - vm := libvmi.NewVirtualMachine(libvmi.NewCirros(), libvmi.WithRunning()) + vm := libvmi.NewVirtualMachine(libvmifact.NewCirros(), libvmi.WithRunning()) vm, err := virtClient.VirtualMachine(util.NamespaceTestDefault).Create(context.Background(), vm) Expect(err).ToNot(HaveOccurred()) Eventually(func() bool { diff --git a/tests/storage/reservation.go b/tests/storage/reservation.go index 18e77b13d95d..ba1da7959d9b 100644 --- a/tests/storage/reservation.go +++ b/tests/storage/reservation.go @@ -17,8 +17,10 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/storage/reservation" virtconfig "kubevirt.io/kubevirt/pkg/virt-config" + "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/console" "kubevirt.io/kubevirt/tests/exec" @@ -27,7 +29,7 @@ import ( "kubevirt.io/kubevirt/tests/libnode" "kubevirt.io/kubevirt/tests/libpod" "kubevirt.io/kubevirt/tests/libstorage" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" "kubevirt.io/kubevirt/tests/util" @@ -230,7 +232,7 @@ var _ = SIGDescribe("[Serial]SCSI persistent reservation", Serial, func() { It("Should successfully start a VM with persistent reservation", func() { By("Create VMI with the SCSI disk") - vmi := libvmi.NewFedora( + vmi := libvmifact.NewFedora( libvmi.WithNamespace(util.NamespaceTestDefault), libvmi.WithPersistentVolumeClaimLun("lun0", pvc.Name, true), libvmi.WithNodeAffinityFor(node), @@ -259,7 +261,7 @@ var _ = SIGDescribe("[Serial]SCSI persistent reservation", Serial, func() { It("Should successfully start 2 VMs with persistent reservation on the same LUN", func() { By("Create 2 VMs with the SCSI disk") - vmi := libvmi.NewFedora( + vmi := libvmifact.NewFedora( libvmi.WithNamespace(util.NamespaceTestDefault), libvmi.WithPersistentVolumeClaimLun("lun0", pvc.Name, true), libvmi.WithNodeAffinityFor(node), @@ -271,7 +273,7 @@ var _ = SIGDescribe("[Serial]SCSI persistent reservation", Serial, func() { libwait.WithTimeout(180), ) - vmi2 := libvmi.NewFedora( + vmi2 := libvmifact.NewFedora( libvmi.WithNamespace(util.NamespaceTestDefault), libvmi.WithPersistentVolumeClaimLun("lun0", pvc.Name, true), libvmi.WithNodeAffinityFor(node), diff --git a/tests/storage/restore.go b/tests/storage/restore.go index e20671457a5b..2ec097b23a77 100644 --- a/tests/storage/restore.go +++ b/tests/storage/restore.go @@ -37,6 +37,7 @@ import ( "kubevirt.io/kubevirt/tests/libinstancetype" "kubevirt.io/kubevirt/pkg/apimachinery/patch" + "kubevirt.io/kubevirt/pkg/libvmi" typesStorage "kubevirt.io/kubevirt/pkg/storage/types" "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/console" @@ -46,7 +47,7 @@ import ( "kubevirt.io/kubevirt/tests/libdv" "kubevirt.io/kubevirt/tests/libnet" "kubevirt.io/kubevirt/tests/libstorage" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" ) @@ -273,7 +274,7 @@ var _ = SIGDescribe("VirtualMachineRestore Tests", func() { BeforeEach(func() { vm = libvmi.NewVirtualMachine( - libvmi.NewCirros( + libvmifact.NewCirros( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), )) @@ -482,7 +483,7 @@ var _ = SIGDescribe("VirtualMachineRestore Tests", func() { It("should fail restoring to a different VM that already exists", func() { By("Creating a new VM") - newVM := libvmi.NewVirtualMachine(libvmi.NewCirros()) + newVM := libvmi.NewVirtualMachine(libvmifact.NewCirros()) newVM, err = virtClient.VirtualMachine(testsuite.GetTestNamespace(nil)).Create(context.Background(), newVM) Expect(err).ToNot(HaveOccurred()) defer deleteVM(newVM) @@ -1284,7 +1285,7 @@ var _ = SIGDescribe("VirtualMachineRestore Tests", func() { DescribeTable("should restore a vm with containerdisk and blank datavolume", func(restoreToNewVM bool) { quantity, err := resource.ParseQuantity("1Gi") Expect(err).ToNot(HaveOccurred()) - vmi = libvmi.NewCirros( + vmi = libvmifact.NewCirros( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) @@ -1477,7 +1478,7 @@ var _ = SIGDescribe("VirtualMachineRestore Tests", func() { DescribeTable("should restore a vm from an online snapshot with guest agent", func(restoreToNewVM bool) { quantity, err := resource.ParseQuantity("1Gi") Expect(err).ToNot(HaveOccurred()) - vmi = libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi = libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Namespace = testsuite.GetTestNamespace(nil) vm = libvmi.NewVirtualMachine(vmi) dvName := "dv-" + vm.Name diff --git a/tests/storage/snapshot.go b/tests/storage/snapshot.go index 8cfcb99cf261..cf99b983c692 100644 --- a/tests/storage/snapshot.go +++ b/tests/storage/snapshot.go @@ -25,6 +25,7 @@ import ( "k8s.io/utils/pointer" "kubevirt.io/kubevirt/pkg/apimachinery/patch" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/tests/exec" "kubevirt.io/kubevirt/tests/framework/kubevirt" @@ -44,7 +45,7 @@ import ( "kubevirt.io/kubevirt/tests/libdv" "kubevirt.io/kubevirt/tests/libnet" "kubevirt.io/kubevirt/tests/libstorage" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" ) @@ -233,7 +234,7 @@ var _ = SIGDescribe("VirtualMachineSnapshot Tests", func() { Context("With simple VM", func() { BeforeEach(func() { var err error - vm = libvmi.NewVirtualMachine(libvmi.NewCirros()) + vm = libvmi.NewVirtualMachine(libvmifact.NewCirros()) vm, err = virtClient.VirtualMachine(testsuite.GetTestNamespace(nil)).Create(context.Background(), vm) Expect(err).ToNot(HaveOccurred()) }) @@ -414,7 +415,7 @@ var _ = SIGDescribe("VirtualMachineSnapshot Tests", func() { It("[test_id:6767]with volumes and guest agent available", func() { quantity, err := resource.ParseQuantity("1Gi") Expect(err).ToNot(HaveOccurred()) - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Namespace = testsuite.GetTestNamespace(nil) vm = libvmi.NewVirtualMachine(vmi) dvName := "dv-" + vm.Name @@ -495,7 +496,7 @@ var _ = SIGDescribe("VirtualMachineSnapshot Tests", func() { It("[test_id:6768]with volumes and no guest agent available", func() { quantity, err := resource.ParseQuantity("1Gi") Expect(err).ToNot(HaveOccurred()) - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Namespace = testsuite.GetTestNamespace(nil) vm = libvmi.NewVirtualMachine(vmi) dvName := "dv-" + vm.Name @@ -557,7 +558,7 @@ var _ = SIGDescribe("VirtualMachineSnapshot Tests", func() { }) It("[test_id:6769]without volumes with guest agent available", func() { - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Namespace = testsuite.GetTestNamespace(nil) vm = libvmi.NewVirtualMachine(vmi) @@ -755,7 +756,7 @@ var _ = SIGDescribe("VirtualMachineSnapshot Tests", func() { "runcmd:\n" + " - sudo sed -i 's/^SELINUX=.*/SELINUX=enforcing/' /etc/selinux/config\n" - vmi := libvmi.NewFedora( + vmi := libvmifact.NewFedora( libvmi.WithCloudInitNoCloudUserData(userData), libvmi.WithNamespace(testsuite.GetTestNamespace(nil))) @@ -814,7 +815,7 @@ var _ = SIGDescribe("VirtualMachineSnapshot Tests", func() { It("Calling Velero hooks should freeze/unfreeze VM", func() { By("Creating VM") - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Namespace = testsuite.GetTestNamespace(nil) vm = libvmi.NewVirtualMachine(vmi) @@ -896,7 +897,7 @@ var _ = SIGDescribe("VirtualMachineSnapshot Tests", func() { It("Calling Velero hooks should error if VM is Paused", func() { By("Creating VM") - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Namespace = testsuite.GetTestNamespace(nil) vm = libvmi.NewVirtualMachine(vmi) diff --git a/tests/storage/storage.go b/tests/storage/storage.go index 4066f1cc9bc6..c995f30253b6 100644 --- a/tests/storage/storage.go +++ b/tests/storage/storage.go @@ -30,7 +30,7 @@ import ( "kubevirt.io/kubevirt/tests/decorators" "kubevirt.io/kubevirt/tests/exec" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "k8s.io/apimachinery/pkg/api/errors" @@ -53,9 +53,11 @@ import ( cdiv1 "kubevirt.io/containerized-data-importer-api/pkg/apis/core/v1beta1" hostdisk "kubevirt.io/kubevirt/pkg/host-disk" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/pointer" virtconfig "kubevirt.io/kubevirt/pkg/virt-config" "kubevirt.io/kubevirt/pkg/virt-launcher/virtwrap/converter" + "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/console" cd "kubevirt.io/kubevirt/tests/containerdisk" @@ -170,7 +172,7 @@ var _ = SIGDescribe("Storage", func() { It("should pause VMI on IO error", func() { By("Creating VMI with faulty disk") - vmi := libvmi.NewAlpine(libvmi.WithPersistentVolumeClaim("pvc-disk", pvc.Name)) + vmi := libvmifact.NewAlpine(libvmi.WithPersistentVolumeClaim("pvc-disk", pvc.Name)) vmi, err := virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(vmi)).Create(context.Background(), vmi, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred(), failedCreateVMI) @@ -210,7 +212,7 @@ var _ = SIGDescribe("Storage", func() { It("should report IO errors in the guest with errorPolicy set to report", func() { const diskName = "disk1" By("Creating VMI with faulty disk") - vmi := libvmi.NewAlpine(libvmi.WithPersistentVolumeClaim(diskName, pvc.Name)) + vmi := libvmifact.NewAlpine(libvmi.WithPersistentVolumeClaim(diskName, pvc.Name)) for i, d := range vmi.Spec.Domain.Devices.Disks { if d.Name == diskName { vmi.Spec.Domain.Devices.Disks[i].ErrorPolicy = pointer.P(v1.DiskErrorPolicyReport) @@ -325,7 +327,7 @@ var _ = SIGDescribe("Storage", func() { It("[test_id:3134]should create a writeable emptyDisk with the right capacity", func() { // Start the VirtualMachineInstance with the empty disk attached - vmi = libvmi.NewCirros( + vmi = libvmifact.NewCirros( libvmi.WithResourceMemory("512M"), libvmi.WithEmptyDisk("emptydisk1", v1.DiskBusVirtio, resource.MustParse("1G")), ) @@ -355,7 +357,7 @@ var _ = SIGDescribe("Storage", func() { It("[test_id:3135]should create a writeable emptyDisk with the specified serial number", func() { // Start the VirtualMachineInstance with the empty disk attached - vmi = libvmi.NewAlpineWithTestTooling( + vmi = libvmifact.NewAlpineWithTestTooling( libnet.WithMasqueradeNetworking()..., ) vmi.Spec.Domain.Devices.Disks = append(vmi.Spec.Domain.Devices.Disks, v1.Disk{ @@ -1016,7 +1018,7 @@ var _ = SIGDescribe("Storage", func() { Context("With both SCSI and SATA devices", func() { It("should successfully start with distinct device names", func() { - vmi = libvmi.NewAlpine( + vmi = libvmifact.NewAlpine( libvmi.WithEmptyDisk("emptydisk1", v1.DiskBusSCSI, resource.MustParse("1Gi")), libvmi.WithEmptyDisk("emptydisk2", v1.DiskBusSATA, resource.MustParse("1Gi")), ) @@ -1039,7 +1041,7 @@ var _ = SIGDescribe("Storage", func() { Context("With a USB device", func() { It("[test_id:9797]should successfully start and have the USB storage device attached", func() { - vmi = libvmi.NewAlpine( + vmi = libvmifact.NewAlpine( libvmi.WithEmptyDisk("emptydisk1", v1.DiskBusUSB, resource.MustParse("128Mi")), ) vmi = tests.RunVMIAndExpectLaunch(vmi, 90) @@ -1212,8 +1214,8 @@ var _ = SIGDescribe("Storage", func() { }, } - vmi1 := libvmi.NewAlpine(libvmi.WithPersistentVolumeClaim(diskName, pvcClaim)) - vmi2 := libvmi.NewAlpine(libvmi.WithPersistentVolumeClaim(diskName, pvcClaim)) + vmi1 := libvmifact.NewAlpine(libvmi.WithPersistentVolumeClaim(diskName, pvcClaim)) + vmi2 := libvmifact.NewAlpine(libvmi.WithPersistentVolumeClaim(diskName, pvcClaim)) vmi1.Labels = labels vmi2.Labels = labels @@ -1311,7 +1313,7 @@ var _ = SIGDescribe("Storage", func() { Expect(err).NotTo(HaveOccurred(), "Failed to create PV and PVC for scsi disk") By("Creating VMI with LUN disk") - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() addLunDisk(vmi, "lun0", pvc.ObjectMeta.Name) vmi, err = virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(vmi)).Create(context.Background(), vmi, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred(), failedCreateVMI) @@ -1345,7 +1347,7 @@ var _ = SIGDescribe("Storage", func() { Expect(err).ToNot(HaveOccurred()) By("Creating VMI with LUN disk") - vmi := libvmi.NewCirros(libvmi.WithResourceMemory("512M")) + vmi := libvmifact.NewCirros(libvmi.WithResourceMemory("512M")) addDataVolumeLunDisk(vmi, "lun0", dv.Name) vmi, err = virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(vmi)).Create(context.Background(), vmi, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred(), failedCreateVMI) diff --git a/tests/subresource_api_test.go b/tests/subresource_api_test.go index 6439ac961fda..a07887722aff 100644 --- a/tests/subresource_api_test.go +++ b/tests/subresource_api_test.go @@ -41,9 +41,11 @@ import ( instancetypev1beta1 "kubevirt.io/api/instancetype/v1beta1" "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" + "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/libnet" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" ) @@ -63,7 +65,7 @@ var _ = Describe("[sig-compute]Subresource Api", decorators.SigCompute, func() { var vm *v1.VirtualMachine BeforeEach(func() { - vm = libvmi.NewVirtualMachine(libvmi.NewCirros()) + vm = libvmi.NewVirtualMachine(libvmifact.NewCirros()) vm, err = virtCli.VirtualMachine(testsuite.GetTestNamespace(vm)).Create(context.Background(), vm) Expect(err).ToNot(HaveOccurred()) }) @@ -305,7 +307,7 @@ var _ = Describe("[sig-compute]Subresource Api", decorators.SigCompute, func() { BeforeEach(func() { var err error - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() vm = libvmi.NewVirtualMachine(vmi, libvmi.WithRunning()) vm, err = virtCli.VirtualMachine(testsuite.GetTestNamespace(vmi)).Create(context.Background(), vm) Expect(err).ToNot(HaveOccurred()) @@ -342,7 +344,7 @@ var _ = Describe("[sig-compute]Subresource Api", decorators.SigCompute, func() { BeforeEach(func() { var err error - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Namespace = testsuite.GetTestNamespace(vmi) vm = libvmi.NewVirtualMachine(vmi, libvmi.WithRunning()) vm, err = virtCli.VirtualMachine(testsuite.GetTestNamespace(vmi)).Create(context.Background(), vm) @@ -471,7 +473,7 @@ var _ = Describe("[sig-compute]Subresource Api", decorators.SigCompute, func() { Context("with existing VM", func() { It("[test_id:TODO] should return unchanged VirtualMachine, if instancetype is not used", func() { - vm := libvmi.NewVirtualMachine(libvmi.NewCirros()) + vm := libvmi.NewVirtualMachine(libvmifact.NewCirros()) vm, err := virtCli.VirtualMachine(testsuite.GetTestNamespace(vm)).Create(context.Background(), vm) Expect(err).ToNot(HaveOccurred()) @@ -501,7 +503,7 @@ var _ = Describe("[sig-compute]Subresource Api", decorators.SigCompute, func() { Context("with passed VM in request", func() { It("[test_id:TODO] should return unchanged VirtualMachine, if instancetype is not used", func() { - vm := libvmi.NewVirtualMachine(libvmi.NewCirros()) + vm := libvmi.NewVirtualMachine(libvmifact.NewCirros()) expandedVm, err := virtCli.ExpandSpec(testsuite.GetTestNamespace(vm)).ForVirtualMachine(vm) Expect(err).ToNot(HaveOccurred()) @@ -534,7 +536,7 @@ var _ = Describe("[sig-compute]Subresource Api", decorators.SigCompute, func() { ) DescribeTable("[test_id:TODO] should fail, if instancetype expansion hits a conflict", func(matcherFn func() *v1.InstancetypeMatcher) { - vm := libvmi.NewVirtualMachine(libvmi.NewCirros()) + vm := libvmi.NewVirtualMachine(libvmifact.NewCirros()) vm.Spec.Instancetype = matcherFn() _, err := virtCli.ExpandSpec(testsuite.GetTestNamespace(vm)).ForVirtualMachine(vm) @@ -546,7 +548,7 @@ var _ = Describe("[sig-compute]Subresource Api", decorators.SigCompute, func() { ) DescribeTable("[test_id:TODO] should fail, if VM and endpoint namespace are different", func(matcherFn func() *v1.InstancetypeMatcher) { - vm := libvmi.NewVirtualMachine(libvmi.NewCirros()) + vm := libvmi.NewVirtualMachine(libvmifact.NewCirros()) vm.Spec.Instancetype = matcherFn() vm.Namespace = "madethisup" @@ -615,7 +617,7 @@ var _ = Describe("[sig-compute]Subresource Api", decorators.SigCompute, func() { Context("with existing VM", func() { It("[test_id:TODO] should return unchanged VirtualMachine, if preference is not used", func() { // Using NewCirros() here to have some data in spec. - vm := libvmi.NewVirtualMachine(libvmi.NewCirros()) + vm := libvmi.NewVirtualMachine(libvmifact.NewCirros()) vm, err := virtCli.VirtualMachine(testsuite.GetTestNamespace(vm)).Create(context.Background(), vm) Expect(err).ToNot(HaveOccurred()) @@ -628,7 +630,7 @@ var _ = Describe("[sig-compute]Subresource Api", decorators.SigCompute, func() { DescribeTable("[test_id:TODO] should return VirtualMachine with preference expanded", func(matcherFn func() *v1.PreferenceMatcher) { // Using NewCirros() here to have some data in spec. - vm := libvmi.NewVirtualMachine(libvmi.NewCirros()) + vm := libvmi.NewVirtualMachine(libvmifact.NewCirros()) vm.Spec.Preference = matcherFn() vm, err := virtCli.VirtualMachine(testsuite.GetTestNamespace(vm)).Create(context.Background(), vm) @@ -648,7 +650,7 @@ var _ = Describe("[sig-compute]Subresource Api", decorators.SigCompute, func() { Context("with passed VM in request", func() { It("[test_id:TODO] should return unchanged VirtualMachine, if preference is not used", func() { // Using NewCirros() here to have some data in spec. - vm := libvmi.NewVirtualMachine(libvmi.NewCirros()) + vm := libvmi.NewVirtualMachine(libvmifact.NewCirros()) expandedVm, err := virtCli.ExpandSpec(testsuite.GetTestNamespace(vm)).ForVirtualMachine(vm) Expect(err).ToNot(HaveOccurred()) @@ -657,7 +659,7 @@ var _ = Describe("[sig-compute]Subresource Api", decorators.SigCompute, func() { DescribeTable("[test_id:TODO] should return VirtualMachine with preference expanded", func(matcherFn func() *v1.PreferenceMatcher) { // Using NewCirros() here to have some data in spec. - vm := libvmi.NewVirtualMachine(libvmi.NewCirros()) + vm := libvmi.NewVirtualMachine(libvmifact.NewCirros()) vm.Spec.Preference = matcherFn() expandedVm, err := virtCli.ExpandSpec(testsuite.GetTestNamespace(vm)).ForVirtualMachine(vm) @@ -671,7 +673,7 @@ var _ = Describe("[sig-compute]Subresource Api", decorators.SigCompute, func() { DescribeTable("[test_id:TODO] should fail, if referenced preference does not exist", func(matcher *v1.PreferenceMatcher) { // Using NewCirros() here to have some data in spec. - vm := libvmi.NewVirtualMachine(libvmi.NewCirros()) + vm := libvmi.NewVirtualMachine(libvmifact.NewCirros()) vm.Spec.Preference = matcher _, err := virtCli.ExpandSpec(testsuite.GetTestNamespace(vm)).ForVirtualMachine(vm) diff --git a/tests/swap_test.go b/tests/swap_test.go index ce933bfb90a6..a04aab3eb08e 100644 --- a/tests/swap_test.go +++ b/tests/swap_test.go @@ -54,7 +54,7 @@ import ( "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/libnet" "kubevirt.io/kubevirt/tests/libnode" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/client-go/kubecli" @@ -112,7 +112,7 @@ var _ = Describe("[Serial][sig-compute]SwapTest", Serial, decorators.SigCompute, //The vmi should have more memory than memToUseInTheVmKib vmiMemSizeMi := resource.MustParse(fmt.Sprintf("%dMi", int((float64(memToUseInTheVmKib)+float64(gigbytesInkib*2))/bytesInKib))) - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) nodeAffinityRule, err := libmigration.CreateNodeAffinityRuleToMigrateFromSourceToTargetAndBack(sourceNode, targetNode) Expect(err).ToNot(HaveOccurred()) vmi.Spec.Affinity = &v1.Affinity{ @@ -166,7 +166,7 @@ var _ = Describe("[Serial][sig-compute]SwapTest", Serial, decorators.SigCompute, //The vmi should have more memory than memToUseInTheVm vmiMemSize := resource.MustParse(fmt.Sprintf("%dMi", int((float64(memToUseInTargetNodeVmKib)+float64(gigbytesInkib*2))/bytesInKib))) vmiMemReq := resource.MustParse(fmt.Sprintf("%dMi", vmMemoryRequestkib/bytesInKib)) - vmiToFillTargetNodeMem := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmiToFillTargetNodeMem := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) //we want vmiToFillTargetNodeMem to land on the target node to achieve memory-overcommitment in target affinityRuleForVmiToFill, err := getAffinityForTargetNode(targetNode) Expect(err).ToNot(HaveOccurred()) @@ -183,7 +183,7 @@ var _ = Describe("[Serial][sig-compute]SwapTest", Serial, decorators.SigCompute, err = fillMemWithStressFedoraVMI(vmiToFillTargetNodeMem, memToUseInTargetNodeVmKib) ExpectWithOffset(1, err).ToNot(HaveOccurred()) - vmiToMigrate := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmiToMigrate := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) nodeAffinityRule, err := libmigration.CreateNodeAffinityRuleToMigrateFromSourceToTargetAndBack(sourceNode, targetNode) Expect(err).ToNot(HaveOccurred()) vmiToMigrate.Spec.Affinity = &v1.Affinity{ diff --git a/tests/sysprep_test.go b/tests/sysprep_test.go index f8d1f1ed8882..a228d32c4e46 100644 --- a/tests/sysprep_test.go +++ b/tests/sysprep_test.go @@ -26,7 +26,7 @@ import ( "strings" "time" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/decorators" @@ -229,7 +229,7 @@ func addExplicitPodNetworkInterface(vmi *v1.VirtualMachineInstance) { func getWindowsSysprepVMISpec() v1.VirtualMachineInstanceSpec { gracePeriod := int64(0) spinlocks := uint32(8191) - firmware := types.UID(libvmi.WindowsFirmware) + firmware := types.UID(libvmifact.WindowsFirmware) _false := false return v1.VirtualMachineInstanceSpec{ TerminationGracePeriodSeconds: &gracePeriod, diff --git a/tests/testsuite/BUILD.bazel b/tests/testsuite/BUILD.bazel index 26c94c61775f..02453b07ea59 100644 --- a/tests/testsuite/BUILD.bazel +++ b/tests/testsuite/BUILD.bazel @@ -14,6 +14,7 @@ go_library( visibility = ["//visibility:public"], deps = [ "//pkg/controller:go_default_library", + "//pkg/libvmi:go_default_library", "//pkg/util:go_default_library", "//pkg/virt-config:go_default_library", "//pkg/virt-controller/services:go_default_library", @@ -28,7 +29,7 @@ go_library( "//tests/libnet:go_default_library", "//tests/libnode:go_default_library", "//tests/libstorage:go_default_library", - "//tests/libvmi:go_default_library", + "//tests/libvmifact:go_default_library", "//tests/util:go_default_library", "//vendor/github.com/onsi/ginkgo/v2:go_default_library", "//vendor/github.com/onsi/gomega:go_default_library", diff --git a/tests/testsuite/fixture.go b/tests/testsuite/fixture.go index 5f9ba767ca35..ae10f4c10aaf 100644 --- a/tests/testsuite/fixture.go +++ b/tests/testsuite/fixture.go @@ -42,11 +42,13 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/log" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/virt-controller/services" + "kubevirt.io/kubevirt/tests/flags" "kubevirt.io/kubevirt/tests/libnode" "kubevirt.io/kubevirt/tests/libstorage" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/util" ) @@ -143,7 +145,7 @@ func BeforeTestSuiteSetup(_ []byte) { SetDefaultEventuallyTimeout(defaultEventuallyTimeout) SetDefaultEventuallyPollingInterval(defaultEventuallyPollingInterval) - libvmi.RegisterArchitecture(Arch) + libvmifact.RegisterArchitecture(Arch) libvmi.RegisterDefaultOption(addTestAnnotation) } diff --git a/tests/usb/BUILD.bazel b/tests/usb/BUILD.bazel index 1baa153b042c..c0083baa5d33 100644 --- a/tests/usb/BUILD.bazel +++ b/tests/usb/BUILD.bazel @@ -15,7 +15,7 @@ go_library( "//tests/console:go_default_library", "//tests/decorators:go_default_library", "//tests/framework/kubevirt:go_default_library", - "//tests/libvmi:go_default_library", + "//tests/libvmifact:go_default_library", "//tests/libwait:go_default_library", "//tests/util:go_default_library", "//vendor/github.com/google/goexpect:go_default_library", diff --git a/tests/usb/usb.go b/tests/usb/usb.go index 5b8f4d3bdc5a..2c82ccc0d65c 100644 --- a/tests/usb/usb.go +++ b/tests/usb/usb.go @@ -21,7 +21,7 @@ import ( "kubevirt.io/kubevirt/tests/console" "kubevirt.io/kubevirt/tests/decorators" "kubevirt.io/kubevirt/tests/framework/kubevirt" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/util" ) @@ -53,7 +53,7 @@ var _ = Describe("[Serial][sig-compute][USB] host USB Passthrough", Serial, deco Skip("No emulated USB devices present for functional test.") } - vmi = libvmi.NewCirros() + vmi = libvmifact.NewCirros() }) AfterEach(func() { diff --git a/tests/usbredir_test.go b/tests/usbredir_test.go index 6b38c03f33e1..02c4c28b71c5 100644 --- a/tests/usbredir_test.go +++ b/tests/usbredir_test.go @@ -31,9 +31,10 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" + "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/framework/kubevirt" - "kubevirt.io/kubevirt/tests/libvmi" ) // Capabilities from client side diff --git a/tests/utils.go b/tests/utils.go index 4e2a617b540f..9704c1292cdf 100644 --- a/tests/utils.go +++ b/tests/utils.go @@ -40,6 +40,7 @@ import ( "kubevirt.io/kubevirt/tests/framework/kubevirt" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/pointer" expect "github.com/google/goexpect" @@ -80,7 +81,6 @@ import ( "kubevirt.io/kubevirt/tests/libnode" "kubevirt.io/kubevirt/tests/libpod" "kubevirt.io/kubevirt/tests/libstorage" - "kubevirt.io/kubevirt/tests/libvmi" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" "kubevirt.io/kubevirt/tests/watcher" diff --git a/tests/virtctl/BUILD.bazel b/tests/virtctl/BUILD.bazel index 0f221271eb84..f617fd1825ab 100644 --- a/tests/virtctl/BUILD.bazel +++ b/tests/virtctl/BUILD.bazel @@ -13,6 +13,7 @@ go_library( importpath = "kubevirt.io/kubevirt/tests/virtctl", visibility = ["//visibility:public"], deps = [ + "//pkg/libvmi:go_default_library", "//pkg/virtctl/create/instancetype:go_default_library", "//pkg/virtctl/create/preference:go_default_library", "//pkg/virtctl/create/vm:go_default_library", @@ -30,7 +31,7 @@ go_library( "//tests/framework/matcher:go_default_library", "//tests/libssh:go_default_library", "//tests/libstorage:go_default_library", - "//tests/libvmi:go_default_library", + "//tests/libvmifact:go_default_library", "//tests/libwait:go_default_library", "//tests/testsuite:go_default_library", "//tests/util:go_default_library", diff --git a/tests/virtctl/credentials.go b/tests/virtctl/credentials.go index 4bd97c491420..18d2f2c038b6 100644 --- a/tests/virtctl/credentials.go +++ b/tests/virtctl/credentials.go @@ -16,9 +16,11 @@ import ( kubevirtv1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" + "kubevirt.io/kubevirt/tests/clientcmd" "kubevirt.io/kubevirt/tests/framework/kubevirt" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/util" ) @@ -48,7 +50,7 @@ var _ = Describe("[sig-compute][virtctl]credentials", func() { sshKeySecretName = sshKeySecretNamePrefix + rand.String(6) passwordSecretName = passwordSecretNamePrefix + rand.String(6) - vmi := libvmi.NewFedora() + vmi := libvmifact.NewFedora() vmi.Namespace = util.NamespaceTestDefault vm = libvmi.NewVirtualMachine(vmi) diff --git a/tests/virtctl/scp.go b/tests/virtctl/scp.go index eb66376ed63c..de1b7e020dff 100644 --- a/tests/virtctl/scp.go +++ b/tests/virtctl/scp.go @@ -16,11 +16,13 @@ import ( "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" + "kubevirt.io/kubevirt/tests/clientcmd" "kubevirt.io/kubevirt/tests/console" "kubevirt.io/kubevirt/tests/framework/kubevirt" "kubevirt.io/kubevirt/tests/libssh" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/util" ) @@ -88,7 +90,7 @@ var _ = Describe("[sig-compute][virtctl]SCP", decorators.SigCompute, func() { DescribeTable("should copy a local file back and forth", func(copyFn func(string, string, bool)) { By("injecting a SSH public key into a VMI") - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libvmi.WithCloudInitNoCloudUserData(libssh.RenderUserDataWithKey(pub))) vmi, err := virtClient.VirtualMachineInstance(util.NamespaceTestDefault).Create(context.Background(), vmi, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) @@ -112,7 +114,7 @@ var _ = Describe("[sig-compute][virtctl]SCP", decorators.SigCompute, func() { DescribeTable("should copy a local directory back and forth", func(copyFn func(string, string, bool)) { By("injecting a SSH public key into a VMI") - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libvmi.WithCloudInitNoCloudUserData(libssh.RenderUserDataWithKey(pub))) vmi, err := virtClient.VirtualMachineInstance(util.NamespaceTestDefault).Create(context.Background(), vmi, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) diff --git a/tests/virtctl/ssh.go b/tests/virtctl/ssh.go index 8f570a8c91b8..59ca8a9dd327 100644 --- a/tests/virtctl/ssh.go +++ b/tests/virtctl/ssh.go @@ -18,10 +18,12 @@ import ( "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" + "kubevirt.io/kubevirt/tests/clientcmd" "kubevirt.io/kubevirt/tests/console" "kubevirt.io/kubevirt/tests/framework/kubevirt" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/util" ) @@ -82,7 +84,7 @@ var _ = Describe("[sig-compute][virtctl]SSH", decorators.SigCompute, func() { DescribeTable("should succeed to execute a command on the VM", func(cmdFn func(string)) { By("injecting a SSH public key into a VMI") - vmi := libvmi.NewAlpineWithTestTooling( + vmi := libvmifact.NewAlpineWithTestTooling( libvmi.WithCloudInitNoCloudUserData(libssh.RenderUserDataWithKey(pub))) vmi, err := virtClient.VirtualMachineInstance(util.NamespaceTestDefault).Create(context.Background(), vmi, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) diff --git a/tests/virtiofs/BUILD.bazel b/tests/virtiofs/BUILD.bazel index e01e64408f82..f85b293aad00 100644 --- a/tests/virtiofs/BUILD.bazel +++ b/tests/virtiofs/BUILD.bazel @@ -10,6 +10,7 @@ go_library( visibility = ["//visibility:public"], deps = [ "//pkg/config:go_default_library", + "//pkg/libvmi:go_default_library", "//pkg/virt-config:go_default_library", "//staging/src/kubevirt.io/api/core/v1:go_default_library", "//staging/src/kubevirt.io/client-go/kubecli:go_default_library", @@ -24,7 +25,7 @@ go_library( "//tests/libdv:go_default_library", "//tests/libpod:go_default_library", "//tests/libstorage:go_default_library", - "//tests/libvmi:go_default_library", + "//tests/libvmifact:go_default_library", "//tests/libwait:go_default_library", "//tests/testsuite:go_default_library", "//tests/util:go_default_library", diff --git a/tests/virtiofs/config.go b/tests/virtiofs/config.go index 686fdaa8408a..9ab03f8a8c98 100644 --- a/tests/virtiofs/config.go +++ b/tests/virtiofs/config.go @@ -22,7 +22,9 @@ package virtiofs import ( "fmt" + "kubevirt.io/kubevirt/pkg/libvmi" virtconfig "kubevirt.io/kubevirt/pkg/virt-config" + "kubevirt.io/kubevirt/tests/decorators" "kubevirt.io/kubevirt/tests/framework/checks" @@ -38,7 +40,7 @@ import ( "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/console" "kubevirt.io/kubevirt/tests/libpod" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" ) var _ = Describe("[sig-compute] vitiofs config volumes", decorators.SigCompute, func() { @@ -69,7 +71,7 @@ var _ = Describe("[sig-compute] vitiofs config volumes", decorators.SigCompute, expectedOutput := "value1value2value3" By("Running VMI") - vmi := libvmi.NewFedora( + vmi := libvmifact.NewFedora( libvmi.WithConfigMapFs(configMapName, configMapName), ) vmi = tests.RunVMIAndExpectLaunchIgnoreWarnings(vmi, 300) @@ -127,7 +129,7 @@ var _ = Describe("[sig-compute] vitiofs config volumes", decorators.SigCompute, expectedOutput := "adminredhat" By("Running VMI") - vmi := libvmi.NewFedora( + vmi := libvmifact.NewFedora( libvmi.WithSecretFs(secretName, secretName), ) vmi = tests.RunVMIAndExpectLaunchIgnoreWarnings(vmi, 300) @@ -170,7 +172,7 @@ var _ = Describe("[sig-compute] vitiofs config volumes", decorators.SigCompute, serviceAccountVolumeName := "default-disk" By("Running VMI") - vmi := libvmi.NewFedora( + vmi := libvmifact.NewFedora( libvmi.WithServiceAccountFs("default", serviceAccountVolumeName), ) vmi = tests.RunVMIAndExpectLaunchIgnoreWarnings(vmi, 300) @@ -228,7 +230,7 @@ var _ = Describe("[sig-compute] vitiofs config volumes", decorators.SigCompute, It("Should be the namespace and token the same for a pod and vmi with virtiofs", func() { By("Running VMI") - vmi := libvmi.NewFedora( + vmi := libvmifact.NewFedora( libvmi.WithLabel(testLabelKey, testLabelVal), libvmi.WithDownwardAPIFs(downwardAPIName), ) diff --git a/tests/virtiofs/datavolume.go b/tests/virtiofs/datavolume.go index e1d6c3a28e47..f07aa50b651f 100644 --- a/tests/virtiofs/datavolume.go +++ b/tests/virtiofs/datavolume.go @@ -28,7 +28,7 @@ import ( "kubevirt.io/kubevirt/tests/decorators" "kubevirt.io/kubevirt/tests/exec" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/framework/kubevirt" "kubevirt.io/kubevirt/tests/framework/matcher" @@ -45,7 +45,9 @@ import ( "kubevirt.io/client-go/kubecli" cdiv1 "kubevirt.io/containerized-data-importer-api/pkg/apis/core/v1beta1" + "kubevirt.io/kubevirt/pkg/libvmi" virtconfig "kubevirt.io/kubevirt/pkg/virt-config" + "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/console" cd "kubevirt.io/kubevirt/tests/containerdisk" @@ -108,7 +110,7 @@ var _ = Describe("[sig-storage] virtiofs", decorators.SigStorage, func() { `, virtiofsMountPath(pvc1), pvc1, virtiofsMountPath(pvc1), virtiofsTestFile(virtiofsMountPath(pvc1)), virtiofsMountPath(pvc2), pvc2, virtiofsMountPath(pvc2), virtiofsTestFile(virtiofsMountPath(pvc2))) - vmi = libvmi.NewFedora( + vmi = libvmifact.NewFedora( libvmi.WithCloudInitNoCloudEncodedUserData(mountVirtiofsCommands), libvmi.WithFilesystemPVC(pvc1), libvmi.WithFilesystemPVC(pvc2), @@ -220,7 +222,7 @@ var _ = Describe("[sig-storage] virtiofs", decorators.SigStorage, func() { touch %s `, virtiofsMountPath, pvcName, virtiofsMountPath, virtiofsTestFile) - vmi = libvmi.NewFedora( + vmi = libvmifact.NewFedora( libvmi.WithCloudInitNoCloudEncodedUserData(mountVirtiofsCommands), libvmi.WithFilesystemPVC(pvcName), libvmi.WithNamespace(namespace), @@ -324,7 +326,7 @@ var _ = Describe("[sig-storage] virtiofs", decorators.SigStorage, func() { touch %s `, virtiofsMountPath, dataVolume.Name, virtiofsMountPath, virtiofsTestFile) - vmi = libvmi.NewFedora( + vmi = libvmifact.NewFedora( libvmi.WithCloudInitNoCloudEncodedUserData(mountVirtiofsCommands), libvmi.WithFilesystemDV(dataVolume.Name), libvmi.WithNamespace(namespace), diff --git a/tests/vm_state_test.go b/tests/vm_state_test.go index f95e480301f0..175d5a5ed1ba 100644 --- a/tests/vm_state_test.go +++ b/tests/vm_state_test.go @@ -9,7 +9,7 @@ import ( "kubevirt.io/kubevirt/tests/testsuite" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" expect "github.com/google/goexpect" . "github.com/onsi/ginkgo/v2" @@ -21,7 +21,9 @@ import ( v1 "kubevirt.io/api/core/v1" "kubevirt.io/client-go/kubecli" + "kubevirt.io/kubevirt/pkg/libvmi" backendstorage "kubevirt.io/kubevirt/pkg/storage/backend-storage" + "kubevirt.io/kubevirt/tests/console" "kubevirt.io/kubevirt/tests/decorators" "kubevirt.io/kubevirt/tests/libnet" @@ -118,7 +120,7 @@ var _ = Describe("[sig-storage]VM state", decorators.SigStorage, decorators.Requ DescribeTable("should persist VM state of", decorators.RequiresTwoSchedulableNodes, func(withTPM, withEFI bool, ops ...string) { By("Creating a migratable Fedora VM with UEFI") - vmi := libvmi.NewFedora( + vmi := libvmifact.NewFedora( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithCloudInitNoCloudNetworkData(cloudinit.CreateDefaultCloudInitNetworkData()), @@ -182,7 +184,7 @@ var _ = Describe("[sig-storage]VM state", decorators.SigStorage, decorators.Requ ) It("should remove persistent storage PVC if VMI is not owned by a VM", func() { By("Creating a VMI with persistent TPM enabled") - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Spec.Domain.Devices.TPM = &v1.TPMDevice{ Persistent: pointer.BoolPtr(true), } diff --git a/tests/vm_test.go b/tests/vm_test.go index 2b3c3498bfbc..cd4e3aecb3ef 100644 --- a/tests/vm_test.go +++ b/tests/vm_test.go @@ -56,7 +56,9 @@ import ( cdiv1 "kubevirt.io/containerized-data-importer-api/pkg/apis/core/v1beta1" "kubevirt.io/kubevirt/pkg/controller" + "kubevirt.io/kubevirt/pkg/libvmi" virtctl "kubevirt.io/kubevirt/pkg/virtctl/vm" + "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/clientcmd" "kubevirt.io/kubevirt/tests/console" @@ -67,7 +69,7 @@ import ( . "kubevirt.io/kubevirt/tests/framework/matcher" "kubevirt.io/kubevirt/tests/libnode" "kubevirt.io/kubevirt/tests/libstorage" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/testsuite" "kubevirt.io/kubevirt/tests/util" "kubevirt.io/kubevirt/tools/vms-generator/utils" @@ -85,7 +87,7 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com Context("An invalid VirtualMachine given", func() { It("[test_id:1518]should be rejected on POST", func() { - vm := libvmi.NewVirtualMachine(libvmi.NewCirros()) + vm := libvmi.NewVirtualMachine(libvmifact.NewCirros()) // because we're marshaling this ourselves, we have to make sure // we're using the same version the virtClient is using. vm.APIVersion = "kubevirt.io/" + v1.ApiStorageVersion @@ -104,7 +106,7 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com }) It("[test_id:1519]should reject POST if validation webhoook deems the spec is invalid", func() { - template := libvmi.NewCirros() + template := libvmifact.NewCirros() // Add a disk that doesn't map to a volume. // This should get rejected which tells us the webhook validator is working. template.Spec.Domain.Devices.Disks = append(template.Spec.Domain.Devices.Disks, v1.Disk{ @@ -147,7 +149,7 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com It("[test_id:3312]should set the default MachineType when created without explicit value", func() { By("Creating VirtualMachine") - template := libvmi.NewCirros() + template := libvmifact.NewCirros() template.Spec.Domain.Machine = nil vm := createVM(virtClient, template) @@ -157,7 +159,7 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com It("[test_id:3311]should keep the supplied MachineType when created", func() { By("Creating VirtualMachine") const explicitMachineType = "pc-q35-3.0" - template := libvmi.NewCirros() + template := libvmifact.NewCirros() template.Spec.Domain.Machine = &v1.Machine{Type: explicitMachineType} vm := createVM(virtClient, template) @@ -177,7 +179,7 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com } newVirtualMachineWithRunStrategy := func(runStrategy v1.VirtualMachineRunStrategy) *v1.VirtualMachine { - vm := libvmi.NewVirtualMachine(libvmi.NewCirros( + vm := libvmi.NewVirtualMachine(libvmifact.NewCirros( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), )) @@ -215,7 +217,7 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com const oldCpu = "222" const oldMemory = "2222222" - vm := libvmi.NewVirtualMachine(libvmi.NewCirros()) + vm := libvmi.NewVirtualMachine(libvmifact.NewCirros()) vm.Namespace = testsuite.GetTestNamespace(vm) vm.APIVersion = "kubevirt.io/" + v1.ApiStorageVersion vm.Spec.Template.Spec.Domain.Resources.Limits = make(k8sv1.ResourceList) @@ -252,7 +254,7 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com "testannotation": "test", } - vm := createVM(virtClient, libvmi.NewCirros()) + vm := createVM(virtClient, libvmifact.NewCirros()) err = tests.RetryWithMetadataIfModified(vm.ObjectMeta, func(meta k8smetav1.ObjectMeta) error { vm, err = virtClient.VirtualMachine(meta.Namespace).Get(context.Background(), meta.Name, &k8smetav1.GetOptions{}) @@ -277,7 +279,7 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com "kubernetes.io/test": "test", } - vm := createVM(virtClient, libvmi.NewCirros()) + vm := createVM(virtClient, libvmifact.NewCirros()) err = tests.RetryWithMetadataIfModified(vm.ObjectMeta, func(meta k8smetav1.ObjectMeta) error { vm, err = virtClient.VirtualMachine(meta.Namespace).Get(context.Background(), meta.Name, &k8smetav1.GetOptions{}) @@ -298,7 +300,7 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com }) It("should sync the generation annotation on the vmi during restarts", func() { - vm := startVM(virtClient, createVM(virtClient, libvmi.NewCirros())) + vm := startVM(virtClient, createVM(virtClient, libvmifact.NewCirros())) for i := 1; i <= 3; i++ { // Generation increases twice for each pass, since there is a stop and a @@ -313,7 +315,7 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com }) It("should not update the vmi generation annotation when the template changes", func() { - vm := startVM(virtClient, createVM(virtClient, libvmi.NewCirros())) + vm := startVM(virtClient, createVM(virtClient, libvmifact.NewCirros())) By("Updating the VM template spec") vm.Spec.Template.ObjectMeta.Labels = map[string]string{"testkey": "testvalue"} @@ -344,7 +346,7 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com defer libstorage.DeleteDataVolume(&dv) startVM(virtClient, createVM(virtClient, template)) }, - Entry("with ContainerDisk", func() (*v1.VirtualMachineInstance, *cdiv1.DataVolume) { return libvmi.NewCirros(), nil }), + Entry("with ContainerDisk", func() (*v1.VirtualMachineInstance, *cdiv1.DataVolume) { return libvmifact.NewCirros(), nil }), Entry("[Serial][storage-req]with Filesystem Disk", Serial, decorators.StorageReq, newVirtualMachineInstanceWithFileDisk), Entry("[Serial][storage-req]with Block Disk", Serial, decorators.StorageReq, newVirtualMachineInstanceWithBlockDisk), ) @@ -358,13 +360,13 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com // Wait until VMI is gone Eventually(ThisVMIWith(vm.Namespace, vm.Name), 300*time.Second, 2*time.Second).ShouldNot(Exist()) }, - Entry("with ContainerDisk", func() (*v1.VirtualMachineInstance, *cdiv1.DataVolume) { return libvmi.NewCirros(), nil }), + Entry("with ContainerDisk", func() (*v1.VirtualMachineInstance, *cdiv1.DataVolume) { return libvmifact.NewCirros(), nil }), Entry("[Serial][storage-req]with Filesystem Disk", Serial, decorators.StorageReq, newVirtualMachineInstanceWithFileDisk), Entry("[Serial][storage-req]with Block Disk", Serial, decorators.StorageReq, newVirtualMachineInstanceWithBlockDisk), ) It("[test_id:1522]should remove owner references on the VirtualMachineInstance if it is orphan deleted", func() { - vm := startVM(virtClient, createVM(virtClient, libvmi.NewCirros())) + vm := startVM(virtClient, createVM(virtClient, libvmifact.NewCirros())) By("Getting owner references") vmi, err := virtClient.VirtualMachineInstance(vm.Namespace).Get(context.Background(), vm.Name, k8smetav1.GetOptions{}) @@ -387,7 +389,7 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com }) It("[test_id:1523]should recreate VirtualMachineInstance if it gets deleted", func() { - vm := startVM(virtClient, createVM(virtClient, libvmi.NewCirros())) + vm := startVM(virtClient, createVM(virtClient, libvmifact.NewCirros())) vmi, err := virtClient.VirtualMachineInstance(vm.Namespace).Get(context.Background(), vm.Name, k8smetav1.GetOptions{}) Expect(err).ToNot(HaveOccurred()) @@ -399,7 +401,7 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com It("[test_id:1524]should recreate VirtualMachineInstance if the VirtualMachineInstance's pod gets deleted", func() { By("Start a new VM") - vm := startVM(virtClient, createVM(virtClient, libvmi.NewCirros())) + vm := startVM(virtClient, createVM(virtClient, libvmifact.NewCirros())) firstVMI, err := virtClient.VirtualMachineInstance(vm.Namespace).Get(context.Background(), vm.Name, k8smetav1.GetOptions{}) Expect(err).ToNot(HaveOccurred()) @@ -437,13 +439,13 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com defer libstorage.DeleteDataVolume(&dv) stopVM(virtClient, startVM(virtClient, createVM(virtClient, template))) }, - Entry("with ContainerDisk", func() (*v1.VirtualMachineInstance, *cdiv1.DataVolume) { return libvmi.NewCirros(), nil }), + Entry("with ContainerDisk", func() (*v1.VirtualMachineInstance, *cdiv1.DataVolume) { return libvmifact.NewCirros(), nil }), Entry("[Serial][storage-req]with Filesystem Disk", Serial, decorators.StorageReq, newVirtualMachineInstanceWithFileDisk), Entry("[Serial][storage-req]with Block Disk", Serial, decorators.StorageReq, newVirtualMachineInstanceWithBlockDisk), ) It("[test_id:1526]should start and stop VirtualMachineInstance multiple times", func() { - vm := createVM(virtClient, libvmi.NewCirros()) + vm := createVM(virtClient, libvmifact.NewCirros()) // Start and stop VirtualMachineInstance multiple times for i := 0; i < 5; i++ { By(fmt.Sprintf("Doing run: %d", i)) @@ -452,7 +454,7 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com }) It("[test_id:1527]should not update the VirtualMachineInstance spec if Running", func() { - vm := startVM(virtClient, createVM(virtClient, libvmi.NewCirros())) + vm := startVM(virtClient, createVM(virtClient, libvmifact.NewCirros())) By("Updating the VM template spec") updatedVM := vm.DeepCopy() @@ -484,7 +486,7 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com It("[test_id:1528]should survive guest shutdown, multiple times", func() { By("Creating new VM, not running") - vm := startVM(virtClient, createVM(virtClient, libvmi.NewCirros())) + vm := startVM(virtClient, createVM(virtClient, libvmifact.NewCirros())) for i := 0; i < 3; i++ { By("Getting the running VirtualMachineInstance") @@ -508,7 +510,7 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com }) It("should create vm revision when starting vm", func() { - vm := startVM(virtClient, createVM(virtClient, libvmi.NewCirros())) + vm := startVM(virtClient, createVM(virtClient, libvmifact.NewCirros())) vmi, err := virtClient.VirtualMachineInstance(vm.Namespace).Get(context.Background(), vm.Name, k8smetav1.GetOptions{}) Expect(err).ToNot(HaveOccurred()) @@ -528,7 +530,7 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com It("should delete old vm revision and create new one when restarting vm", func() { By("Starting the VM") - vm := startVM(virtClient, createVM(virtClient, libvmi.NewCirros())) + vm := startVM(virtClient, createVM(virtClient, libvmifact.NewCirros())) vmi, err := virtClient.VirtualMachineInstance(vm.Namespace).Get(context.Background(), vm.Name, k8smetav1.GetOptions{}) Expect(err).ToNot(HaveOccurred()) @@ -575,7 +577,7 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com }) It("[test_id:4645]should set the Ready condition on VM", func() { - vm := createVM(virtClient, libvmi.NewCirros()) + vm := createVM(virtClient, libvmifact.NewCirros()) Eventually(ThisVM(vm), 300*time.Second, 1*time.Second).Should(HaveConditionFalse(v1.VirtualMachineReady)) @@ -681,7 +683,7 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com Context("Using virtctl interface", func() { It("[test_id:1529]should start a VirtualMachineInstance once", func() { By("getting a VM") - vm := createVM(virtClient, libvmi.NewCirros()) + vm := createVM(virtClient, libvmifact.NewCirros()) By("Invoking virtctl start") startCommand := clientcmd.NewRepeatableVirtctlCommand(virtctl.COMMAND_START, "--namespace", vm.Namespace, vm.Name) @@ -699,7 +701,7 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com It("[test_id:1530]should stop a VirtualMachineInstance once", func() { By("getting a VM") - vm := startVM(virtClient, createVM(virtClient, libvmi.NewCirros())) + vm := startVM(virtClient, createVM(virtClient, libvmifact.NewCirros())) By("Invoking virtctl stop") stopCommand := clientcmd.NewRepeatableVirtctlCommand(virtctl.COMMAND_STOP, "--namespace", vm.Namespace, vm.Name) @@ -717,7 +719,7 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com It("[test_id:6310]should start a VirtualMachineInstance in paused state", func() { By("getting a VM") - vm := createVM(virtClient, libvmi.NewCirros()) + vm := createVM(virtClient, libvmifact.NewCirros()) By("Invoking virtctl start") startCommand := clientcmd.NewRepeatableVirtctlCommand(virtctl.COMMAND_START, "--namespace", vm.Namespace, vm.Name, "--paused") @@ -738,7 +740,7 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com It("[test_id:3007]Should force restart a VM with terminationGracePeriodSeconds>0", func() { By("getting a VM with high TerminationGracePeriod") - vm := startVM(virtClient, createVM(virtClient, libvmi.NewFedora( + vm := startVM(virtClient, createVM(virtClient, libvmifact.NewFedora( libvmi.WithTerminationGracePeriod(600), ))) @@ -1332,7 +1334,7 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:cnv-qe@redhat.com][level:com var vm *v1.VirtualMachine BeforeEach(func() { - vm = createRunningVM(virtClient, libvmi.NewCirros()) + vm = createRunningVM(virtClient, libvmifact.NewCirros()) }) It("should fail without arguments", func() { @@ -1434,7 +1436,7 @@ status: }) createVMAndGenerateJson := func(opts ...libvmi.VMOption) (*v1.VirtualMachine, string) { - vm := libvmi.NewVirtualMachine(libvmi.NewAlpine(), opts...) + vm := libvmi.NewVirtualMachine(libvmifact.NewAlpine(), opts...) vm.Namespace = testsuite.GetTestNamespace(vm) vmJson, err := tests.GenerateVMJson(vm, workDir) @@ -1462,7 +1464,7 @@ status: }) DescribeTable("[release-blocker][test_id:299]should create VM via command line using all supported API versions", func(version string) { - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() vm := libvmi.NewVirtualMachine(vmi, libvmi.WithRunning()) vm.Namespace = testsuite.GetTestNamespace(vm) vm.APIVersion = version @@ -1700,7 +1702,7 @@ status: }) It("[test_id:233][posneg:negative]should fail when deleting nonexistent VM", func() { - vmi := libvmi.NewVirtualMachine(libvmi.NewAlpine()) + vmi := libvmi.NewVirtualMachine(libvmifact.NewAlpine()) By("Creating VM with DataVolumeTemplate entry with k8s client binary") _, stdErr, err := clientcmd.RunCommand(k8sClient, "delete", "vm", vmi.Name) @@ -1773,7 +1775,7 @@ status: Context("crash loop backoff", func() { It("should backoff attempting to create a new VMI when 'runStrategy: Always' during crash loop.", func() { By("Creating VirtualMachine") - vm := createRunningVM(virtClient, libvmi.NewCirros( + vm := createRunningVM(virtClient, libvmifact.NewCirros( libvmi.WithAnnotation(v1.FuncTestLauncherFailFastAnnotation, ""), )) @@ -1812,7 +1814,7 @@ status: It("should be able to stop a VM during crashloop backoff when when 'runStrategy: Always' is set", func() { By("Creating VirtualMachine") - vm := createRunningVM(virtClient, libvmi.NewCirros( + vm := createRunningVM(virtClient, libvmifact.NewCirros( libvmi.WithAnnotation(v1.FuncTestLauncherFailFastAnnotation, ""), )) @@ -1837,7 +1839,7 @@ status: ) BeforeEach(func() { - vmi = libvmi.NewGuestless() + vmi = libvmifact.NewGuestless() vm = libvmi.NewVirtualMachine(vmi, libvmi.WithRunning()) Expect(vm.Finalizers).To(BeEmpty()) vm.Finalizers = append(vm.Finalizers, customFinalizer) @@ -1976,7 +1978,7 @@ status: It("[Serial] the VMs running in that node should be respawned", func() { By("Starting VM") - vm := startVM(virtClient, createVM(virtClient, libvmi.NewCirros())) + vm := startVM(virtClient, createVM(virtClient, libvmifact.NewCirros())) vmi, err := virtClient.VirtualMachineInstance(vm.Namespace).Get(context.Background(), vm.Name, k8smetav1.GetOptions{}) Expect(err).ToNot(HaveOccurred()) diff --git a/tests/vmi_cloudinit_hook_sidecar_test.go b/tests/vmi_cloudinit_hook_sidecar_test.go index 81510bd9c364..ef2f1ec63b58 100644 --- a/tests/vmi_cloudinit_hook_sidecar_test.go +++ b/tests/vmi_cloudinit_hook_sidecar_test.go @@ -39,11 +39,13 @@ import ( 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/framework/kubevirt" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" ) @@ -98,7 +100,7 @@ var _ = Describe("[sig-compute]CloudInitHookSidecars", decorators.SigCompute, fu BeforeEach(func() { virtClient = kubevirt.Client() - vmi = libvmi.NewCirros( + 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))) diff --git a/tests/vmi_cloudinit_test.go b/tests/vmi_cloudinit_test.go index ef91c46d1b0e..9fe9d6a1a40c 100644 --- a/tests/vmi_cloudinit_test.go +++ b/tests/vmi_cloudinit_test.go @@ -29,6 +29,7 @@ import ( "strings" "time" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/pointer" "kubevirt.io/kubevirt/tests/decorators" @@ -43,7 +44,7 @@ import ( "kubevirt.io/kubevirt/tests/exec" "kubevirt.io/kubevirt/tests/framework/kubevirt" "kubevirt.io/kubevirt/tests/libpod" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" "kubevirt.io/kubevirt/tests/util" @@ -138,7 +139,7 @@ var _ = Describe("[rfe_id:151][crit:high][vendor:cnv-qe@redhat.com][level:compon Context("with cloudInitNoCloud userDataBase64 source", func() { It("[test_id:1615]should have cloud-init data", func() { userData := fmt.Sprintf("#!/bin/sh\n\ntouch /%s\n", expectedUserDataFile) - vmi := libvmi.NewCirros( + vmi := libvmifact.NewCirros( libvmi.WithCloudInitNoCloudEncodedUserData(userData), ) @@ -157,7 +158,7 @@ var _ = Describe("[rfe_id:151][crit:high][vendor:cnv-qe@redhat.com][level:compon fedoraPassword, sshAuthorizedKey, ) - vmi := libvmi.NewFedora(libvmi.WithCloudInitNoCloudUserData(userData)) + vmi := libvmifact.NewFedora(libvmi.WithCloudInitNoCloudUserData(userData)) vmi = LaunchVMI(vmi) CheckCloudInitIsoSize(vmi, cloudinit.DataSourceNoCloud) @@ -196,7 +197,7 @@ var _ = Describe("[rfe_id:151][crit:high][vendor:cnv-qe@redhat.com][level:compon fedoraPassword, sshAuthorizedKey, ) - vmi := libvmi.NewFedora( + vmi := libvmifact.NewFedora( libvmi.WithCloudInitConfigDriveUserData(userData), ) @@ -227,7 +228,7 @@ var _ = Describe("[rfe_id:151][crit:high][vendor:cnv-qe@redhat.com][level:compon "#cloud-config\npassword: %s\nchpasswd: { expire: False }", fedoraPassword, ) - vmi := libvmi.NewFedora(libvmi.WithCloudInitConfigDriveUserData(userData)) + vmi := libvmifact.NewFedora(libvmi.WithCloudInitConfigDriveUserData(userData)) // runStrategy := v1.RunStrategyManual vm := &v1.VirtualMachine{ ObjectMeta: vmi.ObjectMeta, @@ -292,7 +293,7 @@ var _ = Describe("[rfe_id:151][crit:high][vendor:cnv-qe@redhat.com][level:compon } It("[test_id:1617] with cloudInitNoCloud userData source", func() { - vmi := libvmi.NewCirros( + vmi := libvmifact.NewCirros( libvmi.WithCloudInitNoCloudUserData(userData), ) diff --git a/tests/vmi_configuration_test.go b/tests/vmi_configuration_test.go index 378fdf7f4d31..8892b2f2484b 100644 --- a/tests/vmi_configuration_test.go +++ b/tests/vmi_configuration_test.go @@ -30,6 +30,7 @@ import ( "time" "unicode" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/pointer" "kubevirt.io/kubevirt/tests/decorators" @@ -79,7 +80,7 @@ import ( "kubevirt.io/kubevirt/tests/libnode" "kubevirt.io/kubevirt/tests/libpod" "kubevirt.io/kubevirt/tests/libstorage" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/storage" "kubevirt.io/kubevirt/tests/testsuite" @@ -121,7 +122,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { Context("with all devices on the root PCI bus", func() { It("[test_id:4623]should start run the guest as usual", func() { - vmi := libvmi.NewCirros( + vmi := libvmifact.NewCirros( libvmi.WithAnnotation(v1.PlacePCIDevicesOnRootComplex, "true"), libvmi.WithRng(), libvmi.WithWatchdog(v1.WatchdogActionPoweroff), @@ -143,7 +144,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { Context("when requesting virtio-transitional models", func() { It("[test_id:6957]should start and run the guest", func() { - vmi := libvmi.NewCirros( + vmi := libvmifact.NewCirros( libvmi.WithRng(), libvmi.WithWatchdog(v1.WatchdogActionPoweroff), ) @@ -160,7 +161,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { Context("[rfe_id:897][crit:medium][vendor:cnv-qe@redhat.com][level:component]for CPU and memory limits should", func() { It("[test_id:3110]lead to get the burstable QOS class assigned when limit and requests differ", func() { - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() vmi = tests.RunVMIAndExpectScheduling(vmi, 60) Eventually(func() kubev1.PodQOSClass { @@ -175,7 +176,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { }) It("[test_id:3111]lead to get the guaranteed QOS class assigned when limit and requests are identical", func() { - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() By("specifying identical limits and requests") vmi.Spec.Domain.Resources = v1.ResourceRequirements{ Requests: kubev1.ResourceList{ @@ -204,7 +205,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { }) It("[test_id:3112]lead to get the guaranteed QOS class assigned when only limits are set", func() { - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() By("specifying identical limits and requests") vmi.Spec.Domain.Resources = v1.ResourceRequirements{ Requests: kubev1.ResourceList{}, @@ -237,13 +238,13 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { }) Describe("VirtualMachineInstance definition", func() { - fedoraWithUefiSecuredBoot := libvmi.NewFedora( + fedoraWithUefiSecuredBoot := libvmifact.NewFedora( libvmi.WithResourceMemory("1Gi"), libvmi.WithUefi(true), libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), ) - alpineWithUefiWithoutSecureBoot := libvmi.NewAlpine( + alpineWithUefiWithoutSecureBoot := libvmifact.NewAlpine( libvmi.WithResourceMemory("1Gi"), libvmi.WithUefi(false), libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), @@ -299,7 +300,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { requiredNumberOfCpus := 3 Expect(availableNumberOfCPUs).ToNot(BeNumerically("<", requiredNumberOfCpus), fmt.Sprintf("Test requires %d cpus, but only %d available!", requiredNumberOfCpus, availableNumberOfCPUs)) - vmi = libvmi.NewAlpine() + vmi = libvmifact.NewAlpine() }) It("[test_id:1659]should report 3 cpu cores under guest OS", func() { @@ -640,7 +641,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { hexData += fmt.Sprintf("%02x", b) } - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() By("Creating a secret with the binary ACPI SLIC table") secret, err := virtClient.CoreV1().Secrets(testsuite.GetTestNamespace(vmi)).Create( @@ -725,7 +726,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { Context("[rfe_id:140][crit:medium][vendor:cnv-qe@redhat.com][level:component]with diverging guest memory from requested memory", func() { It("[test_id:1669]should show the requested guest memory inside the VMI", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() guestMemory := resource.MustParse("256Mi") vmi.Spec.Domain.Memory = &v1.Memory{ Guest: &guestMemory, @@ -747,7 +748,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { Context("[rfe_id:140][crit:medium][vendor:cnv-qe@redhat.com][level:component]with diverging memory limit from memory request and no guest memory", func() { It("[test_id:3115]should show the memory request inside the VMI", func() { - vmi := libvmi.NewCirros( + vmi := libvmifact.NewCirros( libvmi.WithResourceMemory("256Mi"), libvmi.WithLimitMemory("512Mi"), ) @@ -767,7 +768,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { Context("[rfe_id:989]test cpu_allocation_ratio", func() { It("virt-launchers pod cpu requests should be proportional to the number of vCPUs", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() guestMemory := resource.MustParse("256Mi") vmi.Spec.Domain.Memory = &v1.Memory{ Guest: &guestMemory, @@ -802,7 +803,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { Context("[rfe_id:140][crit:medium][vendor:cnv-qe@redhat.com][level:component]with support memory over commitment", func() { It("[test_id:755]should show the requested memory different than guest memory", func() { - vmi := libvmi.NewCirros(overcommitGuestOverhead()) + vmi := libvmifact.NewCirros(overcommitGuestOverhead()) guestMemory := resource.MustParse("256Mi") vmi.Spec.Domain.Memory = &v1.Memory{ Guest: &guestMemory, @@ -842,7 +843,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { BeforeEach(func() { var err error - vmi = libvmi.NewCirros(overcommitGuestOverhead()) + vmi = libvmifact.NewCirros(overcommitGuestOverhead()) vmi, err = virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(vmi)).Create(context.Background(), vmi, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) libwait.WaitForSuccessfulVMIStart(vmi) @@ -872,7 +873,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { Context("[rfe_id:3078][crit:medium][vendor:cnv-qe@redhat.com][level:component]with usb controller", func() { It("[test_id:3117]should start the VMI with usb controller when usb device is present", func() { - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() vmi.Spec.Domain.Devices.Inputs = []v1.Input{ { Name: "tablet0", @@ -896,7 +897,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { }) It("[test_id:3117]should start the VMI with usb controller when input device doesn't have bus", func() { - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() vmi.Spec.Domain.Devices.Inputs = []v1.Input{ { Name: "tablet0", @@ -919,7 +920,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { }) It("[test_id:3118]should start the VMI without usb controller", func() { - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() By("Starting a VirtualMachineInstance") vmi, err := virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(vmi)).Create(context.Background(), vmi, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred(), "should start vmi") @@ -939,7 +940,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { Context("[rfe_id:3077][crit:medium][vendor:cnv-qe@redhat.com][level:component]with input devices", func() { It("[test_id:2642]should failed to start the VMI with wrong type of input device", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() vmi.Spec.Domain.Devices.Inputs = []v1.Input{ { Name: "tablet0", @@ -953,7 +954,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { }) It("[test_id:3074]should failed to start the VMI with wrong bus of input device", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() vmi.Spec.Domain.Devices.Inputs = []v1.Input{ { Name: "tablet0", @@ -967,7 +968,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { }) It("[test_id:3072]should start the VMI with tablet input device with virtio bus", func() { - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() vmi.Spec.Domain.Devices.Inputs = []v1.Input{ { Name: "tablet0", @@ -991,7 +992,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { }) It("[test_id:3073]should start the VMI with tablet input device with usb bus", func() { - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() vmi.Spec.Domain.Devices.Inputs = []v1.Input{ { Name: "tablet0", @@ -1039,7 +1040,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { _, err := virtClient.CoreV1().LimitRanges(testsuite.GetTestNamespace(nil)).Create(context.Background(), &limitRangeObj, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() vmi.Namespace = testsuite.NamespaceTestAlternative vmi.Spec.Domain.Resources = v1.ResourceRequirements{ Requests: kubev1.ResourceList{ @@ -1115,7 +1116,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { return false } BeforeEach(func() { - hugepagesVmi = libvmi.NewCirros() + hugepagesVmi = libvmifact.NewCirros() }) DescribeTable("should consume hugepages ", func(hugepageSize string, memory string, guestMemory string) { @@ -1215,7 +1216,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { var rngVmi *v1.VirtualMachineInstance BeforeEach(func() { - rngVmi = libvmi.NewAlpine(withNoRng()) + rngVmi = libvmifact.NewAlpine(withNoRng()) }) It("[test_id:1674]should have the virtio rng device present when present", func() { @@ -1258,7 +1259,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { prepareAgentVM := func() *v1.VirtualMachineInstance { // TODO: actually review this once the VM image is present - agentVMI := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + agentVMI := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) By("Starting a VirtualMachineInstance") agentVMI, err := virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(agentVMI)).Create(context.Background(), agentVMI, metav1.CreateOptions{}) @@ -1284,7 +1285,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { } It("[test_id:1676]should have attached a guest agent channel by default", func() { - agentVMI = libvmi.NewAlpine() + agentVMI = libvmifact.NewAlpine() By("Starting a VirtualMachineInstance") agentVMI, err := virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(agentVMI)).Create(context.Background(), agentVMI, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred(), "Should create VMI successfully") @@ -1345,7 +1346,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { It("[test_id:5267]VMI condition should signal unsupported agent presence", func() { opts := append(libnet.WithMasqueradeNetworking(), libvmi.WithCloudInitNoCloudUserData(tests.GetFedoraToolsGuestAgentBlacklistUserData("guest-shutdown"))) - agentVMI := libvmi.NewFedora(opts...) + agentVMI := libvmifact.NewFedora(opts...) By("Starting a VirtualMachineInstance") agentVMI, err := virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(agentVMI)).Create(context.Background(), agentVMI, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred(), "Should create VMI successfully") @@ -1356,7 +1357,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { It("[test_id:6958]VMI condition should not signal unsupported agent presence for optional commands", func() { opts := append(libnet.WithMasqueradeNetworking(), libvmi.WithCloudInitNoCloudUserData(tests.GetFedoraToolsGuestAgentBlacklistUserData("guest-exec,guest-set-password"))) - agentVMI := libvmi.NewFedora(opts...) + agentVMI := libvmifact.NewFedora(opts...) By("Starting a VirtualMachineInstance") agentVMI, err := virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(agentVMI)).Create(context.Background(), agentVMI, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred(), "Should create VMI successfully") @@ -1472,7 +1473,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { var snVmi *v1.VirtualMachineInstance BeforeEach(func() { - snVmi = libvmi.NewAlpine() + snVmi = libvmifact.NewAlpine() }) It("[test_id:3121]should have serial-number set when present", func() { @@ -1528,7 +1529,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { It("[test_id:6843]should set a TSC fequency and have the CPU flag avaliable in the guest", decorators.Invtsc, decorators.TscFrequencies, func() { nodes := libnode.GetAllSchedulableNodes(virtClient) Expect(featureSupportedInAtLeastOneNode(nodes, "invtsc")).To(BeTrue(), "To run this test at least one node should support invtsc feature") - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() vmi.Spec.Domain.CPU = &v1.CPU{ Features: []v1.CPUFeature{ { @@ -1573,7 +1574,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { Context("with Clock and timezone", func() { It("[sig-compute][test_id:5268]guest should see timezone", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() timezone := "America/New_York" tz := v1.ClockOffsetTimezone(timezone) vmi.Spec.Domain.Clock = &v1.Clock{ @@ -1763,7 +1764,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { nodes = libnode.GetAllSchedulableNodes(virtClient) Expect(nodes.Items).ToNot(BeEmpty(), "There should be some compute node") - cpuVmi = libvmi.NewCirros() + cpuVmi = libvmifact.NewCirros() }) Context("[rfe_id:140][crit:medium][vendor:cnv-qe@redhat.com][level:component]when CPU model defined", func() { @@ -2052,7 +2053,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { When("there is no ResourceQuota with memory and cpu limits associated with the creation namespace", func() { It("should not automatically set memory limits in the virt-launcher pod", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() By("Creating a running VMI") runningVMI := tests.RunVMIAndExpectScheduling(vmi, 30) @@ -2078,7 +2079,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { BeforeEach(func() { vmiRequest = resource.MustParse("256Mi") delta := resource.MustParse("100Mi") - vmi = libvmi.NewCirros( + vmi = libvmifact.NewCirros( libvmi.WithResourceMemory(vmiRequest.String()), libvmi.WithCPUCount(1, 1, 1), ) @@ -2215,7 +2216,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { }) It("[test_id:5360]should set appropriate IO modes", func() { - vmi := libvmi.NewCirros( + vmi := libvmifact.NewCirros( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), // disk[1]: Block, no user-input, cache=none @@ -2554,7 +2555,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { Expect(cpuManagerEnabled).To(BeTrue()) }) It("[test_id:991]should be scheduled on a node with running cpu manager", func() { - cpuVmi := libvmi.NewCirros() + cpuVmi := libvmifact.NewCirros() cpuVmi.Spec.Domain.CPU = &v1.CPU{ Cores: 2, DedicatedCPUPlacement: true, @@ -2614,7 +2615,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { }) It("[test_id:4632]should be able to start a vm with guest memory different from requested and keep guaranteed qos", func() { Skip("Skip test till issue https://github.com/kubevirt/kubevirt/issues/3910 is fixed") - cpuVmi := libvmi.NewCirros() + cpuVmi := libvmifact.NewCirros() cpuVmi.Spec.Domain.CPU = &v1.CPU{ Sockets: 2, Cores: 1, @@ -2671,7 +2672,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { Expect(m).To(BeNumerically(">", 83886080), "83886080 B = 80 Mi") }) DescribeTable("[test_id:4023]should start a vmi with dedicated cpus and isolated emulator thread", func(resources *v1.ResourceRequirements) { - cpuVmi := libvmi.NewCirros() + cpuVmi := libvmifact.NewCirros() cpuVmi.Spec.Domain.CPU = &v1.CPU{ Cores: 2, DedicatedCPUPlacement: true, @@ -2782,7 +2783,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { ) It("[test_id:4024]should fail the vmi creation if IsolateEmulatorThread requested without dedicated cpus", func() { - cpuVmi := libvmi.NewCirros() + cpuVmi := libvmifact.NewCirros() cpuVmi.Spec.Domain.CPU = &v1.CPU{ Cores: 2, IsolateEmulatorThread: true, @@ -2794,7 +2795,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { }) It("[test_id:802]should configure correct number of vcpus with requests.cpus", func() { - cpuVmi := libvmi.NewCirros() + cpuVmi := libvmifact.NewCirros() cpuVmi.Spec.Domain.CPU = &v1.CPU{ DedicatedCPUPlacement: true, } @@ -2817,7 +2818,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { }) It("[test_id:1688]should fail the vmi creation if the requested resources are inconsistent", func() { - cpuVmi := libvmi.NewCirros() + cpuVmi := libvmifact.NewCirros() cpuVmi.Spec.Domain.CPU = &v1.CPU{ Cores: 2, DedicatedCPUPlacement: true, @@ -2830,7 +2831,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { Expect(err).To(HaveOccurred()) }) It("[test_id:1689]should fail the vmi creation if cpu is not an integer", func() { - cpuVmi := libvmi.NewCirros() + cpuVmi := libvmifact.NewCirros() cpuVmi.Spec.Domain.CPU = &v1.CPU{ DedicatedCPUPlacement: true, } @@ -2842,7 +2843,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { Expect(err).To(HaveOccurred()) }) It("[test_id:1690]should fail the vmi creation if Guaranteed QOS cannot be set", func() { - cpuVmi := libvmi.NewCirros() + cpuVmi := libvmifact.NewCirros() cpuVmi.Spec.Domain.CPU = &v1.CPU{ DedicatedCPUPlacement: true, } @@ -2857,8 +2858,8 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { Expect(err).To(HaveOccurred()) }) It("[test_id:830]should start a vm with no cpu pinning after a vm with cpu pinning on same node", func() { - Vmi := libvmi.NewCirros() - cpuVmi := libvmi.NewCirros() + Vmi := libvmifact.NewCirros() + cpuVmi := libvmifact.NewCirros() cpuVmi.Spec.Domain.CPU = &v1.CPU{ DedicatedCPUPlacement: true, } @@ -2892,9 +2893,9 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { Expect(nodes.Items).ToNot(BeEmpty(), "There should be some nodes") node = nodes.Items[1].Name - vmi = libvmi.NewFedora() + vmi = libvmifact.NewFedora() - cpuvmi = libvmi.NewFedora() + cpuvmi = libvmifact.NewFedora() cpuvmi.Spec.Domain.CPU = &v1.CPU{ Cores: 2, DedicatedCPUPlacement: true, @@ -2968,7 +2969,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { Context("[rfe_id:2926][crit:medium][vendor:cnv-qe@redhat.com][level:component]Check Chassis value", func() { It("[Serial][test_id:2927]Test Chassis value in a newly created VM", Serial, func() { - vmi := libvmi.NewFedora() + vmi := libvmifact.NewFedora() vmi.Spec.Domain.Chassis = &v1.Chassis{ Asset: "Test-123", } @@ -3000,7 +3001,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { var vmi *v1.VirtualMachineInstance BeforeEach(func() { - vmi = libvmi.NewFedora() + vmi = libvmifact.NewFedora() }) It("[test_id:2751]test default SMBios", func() { @@ -3081,7 +3082,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { var DiskBusIDE v1.DiskBus = "ide" DescribeTable("For various bus types", func(bus v1.DiskBus, errMsg string) { - vmi := libvmi.NewFedora( + vmi := libvmifact.NewFedora( libvmi.WithEphemeralCDRom("cdrom-0", bus, cd.ContainerDiskFor(cd.ContainerDiskCirros)), ) @@ -3155,7 +3156,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { BeforeEach(func() { var bootOrder uint = 1 - vmi = libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi = libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Spec.Domain.Resources.Requests[kubev1.ResourceMemory] = resource.MustParse("1024M") vmi.Spec.Domain.Devices.Disks[0].BootOrder = &bootOrder }) @@ -3190,7 +3191,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { BeforeEach(func() { checks.SkipIfRunningOnKindInfra("Skip KVM MSR prescence test on kind") - vmi = libvmi.NewFedora() + vmi = libvmifact.NewFedora() }) It("[test_id:5271]test cpuid hidden", func() { @@ -3247,7 +3248,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { } It("should be lower than allocated size", func() { By("Starting a VirtualMachineInstance") - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi, err := virtClient.VirtualMachineInstance(testsuite.GetTestNamespace(vmi)).Create(context.Background(), vmi, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) libwait.WaitForSuccessfulVMIStart(vmi) @@ -3309,7 +3310,7 @@ var _ = Describe("[sig-compute]Configurations", decorators.SigCompute, func() { Context("When topology spread constraints are defined for the VMI", func() { It("they should be applied to the launcher pod", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() tsc := []k8sv1.TopologySpreadConstraint{ { MaxSkew: 1, diff --git a/tests/vmi_controller_test.go b/tests/vmi_controller_test.go index 1b5c7862515c..6f2c891dbea9 100644 --- a/tests/vmi_controller_test.go +++ b/tests/vmi_controller_test.go @@ -14,7 +14,7 @@ import ( "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/framework/kubevirt" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" ) var _ = Describe("[sig-compute]Controller devices", decorators.SigCompute, func() { @@ -26,7 +26,7 @@ var _ = Describe("[sig-compute]Controller devices", decorators.SigCompute, func( Context("with ephemeral disk", func() { DescribeTable("a scsi controller", func(enabled bool) { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() vmi.Spec.Domain.Devices.DisableHotplug = !enabled vmi = tests.RunVMIAndExpectLaunch(vmi, 30) domain, err := tests.GetRunningVirtualMachineInstanceDomainXML(virtClient, vmi) diff --git a/tests/vmi_headless_test.go b/tests/vmi_headless_test.go index 909401a44fea..76e69cc115e2 100644 --- a/tests/vmi_headless_test.go +++ b/tests/vmi_headless_test.go @@ -48,7 +48,7 @@ import ( cd "kubevirt.io/kubevirt/tests/containerdisk" "kubevirt.io/kubevirt/tests/libnet" "kubevirt.io/kubevirt/tests/libpod" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" ) var _ = Describe("[rfe_id:609][sig-compute]VMIheadless", decorators.SigCompute, func() { @@ -219,7 +219,7 @@ var _ = Describe("[rfe_id:609][sig-compute]VMIheadless", decorators.SigCompute, } By("Running the VMI") - vmi = libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi = libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi = tests.RunVMIAndExpectLaunch(vmi, 30) By("VMI has the guest agent connected condition") diff --git a/tests/vmi_hostdev_test.go b/tests/vmi_hostdev_test.go index 74398f19b93f..a09f6e065b8f 100644 --- a/tests/vmi_hostdev_test.go +++ b/tests/vmi_hostdev_test.go @@ -24,7 +24,7 @@ import ( "kubevirt.io/kubevirt/tests/console" "kubevirt.io/kubevirt/tests/framework/kubevirt" "kubevirt.io/kubevirt/tests/libnet" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" ) @@ -79,7 +79,7 @@ var _ = Describe("[Serial][sig-compute]HostDevices", Serial, decorators.SigCompu tests.UpdateKubeVirtConfigValueAndWait(config) By("Creating a Fedora VMI with the sound card as a host device") - randomVMI := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + randomVMI := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) randomVMI.Spec.Domain.Devices.HostDevices = hostDevs vmi, err := virtClient.VirtualMachineInstance(util.NamespaceTestDefault).Create(context.Background(), randomVMI, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) diff --git a/tests/vmi_ignition_test.go b/tests/vmi_ignition_test.go index 85a0c9915577..c434089544b8 100644 --- a/tests/vmi_ignition_test.go +++ b/tests/vmi_ignition_test.go @@ -30,9 +30,11 @@ import ( v1 "kubevirt.io/api/core/v1" + "kubevirt.io/kubevirt/pkg/libvmi" + "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/console" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" ) var _ = Describe("[rfe_id:151][crit:high][vendor:cnv-qe@redhat.com][level:component][sig-compute]IgnitionData", decorators.SigCompute, func() { @@ -49,7 +51,7 @@ var _ = Describe("[rfe_id:151][crit:high][vendor:cnv-qe@redhat.com][level:compon It("[test_id:1616]should have injected data under firmware directory", func() { ignitionData := "ignition injected" vmi := tests.RunVMIAndExpectLaunch( - libvmi.NewFedora(libvmi.WithAnnotation(v1.IgnitionAnnotation, ignitionData)), + libvmifact.NewFedora(libvmi.WithAnnotation(v1.IgnitionAnnotation, ignitionData)), 240) Expect(console.LoginToFedora(vmi)).To(Succeed()) diff --git a/tests/vmi_kernel_boot_test.go b/tests/vmi_kernel_boot_test.go index c6117a16d800..9ae2de55a17f 100644 --- a/tests/vmi_kernel_boot_test.go +++ b/tests/vmi_kernel_boot_test.go @@ -36,10 +36,12 @@ import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" kubevirtv1 "kubevirt.io/api/core/v1" + "kubevirt.io/kubevirt/pkg/libvmi" + cd "kubevirt.io/kubevirt/tests/containerdisk" "kubevirt.io/kubevirt/tests/framework/kubevirt" "kubevirt.io/kubevirt/tests/libpod" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" @@ -142,7 +144,7 @@ var _ = Describe("[sig-compute]VMI with external kernel boot", decorators.SigCom It("ensure successful boot and deletion when VMI has a disk defined", func() { By("Creating VMI with disk and kernel boot") - vmi := libvmi.NewAlpine(libvmi.WithResourceMemory("1Gi")) + vmi := libvmifact.NewAlpine(libvmi.WithResourceMemory("1Gi")) utils.AddKernelBootToVMI(vmi) // Remove initrd path from vmi spec diff --git a/tests/vmi_lifecycle_test.go b/tests/vmi_lifecycle_test.go index 9470ed43eee6..84d80560acea 100644 --- a/tests/vmi_lifecycle_test.go +++ b/tests/vmi_lifecycle_test.go @@ -52,19 +52,21 @@ import ( "kubevirt.io/client-go/kubecli" "kubevirt.io/kubevirt/pkg/controller" + "kubevirt.io/kubevirt/pkg/libvmi" virtconfig "kubevirt.io/kubevirt/pkg/virt-config" "kubevirt.io/kubevirt/pkg/virt-controller/services" "kubevirt.io/kubevirt/pkg/virt-controller/watch" device_manager "kubevirt.io/kubevirt/pkg/virt-handler/device-manager" "kubevirt.io/kubevirt/pkg/virt-launcher/virtwrap/api" "kubevirt.io/kubevirt/pkg/virt-launcher/virtwrap/converter" + "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/clientcmd" "kubevirt.io/kubevirt/tests/console" cd "kubevirt.io/kubevirt/tests/containerdisk" "kubevirt.io/kubevirt/tests/libnode" "kubevirt.io/kubevirt/tests/libpod" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/testsuite" "kubevirt.io/kubevirt/tests/util" @@ -119,17 +121,17 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level Describe("[rfe_id:273][crit:high][vendor:cnv-qe@redhat.com][level:component]Creating a VirtualMachineInstance", func() { It("[test_id:1619]should success", func() { - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() _, err := kubevirt.Client().VirtualMachineInstance(testsuite.GetTestNamespace(vmi)).Create(context.Background(), vmi, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred(), "Create VMI successfully") }) It("[test_id:1620]should start it", func() { - tests.RunVMIAndExpectLaunch(libvmi.NewAlpine(), startupTimeout) + tests.RunVMIAndExpectLaunch(libvmifact.NewAlpine(), startupTimeout) }) It("[test_id:6095]should start in paused state if start strategy set to paused", func() { - vmi := libvmi.NewAlpine(libvmi.WithStartStrategy(v1.StartStrategyPaused)) + vmi := libvmifact.NewAlpine(libvmi.WithStartStrategy(v1.StartStrategyPaused)) vmi = tests.RunVMIAndExpectLaunch(vmi, startupTimeout) Eventually(matcher.ThisVMI(vmi), 30*time.Second, 2*time.Second).Should(matcher.HaveConditionTrue(v1.VirtualMachineInstancePaused)) @@ -140,7 +142,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level }) It("[test_id:1621]should attach virt-launcher to it", func() { - vmi := tests.RunVMIAndExpectLaunch(libvmi.NewAlpine(), startupTimeout) + vmi := tests.RunVMIAndExpectLaunch(libvmifact.NewAlpine(), startupTimeout) By("Getting virt-launcher logs") logs := func() string { return getVirtLauncherLogs(kubevirt.Client(), vmi) } @@ -151,7 +153,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level }) It("[test_id:3195]should carry annotations to pod", func() { - vmi := tests.RunVMIAndExpectLaunch(libvmi.NewAlpine( + vmi := tests.RunVMIAndExpectLaunch(libvmifact.NewAlpine( libvmi.WithAnnotation("testannotation", "annotation from vmi")), startupTimeout) @@ -162,7 +164,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level }) It("[test_id:3196]should carry kubernetes and kubevirt annotations to pod", func() { - vmi = tests.RunVMIAndExpectLaunch(libvmi.NewAlpine( + vmi = tests.RunVMIAndExpectLaunch(libvmifact.NewAlpine( libvmi.WithAnnotation("kubevirt.io/test", "test"), libvmi.WithAnnotation("kubernetes.io/test", "test")), startupTimeout) @@ -175,7 +177,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level }) It("Should prevent eviction when EvictionStratgy: External", func() { - vmi := libvmi.NewAlpine(libvmi.WithEvictionStrategy(v1.EvictionStrategyExternal)) + vmi := libvmifact.NewAlpine(libvmi.WithEvictionStrategy(v1.EvictionStrategyExternal)) vmi = tests.RunVMIAndExpectLaunch(vmi, startupTimeout) pod, err := libpod.GetPodByVirtualMachineInstance(vmi, vmi.Namespace) @@ -203,7 +205,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level }) It("[test_id:1622]should log libvirtd logs", func() { - vmi := tests.RunVMIAndExpectLaunch(libvmi.NewAlpine(), startupTimeout) + vmi := tests.RunVMIAndExpectLaunch(libvmifact.NewAlpine(), startupTimeout) By("Getting virt-launcher logs") logs := func() string { return getVirtLauncherLogs(kubevirt.Client(), vmi) } @@ -261,7 +263,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level ) It("[test_id:1623]should reject POST if validation webhook deems the spec invalid", func() { - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() // Add a disk that doesn't map to a volume. // This should get rejected which tells us the webhook validator is working. vmi.Spec.Domain.Devices.Disks = append(vmi.Spec.Domain.Devices.Disks, v1.Disk{ @@ -289,7 +291,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level }) It("[test_id:1624]should reject PATCH if schema is invalid", func() { - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() err := kubevirt.Client().RestClient().Post().Resource("virtualmachineinstances").Namespace(testsuite.GetTestNamespace(vmi)).Body(vmi).Do(context.Background()).Error() Expect(err).ToNot(HaveOccurred(), "Send POST successfully") @@ -306,7 +308,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level Context("when name is longer than 63 characters", func() { BeforeEach(func() { - vmi = libvmi.NewAlpine() + vmi = libvmifact.NewAlpine() vmi.Name = "testvmi" + rand.String(63) }) It("[test_id:1625]should start it", func() { @@ -328,7 +330,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level Context("when it already exist", func() { It("[test_id:1626]should be rejected", func() { By("Creating a VirtualMachineInstance") - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() err := kubevirt.Client().RestClient().Post().Resource("virtualmachineinstances").Namespace(testsuite.GetTestNamespace(vmi)).Body(vmi).Do(context.Background()).Error() Expect(err).ToNot(HaveOccurred(), "Should create VMI successfully") By("Creating the same VirtualMachineInstance second time") @@ -345,7 +347,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level Context("with boot order", func() { DescribeTable("[rfe_id:273][crit:high][vendor:cnv-qe@redhat.com][level:component]should be able to boot from selected disk", func(alpineBootOrder uint, cirrosBootOrder uint, consoleText string, wait int) { By("defining a VirtualMachineInstance with an Alpine disk") - vmi = libvmi.NewAlpine() + vmi = libvmifact.NewAlpine() By("adding a Cirros Disk") tests.AddEphemeralDisk(vmi, "disk2", v1.DiskBusVirtio, cd.ContainerDiskFor(cd.ContainerDiskCirros)) @@ -371,7 +373,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level Context("without k8s secret", func() { It("[test_id:1629][posneg:negative]should not be able to start virt-launcher pod", func() { - vmi = libvmi.NewCirros() + vmi = libvmifact.NewCirros() for _, volume := range vmi.Spec.Volumes { if volume.CloudInitNoCloud != nil { @@ -401,7 +403,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level It("[test_id:1630]should log warning and proceed once the secret is there", func() { userData64 := "" - vmi = libvmi.NewCirros() + vmi = libvmifact.NewCirros() for _, volume := range vmi.Spec.Volumes { if volume.CloudInitNoCloud != nil { @@ -453,7 +455,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level Context("with nodeselector", func() { It("[test_id:5760]should check if vm's with non existing nodeselector is not running and node selector is not updated", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() By("setting nodeselector with non-existing-os label") vmi.Spec.NodeSelector = map[string]string{k8sv1.LabelOSStable: "not-existing-os"} vmi = tests.RunVMIAndExpectScheduling(vmi, 30) @@ -478,7 +480,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level }) It("[test_id:5761]should check if vm with valid node selector is scheduled and running and node selector is not updated", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() vmi.Spec.NodeSelector = map[string]string{k8sv1.LabelOSStable: "linux"} tests.RunVMIAndExpectLaunch(vmi, 60) @@ -504,7 +506,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level Context("when virt-launcher crashes", func() { It("[Serial][test_id:1631]should be stopped and have Failed phase", Serial, func() { - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() vmi, err := kubevirt.Client().VirtualMachineInstance(testsuite.GetTestNamespace(vmi)).Create(context.Background(), vmi, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred(), "Should create VMI successfully") @@ -536,7 +538,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level // kill virt-launcher then we don't know if virt-handler already restarted. // Also the virt-handler crash-loop plays a role here. We could also change the daemon-set but then we would not check the crash behaviour. It("[test_id:1632]should recover and continue management", func() { - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() vmi, err := kubevirt.Client().VirtualMachineInstance(testsuite.GetTestNamespace(vmi)).Create(context.Background(), vmi, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred(), "Should submit VMI successfully") @@ -568,7 +570,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level watcher.New(vmi).Timeout(60*time.Second).SinceWatchedObjectResourceVersion().WaitFor(ctx, watcher.WarningEvent, v1.Stopped) By("checking that it can still start VMIs") - newVMI := libvmi.NewCirros() + newVMI := libvmifact.NewCirros() newVMI.Spec.NodeSelector = map[string]string{"kubernetes.io/hostname": nodeName} newVMI, err = kubevirt.Client().VirtualMachineInstance(testsuite.GetTestNamespace(vmi)).Create(context.Background(), newVMI, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) @@ -609,7 +611,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level It("[test_id:3198]device plugins should re-register if the kubelet restarts", func() { By("starting a VMI on a node") - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() vmi, err := kubevirt.Client().VirtualMachineInstance(testsuite.GetTestNamespace(vmi)).Create(context.Background(), vmi, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred(), "Should submit VMI successfully") @@ -655,7 +657,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level time.Sleep(10 * time.Second) By("starting another VMI on the same node, to verify devices still work") - newVMI := libvmi.NewCirros() + newVMI := libvmifact.NewCirros() newVMI.Spec.NodeSelector = map[string]string{"kubernetes.io/hostname": nodeName} newVMI, err = kubevirt.Client().VirtualMachineInstance(testsuite.GetTestNamespace(vmi)).Create(context.Background(), newVMI, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) @@ -674,7 +676,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level BeforeEach(func() { // Schedule a vmi and make sure that virt-handler gets evicted from the node where the vmi was started - vmi = libvmi.NewCirros() + vmi = libvmifact.NewCirros() vmi, err = kubevirt.Client().VirtualMachineInstance(testsuite.GetTestNamespace(vmi)).Create(context.Background(), vmi, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred(), "Should create VMI successfully") @@ -801,13 +803,13 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level }) It("[test_id:1635]the vmi with tolerations should be scheduled", func() { - vmi := libvmi.NewCirros(libvmi.WithNodeAffinityFor(nodes.Items[0].Name)) + vmi := libvmifact.NewCirros(libvmi.WithNodeAffinityFor(nodes.Items[0].Name)) vmi.Spec.Tolerations = []k8sv1.Toleration{{Key: "test", Value: "123"}} tests.RunVMIAndExpectLaunch(vmi, startupTimeout) }) It("[test_id:1636]the vmi without tolerations should not be scheduled", func() { - vmi := libvmi.NewCirros(libvmi.WithNodeAffinityFor(nodes.Items[0].Name)) + vmi := libvmifact.NewCirros(libvmi.WithNodeAffinityFor(nodes.Items[0].Name)) vmi, err = kubevirt.Client().VirtualMachineInstance(testsuite.GetTestNamespace(vmi)).Create(context.Background(), vmi, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred(), "Should create VMI") By("Waiting for the VirtualMachineInstance to be unschedulable") @@ -833,7 +835,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level }) It("[test_id:1637]the vmi with node affinity and no conflicts should be scheduled", func() { - vmi := libvmi.NewCirros(libvmi.WithNodeAffinityFor(nodes.Items[0].Name)) + vmi := libvmifact.NewCirros(libvmi.WithNodeAffinityFor(nodes.Items[0].Name)) vmi = tests.RunVMIAndExpectLaunch(vmi, startupTimeout) curVMI, err := kubevirt.Client().VirtualMachineInstance(vmi.Namespace).Get(context.Background(), vmi.Name, metav1.GetOptions{}) Expect(err).ToNot(HaveOccurred(), "Should get VMI") @@ -842,13 +844,13 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level }) It("[test_id:1638]the vmi with node affinity and anti-pod affinity should not be scheduled", func() { - vmi := libvmi.NewCirros(libvmi.WithNodeAffinityFor(nodes.Items[0].Name)) + vmi := libvmifact.NewCirros(libvmi.WithNodeAffinityFor(nodes.Items[0].Name)) vmi = tests.RunVMIAndExpectLaunch(vmi, startupTimeout) curVMI, err := kubevirt.Client().VirtualMachineInstance(vmi.Namespace).Get(context.Background(), vmi.Name, metav1.GetOptions{}) Expect(err).ToNot(HaveOccurred(), "Should get VMI") Expect(curVMI.Status.NodeName).To(Equal(nodes.Items[0].Name), "VMI should run on the same node") - vmiB := libvmi.NewCirros(libvmi.WithNodeAffinityFor(nodes.Items[0].Name)) + vmiB := libvmifact.NewCirros(libvmi.WithNodeAffinityFor(nodes.Items[0].Name)) vmiB.Spec.Affinity.PodAntiAffinity = &k8sv1.PodAntiAffinity{ RequiredDuringSchedulingIgnoredDuringExecution: []k8sv1.PodAffinityTerm{ @@ -914,7 +916,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level config.CPUModel = defaultCPUModel tests.UpdateKubeVirtConfigValueAndWait(*config) - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() vmi = tests.RunVMIAndExpectLaunch(vmi, startupTimeout) curVMI, err := kubevirt.Client().VirtualMachineInstance(vmi.Namespace).Get(context.Background(), vmi.Name, metav1.GetOptions{}) Expect(err).ToNot(HaveOccurred(), "Should get VMI") @@ -927,7 +929,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level config.CPUModel = defaultCPUModel tests.UpdateKubeVirtConfigValueAndWait(*config) - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() vmi.Spec.Domain.CPU = &v1.CPU{ Model: vmiCPUModel, } @@ -940,7 +942,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level }) It("[sig-compute][test_id:3201]should set cpu model to default when vmi does not have it set and default cpu model is not set", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() vmi = tests.RunVMIAndExpectLaunch(vmi, startupTimeout) curVMI, err := kubevirt.Client().VirtualMachineInstance(vmi.Namespace).Get(context.Background(), vmi.Name, metav1.GetOptions{}) @@ -958,7 +960,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level config.CPUModel = defaultCPUModel tests.UpdateKubeVirtConfigValueAndWait(*config) - newVMI := libvmi.NewCirros() + newVMI := libvmifact.NewCirros() newVMI = tests.RunVMIAndExpectLaunch(newVMI, 90) By("Fetching virt-launcher pod") virtLauncherPod, err := libpod.GetPodByVirtualMachineInstance(newVMI, newVMI.Namespace) @@ -977,7 +979,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level config.CPUModel = defaultCPUModel tests.UpdateKubeVirtConfigValueAndWait(*config) - newVMI := libvmi.NewCirros() + newVMI := libvmifact.NewCirros() newVMI.Spec.Domain.CPU = &v1.CPU{ Model: vmiCPUModel, } @@ -1027,7 +1029,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level }) It("[test_id:1639]the vmi with cpu.model matching a nfd label on a node should be scheduled", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() vmi.Spec.Domain.CPU = &v1.CPU{ Cores: 1, Model: supportedCPU, @@ -1043,7 +1045,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level }) It("[test_id:1640]the vmi with cpu.model that cannot match an nfd label on node should not be scheduled", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() vmi.Spec.Domain.CPU = &v1.CPU{ Cores: 1, Model: "486", @@ -1071,7 +1073,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level It("[test_id:3202]the vmi with cpu.features matching nfd labels on a node should be scheduled", func() { By("adding a node-feature-discovery CPU model label to a node") - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() const featureToDisable = "fpu" featureToRequire := supportedFeatures[0] @@ -1156,7 +1158,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level } supportedFeaturesAmongAllNodes := GetSupportedCPUFeaturesFromNodes(*nodes) - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() vmi.Spec.Domain.CPU = &v1.CPU{ Cores: 1, Features: []v1.CPUFeature{ @@ -1191,7 +1193,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level // Add node affinity first to test later on that although there is node affinity to // the specific node - the feature policy 'forbid' will deny shceduling on that node. - vmi := libvmi.NewCirros(libvmi.WithNodeAffinityFor(nodes.Items[0].Name)) + vmi := libvmifact.NewCirros(libvmi.WithNodeAffinityFor(nodes.Items[0].Name)) vmi.Spec.Domain.CPU = &v1.CPU{ Cores: 1, Features: []v1.CPUFeature{ @@ -1418,7 +1420,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level }) It("[test_id:1646]should request a KVM and TUN device", func() { - vmi = tests.RunVMIAndExpectLaunch(libvmi.NewAlpine(), startupTimeout) + vmi = tests.RunVMIAndExpectLaunch(libvmifact.NewAlpine(), startupTimeout) pod, err := libpod.GetPodByVirtualMachineInstance(vmi, vmi.Namespace) Expect(err).NotTo(HaveOccurred()) @@ -1439,7 +1441,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level }) It("[test_id:1647]should not enable emulation in virt-launcher", func() { - vmi = tests.RunVMIAndExpectLaunch(libvmi.NewAlpine(), startupTimeout) + vmi = tests.RunVMIAndExpectLaunch(libvmifact.NewAlpine(), startupTimeout) pod, err := libpod.GetPodByVirtualMachineInstance(vmi, vmi.Namespace) Expect(err).NotTo(HaveOccurred()) @@ -1481,7 +1483,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level Describe("[rfe_id:273][crit:high][vendor:cnv-qe@redhat.com][level:component]Get a VirtualMachineInstance", func() { Context("when that not exist", func() { It("[test_id:1649]should return 404", func() { - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() b, err := kubevirt.Client().RestClient().Get().Resource("virtualmachineinstances").Namespace(testsuite.GetTestNamespace(vmi)).Name("nonexistnt").DoRaw(context.Background()) Expect(err).To(HaveOccurred(), "Should get VMIs") status := metav1.Status{} @@ -1495,7 +1497,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level Describe("[rfe_id:273][crit:high][vendor:cnv-qe@redhat.com][level:component]Delete a VirtualMachineInstance's Pod", func() { It("[test_id:1650]should result in the VirtualMachineInstance moving to a finalized state", func() { By("Creating the VirtualMachineInstance") - vmi := tests.RunVMIAndExpectLaunch(libvmi.NewAlpine(), startupTimeout) + vmi := tests.RunVMIAndExpectLaunch(libvmifact.NewAlpine(), startupTimeout) By("Verifying VirtualMachineInstance's pod is active") pods, err := kubevirt.Client().CoreV1().Pods(vmi.Namespace).List(context.Background(), tests.UnfinishedVMIPodSelector(vmi)) @@ -1527,7 +1529,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level It("[test_id:1651]should result in pod being terminated", func() { By("Creating the VirtualMachineInstance") - vmi := tests.RunVMIAndExpectLaunch(libvmi.NewAlpine(), startupTimeout) + vmi := tests.RunVMIAndExpectLaunch(libvmifact.NewAlpine(), startupTimeout) podSelector := tests.UnfinishedVMIPodSelector(vmi) By("Verifying VirtualMachineInstance's pod is active") @@ -1549,7 +1551,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level }) Context("with ACPI and some grace period seconds", func() { DescribeTable("[rfe_id:273][crit:medium][vendor:cnv-qe@redhat.com][level:component]should result in vmi status succeeded", func(gracePeriod int64) { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() if gracePeriod >= 0 { vmi.Spec.TerminationGracePeriodSeconds = &gracePeriod @@ -1596,7 +1598,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level By("Setting a VirtualMachineInstance termination grace period to 5") var gracePeriod int64 gracePeriod = int64(5) - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() // Give the VirtualMachineInstance a custom grace period vmi.Spec.TerminationGracePeriodSeconds = &gracePeriod // Make sure we schedule the VirtualMachineInstance to master @@ -1635,7 +1637,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level Describe("[Serial][rfe_id:273][crit:high][vendor:cnv-qe@redhat.com][level:component]Killed VirtualMachineInstance", Serial, func() { It("[test_id:1656]should be in Failed phase", func() { By("Starting a VirtualMachineInstance") - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() obj, err := kubevirt.Client().VirtualMachineInstance(testsuite.GetTestNamespace(vmi)).Create(context.Background(), vmi, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred(), "Should create VMI") @@ -1661,7 +1663,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level It("[test_id:1657]should be left alone by virt-handler", func() { By("Starting a VirtualMachineInstance") - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() obj, err := kubevirt.Client().VirtualMachineInstance(testsuite.GetTestNamespace(vmi)).Create(context.Background(), vmi, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred(), "Should create VMI") @@ -1698,7 +1700,7 @@ var _ = Describe("[rfe_id:273][crit:high][arm64][vendor:cnv-qe@redhat.com][level } vmLabelKey := "test" + rand.String(5) vmLabelValue := "test" + rand.String(5) - vmi := libvmi.NewAlpine() + vmi := libvmifact.NewAlpine() vmi.Namespace = testsuite.GetTestNamespace(vmi) vmi.Spec.TopologySpreadConstraints = []k8sv1.TopologySpreadConstraint{ { diff --git a/tests/vmi_monitoring_test.go b/tests/vmi_monitoring_test.go index 991d11b2475c..6bc368bcb3cb 100644 --- a/tests/vmi_monitoring_test.go +++ b/tests/vmi_monitoring_test.go @@ -33,10 +33,12 @@ import ( 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/framework/kubevirt" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" ) var _ = Describe("[sig-compute]Health Monitoring", decorators.SigCompute, func() { @@ -50,7 +52,7 @@ var _ = Describe("[sig-compute]Health Monitoring", decorators.SigCompute, func() Describe("A VirtualMachineInstance with a watchdog device", func() { It("[test_id:4641]should be shut down when the watchdog expires", func() { vmi := tests.RunVMIAndExpectLaunch( - libvmi.NewAlpine(libvmi.WithWatchdog(v1.WatchdogActionPoweroff)), 360) + libvmifact.NewAlpine(libvmi.WithWatchdog(v1.WatchdogActionPoweroff)), 360) By("Expecting the VirtualMachineInstance console") Expect(console.LoginToAlpine(vmi)).To(Succeed()) diff --git a/tests/vmi_multiqueue_test.go b/tests/vmi_multiqueue_test.go index 5671b2b131ae..c3c334146219 100644 --- a/tests/vmi_multiqueue_test.go +++ b/tests/vmi_multiqueue_test.go @@ -46,7 +46,7 @@ import ( "kubevirt.io/kubevirt/tests/framework/kubevirt" "kubevirt.io/kubevirt/tests/libnet" "kubevirt.io/kubevirt/tests/libnode" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" ) @@ -67,7 +67,7 @@ var _ = Describe("[sig-compute]MultiQueue", decorators.SigCompute, func() { }) DescribeTable("should be able to successfully boot fedora to the login prompt with multi-queue without being blocked by selinux", func(interfaceModel string, expectedQueueCount int32) { - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) Expect(numCpus).To(BeNumerically("<=", availableCPUs), fmt.Sprintf("Testing environment only has nodes with %d CPUs available, but required are %d CPUs", availableCPUs, numCpus), ) @@ -136,7 +136,7 @@ var _ = Describe("[sig-compute]MultiQueue", decorators.SigCompute, func() { }) It("should be able to create a multi-queue VMI when requesting a single vCPU", func() { - vmi := libvmi.NewCirros() + vmi := libvmifact.NewCirros() vmi.Spec.Domain.CPU = &v1.CPU{Cores: 1, Sockets: 1, Threads: 1} vmi.Spec.Domain.Devices.NetworkInterfaceMultiQueue = pointer.Bool(true) diff --git a/tests/vmi_sound_test.go b/tests/vmi_sound_test.go index 9bc111c997b3..775c3328e185 100644 --- a/tests/vmi_sound_test.go +++ b/tests/vmi_sound_test.go @@ -39,7 +39,7 @@ import ( "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/console" "kubevirt.io/kubevirt/tests/framework/kubevirt" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/util" ) @@ -88,7 +88,7 @@ var _ = Describe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-c }) func createSoundVMI(virtClient kubecli.KubevirtClient, soundDevice string) (*v1.VirtualMachineInstance, error) { - randomVmi := libvmi.NewCirros() + randomVmi := libvmifact.NewCirros() if soundDevice != "" { model := soundDevice if soundDevice == "test-model-empty" { diff --git a/tests/vmi_tpm_test.go b/tests/vmi_tpm_test.go index fae2b3c0e253..f6596678ffc2 100644 --- a/tests/vmi_tpm_test.go +++ b/tests/vmi_tpm_test.go @@ -26,7 +26,7 @@ import ( "kubevirt.io/kubevirt/tests/libmigration" "kubevirt.io/kubevirt/tests/libnet" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/decorators" "kubevirt.io/kubevirt/tests/framework/kubevirt" @@ -52,7 +52,7 @@ var _ = Describe("[sig-compute]vTPM", decorators.SigCompute, decorators.Requires Context("[rfe_id:5168][crit:high][vendor:cnv-qe@redhat.com][level:component] with TPM VMI option enabled", func() { It("[test_id:8607] should expose a functional emulated TPM which persists across migrations", func() { By("Creating a VMI with TPM enabled") - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Spec.Domain.Devices.TPM = &v1.TPMDevice{} vmi = tests.RunVMIAndExpectLaunch(vmi, 60) diff --git a/tests/vmi_vsock_test.go b/tests/vmi_vsock_test.go index 4f55ff5122d0..d06ad67d2207 100644 --- a/tests/vmi_vsock_test.go +++ b/tests/vmi_vsock_test.go @@ -40,12 +40,14 @@ import ( "kubevirt.io/kubevirt/tests/libssh" + "kubevirt.io/kubevirt/pkg/libvmi" virtconfig "kubevirt.io/kubevirt/pkg/virt-config" "kubevirt.io/kubevirt/pkg/virt-launcher/virtwrap/api" + "kubevirt.io/kubevirt/tests/flags" "kubevirt.io/kubevirt/tests/framework/checks" "kubevirt.io/kubevirt/tests/framework/kubevirt" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/client-go/kubecli" @@ -67,7 +69,7 @@ var _ = Describe("[sig-compute]VSOCK", Serial, decorators.SigCompute, func() { Context("VM creation", func() { DescribeTable("should expose a VSOCK device", func(useVirtioTransitional bool) { By("Creating a VMI with VSOCK enabled") - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Spec.Domain.Devices.UseVirtioTransitional = &useVirtioTransitional vmi.Spec.Domain.Devices.AutoattachVSOCK = pointer.Bool(true) vmi = tests.RunVMIAndExpectLaunch(vmi, 60) @@ -125,7 +127,7 @@ var _ = Describe("[sig-compute]VSOCK", Serial, decorators.SigCompute, func() { It("should retain the CID for migration target", func() { By("Creating a VMI with VSOCK enabled") - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Spec.Domain.Devices.AutoattachVSOCK = pointer.Bool(true) vmi = tests.RunVMIAndExpectLaunch(vmi, 60) Expect(vmi.Status.VSOCKCID).NotTo(BeNil()) @@ -140,7 +142,7 @@ var _ = Describe("[sig-compute]VSOCK", Serial, decorators.SigCompute, func() { By("Creating a new VMI with VSOCK enabled on the same node") node := vmi.Status.NodeName - vmi2 := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi2 := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi2.Spec.Domain.Devices.AutoattachVSOCK = pointer.Bool(true) vmi2.Spec.Affinity = affinity(node) vmi2 = tests.RunVMIAndExpectLaunch(vmi2, 60) @@ -175,7 +177,7 @@ var _ = Describe("[sig-compute]VSOCK", Serial, decorators.SigCompute, func() { privateKeyPath, publicKey, err := libssh.GenerateKeyPair(GinkgoT().TempDir()) Expect(err).ToNot(HaveOccurred()) userData := libssh.RenderUserDataWithKey(publicKey) - vmi := libvmi.NewFedora( + vmi := libvmifact.NewFedora( libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()), libvmi.WithNetwork(v1.DefaultPodNetwork()), libvmi.WithCloudInitNoCloudUserData(userData), @@ -244,7 +246,7 @@ var _ = Describe("[sig-compute]VSOCK", Serial, decorators.SigCompute, func() { virtClient := kubevirt.Client() By("Creating a VMI with VSOCK enabled") - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Spec.Domain.Devices.AutoattachVSOCK = pointer.Bool(true) vmi = tests.RunVMIAndExpectLaunch(vmi, 60) @@ -257,7 +259,7 @@ var _ = Describe("[sig-compute]VSOCK", Serial, decorators.SigCompute, func() { virtClient := kubevirt.Client() By("Creating a VMI with VSOCK enabled") - vmi := libvmi.NewFedora(libnet.WithMasqueradeNetworking()...) + vmi := libvmifact.NewFedora(libnet.WithMasqueradeNetworking()...) vmi.Spec.Domain.Devices.AutoattachVSOCK = pointer.Bool(true) vmi = tests.RunVMIAndExpectLaunch(vmi, 60) diff --git a/tests/vnc_test.go b/tests/vnc_test.go index d4d549a14fbe..0b99c8c72903 100644 --- a/tests/vnc_test.go +++ b/tests/vnc_test.go @@ -56,7 +56,7 @@ import ( "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/framework/kubevirt" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" ) @@ -67,7 +67,7 @@ var _ = Describe("[rfe_id:127][crit:medium][arm64][vendor:cnv-qe@redhat.com][lev Describe("[rfe_id:127][crit:medium][vendor:cnv-qe@redhat.com][level:component]A new VirtualMachineInstance", func() { BeforeEach(func() { var err error - vmi = libvmi.NewGuestless() + vmi = libvmifact.NewGuestless() vmi, err = kubevirt.Client().VirtualMachineInstance(testsuite.GetTestNamespace(vmi)).Create(context.Background(), vmi, metav1.CreateOptions{}) Expect(err).ToNot(HaveOccurred()) vmi = libwait.WaitForSuccessfulVMIStart(vmi) diff --git a/tests/windows_test.go b/tests/windows_test.go index 183b2fa9d5e8..3a269bbf3f59 100644 --- a/tests/windows_test.go +++ b/tests/windows_test.go @@ -35,6 +35,7 @@ import ( "kubevirt.io/kubevirt/tests/libnode" + "kubevirt.io/kubevirt/pkg/libvmi" "kubevirt.io/kubevirt/pkg/virt-controller/watch/topology" . "github.com/onsi/ginkgo/v2" @@ -48,7 +49,7 @@ import ( "kubevirt.io/kubevirt/tests" "kubevirt.io/kubevirt/tests/libnet" "kubevirt.io/kubevirt/tests/libpod" - "kubevirt.io/kubevirt/tests/libvmi" + "kubevirt.io/kubevirt/tests/libvmifact" "kubevirt.io/kubevirt/tests/libwait" "kubevirt.io/kubevirt/tests/util" ) @@ -70,9 +71,9 @@ var _ = Describe("[Serial][sig-compute]Windows VirtualMachineInstance", Serial, BeforeEach(func() { const OSWindows = "windows" virtClient = kubevirt.Client() - checks.SkipIfMissingRequiredImage(virtClient, libvmi.WindowsPVCName) + checks.SkipIfMissingRequiredImage(virtClient, libvmifact.WindowsPVCName) libstorage.CreatePVC(OSWindows, testsuite.GetTestNamespace(nil), "30Gi", libstorage.Config.StorageClassWindows, true) - windowsVMI = libvmi.NewWindows(libnet.WithMasqueradeNetworking()...) + windowsVMI = libvmifact.NewWindows(libnet.WithMasqueradeNetworking()...) windowsVMI.Spec.Domain.Devices.Interfaces[0].Model = "e1000" }) @@ -115,7 +116,7 @@ var _ = Describe("[Serial][sig-compute]Windows VirtualMachineInstance", Serial, return err }, time.Minute*5, time.Second*15).ShouldNot(HaveOccurred()) By("Checking that the Windows VirtualMachineInstance has expected UUID") - Expect(output).Should(ContainSubstring(strings.ToUpper(libvmi.WindowsFirmware))) + Expect(output).Should(ContainSubstring(strings.ToUpper(libvmifact.WindowsFirmware))) }) It("[test_id:3159]should have default masquerade IP", func() {