X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=ci%2Fdeploy.sh;h=1b4dd95c8f97a671d8d13f2c4f094b5b3743d0f9;hb=2050647bd70043be2eb90a45b7173a25570b8c8d;hp=b13e18e7e5d4b1cfa334d5cbb70c910f7e444930;hpb=77942178b3aff6adc83b5f83645acfff467fa76a;p=fuel.git diff --git a/ci/deploy.sh b/ci/deploy.sh index b13e18e7e..1b4dd95c8 100755 --- a/ci/deploy.sh +++ b/ci/deploy.sh @@ -15,6 +15,7 @@ do_exit () { local RC=$? clean + cleanup_mounts if [ ${RC} -eq 0 ]; then notify "\n[OK] MCP: Openstack installation finished succesfully!\n\n" 2 else @@ -158,6 +159,7 @@ NO_DEPLOY_ENVIRONMENT=${NO_DEPLOY_ENVIRONMENT:-0} ERASE_ENV=${ERASE_ENV:-0} source "${DEPLOY_DIR}/globals.sh" +source "${DEPLOY_DIR}/lib.sh" # # END of variables to customize @@ -270,10 +272,10 @@ pushd "${DEPLOY_DIR}" > /dev/null # Install required packages [ -n "$(command -v apt-get)" ] && sudo apt-get install -y \ git make rsync mkisofs curl virtinst cpu-checker qemu-kvm uuid-runtime \ - libvirt-bin + libvirt-bin cloud-guest-utils e2fsprogs kpartx [ -n "$(command -v yum)" ] && sudo yum install -y --skip-broken \ git make rsync genisoimage curl virt-install qemu-kvm util-linux \ - libvirt + libvirt cloud-utils-growpart e2fsprogs kpartx # For baremetal, python is indirectly required for PDF parsing if [ "${DEPLOY_TYPE}" = 'baremetal' ]; then @@ -340,7 +342,6 @@ fi # Get required infra deployment data set +x -source lib.sh eval "$(parse_yaml "${SCENARIO_DIR}/defaults-$(uname -i).yaml")" eval "$(parse_yaml "${SCENARIO_DIR}/${DEPLOY_TYPE}/${DEPLOY_SCENARIO}.yaml")" eval "$(parse_yaml "${LOCAL_PDF_RECLASS}")" @@ -358,8 +359,25 @@ for node in "${virtual_nodes[@]}"; do done virtual_nodes_data=${virtual_nodes_data%|} +# Serialize repos, packages to (pre-)install/remove for: +# - foundation node VM base image (virtual: all VMs, baremetal: cfg01|mas01) +# - virtualized control plane VM base image (only when VCP is used) +base_image_flavors=common +if [[ "${cluster_states[*]}" =~ virtual_control ]]; then + base_image_flavors+=" control" +fi +for sc in ${base_image_flavors}; do + for va in apt_keys apt_repos pkg_install pkg_remove; do + key=virtual_${sc}_${va} + eval "${key}=\${${key}[@]// /|}" + eval "${key}=\${${key}// /,}" + virtual_repos_pkgs+="${!key}^" + done +done +virtual_repos_pkgs=${virtual_repos_pkgs%^} + # Expand reclass and virsh network templates -for tp in "${RECLASS_CLUSTER_DIR}/all-mcp-ocata-common/opnfv/"*.template \ +for tp in "${RECLASS_CLUSTER_DIR}/all-mcp-arch-common/opnfv/"*.template \ net_*.template; do eval "cat <<-EOF $(<"${tp}") @@ -368,9 +386,7 @@ done # Convert Pharos-compatible PDF to reclass network definitions if [ "${DEPLOY_TYPE}" = 'baremetal' ]; then - find "${RECLASS_CLUSTER_DIR}/${CLUSTER_DOMAIN%.local}" \ - "${RECLASS_CLUSTER_DIR}/${DEPLOY_TYPE}-mcp-ocata-common" \ - -name '*.j2' | while read -r tp + find "${RECLASS_CLUSTER_DIR}" -name '*.j2' | while read -r tp do if ! "${PHAROS_GEN_CONFIG_SCRIPT}" -y "${LOCAL_PDF}" \ -j "${tp}" > "${tp%.j2}"; then @@ -413,7 +429,8 @@ elif [ ${USE_EXISTING_INFRA} -gt 0 ]; then check_connection else generate_ssh_key - prepare_vms "${base_image}" "${STORAGE_DIR}" "${virtual_nodes[@]}" + prepare_vms "${base_image}" "${STORAGE_DIR}" "${virtual_repos_pkgs}" \ + "${virtual_nodes[@]}" create_networks "${OPNFV_BRIDGES[@]}" create_vms "${STORAGE_DIR}" "${virtual_nodes_data}" "${OPNFV_BRIDGES[@]}" update_mcpcontrol_network