diff --git a/Vagrantfile b/Vagrantfile index c43b5ab7..378d75f0 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -265,12 +265,23 @@ Vagrant.configure("2") do |config| chmod 600 ~/.ssh/authorized_keys sudo sed -i '/^PermitRootLogin no/d' /etc/ssh/sshd_config SHELL + + # Define mount and/or volumes volume_mounts_dict = "" + volume_groups_dict = Hash.new { |h, k| h[k] = [] } if node.key? "volumes" node["volumes"].each do |volume| - volume_mounts_dict += "#{volume['name']}=#{volume['mount']}," if volume.key? "mount" + if volume.key? "mount" + raise "`mount` and `volume_group` values have been provided for #{volume['name']} volume in #{node['name']} node, use only one of them." if volume.key? "volume_group" + + volume_mounts_dict += "/dev/#{volume['name']}=#{volume['mount']}," + end + volume_groups_dict[volume["volume_group"]] << "/dev/#{volume['name']}" if volume.key? "volume_group" end end + vgs = "" + volume_groups_dict.each { |k, v| vgs += "#{k}=#{v.join(' ')}," } + # Setup QAT nodes nodeconfig.vm.provision "shell", inline: <<-SHELL source /etc/os-release || source /usr/lib/os-release @@ -300,14 +311,18 @@ Vagrant.configure("2") do |config| KRD_DEBUG: debug.to_s, PKG_DEBUG: debug.to_s, NODE_SRIOV_NUMVFS: node.fetch("sriov_numvfs", 0), - NODE_VOLUME: volume_mounts_dict[0...-1].to_s + NODE_VOLUME_MOUNTS: volume_mounts_dict[0...-1].to_s, + NODE_VOLUME_GROUPS: vgs[0...-1].to_s } sh.inline = <<-SHELL set -o xtrace cd /vagrant cmd="./node.sh" - if [[ $NODE_VOLUME ]]; then - cmd+=" -v $NODE_VOLUME" + if [[ $NODE_VOLUME_MOUNTS ]]; then + cmd+=" -v $NODE_VOLUME_MOUNTS" + fi + if [[ $NODE_VOLUME_GROUPS ]]; then + cmd+=" -g $NODE_VOLUME_GROUPS" fi cmd+=" | tee ~/node.log" eval $cmd diff --git a/ci/bootstrap.sh b/ci/bootstrap.sh index 7c940a2e..55df97c9 100755 --- a/ci/bootstrap.sh +++ b/ci/bootstrap.sh @@ -76,7 +76,7 @@ if [[ ${TEST_MULTINODE:-false} == "false" ]]; then device: 0 - name: sde size: 20 - mount: /mnt/disks/vol3 + volume_group: myvg1 controller: ${VBOX_CONTROLLER:-Virtual I/O Device SCSI controller} port: 4 device: 0 diff --git a/node.sh b/node.sh index 6034badf..d0c5e625 100755 --- a/node.sh +++ b/node.sh @@ -23,13 +23,14 @@ function usage { cat </dev/null || curl -fsSL http://bit.ly/install_pkg | PKG="lvm2" bash + for kv in ${dict_volumes_groups//,/ }; do + eval "sudo vgcreate ${kv%=*} ${kv#*=} -f" + done + sudo vgs + sudo pvdisplay + fi +} + # disable_k8s_ports() - Disable FirewallD ports used by Kubernetes Kubelet function disable_k8s_ports { local kubelet_ports=(6443 10250 10259 10257) @@ -251,11 +264,14 @@ function create_simulated_sriov_dev { ip link show } -while getopts "h?v:" opt; do +while getopts "h?v:g:" opt; do case $opt in v) dict_volumes="$OPTARG" ;; + g) + dict_volumes_groups="$OPTARG" + ;; h | \?) usage exit @@ -277,6 +293,7 @@ for kmod in rbd ip6table_filter; do done install_deps mount_partitions +create_volume_groups disable_k8s_ports create_pmem_namespaces enable_nvdimm_mixed_mode