github.com/m3db/m3@v1.5.0/scripts/vagrant/single/Vagrantfile (about) 1 # -*- mode: ruby -*- 2 # vi: set ft=ruby : 3 4 # Documentation: 5 # See vagrant/README.md 6 7 require 'etc' 8 9 # Boxes available at: https://vagrantcloud.com/search 10 $BOX=ENV['BOX'] 11 $BENCHMARK_TYPE=ENV['BENCHMARK_TYPE'] 12 $BOX_NUM=ENV['BOX_NUM'] 13 $GOOGLE_PROJECT_ID = ENV['GOOGLE_PROJECT_ID'] 14 $GOOGLE_JSON_KEY_LOCATION = ENV['GOOGLE_JSON_KEY_LOCATION'] 15 $USER = ENV['USER'] 16 $SSH_KEY = ENV['SSH_KEY'] 17 18 Vagrant.configure("2") do |config| 19 config.vm.box = $BOX 20 config.vm.synced_folder ".", "/vagrant", disabled: true 21 config.vm.network "forwarded_port", guest: 3000, host: 3333 22 23 # Local development provider 24 config.vm.provider "virtualbox" do |vb| 25 vb.name = "m3-dev-k8s" 26 27 # Assign half CPU cores 28 vb.cpus = Etc.nprocessors / 2 29 30 # Assign 3072mb RAM (has been known to start paging using only 2gb RAM) 31 vb.memory = 3072 32 end 33 34 config.vm.provider :google do |google, override| 35 if $BENCHMARK_TYPE == "HEAVY" 36 # For heavy benchmarks, use pre-emptible n1-standard-64: 37 google.machine_type = "n1-standard-64" 38 google.preemptible = true 39 google.auto_restart = false 40 google.on_host_maintenance = "TERMINATE" 41 else 42 # Normal benchmarks: 43 google.machine_type = "n1-standard-16" 44 google.preemptible = false 45 end 46 47 google.google_project_id = $GOOGLE_PROJECT_ID 48 google.google_json_key_location = $GOOGLE_JSON_KEY_LOCATION 49 50 google.name = "m3-dev" + $BOX_NUM + "-" + $USER 51 google.image_family = "ubuntu-1604-lts" 52 google.zone = "us-central1-f" 53 google.metadata = {} 54 google.tags = ['vagrantbox', 'dev'] 55 google.disk_size = '50' # 50gb 56 google.disk_type = 'pd-ssd' 57 google.autodelete_disk = true 58 59 override.ssh.username = $USER 60 override.ssh.private_key_path = $SSH_KEY 61 end 62 63 config.vm.provision "file", source: "../provision", destination: "$HOME/provision" 64 config.vm.provision "file", source: "../../../kube", destination: "$HOME/provision/kube" 65 66 config.vm.provision "shell", privileged: true, inline: <<-SHELL 67 cd provision && DOCKER_USER=#{$USER} ./setup_privileged.sh 68 SHELL 69 70 config.vm.provision "shell", privileged: false, inline: <<-SHELL 71 cd provision && ./setup_unprivileged.sh 72 SHELL 73 end