Skip to content

Commit

Permalink
Merge pull request kubevirt#12304 from RoniKishner/cloud_init_echo_re…
Browse files Browse the repository at this point in the history
…move

Use factory function instead of echo hello string in libvmi uses
  • Loading branch information
kubevirt-bot authored Jul 16, 2024
2 parents b968896 + 25240a1 commit e24f3bb
Show file tree
Hide file tree
Showing 9 changed files with 24 additions and 27 deletions.
12 changes: 10 additions & 2 deletions tests/libvmifact/factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
package libvmifact

import (
"encoding/base64"

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

"kubevirt.io/kubevirt/pkg/libvmi"
Expand Down Expand Up @@ -59,7 +61,7 @@ func NewCirros(opts ...libvmi.Option) *kvirtv1.VirtualMachineInstance {

// Supplied with no user data, Cirros image takes 230s to allow login
if libvmi.GetCloudInitVolume(vmi) == nil {
withNonEmptyUserData := libvmi.WithCloudInitNoCloud(libvmici.WithNoCloudEncodedUserData("#!/bin/bash\necho hello\n"))
withNonEmptyUserData := libvmi.WithCloudInitNoCloud(WithDummyCloudForFastBoot())
withNonEmptyUserData(vmi)
}
return vmi
Expand Down Expand Up @@ -89,7 +91,7 @@ func NewAlpineWithTestTooling(opts ...libvmi.Option) *kvirtv1.VirtualMachineInst

// Supplied with no user data, AlpimeWithTestTooling image takes more than 200s to allow login
if libvmi.GetCloudInitVolume(vmi) == nil {
withNonEmptyUserData := libvmi.WithCloudInitNoCloud(libvmici.WithNoCloudEncodedUserData("#!/bin/bash\necho hello\n"))
withNonEmptyUserData := libvmi.WithCloudInitNoCloud(WithDummyCloudForFastBoot())
withNonEmptyUserData(vmi)
}
return vmi
Expand Down Expand Up @@ -154,3 +156,9 @@ func NewWindows(opts ...libvmi.Option) *kvirtv1.VirtualMachineInstance {
vmi.Spec.Domain.Firmware = &kvirtv1.Firmware{UUID: WindowsFirmware}
return vmi
}

func WithDummyCloudForFastBoot() libvmici.NoCloudOption {
return func(source *kvirtv1.CloudInitNoCloudSource) {
source.UserDataBase64 = base64.StdEncoding.EncodeToString([]byte("#!/bin/bash\necho 'hello'\n"))
}
}
6 changes: 3 additions & 3 deletions tests/migration/migration.go
Original file line number Diff line number Diff line change
Expand Up @@ -1104,7 +1104,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() {

It("[test_id:3240]should be successfully with a cloud init", func() {
// Start the VirtualMachineInstance with the PVC attached
vmi := newVMIWithDataVolumeForMigration(cd.ContainerDiskCirros, k8sv1.ReadWriteMany, sc, libvmi.WithCloudInitNoCloud(libvmici.WithNoCloudEncodedUserData("#!/bin/bash\necho 'hello'\n")))
vmi := newVMIWithDataVolumeForMigration(cd.ContainerDiskCirros, k8sv1.ReadWriteMany, sc, libvmi.WithCloudInitNoCloud(libvmifact.WithDummyCloudForFastBoot()))
vmi.Spec.Hostname = fmt.Sprintf("%s", cd.ContainerDiskCirros)
vmi = tests.RunVMIAndExpectLaunch(vmi, 180)

Expand Down Expand Up @@ -1172,7 +1172,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() {
libvmi.WithPersistentVolumeClaim("disk0", dv.Name),
libvmi.WithResourceMemory(fedoraVMSize),
libvmi.WithRng(),
libvmi.WithCloudInitNoCloud(libvmici.WithNoCloudEncodedUserData("#!/bin/bash\n echo hello\n")),
libvmi.WithCloudInitNoCloud(libvmifact.WithDummyCloudForFastBoot()),
)

vmi = tests.RunVMIAndExpectLaunchIgnoreWarnings(vmi, 180)
Expand Down Expand Up @@ -2015,7 +2015,7 @@ var _ = SIGMigrationDescribe("VM Live Migration", func() {
libvmi.WithNetwork(v1.DefaultPodNetwork()),
libvmi.WithDataVolume("disk0", dv.Name),
libvmi.WithResourceMemory("1Gi"),
libvmi.WithCloudInitNoCloud(libvmici.WithNoCloudEncodedUserData("#!/bin/bash\n echo hello\n")),
libvmi.WithCloudInitNoCloud(libvmifact.WithDummyCloudForFastBoot()),
)
return vmi
}
Expand Down
6 changes: 3 additions & 3 deletions tests/storage/datavolume.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@ import (

"kubevirt.io/kubevirt/pkg/apimachinery/patch"
"kubevirt.io/kubevirt/pkg/libvmi"
libvmici "kubevirt.io/kubevirt/pkg/libvmi/cloudinit"
virtconfig "kubevirt.io/kubevirt/pkg/virt-config"

"kubevirt.io/kubevirt/tests"
Expand All @@ -67,6 +66,7 @@ import (
"kubevirt.io/kubevirt/tests/libdv"
"kubevirt.io/kubevirt/tests/libpod"
"kubevirt.io/kubevirt/tests/libstorage"
"kubevirt.io/kubevirt/tests/libvmifact"
"kubevirt.io/kubevirt/tests/libwait"
"kubevirt.io/kubevirt/tests/testsuite"
)
Expand Down Expand Up @@ -140,7 +140,7 @@ var _ = SIGDescribe("DataVolume Integration", func() {
dataVolume, err := virtClient.CdiClient().CdiV1beta1().DataVolumes(testsuite.GetTestNamespace(nil)).Create(context.Background(), dataVolume, metav1.CreateOptions{})
Expect(err).ToNot(HaveOccurred())

vmi := libstorage.RenderVMIWithDataVolume(dataVolume.Name, dataVolume.Namespace, libvmi.WithCloudInitNoCloud(libvmici.WithNoCloudEncodedUserData("#!/bin/bash\necho hello\n")))
vmi := libstorage.RenderVMIWithDataVolume(dataVolume.Name, dataVolume.Namespace, libvmi.WithCloudInitNoCloud(libvmifact.WithDummyCloudForFastBoot()))
vmi = tests.RunVMIAndExpectLaunch(vmi, 500)

By("Expecting the VirtualMachineInstance console")
Expand Down Expand Up @@ -1148,7 +1148,7 @@ var _ = SIGDescribe("DataVolume Integration", func() {
dataVolume = dvChange(dataVolume)
preallocated := dataVolume.Spec.Preallocation != nil && *dataVolume.Spec.Preallocation

vmi := libstorage.RenderVMIWithDataVolume(dataVolume.Name, testsuite.GetTestNamespace(nil), libvmi.WithCloudInitNoCloud(libvmici.WithNoCloudEncodedUserData("#!/bin/bash\n echo hello\n")))
vmi := libstorage.RenderVMIWithDataVolume(dataVolume.Name, testsuite.GetTestNamespace(nil), libvmi.WithCloudInitNoCloud(libvmifact.WithDummyCloudForFastBoot()))
vmi.Spec.Domain.Devices.Disks[0].DiskDevice.Disk.Bus = "scsi"

dataVolume, err = virtClient.CdiClient().CdiV1beta1().DataVolumes(testsuite.GetTestNamespace(nil)).Create(context.Background(), dataVolume, metav1.CreateOptions{})
Expand Down
3 changes: 1 addition & 2 deletions tests/storage/export.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ import (
"kubevirt.io/kubevirt/pkg/apimachinery/patch"
certutil "kubevirt.io/kubevirt/pkg/certificates/triple/cert"
"kubevirt.io/kubevirt/pkg/libvmi"
libvmici "kubevirt.io/kubevirt/pkg/libvmi/cloudinit"
virtpointer "kubevirt.io/kubevirt/pkg/pointer"
"kubevirt.io/kubevirt/pkg/virt-operator/resource/generate/components"

Expand Down Expand Up @@ -1848,7 +1847,7 @@ var _ = SIGDescribe("Export", func() {

vm := libvmi.NewVirtualMachine(
libstorage.RenderVMIWithDataVolume(dataVolume.Name, testsuite.GetTestNamespace(nil),
libvmi.WithCloudInitNoCloud(libvmici.WithNoCloudEncodedUserData(bashHelloScript)),
libvmi.WithCloudInitNoCloud(libvmifact.WithDummyCloudForFastBoot()),
libvmi.WithDataVolume("blankdisk", blankDv.Name),
),
libvmi.WithRunStrategy(virtv1.RunStrategyAlways),
Expand Down
2 changes: 1 addition & 1 deletion tests/storage/hotplug.go
Original file line number Diff line number Diff line change
Expand Up @@ -1161,7 +1161,7 @@ var _ = SIGDescribe("Hotplug", func() {
vmi := libvmi.New(
libvmi.WithDataVolume("disk0", dataVolume.Name),
libvmi.WithResourceMemory("256Mi"),
libvmi.WithCloudInitNoCloud(libvmici.WithNoCloudEncodedUserData("#!/bin/bash\n echo hello\n")),
libvmi.WithCloudInitNoCloud(libvmifact.WithDummyCloudForFastBoot()),
libvmi.WithInterface(libvmi.InterfaceDeviceWithMasqueradeBinding()),
libvmi.WithNetwork(v1.DefaultPodNetwork()),
// Stir things up, /dev/urandom access will be needed
Expand Down
3 changes: 1 addition & 2 deletions tests/storage/migration.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ import (

"kubevirt.io/kubevirt/pkg/controller"
"kubevirt.io/kubevirt/pkg/libvmi"
libvmici "kubevirt.io/kubevirt/pkg/libvmi/cloudinit"
"kubevirt.io/kubevirt/pkg/pointer"
storagetypes "kubevirt.io/kubevirt/pkg/storage/types"
virtconfig "kubevirt.io/kubevirt/pkg/virt-config"
Expand Down Expand Up @@ -183,7 +182,7 @@ var _ = SIGDescribe("[Serial]Volumes update with migration", Serial, func() {
libvmi.WithNetwork(virtv1.DefaultPodNetwork()),
libvmi.WithResourceMemory("128Mi"),
libvmi.WithDataVolume(volName, dv.Name),
libvmi.WithCloudInitNoCloud(libvmici.WithNoCloudEncodedUserData("#!/bin/bash\necho hello\n")),
libvmi.WithCloudInitNoCloud(libvmifact.WithDummyCloudForFastBoot()),
)
vm := libvmi.NewVirtualMachine(vmi,
libvmi.WithRunning(),
Expand Down
9 changes: 3 additions & 6 deletions tests/storage/restore.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ import (

"kubevirt.io/kubevirt/pkg/apimachinery/patch"
"kubevirt.io/kubevirt/pkg/libvmi"
libvmici "kubevirt.io/kubevirt/pkg/libvmi/cloudinit"
virtpointer "kubevirt.io/kubevirt/pkg/pointer"
typesStorage "kubevirt.io/kubevirt/pkg/storage/types"
"kubevirt.io/kubevirt/tests"
Expand Down Expand Up @@ -65,8 +64,6 @@ const (
macAddressCloningPatchPattern = `{"op": "replace", "path": "/spec/template/spec/domain/devices/interfaces/0/macAddress", "value": "%s"}`
firmwareUUIDCloningPatchPattern = `{"op": "replace", "path": "/spec/template/spec/domain/firmware/uuid", "value": "%s"}`

bashHelloScript = "#!/bin/bash\necho 'hello'\n"

onlineSnapshot = true
offlineSnaphot = false
)
Expand Down Expand Up @@ -261,7 +258,7 @@ var _ = SIGDescribe("VirtualMachineRestore Tests", func() {
),
)
return libvmi.NewVirtualMachine(
libstorage.RenderVMIWithDataVolume(dv.Name, dv.Namespace, libvmi.WithCloudInitNoCloud(libvmici.WithNoCloudEncodedUserData(bashHelloScript))),
libstorage.RenderVMIWithDataVolume(dv.Name, dv.Namespace, libvmi.WithCloudInitNoCloud(libvmifact.WithDummyCloudForFastBoot())),
libvmi.WithDataVolumeTemplate(dv),
)
}
Expand Down Expand Up @@ -1205,7 +1202,7 @@ var _ = SIGDescribe("VirtualMachineRestore Tests", func() {
memory = "256Mi"
}
vmi = libstorage.RenderVMIWithDataVolume(originalPVCName, testsuite.GetTestNamespace(nil),
libvmi.WithResourceMemory(memory), libvmi.WithCloudInitNoCloud(libvmici.WithNoCloudEncodedUserData(bashHelloScript)))
libvmi.WithResourceMemory(memory), libvmi.WithCloudInitNoCloud(libvmifact.WithDummyCloudForFastBoot()))
vm, vmi = createAndStartVM(libvmi.NewVirtualMachine(vmi))

doRestore("", console.LoginToCirros, offlineSnaphot, getTargetVMName(restoreToNewVM, newVmName))
Expand Down Expand Up @@ -1761,7 +1758,7 @@ var _ = SIGDescribe("VirtualMachineRestore Tests", func() {
)

return libvmi.NewVirtualMachine(
libstorage.RenderVMIWithDataVolume(dataVolume.Name, sourceDV.Namespace, libvmi.WithCloudInitNoCloud(libvmici.WithNoCloudEncodedUserData(bashHelloScript))),
libstorage.RenderVMIWithDataVolume(dataVolume.Name, sourceDV.Namespace, libvmi.WithCloudInitNoCloud(libvmifact.WithDummyCloudForFastBoot())),
libvmi.WithDataVolumeTemplate(dataVolume),
)
}
Expand Down
7 changes: 1 addition & 6 deletions tests/storage/storage.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ import (

hostdisk "kubevirt.io/kubevirt/pkg/host-disk"
"kubevirt.io/kubevirt/pkg/libvmi"
libvmici "kubevirt.io/kubevirt/pkg/libvmi/cloudinit"
"kubevirt.io/kubevirt/pkg/pointer"
virtconfig "kubevirt.io/kubevirt/pkg/virt-config"
"kubevirt.io/kubevirt/pkg/virt-launcher/virtwrap/converter"
Expand All @@ -80,10 +79,6 @@ const (
startingVMInstance = "Starting VirtualMachineInstance"
hostDiskName = "host-disk"
diskImgName = "disk.img"

// Without cloud init user data Cirros takes long time to boot,
// so provide this dummy data to make it boot faster
cirrosUserData = "#!/bin/bash\necho 'hello'\n"
)

const (
Expand Down Expand Up @@ -970,7 +965,7 @@ var _ = SIGDescribe("Storage", func() {
vmi = libvmi.New(
libvmi.WithResourceMemory("256Mi"),
libvmi.WithPersistentVolumeClaim("disk0", dataVolume.Name),
libvmi.WithCloudInitNoCloud(libvmici.WithNoCloudEncodedUserData(cirrosUserData)),
libvmi.WithCloudInitNoCloud(libvmifact.WithDummyCloudForFastBoot()),
)
vmi = tests.RunVMIAndExpectLaunch(vmi, 90)

Expand Down
3 changes: 1 addition & 2 deletions tests/vm_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@ import (

"kubevirt.io/kubevirt/pkg/controller"
"kubevirt.io/kubevirt/pkg/libvmi"
libvmici "kubevirt.io/kubevirt/pkg/libvmi/cloudinit"
virtctl "kubevirt.io/kubevirt/pkg/virtctl/vm"

"kubevirt.io/kubevirt/tests"
Expand Down Expand Up @@ -191,7 +190,7 @@ var _ = Describe("[rfe_id:1177][crit:medium][vendor:[email protected]][level:com
libvmi.WithDataVolume("disk0", dataVolume.Name),
libvmi.WithResourceMemory("256Mi"),
libvmi.WithNamespace(testsuite.GetTestNamespace(nil)),
libvmi.WithCloudInitNoCloud(libvmici.WithNoCloudEncodedUserData("#!/bin/bash\necho hello\n")),
libvmi.WithCloudInitNoCloud(libvmifact.WithDummyCloudForFastBoot()),
libvmi.WithTerminationGracePeriod(30),
), dataVolume
}
Expand Down

0 comments on commit e24f3bb

Please sign in to comment.