github.com/looshlee/cilium@v1.6.12/examples/getting-started/Vagrantfile (about)

     1  # -*- mode: ruby -*-
     2  # vi: set ft=ruby :
     3  
     4  Vagrant.require_version ">= 2.0.0"
     5  
     6  # Note: Cilium version must remain pinned to a v1.4 branch version.
     7  #
     8  # We do not have binary packages for iproute2 with BPF templating support
     9  # so if we change this version without otherwise providing those packages
    10  # then this GSG VM will break!
    11  cilium_version = (ENV['CILIUM_VERSION'] || "v1.4.1")
    12  cilium_opts = (ENV['CILIUM_OPTS'] || "--kvstore consul --kvstore-opt consul.address=127.0.0.1:8500 -t vxlan")
    13  cilium_tag = (ENV['CILIUM_TAG'] || "v1.4.1")
    14  
    15  # This runs only once when vagrant box is provisioned for the first time
    16  $bootstrap = <<SCRIPT
    17  # install docker-compose
    18  curl -sS -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    19  chmod +x /usr/local/bin/docker-compose
    20  
    21  # install cilium client
    22  curl -sS -L "http://releases.cilium.io/#{cilium_version}/cilium-x86_64" -o /usr/local/bin/cilium
    23  chmod +x /usr/local/bin/cilium
    24  
    25  # Store specified tag and options for docker-compose so we can rerun easily
    26  cat > /home/vagrant/cilium/examples/getting-started/.env <<EOF
    27  CILIUM_TAG=#{cilium_tag}
    28  CILIUM_OPTS=#{cilium_opts}
    29  EOF
    30  
    31  # cd into getting-started directory by default
    32  echo 'cd ~/cilium/examples/getting-started' >> /home/vagrant/.bashrc
    33  SCRIPT
    34  
    35  # This is run every time vagrant box is booted
    36  $run = <<SCRIPT
    37  sudo mount bpffs /sys/fs/bpf -t bpf
    38  cd ~/cilium/examples/getting-started
    39  sudo -E docker-compose up -d --remove-orphans
    40  SCRIPT
    41  
    42  Vagrant.configure(2) do |config|
    43      config.vm.box = "bento/ubuntu-18.04"
    44  
    45      # http://foo-o-rama.com/vagrant--stdin-is-not-a-tty--fix.html
    46      config.vm.provision "fix-no-tty", type: "shell" do |s|
    47  	s.privileged = false
    48  	s.inline = "sudo sed -i '/tty/!s/mesg n/tty -s \\&\\& mesg n/' /root/.profile"
    49      end
    50  
    51      config.vm.synced_folder "../..", "/home/vagrant/cilium", disabled: false
    52  
    53      config.vm.provider "virtualbox" do |vb|
    54          # Do not inherit DNS server from host, use proxy
    55          vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
    56          vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
    57          vb.memory = 2048
    58      end
    59  
    60      # install docker runtime
    61      config.vm.provision :docker, images: [
    62  	"consul:0.8.3",
    63  	"cilium/cilium:#{cilium_tag}"
    64      ]
    65  
    66      config.vm.provision "bootstrap", type: "shell", inline: $bootstrap
    67      config.vm.provision "run", type: "shell", run: "always",
    68         env: {"CILIUM_TAG" => cilium_tag, "CILIUM_OPTS" => cilium_opts},
    69         privileged: false, inline: $run
    70  
    71  end