aboutsummaryrefslogtreecommitdiffstats
path: root/csit.infra.vagrant/Vagrantfile
blob: 8a6e8d19b2691e23c609739548fa77e9124e13ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# -*- 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"

    config.vm.synced_folder "../", "/vagrant/csit"

    # Provision the box using ansible local (no Ansible installation needed
    # on host).
    config.vm.provision "ansible_local" do |ansible|
        ansible.version = "2.10.8"
        ansible.install_mode = "pip"
        ansible.pip_install_cmd = "curl -s https://bootstrap.pypa.io/get-pip.py | sudo python3"
        ansible.become = true
        ansible.verbose = false
        ansible.limit = "vagrant"
        ansible.inventory_path = "csit/fdio.infra.ansible/inventories/vagrant_inventory/hosts"
        ansible.playbook = "csit/fdio.infra.ansible/site.yaml"
    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 |focal|
        # Base box definition, currently using
        #  Official Ubuntu 20.04 LTS (Focal) Daily Build
        focal.vm.box = "ubuntu/focal64"
        focal.vm.box_version = "20210415.0.0"
        focal.vm.box_check_update = false

        # Virtualbox machine configuration
        focal.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