Infra: Vagrant upgrade to focal
[csit.git] / csit.infra.vagrant / Vagrantfile
diff --git a/csit.infra.vagrant/Vagrantfile b/csit.infra.vagrant/Vagrantfile
new file mode 100644 (file)
index 0000000..4088ece
--- /dev/null
@@ -0,0 +1,85 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+Vagrant.configure("2") do |config|
+
+    # Configure cached packages to be shared between instances of the
+    # same base box.
+    if Vagrant.has_plugin?("vagrant-cachier")
+        config.cache.scope = :box
+    end
+
+    # Configure proxy if needed.
+    if Vagrant.has_plugin?("vagrant-proxyconf")
+        config.proxy.http     = "http://192.168.0.2:3128/"
+        config.proxy.https    = "http://192.168.0.2:3128/"
+        config.proxy.ftp      = "http://192.168.0.2:3128/"
+        config.proxy.no_proxy = "localhost,127.0.0.1"
+    end
+
+    # Configure testing network interfaces (tg).
+    config.vm.network :private_network, type: "dhcp", auto_config: false, virtualbox__intnet: "link1", nic_type: "82545em", mac: "0800270fe04d"
+    config.vm.network :private_network, type: "dhcp", auto_config: false, virtualbox__intnet: "link2", nic_type: "82545em", mac: "08002761f7ad"
+    config.vm.network :private_network, type: "dhcp", auto_config: false, virtualbox__intnet: "link3", nic_type: "82545em", mac: "080027dc5da4"
+
+    # Configure testing network interfaces (sut).
+    config.vm.network :private_network, type: "dhcp", auto_config: false, virtualbox__intnet: "link1", nic_type: "82545em", mac: "080027385e58"
+    config.vm.network :private_network, type: "dhcp", auto_config: false, virtualbox__intnet: "link2", nic_type: "82545em", mac: "080027e3f542"
+    config.vm.network :private_network, type: "dhcp", auto_config: false, virtualbox__intnet: "link3", nic_type: "82545em", mac: "0800274f7c63"
+
+    # Provision the box using ansible local (no Ansible installation needed
+    # on host).
+    config.vm.provision "ansible_local" do |ansible|
+        ansible.version = "latest"
+        ansible.compatibility_mode = "2.0"
+        ansible.become = true
+        ansible.verbose = false
+        ansible.limit = "vagrant"
+        ansible.inventory_path = "../fdio.infra.ansible/inventories/vagrant/hosts"
+        ansible.playbook = "../fdio.infra.ansible/site.yml"
+    end
+
+    config.vm.post_up_message = <<-MESSAGE
+    Your virtual machine is configured!
+
+    Login to the box using command:
+        vagrant ssh
+
+    To run some tests use the VPP Device bootstrap script, eg:
+        cd /home/vagrant/csit/resources/libraries/bash/entry
+        ./bootstrap_vpp_device.sh csit-vpp-device-master-ubuntu2004-1n-vbox
+
+    To run only selected tests based on TAGS, export environment variables
+    before running the test suite:
+        export GERRIT_EVENT_TYPE="comment-added"
+        export GERRIT_EVENT_COMMENT_TEXT="devicetest memif"
+        ./bootstrap_vpp_device.sh csit-vpp-device-master-ubuntu2004-1n-vbox
+
+    For more information please visit:
+        https://docs.fd.io/csit/master/report/
+        https://docs.fd.io/csit/master/trending/
+
+    MESSAGE
+
+    config.vm.define "focal", primary: true do |bionic|
+        # Base box definition, currently using
+        #  Official Ubuntu 20.04 LTS (Focal) Daily Build
+        bionic.vm.box = "ubuntu/focal64"
+        bionic.vm.box_version = "v20210407.0.0"
+        bionic.vm.box_check_update = false
+
+        # Virtualbox machine configuration
+        bionic.vm.provider "virtualbox" do |vb|
+            vb.name = "vppdevice-focal"
+            vb.gui = false
+            vb.memory = "8192"
+            vb.cpus = "4"
+            vb.customize ["modifyvm", :id, "--nicpromisc2", "allow-all"]
+            vb.customize ["modifyvm", :id, "--nicpromisc3", "allow-all"]
+            vb.customize ["modifyvm", :id, "--nicpromisc4", "allow-all"]
+            vb.customize ["modifyvm", :id, "--nicpromisc5", "allow-all"]
+            vb.customize ["modifyvm", :id, "--nicpromisc6", "allow-all"]
+            vb.customize ["modifyvm", :id, "--nicpromisc7", "allow-all"]
+        end
+    end
+end