diff --git a/.gitlab-ci/vagrant.yml b/.gitlab-ci/vagrant.yml
index a6c0e002d1a92a5145328383384345ac33c938cf..65b486bc38ab97ab0d7b8a58c7a1305ca195a998 100644
--- a/.gitlab-ci/vagrant.yml
+++ b/.gitlab-ci/vagrant.yml
@@ -1,7 +1,7 @@
 ---
 
 molecule_tests:
-  tags: [vagrant]
+  tags: [c3.small.x86]
   only: [/^pr-.*$/]
   except: ['triggers']
   image: quay.io/kubespray/vagrant:$KUBESPRAY_VERSION
@@ -22,7 +22,8 @@ molecule_tests:
     CI_PLATFORM: "vagrant"
     SSH_USER: "kubespray"
     VAGRANT_DEFAULT_PROVIDER: "libvirt"
-  tags: [vagrant]
+    KUBESPRAY_VAGRANT_CONFIG: tests/files/${CI_JOB_NAME}.rb
+  tags: [c3.small.x86]
   only: [/^pr-.*$/]
   except: ['triggers']
   image: quay.io/kubespray/vagrant:$KUBESPRAY_VERSION
@@ -40,4 +41,9 @@ molecule_tests:
 vagrant_ubuntu18-flannel:
   stage: deploy-part2
   extends: .vagrant
-  when: on_success
\ No newline at end of file
+  when: on_success
+
+vagrant_ubuntu18-weave-medium:
+  stage: deploy-part2
+  extends: .vagrant
+  when: manual
\ No newline at end of file
diff --git a/Vagrantfile b/Vagrantfile
index 0bba6fe8c85b455929db04b43cdb8a6c164e79ec..a4139b7885b37fb57f2411f7832b946958b906b6 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -7,7 +7,7 @@ require 'fileutils'
 
 Vagrant.require_version ">= 2.0.0"
 
-CONFIG = File.join(File.dirname(__FILE__), "vagrant/config.rb")
+CONFIG = File.join(File.dirname(__FILE__), ENV['KUBESPRAY_VAGRANT_CONFIG'] || 'vagrant/config.rb')
 
 COREOS_URL_TEMPLATE = "https://storage.googleapis.com/%s.release.core-os.net/amd64-usr/current/coreos_production_vagrant.json"
 FLATCAR_URL_TEMPLATE = "https://%s.release.flatcar-linux.net/amd64-usr/current/flatcar_production_vagrant.json"
diff --git a/tests/files/vagrant_ubuntu18-flannel.rb b/tests/files/vagrant_ubuntu18-flannel.rb
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/tests/files/vagrant_ubuntu18-weave-medium.rb b/tests/files/vagrant_ubuntu18-weave-medium.rb
new file mode 100644
index 0000000000000000000000000000000000000000..16be3aa6492797d578dbd5052136ca908ecc72d2
--- /dev/null
+++ b/tests/files/vagrant_ubuntu18-weave-medium.rb
@@ -0,0 +1,6 @@
+$num_instances = 16
+$vm_memory ||= 1600
+$os = "ubuntu1804"
+$network_plugin = "weave"
+$kube_master_instances = 1
+$etcd_instances = 1
diff --git a/tests/scripts/vagrant_clean.sh b/tests/scripts/vagrant_clean.sh
index 981c2d2f8be92e31ef9804a4dafa771c5c120c82..a29b52191febc045cd113848f5102db62cd4fb39 100755
--- a/tests/scripts/vagrant_clean.sh
+++ b/tests/scripts/vagrant_clean.sh
@@ -3,6 +3,8 @@ set -euxo pipefail
 
 # Cleanup vagrant VMs to avoid name conflicts
 
+apt-get install -y libvirt-clients
+
 for i in $(virsh list --name)
 do
     virsh destroy "$i"