Skip to content

Configuration

Variables

Variable Name Default Value Description
VAGRANT_DEFAULT_PROVIDER virtualbox Which Vagrant provider to use. Available are virtualbox and libvirt.
BOX_OS fedora Which set of Vagrantfiles to use to start the VMs, see Different OS / Vagrantfiles section.
BOX_IMAGE "" (empty) Override the VM box image used (only use for override purposes as the image is set based on the BOX_OS variable).
DISK_COUNT 2 Set how many additional disks will be added to the VMs.
DISK_SIZE_GB 20 GB Size of additional disks added to the VMs.
MASTER_CPUS 2 Core Amount of cores to use for the master VM.
MASTER_MEMORY_SIZE_GB 2 GB Size of memory (in GB) to be allocated for the master VM.
NODE_CPUS 1 Amount of cores to use for each node VM.
NODE_MEMORY_SIZE_GB 2 GB Size of memory (in GB) to be allocated for each node VM.
NODE_COUNT 2 How many worker nodes should be spawned.
LIBVIRT_STORAGE_POOL "default" Storage pool which libvirt should use. Libvirt only.
MASTER_IP 192.168.26.10 The Kubernetes master node IP.
NODE_IP_NW 192.168.26. The first three parts of the IPs used for the nodes.
POD_NW_CIDR 10.244.0.0/16 The Pod (container) network CIDR used for the CNI.
K8S_DASHBOARD false Install the Kubernetes dashboard addon.
K8S_DASHBOARD_VERSION v1.10.1 The Kubernetes dashboard addon version. Note it is recommended to at least version 1.10.1.
KUBE_WEB_VIEW false Install the kube-web-view from Henning Jacobs (Twitter: @try_except_). Access it using kubectl port-forward -n kube-web-view service/kube-web-view 8080:8080 and point your browser to http://127.0.0.1:8080/.
CLUSTER_NAME k8s-vagrant-multi-node The name of the directory the Makefile is in. This is not the Kubernetes cluster name, due to kubeadm init limitations.
KUBETOKEN "" (empty) The kubeadm "join" token to use. Will be generated automatically using /dev/urandom/ when empty.
KUBEADM_INIT_FLAGS "" (empty) The kubeadm init flags to use. (When KUBERNETES_VERSION is set and KUBEADM_INIT_FLAGS is empty, KUBEADM_INIT_FLAGS will automatically be set to --kubernetes-version=$KUBERNETES_VERSION).
KUBEADM_JOIN_FLAGS "" (empty) The kubeadm join flags to use.
KUBERNETES_VERSION "" (empty) The kubeadm and kubelet package and API server version to install. Must be a fully qualified version, e.g., 1.18.3, v1.18.3, but not just 1.18.
KUBERNETES_PKG_VERSION_SUFFIX "" (empty) String which will be appended to the kubeadm and kubelet package versions when installed (only used for vagrantfiles/ubuntu).
KUBE_PROXY_IPVS false Enable IPVS kernel modules to then use IPVS for the kube-proxy.
KUBE_NETWORK calico What CNI to install, if empty don't install any CNI. calico, canal, flannel and none are supported options. none will cause no CNI to be installed. (See Different OS / Vagrantfiles for OS specific overrides, none is never overriden).
KUBECTL_AUTO_CONF true If kubectl should be automatically configured to be able to talk with the cluster (if disabled, removes need for kubectl binary).
USER_SSHPUBKEY "" (empty) Your SSH public key (not private) to add to the VMs vagrant users .ssh/authorized_keys file during VM provisioning.
USER_POST_INSTALL_SCRIPT_PATH "" (empty) Path to a custom script to run after the Kubernetes cluster has been created. This script will be run on the master and all nodes of the cluster.
HTTP_PROXY "" (empty) HTTP proxy to set for package installation and the Docker daemon (for pulling images).
HTTPS_PROXY "" (empty) HTTPS proxy to set for package installation and the Docker daemon (for pulling images).
HTTP_PROXY_USERNAME "" (empty) Only used for CentOS yum and Fedora dnf package managers. HTTP and HTTPS proxy username.
HTTP_PROXY_PASSWORD "" (empty) Only used for CentOS yum and Fedora dnf package managers. HTTP and HTTPS proxy password.
NO_PROXY "" (empty) NO_PROXY / no_proxy list to set for the Docker daemon (for pulling images). It is currently not possible to set this for package installation.
INSTALL_ADDITIONAL_PACKAGES "" (empty) List of additional packages to install in the VMs (packages are space separated; the variable is directly passed to the pacakge manager install command).
VAGRANT vagrant Path to vagrant binary (only needed when vagrant is no in your PATH)
KUBECTL kubectl Path to kubectl binary (only needed when kubectl is no in your PATH)
PARALLEL_VM_START false (Only use if you know what the effects can be) If master and nodes should be started in parallel, this does not affect the nodes creation + startup. This is normally controlled by passing -j JOBS to the make command.
NETWORK_VM_MTU 1500 Set to, e.g., 1350, to have the VMs interfaces MTU be set to 1350. This can be used to prevent issues with VPNs running on the host machine (e.g., OpenVPN, Wireguard, etc).
KUBE_NETWORK_MTU 1450 Use in combination with the NETWORK_VM_MTU parameter, this should be set to the value of NETWORK_VM_MTU - 50.