@@ -39,15 +39,10 @@ import (
3939 "github.com/deckhouse/virtualization/test/e2e/internal/util"
4040)
4141
42- const (
43- // IPs on additional network interface for connectivity check between VMs.
44- // When VM has Main network, additional interface is eth1; otherwise it's eth0.
45- vmFooAdditionalIP = "192.168.1.10"
46- vmBarAdditionalIP = "192.168.1.11"
47- )
48-
4942type additionalNetworkTestCase struct {
5043 vmBarHasMainNetwork bool
44+ vmFooAdditionalIP string
45+ vmBarAdditionalIP string
5146}
5247
5348var _ = Describe ("VirtualMachineAdditionalNetworkInterfaces" , func () {
@@ -78,43 +73,38 @@ var _ = Describe("VirtualMachineAdditionalNetworkInterfaces", func() {
7873 By ("Environment preparation" , func () {
7974 ns := f .Namespace ().Name
8075
81- vdFooRoot = vd .New (
82- vd .WithName ("vd-foo-root" ),
83- vd .WithNamespace (ns ),
76+ vdFooRoot = object .NewHTTPVDAlpineUEFIPerf ("vd-foo-root" , ns ,
8477 vd .WithSize (ptr .To (resource .MustParse ("512Mi" ))),
85- vd .WithDataSourceHTTP (& v1alpha2.DataSourceHTTP {
86- URL : object .ImageURLAlpineUEFIPerf ,
87- }),
8878 )
89- vdBarRoot = vd .New (
90- vd .WithName ("vd-bar-root" ),
91- vd .WithNamespace (ns ),
79+ vdBarRoot = object .NewHTTPVDAlpineUEFIPerf ("vd-bar-root" , ns ,
9280 vd .WithSize (ptr .To (resource .MustParse ("512Mi" ))),
93- vd .WithDataSourceHTTP (& v1alpha2.DataSourceHTTP {
94- URL : object .ImageURLAlpineUEFIPerf ,
95- }),
9681 )
9782
9883 // vm-foo always has Main + ClusterNetwork so we can SSH to it.
99- vmFoo = buildVMWithNetworks ("vm-foo" , ns , vdFooRoot .Name , vmFooAdditionalIP , true )
100- vmBar = buildVMWithNetworks ("vm-bar" , ns , vdBarRoot .Name , vmBarAdditionalIP , tc .vmBarHasMainNetwork )
84+ vmFoo = buildVMWithNetworks ("vm-foo" , ns , vdFooRoot .Name , tc . vmFooAdditionalIP , true )
85+ vmBar = buildVMWithNetworks ("vm-bar" , ns , vdBarRoot .Name , tc . vmBarAdditionalIP , tc .vmBarHasMainNetwork )
10186
10287 err := f .CreateWithDeferredDeletion (context .Background (), vdFooRoot , vdBarRoot , vmFoo , vmBar )
10388 Expect (err ).NotTo (HaveOccurred ())
10489
10590 util .UntilObjectPhase (string (v1alpha2 .MachineRunning ), framework .LongTimeout , vmFoo , vmBar )
106- util .UntilVMAgentReady ( crclient . ObjectKeyFromObject ( vmFoo ) , framework .LongTimeout )
91+ util .UntilSSHReady ( f , vmFoo , framework .LongTimeout )
10792 if tc .vmBarHasMainNetwork {
108- util .UntilVMAgentReady ( crclient . ObjectKeyFromObject ( vmBar ) , framework .LongTimeout )
93+ util .UntilSSHReady ( f , vmBar , framework .LongTimeout )
10994 }
95+
96+ By (fmt .Sprintf ("Wait until vms %s and %s in phase running" , vmFoo .GetName (), vmBar .GetName ()), func () {
97+ util .UntilObjectPhase (string (v1alpha2 .MachineRunning ), framework .LongTimeout , vmFoo , vmBar )
98+ })
11099 })
111100
101+ // If test fail due this timeout, rollback in test waiting for agent to be ready.
112102 By ("Wait for additional network interfaces to be ready" , func () {
113103 util .UntilConditionStatus (vmcondition .TypeNetworkReady .String (), "True" , framework .LongTimeout , vmFoo , vmBar )
114104 })
115105
116106 By ("Check connectivity between VMs via additional network" , func () {
117- checkConnectivityBetweenVMs (f , vmFoo , vmBar , tc .vmBarHasMainNetwork )
107+ checkConnectivityBetweenVMs (f , vmFoo , vmBar , tc .vmBarHasMainNetwork , tc . vmBarAdditionalIP , tc . vmFooAdditionalIP )
118108 })
119109
120110 By ("Create VMOPs to trigger migration" , func () {
@@ -150,11 +140,11 @@ var _ = Describe("VirtualMachineAdditionalNetworkInterfaces", func() {
150140 })
151141
152142 By ("Check connectivity between VMs via additional network after migration" , func () {
153- checkConnectivityBetweenVMs (f , vmFoo , vmBar , tc .vmBarHasMainNetwork )
143+ checkConnectivityBetweenVMs (f , vmFoo , vmBar , tc .vmBarHasMainNetwork , tc . vmBarAdditionalIP , tc . vmFooAdditionalIP )
154144 })
155145 },
156- Entry ("Main + additional network" , additionalNetworkTestCase {vmBarHasMainNetwork : true }),
157- Entry ("Only additional network (vm-bar without Main)" , additionalNetworkTestCase {vmBarHasMainNetwork : false }),
146+ Entry ("Main + additional network" , additionalNetworkTestCase {vmBarHasMainNetwork : true , vmFooAdditionalIP : "192.168.42.10" , vmBarAdditionalIP : "192.168.42.11" }),
147+ Entry ("Only additional network (vm-bar without Main)" , additionalNetworkTestCase {vmBarHasMainNetwork : false , vmFooAdditionalIP : "192.168.42.12" , vmBarAdditionalIP : "192.168.42.13" }),
158148 )
159149})
160150
@@ -209,26 +199,21 @@ users:
209199 lock_passwd: False
210200 ssh_authorized_keys:
211201 - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFxcXHmwaGnJ8scJaEN5RzklBPZpVSic4GdaAsKjQoeA your_email@example.com
212- packages:
213- - qemu-guest-agent
214202write_files:
215203 - path: /etc/network/interfaces
216204 append: true
217205 content: |
218-
219206 auto %s
220207 iface %s inet static
221208 address %s
222209 netmask 255.255.255.0
223210runcmd:
224- - sudo rc-update add qemu-guest-agent default
225- - sudo rc-service qemu-guest-agent start
226- - sudo /etc/init.d/networking restart
227- - chown -R cloud:cloud /home/cloud
211+ - "rc-update add sshd && rc-service sshd start"
212+ - "rc-update add networking boot && rc-service networking restart"
228213` , ifaceName , ifaceName , additionalIP )
229214}
230215
231- func checkConnectivityBetweenVMs (f * framework.Framework , vmFoo , vmBar * v1alpha2.VirtualMachine , vmBarHasMainNetwork bool ) {
216+ func checkConnectivityBetweenVMs (f * framework.Framework , vmFoo , vmBar * v1alpha2.VirtualMachine , vmBarHasMainNetwork bool , vmBarAdditionalIP , vmFooAdditionalIP string ) {
232217 GinkgoHelper ()
233218
234219 pingCmd := "ping -c 2 -W 2 -w 5 -q %s 2>&1 | grep -o \" [0-9]\\ +%%\\ s*packet loss\" " // %% -> % in output
@@ -244,14 +229,14 @@ func checkConnectivityBetweenVMs(f *framework.Framework, vmFoo, vmBar *v1alpha2.
244229}
245230
246231const (
247- Interval = 5 * time .Second
232+ Interval = 1 * time .Second
248233 Timeout = 90 * time .Second
249234)
250235
251236func checkResultSSHCommand (f * framework.Framework , vmName , vmNamespace , cmd , equal string ) {
252237 GinkgoHelper ()
253238 Eventually (func () (string , error ) {
254- res , err := f .SSHCommand (vmName , vmNamespace , cmd )
239+ res , err := f .SSHCommand (vmName , vmNamespace , cmd , framework . WithSSHTimeout ( 5 * time . Second ) )
255240 if err != nil {
256241 return "" , fmt .Errorf ("cmd: %s\n stderr: %w" , cmd , err )
257242 }
0 commit comments