lib.sh: modprobe br_netfilter, don't bail on err
[fuel.git] / mcp / scripts / lib.sh
index 6f3c438..02c23f3 100644 (file)
@@ -466,10 +466,13 @@ function wait_for {
 function do_sysctl_cfg {
   local _conf='/etc/sysctl.d/99-opnfv-fuel-bridge.conf'
   # https://wiki.libvirt.org/page/Net.bridge.bridge-nf-call_and_sysctl.conf
-  echo 'net.bridge.bridge-nf-call-arptables = 0' |& sudo tee "${_conf}"
-  echo 'net.bridge.bridge-nf-call-iptables = 0'  |& sudo tee -a "${_conf}"
-  echo 'net.bridge.bridge-nf-call-ip6tables = 0' |& sudo tee -a "${_conf}"
-  sudo sysctl -q -p "${_conf}"
+  if modprobe br_netfilter bridge; then
+    echo 'net.bridge.bridge-nf-call-arptables = 0' |& sudo tee "${_conf}"
+    echo 'net.bridge.bridge-nf-call-iptables = 0'  |& sudo tee -a "${_conf}"
+    echo 'net.bridge.bridge-nf-call-ip6tables = 0' |& sudo tee -a "${_conf}"
+    # Some distros / sysadmins explicitly blacklist br_netfilter
+    sudo sysctl -q -p "${_conf}" || true
+  fi
 }
 
 function get_nova_compute_pillar_data {
@@ -490,6 +493,7 @@ function do_templates() {
   RECLASS_CLUSTER_DIR=$(cd "${git_repo_root}/mcp/reclass/classes/cluster"; pwd)
   PHAROS_GEN_CFG="./pharos/config/utils/generate_config.py"
   PHAROS_INSTALLER_ADAPTER="./pharos/config/installers/fuel/pod_config.yml.j2"
+  PHAROS_INSTALLER_NETMAP="$(dirname "${PHAROS_INSTALLER_ADAPTER}")/net_map.j2"
   BASE_CONFIG_PDF="${lab_config_uri}/labs/${target_lab}/${target_pod}.yaml"
   BASE_CONFIG_IDF="${lab_config_uri}/labs/${target_lab}/idf-${target_pod}.yaml"
   LOCAL_PDF="${image_dir}/$(basename "${BASE_CONFIG_PDF}")"
@@ -522,8 +526,10 @@ function do_templates() {
   # shellcheck disable=SC2086
   find ${template_dirs} -name '*.j2' | while read -r tp; do
     # Jinja2 import does not allow '..' directory traversal
+    ln -sf "$(readlink -f "${PHAROS_INSTALLER_NETMAP}")" "$(dirname "${tp}")"
     if ! "${PHAROS_GEN_CFG}" -y "${LOCAL_PDF}" -j "${tp}" > "${tp%.j2}"; then
       notify_e "[ERROR] ${template_err_str}"
     fi
+    rm -f "$(dirname "${tp}")/$(basename "${PHAROS_INSTALLER_NETMAP}")"
   done
 }