X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=ci%2Fdeploy.sh;h=5fcc38877ab3dd1ea64f75eac4887cb8277048ca;hb=de1e3ecb39655a5ae0f39db09f4f143c721de5e4;hp=1a84421eea17bdeccab87300c24eb92fe141aa99;hpb=cb503a62f938187a57bcea7565760a50b52a0c90;p=apex.git diff --git a/ci/deploy.sh b/ci/deploy.sh index 1a84421e..5fcc3887 100755 --- a/ci/deploy.sh +++ b/ci/deploy.sh @@ -40,7 +40,7 @@ DEPLOY_OPTIONS="" CONFIG=${CONFIG:-'/var/opt/opnfv'} RESOURCES=${RESOURCES:-"$CONFIG/images"} LIB=${LIB:-"$CONFIG/lib"} -OPNFV_NETWORK_TYPES="admin_network private_network public_network storage_network" +OPNFV_NETWORK_TYPES="admin_network private_network public_network storage_network api_network" VM_CPUS=4 VM_RAM=8 @@ -51,6 +51,7 @@ NET_MAP['admin_network']="br-admin" NET_MAP['private_network']="br-private" NET_MAP['public_network']="br-public" NET_MAP['storage_network']="br-storage" +NET_MAP['api_network']="br-api" ext_net_type="interface" ip_address_family=4 @@ -291,7 +292,7 @@ function configure_deps { virsh net-list --all | grep -E "default\s+active\s+yes" > /dev/null || virsh net-autostart --network default if [[ -z "$virtual" || "$virtual" == "FALSE" ]]; then - for network in ${OPNFV_NETWORK_TYPES}; do + for network in ${enabled_network_list}; do echo "${blue}INFO: Creating Virsh Network: $network & OVS Bridge: ${NET_MAP[$network]}${reset}" ovs-vsctl list-br | grep "^${NET_MAP[$network]}$" > /dev/null || ovs-vsctl add-br ${NET_MAP[$network]} virsh net-list --all | grep $network > /dev/null || (cat > ${libvirt_dir}/apex-virsh-net.xml && virsh net-define ${libvirt_dir}/apex-virsh-net.xml) << EOF @@ -523,7 +524,7 @@ EOF for i in $(seq 0 $vm_index); do if ! virsh list --all | grep baremetal${i} > /dev/null; then define_vm baremetal${i} network 41 'admin_network' $vcpus $ramsize - for n in private_network public_network storage_network; do + for n in private_network public_network storage_network api_network; do if [[ $enabled_network_list =~ $n ]]; then echo -n "$n " virsh attach-interface --domain baremetal${i} --type network --source $n --model rtl8139 --config @@ -803,11 +804,7 @@ function undercloud_prep_overcloud_deploy { exit 1 fi - # Handle different dataplanes - if [ "${deploy_options_array['dataplane']}" != 'ovs']; then - echo "${red}ovs is the only currently available dataplane. ${deploy_options_array['dataplane']} not implemented${reset}" - exit 1 - fi + # Make sure the correct overcloud image is available if [ ! -f $RESOURCES/overcloud-full-${SDN_IMAGE}.qcow2 ]; then @@ -821,6 +818,43 @@ function undercloud_prep_overcloud_deploy { ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" "rm -f overcloud-full.qcow2" scp ${SSH_OPTIONS[@]} $RESOURCES/overcloud-full-${SDN_IMAGE}.qcow2 "stack@$UNDERCLOUD":overcloud-full.qcow2 + # Install ovs-dpdk inside the overcloud image if it is enabled. + if [ "${deploy_options_array['dataplane']}" == 'ovs_dpdk' ]; then + # install dpdk packages before ovs + echo -e "${blue}INFO: Enabling kernel modules for dpdk inside overcloud image${reset}" + + ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" < vfio_pci.modules +#!/bin/bash +exec /sbin/modprobe vfio_pci >/dev/null 2>&1 +EOF + + cat << EOF > uio_pci_generic.modules +#!/bin/bash +exec /sbin/modprobe uio_pci_generic >/dev/null 2>&1 +EOF + + LIBGUESTFS_BACKEND=direct virt-customize --upload vfio_pci.modules:/etc/sysconfig/modules/ \ + --upload uio_pci_generic.modules:/etc/sysconfig/modules/ \ + --run-command "chmod 0755 /etc/sysconfig/modules/vfio_pci.modules" \ + --run-command "chmod 0755 /etc/sysconfig/modules/uio_pci_generic.modules" \ + --run-command "yum install -y /root/dpdk_rpms/*" \ + -a overcloud-full.qcow2 +EOI + elif [ "${deploy_options_array['dataplane']}" != 'ovs' ]; then + echo "${red}${deploy_options_array['dataplane']} not supported${reset}" + exit 1 + fi + + # Set ODL version accordingly + if [[ "${deploy_options_array['sdn_controller']}" == 'opendaylight' && "${deploy_options_array['odl_version']}" == 'boron' ]]; then + ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" < /dev/null parse_cmdline "$@" echo -e "${blue}INFO: Parsing network settings file...${reset}" parse_network_settings