Skip to content
Snippets Groups Projects
Select Git revision
  • 15363530ae113a8ec0614fc180fa0a8450871024
  • master default protected
  • v2.28.0
  • v2.27.0
  • v2.25.1
  • v2.24.3
  • v2.26.0
  • v2.24.2
  • v2.25.0
  • v2.24.1
  • v2.22.2
  • v2.23.3
  • v2.24.0
  • v2.23.2
  • v2.23.1
  • v2.23.0
  • v2.22.1
  • v2.22.0
  • v2.21.0
  • v2.20.0
  • v2.19.1
  • v2.18.2
22 results

Vagrantfile

Blame
    • edemsea's avatar
      80c87db1
      Define custom playbook in Vagrantfile · 80c87db1
      edemsea authored
      This change allows the playbook used in Vagrant to be
      defined by the end user.
      
      This is useful in the case where a developer may want to use
      their own playbook that imports Kubespray, but also leverage
      the Kubespray Vagrantfile.
      80c87db1
      History
      Define custom playbook in Vagrantfile
      edemsea authored
      This change allows the playbook used in Vagrant to be
      defined by the end user.
      
      This is useful in the case where a developer may want to use
      their own playbook that imports Kubespray, but also leverage
      the Kubespray Vagrantfile.
    Vagrantfile 6.55 KiB
    # -*- mode: ruby -*-
    # # vi: set ft=ruby :
    
    require 'fileutils'
    
    Vagrant.require_version ">= 2.0.0"
    
    CONFIG = File.join(File.dirname(__FILE__), "vagrant/config.rb")
    
    COREOS_URL_TEMPLATE = "https://storage.googleapis.com/%s.release.core-os.net/amd64-usr/current/coreos_production_vagrant.json"
    
    # Uniq disk UUID for libvirt
    DISK_UUID = Time.now.utc.to_i
    
    SUPPORTED_OS = {
      "coreos-stable" => {box: "coreos-stable",      bootstrap_os: "coreos", user: "core", box_url: COREOS_URL_TEMPLATE % ["stable"]},
      "coreos-alpha"  => {box: "coreos-alpha",       bootstrap_os: "coreos", user: "core", box_url: COREOS_URL_TEMPLATE % ["alpha"]},
      "coreos-beta"   => {box: "coreos-beta",        bootstrap_os: "coreos", user: "core", box_url: COREOS_URL_TEMPLATE % ["beta"]},
      "ubuntu"        => {box: "bento/ubuntu-16.04", bootstrap_os: "ubuntu", user: "vagrant"},
      "centos"        => {box: "centos/7",           bootstrap_os: "centos", user: "vagrant"},
      "opensuse"      => {box: "opensuse/openSUSE-42.3-x86_64", bootstrap_os: "opensuse", use: "vagrant"},
      "opensuse-tumbleweed" => {box: "opensuse/openSUSE-Tumbleweed-x86_64", bootstrap_os: "opensuse", use: "vagrant"},
    }
    
    # Defaults for config options defined in CONFIG
    $num_instances = 3
    $instance_name_prefix = "k8s"
    $vm_gui = false
    $vm_memory = 2048
    $vm_cpus = 1
    $shared_folders = {}
    $forwarded_ports = {}
    $subnet = "172.17.8"
    $os = "ubuntu"
    $network_plugin = "flannel"
    # The first three nodes are etcd servers
    $etcd_instances = $num_instances
    # The first two nodes are kube masters
    $kube_master_instances = $num_instances == 1 ? $num_instances : ($num_instances - 1)
    # All nodes are kube nodes
    $kube_node_instances = $num_instances
    # The following only works when using the libvirt provider
    $kube_node_instances_with_disks = false
    $kube_node_instances_with_disks_size = "20G"
    $kube_node_instances_with_disks_number = 2
    
    $playbook = "cluster.yml"
    
    $local_release_dir = "/vagrant/temp"
    
    host_vars = {}
    
    if File.exist?(CONFIG)
      require CONFIG
    end
    
    $box = SUPPORTED_OS[$os][:box]
    # if $inventory is not set, try to use example
    $inventory = File.join(File.dirname(__FILE__), "inventory", "sample") if ! $inventory
    
    # if $inventory has a hosts file use it, otherwise copy over vars etc
    # to where vagrant expects dynamic inventory to be.
    if ! File.exist?(File.join(File.dirname($inventory), "hosts"))
      $vagrant_ansible = File.join(File.dirname(__FILE__), ".vagrant",
                           "provisioners", "ansible")
      FileUtils.mkdir_p($vagrant_ansible) if ! File.exist?($vagrant_ansible)
      if ! File.exist?(File.join($vagrant_ansible,"inventory"))
        FileUtils.ln_s($inventory, File.join($vagrant_ansible,"inventory"))
      end
    end