diff --git a/.gitlab-ci/vagrant.yml b/.gitlab-ci/vagrant.yml
index 65b486bc38ab97ab0d7b8a58c7a1305ca195a998..596e06be33d64deb5a45e51c99f29b1b4611f1d4 100644
--- a/.gitlab-ci/vagrant.yml
+++ b/.gitlab-ci/vagrant.yml
@@ -20,7 +20,7 @@ molecule_tests:
   extends: .testcases
   variables:
     CI_PLATFORM: "vagrant"
-    SSH_USER: "kubespray"
+    SSH_USER: "vagrant"
     VAGRANT_DEFAULT_PROVIDER: "libvirt"
     KUBESPRAY_VAGRANT_CONFIG: tests/files/${CI_JOB_NAME}.rb
   tags: [c3.small.x86]
@@ -34,9 +34,9 @@ molecule_tests:
     - python -m pip install -r tests/requirements.txt
     - ./tests/scripts/vagrant_clean.sh
   script:
-    - vagrant up
+    - ./tests/scripts/testcases_run.sh
   after_script:
-    - vagrant destroy --force
+    - chronic ./tests/scripts/testcases_cleanup.sh
 
 vagrant_ubuntu18-flannel:
   stage: deploy-part2
@@ -46,4 +46,4 @@ vagrant_ubuntu18-flannel:
 vagrant_ubuntu18-weave-medium:
   stage: deploy-part2
   extends: .vagrant
-  when: manual
\ No newline at end of file
+  when: manual
diff --git a/Vagrantfile b/Vagrantfile
index 55954960fd78182fa3206529405d3b204c8fb8e1..517ffb5b7dd2a963e71995dacedf53a233423de6 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -69,7 +69,7 @@ $disk_size ||= "20GB"
 $local_path_provisioner_enabled ||= false
 $local_path_provisioner_claim_root ||= "/opt/local-path-provisioner/"
 
-$playbook = "cluster.yml"
+$playbook ||= "cluster.yml"
 
 host_vars = {}
 
diff --git a/docs/ci.md b/docs/ci.md
index 684b57fad8be2baa7456e7bb9535ef155d350425..831bd159eb4d40f887b592106485a847578b3655 100644
--- a/docs/ci.md
+++ b/docs/ci.md
@@ -16,7 +16,7 @@ fedora31 |  :x: | :x: | :x: | :x: | :white_check_mark: | :x: | :x: | :x: | :x: |
 opensuse |  :x: | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: | :x: |
 oracle7 |  :x: | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: | :x: |
 ubuntu16 |  :x: | :white_check_mark: | :x: | :white_check_mark: | :white_check_mark: | :x: | :white_check_mark: | :x: | :white_check_mark: |
-ubuntu18 |  :white_check_mark: | :x: | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: |
+ubuntu18 |  :white_check_mark: | :x: | :white_check_mark: | :x: | :white_check_mark: | :x: | :x: | :x: | :white_check_mark: |
 ubuntu20 |  :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: | :x: | :x: |
 
 ## crio
diff --git a/tests/Makefile b/tests/Makefile
index bc495d81ac759da7698399ee186caabdfbe7a3ed..2902e1ed4a64a91aba8528341efe0d771f647fd5 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -72,3 +72,11 @@ delete-packet:
 	-e @"files/${CI_JOB_NAME}.yml" \
 	-e test_id=$(TEST_ID) \
 	-e inventory_path=$(INVENTORY)
+
+create-vagrant:
+	vagrant up
+	find / -name vagrant_ansible_inventory
+	cp  /builds/kargo-ci/kubernetes-sigs-kubespray/inventory/sample/vagrant_ansible_inventory $(INVENTORY)
+
+delete-vagrant:
+	vagrant destroy -f
\ No newline at end of file
diff --git a/tests/files/vagrant_ubuntu18-flannel.rb b/tests/files/vagrant_ubuntu18-flannel.rb
index 95af989cee34560fc8d6cdaf8071f3ad256b1fb0..25b86904c31e6696b16347935265fd016c559cc9 100644
--- a/tests/files/vagrant_ubuntu18-flannel.rb
+++ b/tests/files/vagrant_ubuntu18-flannel.rb
@@ -3,4 +3,5 @@ $libvirt_volume_cache = "unsafe"
 
 # Checking for box update can trigger API rate limiting
 # https://www.vagrantup.com/docs/vagrant-cloud/request-limits.html
-$box_check_update = false
\ No newline at end of file
+$box_check_update = false
+$vm_cpus = 2
\ No newline at end of file
diff --git a/tests/files/vagrant_ubuntu18-flannel.yml b/tests/files/vagrant_ubuntu18-flannel.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e878a5e388a12930cd3e800c7154e3e8318b96a0
--- /dev/null
+++ b/tests/files/vagrant_ubuntu18-flannel.yml
@@ -0,0 +1,7 @@
+---
+# Kubespray settings
+
+kube_network_plugin: flannel
+
+deploy_netchecker: true
+dns_min_replicas: 1
\ No newline at end of file
diff --git a/tests/files/vagrant_ubuntu18-weave-medium.rb b/tests/files/vagrant_ubuntu18-weave-medium.rb
index 16be3aa6492797d578dbd5052136ca908ecc72d2..ae16510c35a978c72b7639f9ce5edf332e44d60e 100644
--- a/tests/files/vagrant_ubuntu18-weave-medium.rb
+++ b/tests/files/vagrant_ubuntu18-weave-medium.rb
@@ -4,3 +4,4 @@ $os = "ubuntu1804"
 $network_plugin = "weave"
 $kube_master_instances = 1
 $etcd_instances = 1
+$playbook = "tests/cloud_playbooks/wait-for-ssh.yml"
diff --git a/tests/files/vagrant_ubuntu18-weave-medium.yml b/tests/files/vagrant_ubuntu18-weave-medium.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3c3647837179e9da768c26ed00ef3b837b3c2bfc
--- /dev/null
+++ b/tests/files/vagrant_ubuntu18-weave-medium.yml
@@ -0,0 +1,7 @@
+---
+# Kubespray settings
+
+kube_network_plugin: weave
+
+deploy_netchecker: true
+dns_min_replicas: 1
diff --git a/tests/testcases/040_check-network-adv.yml b/tests/testcases/040_check-network-adv.yml
index 91bfdac7f6a57e78a7a45fb609c46bf8793ea53c..3bdf9cce4937c863a2269a5e941368bca80b6335 100644
--- a/tests/testcases/040_check-network-adv.yml
+++ b/tests/testcases/040_check-network-adv.yml
@@ -188,7 +188,7 @@
           EOF
       when:
         - inventory_hostname == groups['kube-master'][0]
-        - kube_network_plugin_multus|default(false)
+        - kube_network_plugin_multus|bool|default(false)
 
     - name: Annotate pod with macvlan network
       # We cannot use only shell: below because Ansible will render the text
@@ -212,7 +212,7 @@
           EOF
       when:
         - inventory_hostname == groups['kube-master'][0]
-        - kube_network_plugin_multus|default(false)
+        - kube_network_plugin_multus|bool|default(false)
 
     - name: Check secondary macvlan interface
       shell: "{{ bin_dir }}/kubectl exec samplepod -- ip addr show dev net1"
@@ -222,4 +222,4 @@
       changed_when: false
       when:
         - inventory_hostname == groups['kube-master'][0]
-        - kube_network_plugin_multus|default(false)
+        - kube_network_plugin_multus|bool|default(false)