diff options
88 files changed, 607 insertions, 786 deletions
diff --git a/ci/deploy.sh b/ci/deploy.sh index dc5f77427..f6c3591d2 100755 --- a/ci/deploy.sh +++ b/ci/deploy.sh @@ -33,11 +33,15 @@ $(notify "$(basename "$0"): Deploy the Fuel@OPNFV MCP stack" 3) $(notify "USAGE:" 2) $(basename "$0") -b base-uri -l lab-name -p pod-name -s deploy-scenario \\ [-B PXE Bridge [-B Mgmt Bridge [-B Internal Bridge [-B Public Bridge]]]] \\ - [-S storage-dir] [-L /path/to/log/file.tar.gz] + [-S storage-dir] [-L /path/to/log/file.tar.gz] [-f] [-F] [-e] [-d] $(notify "OPTIONS:" 2) -b Base-uri for the stack-configuration structure -B Bridge(s): 1st usage = PXE, 2nd = Mgmt, 3rd = Internal, 4th = Public + -d Dry-run + -e Do not launch environment deployment + -f Deploy on existing Salt master + -F Do only create a Salt master -h Print this message and exit -l Lab-name -p Pod-name @@ -45,14 +49,6 @@ $(notify "OPTIONS:" 2) -S Storage dir for VM images -L Deployment log path and file name -$(notify "DISABLED OPTIONS (not yet supported with MCP):" 3) - -d (disabled) Dry-run - -e (disabled) Do not launch environment deployment - -f (disabled) Deploy on existing Salt master - -F (disabled) Do only create a Salt master - -i (disabled) iso url - -T (disabled) Timeout, in minutes, for the deploy. - $(notify "Description:" 2) Deploys the Fuel@OPNFV stack on the indicated lab resource. @@ -77,6 +73,10 @@ $(notify "Input parameters to the build script are:" 2) For baremetal deploys, PXE bridge is used for baremetal node provisioning, while "mcpcontrol" is used to provision the infrastructure VMs only. The default is 'pxebr'. +-d Dry-run - Produce deploy config files, but do not execute deploy +-e Do not launch environment deployment +-f Deploy on existing Salt master +-F Do only create a Salt master -h Print this message and exit -L Deployment log path and name, eg. -L /home/jenkins/job.log.tar.gz -l Lab name as defined in the configuration directory, e.g. lf @@ -85,16 +85,6 @@ $(notify "Input parameters to the build script are:" 2) has to be defined in config directory (e.g. os-odl-nofeature-ha). -S Storage dir for VM images, default is mcp/deploy/images -$(notify "Disabled input parameters (not yet supported with MCP):" 3) --d (disabled) Dry-run - Produce deploy config files, but do not execute deploy --f (disabled) Deploy on existing Salt master --e (disabled) Do not launch environment deployment --F (disabled) Do only create a Salt master --T (disabled) Timeout, in minutes, for the deploy. - It defaults to using the DEPLOY_TIMEOUT environment variable when defined. --i (disabled) .iso image to be deployed (needs to be provided in a URI - style, it can be a local resource: file:// or a remote resource http(s)://) - $(notify "[NOTE] sudo & virsh priviledges are needed for this script to run" 3) Example: @@ -144,30 +134,14 @@ OPNFV_BRIDGES=('pxebr' 'mgmt' 'internal' 'public') URI_REGEXP='(file|https?|ftp)://.*' BASE_CONFIG_URI="file://${REPO_ROOT_PATH}/mcp/config" -export SSH_KEY=${SSH_KEY:-"/var/lib/opnfv/mcp.rsa"} -export SALT_MASTER=${INSTALLER_IP:-10.20.0.2} -export SALT_MASTER_USER=${SALT_MASTER_USER:-ubuntu} -export MAAS_IP=${MAAS_IP:-${SALT_MASTER%.*}.3} -export MAAS_PXE_NETWORK=${MAAS_PXE_NETWORK:-192.168.11.0} +# Customize deploy workflow +DRY_RUN=${DRY_RUN:-0} +USE_EXISTING_INFRA=${USE_EXISTING_INFRA:-0} +INFRA_CREATION_ONLY=${INFRA_CREATION_ONLY:-0} +NO_DEPLOY_ENVIRONMENT=${NO_DEPLOY_ENVIRONMENT:-0} -# Derivated from above global vars -export MCP_CTRL_NETWORK_ROOTSTR=${SALT_MASTER%.*} -export MAAS_PXE_NETWORK_ROOTSTR=${MAAS_PXE_NETWORK%.*} -export SSH_OPTS="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ${SSH_KEY}" -export SSH_SALT="${SALT_MASTER_USER}@${SALT_MASTER}" +source "${DEPLOY_DIR}/globals.sh" -# Variables below are disabled for now, to be re-introduced or removed later -set +x -USE_EXISTING_FUEL='' -FUEL_CREATION_ONLY='' -NO_DEPLOY_ENVIRONMENT='' -DRY_RUN=0 -if ! [ -z "${DEPLOY_TIMEOUT}" ]; then - DEPLOY_TIMEOUT="-dt ${DEPLOY_TIMEOUT}" -else - DEPLOY_TIMEOUT="" -fi -set -x # # END of variables to customize ############################################################################## @@ -177,7 +151,7 @@ set -x # set +x OPNFV_BRIDGE_IDX=0 -while getopts "b:B:dfFl:L:p:s:S:T:i:he" OPTION +while getopts "b:B:dfFl:L:p:s:S:he" OPTION do case $OPTION in b) @@ -201,20 +175,16 @@ do IFS=${OIFS} ;; d) - notify '' 3 "${OPTION}"; continue DRY_RUN=1 ;; f) - notify '' 3 "${OPTION}"; continue - USE_EXISTING_FUEL='-nf' + USE_EXISTING_INFRA=1 ;; F) - notify '' 3 "${OPTION}"; continue - FUEL_CREATION_ONLY='-fo' + INFRA_CREATION_ONLY=1 ;; e) - notify '' 3 "${OPTION}"; continue - NO_DEPLOY_ENVIRONMENT='-nde' + NO_DEPLOY_ENVIRONMENT=1 ;; l) TARGET_LAB=${OPTARG} @@ -236,19 +206,6 @@ do STORAGE_DIR="${OPTARG}" fi ;; - T) - notify '' 3 "${OPTION}"; continue - DEPLOY_TIMEOUT="-dt ${OPTARG}" - ;; - i) - notify '' 3 "${OPTION}"; continue - ISO=${OPTARG} - if [[ ! $ISO =~ ${URI_REGEXP} ]]; then - notify "[ERROR] -i $ISO - invalid URI\n" - usage - exit 1 - fi - ;; h) usage exit 0 @@ -311,7 +268,9 @@ make -C "${REPO_ROOT_PATH}/mcp/patches" deepclean patches-import PHAROS_GEN_CONFIG_SCRIPT="./pharos/config/utils/generate_config.py" PHAROS_INSTALLER_ADAPTER="./pharos/config/installers/fuel/pod_config.yml.j2" BASE_CONFIG_PDF="${BASE_CONFIG_URI}/labs/${TARGET_LAB}/${TARGET_POD}.yaml" +BASE_CONFIG_IDF="${BASE_CONFIG_URI}/labs/${TARGET_LAB}/idf-${TARGET_POD}.yaml" LOCAL_PDF="${STORAGE_DIR}/$(basename "${BASE_CONFIG_PDF}")" +LOCAL_IDF="${STORAGE_DIR}/$(basename "${BASE_CONFIG_IDF}")" LOCAL_PDF_RECLASS="${STORAGE_DIR}/pod_config.yml" if ! curl --create-dirs -o "${LOCAL_PDF}" "${BASE_CONFIG_PDF}"; then if [ "${DEPLOY_TYPE}" = 'baremetal' ]; then @@ -320,6 +279,8 @@ if ! curl --create-dirs -o "${LOCAL_PDF}" "${BASE_CONFIG_PDF}"; then else notify "[WARN] Could not retrieve PDF (Pod Descriptor File)!\n" 3 fi +elif ! curl -o "${LOCAL_IDF}" "${BASE_CONFIG_IDF}"; then + notify "[WARN] POD has no IDF (Installer Descriptor File)!\n" 3 elif ! "${PHAROS_GEN_CONFIG_SCRIPT}" -y "${LOCAL_PDF}" \ -j "${PHAROS_INSTALLER_ADAPTER}" > "${LOCAL_PDF_RECLASS}"; then notify "[ERROR] Could not convert PDF to reclass model input!\n" 1>&2 @@ -345,9 +306,12 @@ if [ ! -f "${SCENARIO_DIR}/defaults-$(uname -i).yaml" ]; then 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}")" +set -x export CLUSTER_DOMAIN=${cluster_domain} @@ -361,27 +325,66 @@ done # Expand reclass and virsh network templates for tp in "${RECLASS_CLUSTER_DIR}/all-mcp-ocata-common/opnfv/"*.template \ - net_*.template; do envsubst < "${tp}" > "${tp%.template}"; done + net_*.template; do + eval "cat <<-EOF + $(<"${tp}") + EOF" 2> /dev/null > "${tp%.template}" +done -# Infra setup -generate_ssh_key -prepare_vms virtual_nodes "${base_image}" "${STORAGE_DIR}" -create_networks OPNFV_BRIDGES -create_vms virtual_nodes virtual_nodes_ram virtual_nodes_vcpus \ - OPNFV_BRIDGES "${STORAGE_DIR}" -update_mcpcontrol_network -start_vms virtual_nodes -check_connection +# Map PDF networks 'admin', 'mgmt', 'private' and 'public' to bridge names +BR_NAMES=('admin' 'mgmt' 'private' 'public') +BR_NETS=( \ + "${parameters__param_opnfv_maas_pxe_address}" \ + "${parameters__param_opnfv_infra_config_address}" \ + "${parameters__param_opnfv_openstack_compute_node01_tenant_address}" \ + "${parameters__param_opnfv_openstack_compute_node01_external_address}" \ +) +for ((i = 0; i < ${#BR_NETS[@]}; i++)); do + br_jump=$(eval echo "\$parameters__param_opnfv_jump_bridge_${BR_NAMES[i]}") + if [ -n "${br_jump}" ] && [ "${br_jump}" != 'None' ] && \ + [ -d "/sys/class/net/${br_jump}/bridge" ]; then + notify "[OK] Bridge found for '${BR_NAMES[i]}': ${br_jump}\n" 2 + OPNFV_BRIDGES[${i}]="${br_jump}" + elif [ -n "${BR_NETS[i]}" ]; then + bridge=$(ip addr | awk "/${BR_NETS[i]%.*}./ {print \$NF; exit}") + if [ -n "${bridge}" ] && [ -d "/sys/class/net/${bridge}/bridge" ]; then + notify "[OK] Bridge found for net ${BR_NETS[i]%.*}.0: ${bridge}\n" 2 + OPNFV_BRIDGES[${i}]="${bridge}" + fi + fi +done +notify "[NOTE] Using bridges: ${OPNFV_BRIDGES[*]}\n" 2 -./salt.sh "${LOCAL_PDF_RECLASS}" +# Infra setup +if [ ${DRY_RUN} -eq 1 ]; then + notify "Dry run, skipping all deployment tasks\n" 2 1>&2 + exit 0 +elif [ ${USE_EXISTING_INFRA} -eq 1 ]; then + notify "Use existing infra\n" 2 1>&2 + check_connection +else + generate_ssh_key + prepare_vms virtual_nodes "${base_image}" "${STORAGE_DIR}" + create_networks OPNFV_BRIDGES + create_vms virtual_nodes virtual_nodes_ram virtual_nodes_vcpus \ + OPNFV_BRIDGES "${STORAGE_DIR}" + update_mcpcontrol_network + start_vms virtual_nodes + check_connection + ./salt.sh "${LOCAL_PDF_RECLASS}" +fi # Openstack cluster setup -for state in "${cluster_states[@]}"; do - notify "STATE: ${state}\n" 2 - # shellcheck disable=SC2086,2029 - ssh ${SSH_OPTS} "ubuntu@${SALT_MASTER}" \ - sudo "/root/fuel/mcp/config/states/${state} || true" -done +if [ ${INFRA_CREATION_ONLY} -eq 1 ] || [ ${NO_DEPLOY_ENVIRONMENT} -eq 1 ]; then + notify "Skip openstack cluster setup\n" 2 +else + for state in "${cluster_states[@]}"; do + notify "STATE: ${state}\n" 2 + # shellcheck disable=SC2086,2029 + ssh ${SSH_OPTS} "${SSH_SALT}" \ + sudo "/root/fuel/mcp/config/states/${state} || true" + done +fi ./log.sh "${DEPLOY_LOG}" diff --git a/docs/release/installation/img/addnodes.png b/docs/release/installation/img/addnodes.png Binary files differdeleted file mode 100644 index b62405692..000000000 --- a/docs/release/installation/img/addnodes.png +++ /dev/null diff --git a/docs/release/installation/img/compute.png b/docs/release/installation/img/compute.png Binary files differdeleted file mode 100644 index fc1cf0f22..000000000 --- a/docs/release/installation/img/compute.png +++ /dev/null diff --git a/docs/release/installation/img/computelist.png b/docs/release/installation/img/computelist.png Binary files differdeleted file mode 100644 index 474196536..000000000 --- a/docs/release/installation/img/computelist.png +++ /dev/null diff --git a/docs/release/installation/img/fuelconsole1.png b/docs/release/installation/img/fuelconsole1.png Binary files differdeleted file mode 100644 index 61703cab1..000000000 --- a/docs/release/installation/img/fuelconsole1.png +++ /dev/null diff --git a/docs/release/installation/img/fuelmenu1.png b/docs/release/installation/img/fuelmenu1.png Binary files differdeleted file mode 100644 index 4b5097ff4..000000000 --- a/docs/release/installation/img/fuelmenu1.png +++ /dev/null diff --git a/docs/release/installation/img/fuelmenu2.png b/docs/release/installation/img/fuelmenu2.png Binary files differdeleted file mode 100644 index 42cd75f62..000000000 --- a/docs/release/installation/img/fuelmenu2.png +++ /dev/null diff --git a/docs/release/installation/img/fuelmenu3.png b/docs/release/installation/img/fuelmenu3.png Binary files differdeleted file mode 100644 index 174cb5004..000000000 --- a/docs/release/installation/img/fuelmenu3.png +++ /dev/null diff --git a/docs/release/installation/img/fuelmenu4.png b/docs/release/installation/img/fuelmenu4.png Binary files differdeleted file mode 100644 index 0e218fca7..000000000 --- a/docs/release/installation/img/fuelmenu4.png +++ /dev/null diff --git a/docs/release/installation/img/fuelmenu5.png b/docs/release/installation/img/fuelmenu5.png Binary files differdeleted file mode 100644 index b1063d576..000000000 --- a/docs/release/installation/img/fuelmenu5.png +++ /dev/null diff --git a/docs/release/installation/img/fuelmenu6.png b/docs/release/installation/img/fuelmenu6.png Binary files differdeleted file mode 100644 index 16d641e9f..000000000 --- a/docs/release/installation/img/fuelmenu6.png +++ /dev/null diff --git a/docs/release/installation/img/grub-1.png b/docs/release/installation/img/grub-1.png Binary files differdeleted file mode 100644 index 113178948..000000000 --- a/docs/release/installation/img/grub-1.png +++ /dev/null diff --git a/docs/release/installation/img/health.png b/docs/release/installation/img/health.png Binary files differdeleted file mode 100644 index 57bd8cf70..000000000 --- a/docs/release/installation/img/health.png +++ /dev/null diff --git a/docs/release/installation/img/interfaceconf.png b/docs/release/installation/img/interfaceconf.png Binary files differdeleted file mode 100644 index e00b03f03..000000000 --- a/docs/release/installation/img/interfaceconf.png +++ /dev/null diff --git a/docs/release/installation/img/interfaces.png b/docs/release/installation/img/interfaces.png Binary files differdeleted file mode 100644 index 291e434f6..000000000 --- a/docs/release/installation/img/interfaces.png +++ /dev/null diff --git a/docs/release/installation/img/network.png b/docs/release/installation/img/network.png Binary files differdeleted file mode 100644 index 7bef05064..000000000 --- a/docs/release/installation/img/network.png +++ /dev/null diff --git a/docs/release/installation/img/neutronl3.png b/docs/release/installation/img/neutronl3.png Binary files differdeleted file mode 100644 index 36291ef87..000000000 --- a/docs/release/installation/img/neutronl3.png +++ /dev/null diff --git a/docs/release/installation/img/newenv.png b/docs/release/installation/img/newenv.png Binary files differdeleted file mode 100644 index d6bc2827f..000000000 --- a/docs/release/installation/img/newenv.png +++ /dev/null diff --git a/docs/release/installation/img/nodes.png b/docs/release/installation/img/nodes.png Binary files differdeleted file mode 100644 index 771e4813d..000000000 --- a/docs/release/installation/img/nodes.png +++ /dev/null diff --git a/docs/release/installation/img/offloadingmodes.png b/docs/release/installation/img/offloadingmodes.png Binary files differdeleted file mode 100644 index 5b3cb17bc..000000000 --- a/docs/release/installation/img/offloadingmodes.png +++ /dev/null diff --git a/docs/release/installation/img/other.png b/docs/release/installation/img/other.png Binary files differdeleted file mode 100644 index c088488dc..000000000 --- a/docs/release/installation/img/other.png +++ /dev/null diff --git a/docs/release/installation/img/plugin_install.png b/docs/release/installation/img/plugin_install.png Binary files differdeleted file mode 100644 index ff50633ed..000000000 --- a/docs/release/installation/img/plugin_install.png +++ /dev/null diff --git a/docs/release/installation/img/plugins.png b/docs/release/installation/img/plugins.png Binary files differdeleted file mode 100644 index 8f7ea596f..000000000 --- a/docs/release/installation/img/plugins.png +++ /dev/null diff --git a/docs/release/installation/img/verifynet.png b/docs/release/installation/img/verifynet.png Binary files differdeleted file mode 100644 index e675562c0..000000000 --- a/docs/release/installation/img/verifynet.png +++ /dev/null diff --git a/docs/release/installation/installation.instruction.rst b/docs/release/installation/installation.instruction.rst index bc1b913e8..fbf22d168 100644 --- a/docs/release/installation/installation.instruction.rst +++ b/docs/release/installation/installation.instruction.rst @@ -6,81 +6,42 @@ Abstract ======== -This document describes how to install the Danube release of +This document describes how to install the Euphrates release of OPNFV when using Fuel as a deployment tool, covering its usage, limitations, dependencies and required system resources. +This is an unified documentation for both x86_64 and aarch64 +architectures. All information is common for both architectures +except when explicitly stated. ============ Introduction ============ This document provides guidelines on how to install and -configure the Danube release of OPNFV when using Fuel as a +configure the Euphrates release of OPNFV when using Fuel as a deployment tool, including required software and hardware configurations. -Although the available installation options give a high degree of -freedom in how the system is set-up, including architecture, services +Although the available installation options provide a high de.g.ee of +freedom in how the system is set up, including architecture, services and features, etc., said permutations may not provide an OPNFV -compliant reference architecture. This instruction provides a -step-by-step guide that results in an OPNFV Danube compliant +compliant reference architecture. This document provides a +step-by-step guide that results in an OPNFV Euphrates compliant deployment. -The audience of this document is assumed to have good knowledge in +The audience of this document is assumed to have good knowledge of networking and Unix/Linux administration. ======= Preface ======= -Before starting the installation of the Danube release of +Before starting the installation of the Euphrates release of OPNFV, using Fuel as a deployment tool, some planning must be done. -Retrieving the ISO image -======================== - -First of all, the Fuel deployment ISO image needs to be retrieved, the -Fuel .iso image of the Danube release can be found at `OPNFV Downloads <https://www.opnfv.org/software/download>`_. - -Building the ISO image -====================== - -Alternatively, you may build the Fuel .iso from source by cloning the -opnfv/fuel git repository. To retrieve the repository for the Danube -release use the following command: - -.. code-block:: bash - - $ git clone https://gerrit.opnfv.org/gerrit/fuel - -Check-out the Danube release tag to set the HEAD to the -baseline required to replicate the Danube release: - -.. code-block:: bash - - $ git checkout danube.2.0 - -Go to the fuel directory and build the .iso: - -.. code-block:: bash - - $ cd fuel/build; make all - -For more information on how to build, please see :ref:`Build instruction for Fuel\@OPNFV <fuel-development-overview-build-label>` - -Other preparations +Preparations ================== -Next, familiarize yourself with Fuel by reading the following documents: - -- `Fuel Installation Guide <http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-install-guide.html>`_ - -- `Fuel User Guide <http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide.html>`_ - -- `Fuel Developer Guide <http://docs.openstack.org/developer/fuel-docs/devdocs/develop.html>`_ - -- `Fuel Plugin Developers Guide <http://docs.openstack.org/developer/fuel-docs/plugindocs/fuel-plugin-sdk-guide.html>`_ - Prior to installation, a number of deployment specific parameters must be collected, those are: #. Provider sub-net and gateway information @@ -103,44 +64,74 @@ Prior to installation, a number of deployment specific parameters must be collec This information will be needed for the configuration procedures provided in this document. -===================== -Hardware requirements -===================== - -The following minimum hardware requirements must be met for the -installation of Danube using Fuel: - -+--------------------+------------------------------------------------------+ -| **HW Aspect** | **Requirement** | -| | | -+====================+======================================================+ -| **# of nodes** | Minimum 5 (3 for non redundant deployment): | -| | | -| | - 1 Fuel deployment master (may be virtualized) | -| | | -| | - 3(1) Controllers (1 colocated mongo/ceilometer | -| | role, 2 Ceph-OSD roles) | -| | | -| | - 1 Compute (1 co-located Ceph-OSD role) | -| | | -+--------------------+------------------------------------------------------+ -| **CPU** | Minimum 1 socket x86_AMD64 with Virtualization | -| | support | -+--------------------+------------------------------------------------------+ -| **RAM** | Minimum 16GB/server (Depending on VNF work load) | -| | | -+--------------------+------------------------------------------------------+ -| **Disk** | Minimum 256GB 10kRPM spinning disks | -| | | -+--------------------+------------------------------------------------------+ -| **Networks** | 4 Tagged VLANs (PUBLIC, MGMT, STORAGE, PRIVATE) | -| | | -| | 1 Un-Tagged VLAN for PXE Boot - ADMIN Network | -| | | -| | Note: These can be allocated to a single NIC - | -| | or spread out over multiple NICs as your hardware | -| | supports. | -+--------------------+------------------------------------------------------+ +========================================= +Hardware requirements for virtual deploys +========================================= + +The following minimum hardware requirements must be met for the virtual +installation of Euphrates using Fuel: + ++----------------------------+--------------------------------------------------------+ +| **HW Aspect** | **Requirement** | +| | | ++============================+========================================================+ +| **1 Jumpserver** | A physical node (also called Foundation Node) that | +| | hosts a Salt Master VM and each of the VM nodes in | +| | the virtual deploy | ++----------------------------+--------------------------------------------------------+ +| **CPU** | Minimum 1 socket with Virtualization support | ++----------------------------+--------------------------------------------------------+ +| **RAM** | Minimum 32GB/server (Depending on VNF work load) | ++----------------------------+--------------------------------------------------------+ +| **Disk** | Minimum 100GB (SSD or SCSI (15krpm) highly recommended | ++----------------------------+--------------------------------------------------------+ + + +=========================================== +Hardware requirements for baremetal deploys +=========================================== + +The following minimum hardware requirements must be met for the baremetal +installation of Euphrates using Fuel: + ++-------------------------+------------------------------------------------------+ +| **HW Aspect** | **Requirement** | +| | | ++=========================+======================================================+ +| **# of nodes** | Minimum 5 | +| | | +| | - 3 KVM servers which will run all the controller | +| | services | +| | | +| | - 2 Compute nodes | +| | | ++-------------------------+------------------------------------------------------+ +| **CPU** | Minimum 1 socket with Virtualization support | ++-------------------------+------------------------------------------------------+ +| **RAM** | Minimum 16GB/server (Depending on VNF work load) | ++-------------------------+------------------------------------------------------+ +| **Disk** | Minimum 256GB 10kRPM spinning disks | ++-------------------------+------------------------------------------------------+ +| **Networks** | 4 VLANs (PUBLIC, MGMT, STORAGE, PRIVATE) - can be | +| | a mix of tagged/native | +| | | +| | 1 Un-Tagged VLAN for PXE Boot - ADMIN Network | +| | | +| | Note: These can be allocated to a single NIC - | +| | or spread out over multiple NICs | ++-------------------------+------------------------------------------------------+ +| **1 Jumpserver** | A physical node (also called Foundation Node) that | +| | hosts the Salt Master and MaaS VMs | ++-------------------------+------------------------------------------------------+ +| **Power management** | All targets need to have power management tools that | +| | allow rebooting the hardware and setting the boot | +| | order (e.g. IPMI) | ++-------------------------+------------------------------------------------------+ + +**NOTE:** All nodes including the Jumpserver must have the same architecture (either x86_64 or aarch64). + +**NOTE:** For aarch64 deployments an UEFI compatible firmware with PXE support is needed (e.g. EDK2). + =============================== Help with Hardware Requirements @@ -153,7 +144,7 @@ For information on compatible hardware types available for use, please see `Fuel When choosing the hardware on which you will deploy your OpenStack environment, you should think about: -- CPU -- Consider the number of virtual machines that you plan to deploy in your cloud environment and the CPU per virtual machine. +- CPU -- Consider the number of virtual machines that you plan to deploy in your cloud environment and the CPUs per virtual machine. - Memory -- Depends on the amount of RAM assigned per virtual machine and the controller node. @@ -182,7 +173,7 @@ the Fuel OPNFV reference platform. All the networks involved in the OPNFV infrastructure as well as the provider networks and the private tenant VLANs needs to be manually configured. -Manual configuration of the Danube hardware platform should +Manual configuration of the Euphrates hardware platform should be carried out according to the `OPNFV Pharos Specification <https://wiki.opnfv.org/display/pharos/Pharos+Specification>`_. @@ -190,432 +181,118 @@ be carried out according to the `OPNFV Pharos Specification OPNFV Software installation and deployment ========================================== -This section describes the installation of the OPNFV installation -server (Fuel master) as well as the deployment of the full OPNFV -reference platform stack across a server cluster. - -Install Fuel master -=================== - -#. Mount the Danube Fuel ISO file/media as a boot device to the jump host server. - -#. Reboot the jump host to establish the Fuel server. - - - The system now boots from the ISO image. - - - Select "Fuel Install (Static IP)" (See figure below) - - - Press [Enter]. - - .. figure:: img/grub-1.png - -#. Wait until the Fuel setup screen is shown (Note: This can take up to 30 minutes). - -#. In the "Fuel User" section - Confirm/change the default password (See figure below) - - - Enter "admin" in the Fuel password input - - - Enter "admin" in the Confirm password input - - - Select "Check" and press [Enter] - - .. figure:: img/fuelmenu1.png - -#. In the "Network Setup" section - Configure DHCP/Static IP information for your FUEL node - For example, ETH0 is 10.20.0.2/24 for FUEL booting and ETH1 is DHCP in your corporate/lab network (see figure below). - - - Configure eth1 or other network interfaces here as well (if you have them present on your FUEL server). - - .. figure:: img/fuelmenu2.png - -#. In the "PXE Setup" section (see figure below) - Change the following fields to appropriate values (example below): - - - DHCP Pool Start 10.20.0.4 - - - DHCP Pool End 10.20.0.254 - - - DHCP Pool Gateway 10.20.0.2 (IP address of Fuel node) - - .. figure:: img/fuelmenu3.png - -#. In the "DNS & Hostname" section (see figure below) - Change the following fields to appropriate values: - - - Hostname - - - Domain - - - Search Domain - - - External DNS - - - Hostname to test DNS - - - Select <Check> and press [Enter] - - .. figure:: img/fuelmenu4.png - - -#. OPTION TO ENABLE PROXY SUPPORT - In the "Bootstrap Image" section (see figure below), edit the following fields to define a proxy. (**NOTE:** cannot be used in tandem with local repository support) - - - Navigate to "HTTP proxy" and enter your http proxy address - - - Select <Check> and press [Enter] - - .. figure:: img/fuelmenu5.png - -#. In the "Time Sync" section (see figure below) - Change the following fields to appropriate values: - - - NTP Server 1 <Customer NTP server 1> - - - NTP Server 2 <Customer NTP server 2> - - - NTP Server 3 <Customer NTP server 3> - - .. figure:: img/fuelmenu6.png - -#. Start the installation. - - - Select Quit Setup and press Save and Quit. - - - The installation will now start, wait until the login screen is shown. - -Boot the Node Servers -===================== - -After the Fuel Master node has rebooted from the above steps and is at -the login prompt, you should boot the Node Servers (Your -Compute/Control/Storage blades, nested or real) with a PXE booting -scheme so that the FUEL Master can pick them up for control. - -#. Enable PXE booting - - - For every controller and compute server: enable PXE Booting as the first boot device in the BIOS boot order menu, and hard disk as the second boot device in the same menu. - -#. Reboot all the control and compute blades. - -#. Wait for the availability of nodes showing up in the Fuel GUI. - - - Connect to the FUEL UI via the URL provided in the Console (default: https://10.20.0.2:8443) - - - Wait until all nodes are displayed in top right corner of the Fuel GUI: Total nodes and Unallocated nodes (see figure below). - - .. figure:: img/nodes.png - -Install additional Plugins/Features on the FUEL node -==================================================== - -#. SSH to your FUEL node (e.g. root@10.20.0.2 pwd: r00tme) - -#. Select wanted plugins/features from the /opt/opnfv/ directory. - -#. Install the wanted plugin with the command - - .. code-block:: bash - - $ fuel plugins --install /opt/opnfv/<plugin-name>-<version>.<arch>.rpm - - Expected output (see figure below): - - .. code-block:: bash - - Plugin ....... was successfully installed. - - .. figure:: img/plugin_install.png - -Create an OpenStack Environment -=============================== - -#. Connect to Fuel WEB UI with a browser (default: https://10.20.0.2:8443) (login: admin/admin) - -#. Create and name a new OpenStack environment, to be installed. - - .. figure:: img/newenv.png - -#. Select "<Mitaka on Ubuntu 14.04>" and press <Next> - -#. Select "compute virtulization method". - - - Select "QEMU-KVM as hypervisor" and press <Next> - -#. Select "network mode". - - - Select "Neutron with ML2 plugin" - - - Select "Neutron with tunneling segmentation" (Required when using the ODL or ONOS plugins) - - - Press <Next> +This section describes the process of installing all the components needed to +deploy the full OPNFV reference platform stack across a server cluster. -#. Select "Storage Back-ends". +The installation is done with Mirantis Cloud Platform (MCP), which is based on +a reclass model. This model provides the formula inputs to Salt, to make the deploy +automatic based on deployment scenario. +The reclass model covers: - - Select "Ceph for block storage" and press <Next> + - Infrastucture node definition: Salt Master node (cfg01) and MaaS node (mas01) + - Openstack node defition: Controler nodes (ctl01, ctl02, ctl03) and Compute nodes (cmp001, cmp002) + - Infrastructure components to install (software packages, services etc.) + - Openstack components and services (rabbitmq, galera etc.), as well as all configuration for them -#. Select "additional services" you wish to install. - - Check option "Install Ceilometer and Aodh" and press <Next> +Automatic Installation of a Virtual POD +======================================= -#. Create the new environment. +For virtual deploys all the targets are VMs on the Jumpserver. The deploy script will: - - Click <Create> Button + - Create a Salt Master VM on the Jumpserver which will drive the installation + - Create the bridges for networking with virsh (only if a real bridge does not already exists for a given network) + - Install Openstack on the targets + - Leverage Salt to install & configure Openstack services -Configure the network environment -================================= -#. Open the environment you previously created. +Automatic Installation of a Baremetal POD +========================================= -#. Open the networks tab and select the "default" Node Networks group to on the left pane (see figure below). +The baremetal installation process can be done by editing the information about +hardware and enviroment in the reclass files, or by using a Pod Descriptor File (PDF). +This file contains all the information about the hardware and network of the deployment +the will be fed to the reclass model during deployment. - .. figure:: img/network.png +The installation is done automatically with the deploy script, which will: -#. Update the Public network configuration and change the following fields to appropriate values: + - Create a Salt Master VM on the Jumpserver which will drive the installation + - Create a MaaS Node VM on the Jumpserver which will provision the targets + - Install Openstack on the targets + - Leverage MaaS to provision baremetal nodes with the operating system + - Leverage Salt to configure the operatign system on the baremetal nodes + - Leverage Salt to install & configure Openstack services - - CIDR to <CIDR for Public IP Addresses> - - IP Range Start to <Public IP Address start> +Steps to start the automatic deploy +=================================== - - IP Range End to <Public IP Address end> +These steps are common both for virtual and baremetal deploys. - - Gateway to <Gateway for Public IP Addresses> +#. Clone the Fuel code from gerrit - - Check <VLAN tagging>. + For x86_64 - - Set appropriate VLAN id. + .. code-block:: bash -#. Update the Storage Network Configuration + $ git clone https://git.opnfv.org/fuel + $ cd fuel - - Set CIDR to appropriate value (default 192.168.1.0/24) + For aarch64 - - Set IP Range Start to appropriate value (default 192.168.1.1) + .. code-block:: bash - - Set IP Range End to appropriate value (default 192.168.1.254) + $ git clone https://git.opnfv.org/armband + $ cd armband - - Set vlan to appropriate value (default 102) +#. Checkout the Euphrates release -#. Update the Management network configuration. + .. code-block:: bash - - Set CIDR to appropriate value (default 192.168.0.0/24) + $ git checkout 5.0.0 - - Set IP Range Start to appropriate value (default 192.168.0.1) +#. Start the deploy script - - Set IP Range End to appropriate value (default 192.168.0.254) + .. code-block:: bash - - Check <VLAN tagging>. + $ ci/deploy.sh -l <lab_name> \ + -p <pod_name> \ + -b <URI to the PDF file> \ + -s <scenario> \ + -B <list of admin, public and management bridges> - - Set appropriate VLAN id. (default 101) +Examples +-------- +#. Virtual deploy -#. Update the Private Network Information + .. code-block:: bash - - Set CIDR to appropriate value (default 192.168.2.0/24 + $ ci/deploy.sh -b file:///home/jenkins/tmpdir/securedlab \ + -l ericsson \ + -p virtual_kvm \ + -s os-nosdn-nofeature-noha \ - - Set IP Range Start to appropriate value (default 192.168.2.1) +#. Baremetal deploy - - Set IP Range End to appropriate value (default 192.168.2.254) +A x86 deploy on pod1 from Ericsson lab - - Check <VLAN tagging>. + .. code-block:: bash - - Set appropriate VLAN tag (default 103) + $ ci/deploy.sh -b file:///home/jenkins/tmpdir/securedlab \ + -l ericsson \ + -p pod1 \ + -s os-nosdn-nofeature-ha \ + -B pxebr -#. Select the "Neutron L3" Node Networks group on the left pane. +An aarch64 deploy on pod5 from Arm lab - .. figure:: img/neutronl3.png + .. code-block:: bash -#. Update the Floating Network configuration. - - - Set the Floating IP range start (default 172.16.0.130) - - - Set the Floating IP range end (default 172.16.0.254) - - - Set the Floating network name (default admin_floating_net) - -#. Update the Internal Network configuration. - - - Set Internal network CIDR to an appropriate value (default 192.168.111.0/24) - - - Set Internal network gateway to an appropriate value - - - Set the Internal network name (default admin_internal_net) - -#. Update the Guest OS DNS servers. - - - Set Guest OS DNS Server values appropriately - -#. Save Settings. - -#. Select the "Other" Node Networks group on the left pane (see figure below). - - .. figure:: img/other.png - -#. Update the Public network assignment. - - - Check the box for "Assign public network to all nodes" (Required by OpenDaylight) - -#. Update Host OS DNS Servers. - - - Provide the DNS server settings - -#. Update Host OS NTP Servers. - - - Provide the NTP server settings - -Select Hypervisor type -====================== - -#. In the FUEL UI of your Environment, click the "Settings" Tab - -#. Select "Compute" on the left side pane (see figure below) - - - Check the KVM box and press "Save settings" - - .. figure:: img/compute.png - -Enable Plugins -============== - -#. In the FUEL UI of your Environment, click the "Settings" Tab - -#. Select Other on the left side pane (see figure below) - - - Enable and configure the plugins of your choice - - .. figure:: img/plugins.png - -Allocate nodes to environment and assign functional roles -========================================================= - -#. Click on the "Nodes" Tab in the FUEL WEB UI (see figure below). - - .. figure:: img/addnodes.png - -#. Assign roles (see figure below). - - - Click on the <+Add Nodes> button - - - Check <Controller>, <Telemetry - MongoDB> and optionally an SDN Controller role (OpenDaylight controller/ONOS) in the "Assign Roles" Section. - - - Check one node which you want to act as a Controller from the bottom half of the screen - - - Click <Apply Changes>. - - - Click on the <+Add Nodes> button - - - Check the <Controller> and <Storage - Ceph OSD> roles. - - - Check the two next nodes you want to act as Controllers from the bottom half of the screen - - - Click <Apply Changes> - - - Click on <+Add Nodes> button - - - Check the <Compute> and <Storage - Ceph OSD> roles. - - - Check the Nodes you want to act as Computes from the bottom half of the screen - - - Click <Apply Changes>. - - .. figure:: img/computelist.png - -#. Configure interfaces (see figure below). - - - Check Select <All> to select all allocated nodes - - - Click <Configure Interfaces> - - - Assign interfaces (bonded) for mgmt-, admin-, private-, public- and storage networks - - - Click <Apply> - - .. figure:: img/interfaceconf.png - - -Target specific configuration -============================= - -#. Set up targets for provisioning with non-default "Offloading Modes" - - Some target nodes may require additional configuration after they are - PXE booted (bootstrapped); the most frequent changes are in defaults - for ethernet devices' "Offloading Modes" settings (e.g. some targets' - ethernet drivers may strip VLAN traffic by default). - - If your target ethernet drivers have wrong "Offloading Modes" defaults, - in "Configure interfaces" page (described above), expand affected - interface's "Offloading Modes" and [un]check the relevant settings - (see figure below): - - .. figure:: img/offloadingmodes.png - -#. Set up targets for "Verify Networks" with non-default "Offloading Modes" - - **NOTE**: Check *Reference 15* for an updated and comprehensive list of - known issues and/or limitations, including "Offloading Modes" not being - applied during "Verify Networks" step. - - Setting custom "Offloading Modes" in Fuel GUI will only apply those settings - during provisiong and **not** during "Verify Networks", so if your targets - need this change, you have to apply "Offloading Modes" settings by hand - to bootstrapped nodes. - - **E.g.**: Our driver has "rx-vlan-filter" default "on" (expected "off") on - the Openstack interface(s) "eth1", preventing VLAN traffic from passing - during "Verify Networks". - - - From Fuel master console identify target nodes admin IPs (see figure below): - - .. code-block:: bash - - $ fuel nodes - - .. figure:: img/fuelconsole1.png - - - SSH into each of the target nodes and disable "rx-vlan-filter" on the - affected physical interface(s) allocated for OpenStack traffic (eth1): - - .. code-block:: bash - - $ ssh root@10.20.0.6 ethtool -K eth1 rx-vlan-filter off - - - Repeat the step above for all affected nodes/interfaces in the POD. - -Verify Networks -=============== - -It is important that the Verify Networks action is performed as it will verify -that communicate works for the networks you have setup, as well as check that -packages needed for a successful deployment can be fetched. - -#. From the FUEL UI in your Environment, Select the Networks Tab and select "Connectivity check" on the left pane (see figure below) - - - Select <Verify Networks> - - - Continue to fix your topology (physical switch, etc) until the "Verification Succeeded" and "Your network is configured correctly" message is shown - - .. figure:: img/verifynet.png - -Deploy Your Environment -======================= - -#. Deploy the environment. - - - In the Fuel GUI, click on the "Dashboard" Tab. - - - Click on <Deploy Changes> in the "Ready to Deploy?" section - - - Examine any information notice that pops up and click <Deploy> - - Wait for your deployment to complete, you can view the "Dashboard" - Tab to see the progress and status of your deployment. - -========================= -Installation health-check -========================= - -#. Perform system health-check (see figure below) - - - Click the "Health Check" tab inside your Environment in the FUEL Web UI - - - Check <Select All> and Click <Run Tests> - - - Allow tests to run and investigate results where appropriate - - .. figure:: img/health.png + $ ci/deploy.sh -b file:///home/jenkins/tmpdir/securedlab \ + -l arm \ + -p pod5 \ + -s os-nosdn-nofeature-ha \ + -B pxebr \ ============= @@ -628,22 +305,30 @@ Please refer to the :ref:`Release Notes <fuel-release-notes-label>` article. References ========== +OPNFV + +1) `OPNFV Home Page <http://www.opnfv.org>`_ +2) `OPNFV documentation <http://docs.opnfv.org>`_ +3) `Software downloads <https://www.opnfv.org/software/download>`_ + OpenStack -3) `OpenStack Newton Release Artifacts <http://www.openstack.org/software/newton>`_ -4) `OpenStack Documentation <http://docs.openstack.org>`_ +4) `OpenStack Ocata Release Artifacts <http://www.openstack.org/software/ocata>`_ +5) `OpenStack Documentation <http://docs.openstack.org>`_ OpenDaylight -5) `OpenDaylight Artifacts <http://www.opendaylight.org/software/downloads>`_ +6) `OpenDaylight Artifacts <http://www.opendaylight.org/software/downloads>`_ Fuel -6) `The Fuel OpenStack Project <https://wiki.openstack.org/wiki/Fuel>`_ -7) `Fuel Documentation Overview <http://docs.openstack.org/developer/fuel-docs>`_ -8) `Fuel Installation Guide <http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-install-guide.html>`_ -9) `Fuel User Guide <http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide.html>`_ -10) `Fuel Developer Guide <http://docs.openstack.org/developer/fuel-docs/devdocs/develop.html>`_ -11) `Fuel Plugin Developers Guide <http://docs.openstack.org/developer/fuel-docs/plugindocs/fuel-plugin-sdk-guide.html>`_ -12) `Fuel OpenStack Hardware Compatibility List <https://www.mirantis.com/software/hardware-compatibility/>`_ +7) `Mirantis Cloud Platform Documentation <https://docs.mirantis.com/mcp/latest>`_ + +Salt + +8) `Saltstack Documentation <https://docs.saltstack.com/en/latest/topics>`_ +9) `Saltstack Formulas <http://salt-formulas.readthedocs.io/en/latest/develop/overview-reclass.html>`_ + +Reclass +10) `Reclass model <http://reclass.pantsfullofunix.net>`_ diff --git a/mcp/config/labs/local/idf-pod1.yaml b/mcp/config/labs/local/idf-pod1.yaml new file mode 100644 index 000000000..7932f8896 --- /dev/null +++ b/mcp/config/labs/local/idf-pod1.yaml @@ -0,0 +1,12 @@ +--- +### LF POD 2 installer descriptor file ### + +idf: + version: 0.1 + fuel: + jumphost: + bridges: + admin: 'pxebr' + mgmt: 'br-ctl' + private: '' + public: '' diff --git a/mcp/config/scenario/baremetal/os-nosdn-ovs-ha.yaml b/mcp/config/scenario/baremetal/os-nosdn-ovs-ha.yaml index f558f0a4b..6eb1e33ce 100644 --- a/mcp/config/scenario/baremetal/os-nosdn-ovs-ha.yaml +++ b/mcp/config/scenario/baremetal/os-nosdn-ovs-ha.yaml @@ -5,6 +5,7 @@ cluster: - maas - dpdk - openstack_ha + - neutron_compute - networks virtual: nodes: diff --git a/mcp/config/states/maas b/mcp/config/states/maas index aa17e9d4d..67ef6d559 100755 --- a/mcp/config/states/maas +++ b/mcp/config/states/maas @@ -117,7 +117,3 @@ wait_for 10 "! salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' state.apply linux,ntp | wait_for 10 "salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' ssh.set_auth_key ${SUDO_USER} \ $(awk 'NR==1{print $2}' "$(eval echo "~${SUDO_USER}/.ssh/authorized_keys")")" - -# Get the latest packages for openstack nodes -wait_for 10 "! salt -C 'E@^(?!cfg01|mas01|kvm).*' pkg.upgrade refresh=False | " \ - "tee /dev/stderr | fgrep -q 'Not connected'" diff --git a/mcp/config/states/opendaylight b/mcp/config/states/opendaylight index bee4c8586..e1ec1982f 100755 --- a/mcp/config/states/opendaylight +++ b/mcp/config/states/opendaylight @@ -3,4 +3,5 @@ set -x salt -I 'opendaylight:server' state.sls opendaylight salt -I 'opendaylight:client' state.sls opendaylight.client +salt -I 'opendaylight:client' cmd.run 'neutron-odl-ovs-hostconfig --noovs_dpdk' salt -I 'neutron:server' state.sls opendaylight.client diff --git a/mcp/patches/0001-opendaylight-formula-neutron.patch b/mcp/patches/0001-opendaylight-formula-neutron.patch index e52d315a5..7afbc30e5 100644 --- a/mcp/patches/0001-opendaylight-formula-neutron.patch +++ b/mcp/patches/0001-opendaylight-formula-neutron.patch @@ -26,23 +26,32 @@ index d327e64..ba5f933 100644 # Allows for serving metadata requests coming from a dedicated metadata access network whose CIDR is 169.254.169.254/16 (or larger prefix), # and is connected to a Neutron router from which the VMs send metadata:1 request. In this case DHCP Option 121 will not be injected in VMs, diff --git a/neutron/files/ocata/ml2_conf.ini b/neutron/files/ocata/ml2_conf.ini -index 0d48951..347eb15 100644 +index 5ecafe3..48cec1f 100644 --- a/neutron/files/ocata/ml2_conf.ini +++ b/neutron/files/ocata/ml2_conf.ini -@@ -269,3 +269,11 @@ enable_security_group = True +@@ -131,7 +131,7 @@ tenant_network_types = {{ server.backend.tenant_network_types }} + # An ordered list of networking mechanism driver entrypoints to be loaded from + # the neutron.ml2.mechanism_drivers namespace. (list value) + #mechanism_drivers = +-mechanism_drivers ={%- for backend_name, mechanism in server.backend.get('mechanism', {}).iteritems() %}{{ mechanism.driver }},{%- endfor %}l2population ++mechanism_drivers ={%- for backend_name, mechanism in server.backend.get('mechanism', {}).iteritems() %}{{ mechanism.driver }}{%- endfor %}{%- if server.backend.engine == "ml2" %},l2population{%- endif %} + + # An ordered list of extension driver entrypoints to be loaded from the + # neutron.ml2.extension_drivers namespace. For example: extension_drivers = +@@ -272,3 +272,11 @@ enable_security_group = True # Use ipset to speed-up the iptables based security groups. Enabling ipset # support requires that ipset is installed on L2 agent node. (boolean value) #enable_ipset = true + +{%- if server.backend.engine == "opendaylight" %} +[ml2_odl] -+port_binding_controller = network-topology ++port_binding_controller = pseudo-agentdb-binding +url = http://{{ server.backend.host }}:{{ server.backend.rest_api_port }}/controller/nb/v2/neutron +username = {{ server.backend.user }} +password = {{ server.backend.password }} +{%- endif %} diff --git a/neutron/files/ocata/neutron-generic.conf.Debian b/neutron/files/ocata/neutron-generic.conf.Debian -index 0dde78f..05ac805 100644 +index 123386d..eeaa3f4 100644 --- a/neutron/files/ocata/neutron-generic.conf.Debian +++ b/neutron/files/ocata/neutron-generic.conf.Debian @@ -33,11 +33,11 @@ state_path = /var/lib/neutron @@ -59,7 +68,7 @@ index 0dde78f..05ac805 100644 {% endif %} -@@ -2073,3 +2073,8 @@ heartbeat_rate = 2 +@@ -2092,3 +2092,8 @@ heartbeat_rate = 2 # Sets the list of available ciphers. value should be a string in the OpenSSL # cipher list format. (string value) #ciphers = <None> @@ -72,7 +81,7 @@ diff --git a/neutron/files/ocata/neutron-server b/neutron/files/ocata/neutron-se index 54f6ceb..1682ee0 100644 --- a/neutron/files/ocata/neutron-server +++ b/neutron/files/ocata/neutron-server -@@ -7,7 +7,7 @@ +@@ -7,10 +7,10 @@ # neutron.conf #NEUTRON_PLUGIN_CONFIG="/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini" @@ -81,8 +90,13 @@ index 54f6ceb..1682ee0 100644 NEUTRON_PLUGIN_CONFIG="/etc/neutron/plugins/ml2/ml2_conf.ini" {%- endif %} + {%- if server.backend.engine == "contrail" %} + NEUTRON_PLUGIN_CONFIG="/etc/neutron/plugins/opencontrail/ContrailPlugin.ini" +-{%- endif %} +\ No newline at end of file ++{%- endif %} diff --git a/neutron/files/ocata/neutron-server.conf.Debian b/neutron/files/ocata/neutron-server.conf.Debian -index 229d342..ac8bdff 100644 +index 049544b..4e68567 100644 --- a/neutron/files/ocata/neutron-server.conf.Debian +++ b/neutron/files/ocata/neutron-server.conf.Debian @@ -39,11 +39,11 @@ api_extensions_path = extensions:/usr/lib/python2.7/dist-packages/neutron_plugin @@ -97,9 +111,9 @@ index 229d342..ac8bdff 100644 -service_plugins =neutron.services.l3_router.l3_router_plugin.L3RouterPlugin,neutron.services.metering.metering_plugin.MeteringPlugin +service_plugins = {{ server.backend.get('router', 'router')}},metering {%- if server.lbaas is defined -%},lbaasv2{%- endif -%} + {%- if fwaas.get('enabled', False) -%},{{ fwaas[fwaas.api_version]['service_plugin'] }}{%- endif -%} {%- if server.get('qos', 'True') -%},neutron.services.qos.qos_plugin.QoSPlugin{%- endif -%} - {%- if server.get('vlan_aware_vms', False) -%},trunk{%- endif -%} -@@ -835,7 +835,7 @@ allow_headers = {{ server.cors.allow_headers }} +@@ -838,7 +838,7 @@ allow_headers = {{ server.cors.allow_headers }} # Deprecated group/name - [DEFAULT]/sql_connection # Deprecated group/name - [DATABASE]/sql_connection # Deprecated group/name - [sql]/connection @@ -108,7 +122,7 @@ index 229d342..ac8bdff 100644 connection = {{ server.database.engine }}+pymysql://{{ server.database.user }}:{{ server.database.password }}@{{ server.database.host }}/{{ server.database.name }}?charset=utf8 {% else %} connection = sqlite:////var/lib/neutron/neutron.sqlite -@@ -2198,3 +2198,8 @@ service_provider = LOADBALANCERV2:Opencontrail:neutron_plugin_contrail.plugins.o +@@ -2217,3 +2217,8 @@ service_provider = LOADBALANCERV2:Opencontrail:neutron_plugin_contrail.plugins.o {% include "neutron/files/"+server.version+"/ContrailPlugin.ini" %} {% endif %} @@ -118,10 +132,10 @@ index 229d342..ac8bdff 100644 +ovsdb_connection = {{ server.backend.ovsdb_connection }} +{%- endif %} diff --git a/neutron/gateway.sls b/neutron/gateway.sls -index a6e6586..ab4bb85 100644 +index 96d7e9f..65386b4 100644 --- a/neutron/gateway.sls +++ b/neutron/gateway.sls -@@ -27,6 +27,7 @@ neutron_gateway_packages: +@@ -32,6 +32,7 @@ neutron_gateway_packages: /etc/neutron/dhcp_agent.ini: file.managed: - source: salt://neutron/files/{{ gateway.version }}/dhcp_agent.ini @@ -130,10 +144,10 @@ index a6e6586..ab4bb85 100644 - pkg: neutron_gateway_packages diff --git a/neutron/server.sls b/neutron/server.sls -index 0b3a6be..7a6bd23 100644 +index eff9fb8..cb9d622 100644 --- a/neutron/server.sls +++ b/neutron/server.sls -@@ -64,7 +64,7 @@ neutron_server_service: +@@ -72,7 +72,7 @@ neutron_server_service: {%- endif %} diff --git a/mcp/patches/patches.list b/mcp/patches/patches.list index 4140adb67..e20a34179 100644 --- a/mcp/patches/patches.list +++ b/mcp/patches/patches.list @@ -1,4 +1,3 @@ -/usr/share/salt-formulas/env: 0001-opendaylight-formula-neutron.patch /usr/share/salt-formulas/env: 0002-maas-region-skip-credentials-update.patch /usr/share/salt-formulas/env: 0003-maas-region-force-artifact-download.patch /usr/share/salt-formulas/env: 0004-maas-region-use-authorized_keys-1st-entry.patch diff --git a/mcp/patches/patches_neutron.list b/mcp/patches/patches_neutron.list new file mode 100644 index 000000000..e80d7617d --- /dev/null +++ b/mcp/patches/patches_neutron.list @@ -0,0 +1 @@ +/usr/share/salt-formulas/env: 0001-opendaylight-formula-neutron.patch diff --git a/mcp/patches/pharos/0001-Add-IDF-mappings-to-installer-adapter.patch b/mcp/patches/pharos/0001-Add-IDF-mappings-to-installer-adapter.patch new file mode 100644 index 000000000..59a0e975a --- /dev/null +++ b/mcp/patches/pharos/0001-Add-IDF-mappings-to-installer-adapter.patch @@ -0,0 +1,27 @@ +From: Alexandru Avadanii <Alexandru.Avadanii@enea.com> +Date: Tue, 3 Oct 2017 02:41:41 +0200 +Subject: [PATCH] Add IDF mappings to installer adapter + +Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> +--- + config/installers/fuel/pod_config.yml.j2 | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/config/installers/fuel/pod_config.yml.j2 b/config/installers/fuel/pod_config.yml.j2 +index 99434f9..676ead3 100644 +--- a/config/installers/fuel/pod_config.yml.j2 ++++ b/config/installers/fuel/pod_config.yml.j2 +@@ -26,6 +26,13 @@ + parameters: + _param: + ++{%- if conf.idf is defined %} ++ opnfv_jump_bridge_admin: {{ conf['idf']['fuel']['jumphost']['bridges']['admin'] }} ++ opnfv_jump_bridge_mgmt: {{ conf['idf']['fuel']['jumphost']['bridges']['mgmt'] }} ++ opnfv_jump_bridge_private: {{ conf['idf']['fuel']['jumphost']['bridges']['private'] }} ++ opnfv_jump_bridge_public: {{ conf['idf']['fuel']['jumphost']['bridges']['public'] }} ++{%- endif %} ++ + opnfv_infra_config_address: {{ net_mgmt | ipaddr_index('100') }} + opnfv_infra_maas_node01_address: {{ net_mgmt | ipaddr_index('3') }} + opnfv_infra_maas_node01_deploy_address: {{ net_admin | ipaddr_index('3') }} diff --git a/mcp/patches/reclass-system-salt-model/0001-Bring-in-opendaylight-support.patch b/mcp/patches/reclass-system-salt-model/0001-Bring-in-opendaylight-support.patch index adf07eb81..353854c1b 100644 --- a/mcp/patches/reclass-system-salt-model/0001-Bring-in-opendaylight-support.patch +++ b/mcp/patches/reclass-system-salt-model/0001-Bring-in-opendaylight-support.patch @@ -3,30 +3,17 @@ Date: Thu, 29 Jun 2017 12:22:42 +0400 Subject: [PATCH] Bring in opendaylight support Change-Id: I3efec9a8b586a6c75b1c1635ad2a7024d73d9ad2 ---- - neutron/control/opendaylight/cluster.yml | 19 +++++++++++++++++++ - neutron/control/opendaylight/single.yml | 16 ++++++++++++++++ - neutron/gateway/opendaylight/single.yml | 8 ++++++++ - opendaylight/server/single.yml | 2 ++ - .../storage/system/opendaylight_control_single.yml | 13 +++++++++++++ - 5 files changed, 58 insertions(+) - create mode 100644 neutron/control/opendaylight/cluster.yml - create mode 100644 neutron/control/opendaylight/single.yml - create mode 100644 neutron/gateway/opendaylight/single.yml - create mode 100644 opendaylight/server/single.yml - create mode 100644 reclass/storage/system/opendaylight_control_single.yml diff --git a/neutron/control/opendaylight/cluster.yml b/neutron/control/opendaylight/cluster.yml new file mode 100644 -index 0000000..4133650 +index 0000000..81dd5f9 --- /dev/null +++ b/neutron/control/opendaylight/cluster.yml -@@ -0,0 +1,19 @@ +@@ -0,0 +1,18 @@ +classes: +- service.keepalived.cluster.single +- service.haproxy.proxy.single +- service.neutron.control.cluster -+- system.haproxy.proxy.listen.openstack.neutron +- system.neutron.control.openvswitch.cluster +parameters: + neutron: diff --git a/mcp/reclass/classes/cluster/all-mcp-ocata-common/aarch64/init.yml b/mcp/reclass/classes/cluster/all-mcp-ocata-common/aarch64/init.yml index 4fb2adf55..b9bb4ad31 100644 --- a/mcp/reclass/classes/cluster/all-mcp-ocata-common/aarch64/init.yml +++ b/mcp/reclass/classes/cluster/all-mcp-ocata-common/aarch64/init.yml @@ -14,3 +14,9 @@ parameters: # NOTE(armband): Only x86 VCP VMs spawned via salt.control names differ opnfv_vcp_vm_primary_interface: ${_param:opnfv_fn_vm_primary_interface} opnfv_vcp_vm_secondary_interface: ${_param:opnfv_fn_vm_secondary_interface} + + # Baremetal interface names (target nodes) + opnfv_baremetal_primary_nic: eth0 + opnfv_baremetal_secondary_nic: eth1 + opnfv_baremetal_tertiary_nic: eth2 # not used in current reclass model + opnfv_baremetal_quaternary_nic: eth3 # not used in current reclass model diff --git a/mcp/reclass/classes/cluster/all-mcp-ocata-common/opnfv/runtime.yml.template b/mcp/reclass/classes/cluster/all-mcp-ocata-common/opnfv/runtime.yml.template index b07ae13bd..1488da271 100644 --- a/mcp/reclass/classes/cluster/all-mcp-ocata-common/opnfv/runtime.yml.template +++ b/mcp/reclass/classes/cluster/all-mcp-ocata-common/opnfv/runtime.yml.template @@ -1,9 +1,10 @@ parameters: _param: reclass_config_master: ${SALT_MASTER} - opnfv_maas_mcp_address: ${MAAS_IP} - opnfv_maas_pxe_network: ${MAAS_PXE_NETWORK} - opnfv_maas_pxe_address: ${MAAS_PXE_NETWORK_ROOTSTR}.3 - opnfv_maas_pxe_iprange_start: ${MAAS_PXE_NETWORK_ROOTSTR}.5 - opnfv_maas_pxe_iprange_end: ${MAAS_PXE_NETWORK_ROOTSTR}.250 + + # These should be moved to pod_config.yml and read based on PDF admin net + opnfv_maas_pxe_network_address: ${MAAS_PXE_NETWORK} + opnfv_maas_pxe_address: ${MAAS_PXE_NETWORK%.*}.3 + opnfv_maas_pxe_start_address: ${MAAS_PXE_NETWORK%.*}.5 + opnfv_maas_pxe_end_address: ${MAAS_PXE_NETWORK%.*}.250 diff --git a/mcp/reclass/classes/cluster/all-mcp-ocata-common/x86_64/init.yml b/mcp/reclass/classes/cluster/all-mcp-ocata-common/x86_64/init.yml index d7d3945aa..72a1e5be1 100644 --- a/mcp/reclass/classes/cluster/all-mcp-ocata-common/x86_64/init.yml +++ b/mcp/reclass/classes/cluster/all-mcp-ocata-common/x86_64/init.yml @@ -14,3 +14,9 @@ parameters: # NOTE(armband): Only x86 VCP VMs spawned via salt.control names differ opnfv_vcp_vm_primary_interface: ens2 opnfv_vcp_vm_secondary_interface: ens3 + + # Baremetal interface names (target nodes) + opnfv_baremetal_primary_nic: enp6s0 + opnfv_baremetal_secondary_nic: enp7s0 + opnfv_baremetal_tertiary_nic: enp8s0 + opnfv_baremetal_quaternary_nic: enp9s0 # not used in current reclass model diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/config.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/config.yml index 15202f11b..33f2804e0 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/config.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/config.yml @@ -31,11 +31,13 @@ parameters: salt_master_host: ${_param:infra_config_deploy_address} # yamllint disable rule:line-length salt_api_password_hash: "$6$sGnRlxGf$al5jMCetLP.vfI/fTl3Z0N7Za1aeiexL487jAtyRABVfT3NlwZxQGVhO7S1N8OwS/34VHYwZQA8lkXwKMN/GS1" + dhcp_nic: ${_param:opnfv_fn_vm_primary_interface} + single_nic: ${_param:opnfv_fn_vm_secondary_interface} linux: network: interface: - ens3: ${_param:linux_dhcp_interface} - ens4: ${_param:linux_single_interface} + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} salt: master: accept_policy: open_mode diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/init.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/init.yml index 58c562799..4f8f87a2b 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/init.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/init.yml @@ -9,6 +9,7 @@ parameters: _param: apt_mk_version: nightly mcp_repo_version: 1.1 + salt_version: 2016.11 cluster_name: baremetal-mcp-ocata-odl-ha cluster_domain: ${_param:cluster_name}.local # stacklight_environment: ${_param:cluster_domain} @@ -44,14 +45,18 @@ parameters: storage: node: name: default + dhcp_nic: ${_param:opnfv_vcp_vm_primary_interface} + single_nic: ${_param:opnfv_vcp_vm_secondary_interface} linux_dhcp_interface: enabled: true type: eth proto: dhcp + name: ${_param:dhcp_nic} linux_single_interface: enabled: true type: eth proto: static + name: ${_param:single_nic} address: ${_param:single_address} netmask: 255.255.255.0 diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/kvm.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/kvm.yml index da26254a7..c9b3bc1e0 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/kvm.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/kvm.yml @@ -2,7 +2,6 @@ classes: - system.linux.system.repo.mcp.openstack - system.linux.system.repo.mcp.extra - - system.linux.system.repo.saltstack.xenial - service.keepalived.cluster.single - system.glusterfs.server.volume.glance - system.glusterfs.server.volume.keystone @@ -26,7 +25,7 @@ parameters: cluster_node03_address: ${_param:infra_kvm_node03_address} keepalived_vip_interface: br-ctl keepalived_vip_virtual_router_id: 69 - deploy_nic: enp6s0 + deploy_nic: ${_param:opnfv_baremetal_primary_nic} salt: control: size: # RAM 4096,8192,16384,32768,65536 @@ -141,7 +140,7 @@ parameters: linux: network: interface: - eth3: + deploy: enabled: true type: eth proto: manual diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/maas.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/maas.yml index 0900b6524..260da225d 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/maas.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/infra/maas.yml @@ -1,14 +1,13 @@ --- classes: - - system.linux.system.repo.saltstack.xenial - system.maas.region.single - service.maas.cluster.single - cluster.baremetal-mcp-ocata-odl-ha.infra parameters: _param: - dhcp_interface: ens3 - primary_interface: ens4 - pxe_interface: ens5 + dhcp_interface: ${_param:opnfv_fn_vm_primary_interface} + primary_interface: ${_param:opnfv_fn_vm_secondary_interface} + pxe_interface: ${_param:opnfv_fn_vm_tertiary_interface} interface_mtu: 1500 # MaaS has issues using MTU > 1500 for PXE interface pxe_interface_mtu: 1500 @@ -34,12 +33,12 @@ parameters: default_min_hwe_kernel: 'hwe-16.04' subnets: opnfv_maas_pxe: - name: ${_param:opnfv_maas_pxe_network}/24 - cidr: ${_param:opnfv_maas_pxe_network}/24 + name: ${_param:opnfv_maas_pxe_network_address}/24 + cidr: ${_param:opnfv_maas_pxe_network_address}/24 gateway_ip: ${_param:single_address} iprange: - start: ${_param:opnfv_maas_pxe_iprange_start} - end: ${_param:opnfv_maas_pxe_iprange_end} + start: ${_param:opnfv_maas_pxe_start_address} + end: ${_param:opnfv_maas_pxe_end_address} type: dynamic vlans: untagged: diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/opendaylight/control.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/opendaylight/control.yml index d473a07b4..b68eb3db5 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/opendaylight/control.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/opendaylight/control.yml @@ -2,7 +2,6 @@ classes: - system.linux.system.repo.mcp.openstack - system.linux.system.repo.mcp.extra - - system.linux.system.repo.saltstack.xenial - system.opendaylight.server.single - cluster.baremetal-mcp-ocata-odl-ha parameters: @@ -11,12 +10,7 @@ parameters: linux: network: interface: - ens3: - enabled: true - type: eth - proto: static - address: ${_param:single_address} - netmask: 255.255.255.0 + single: ${_param:linux_single_interface} opendaylight: server: odl_bind_ip: ${_param:single_address} @@ -29,5 +23,6 @@ parameters: - odl-restconf-all - odl-aaa-authn - odl-dlux-all + - odl-mdsal-apidocs netvirt: - odl-netvirt-openstack diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/benchmark.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/benchmark.yml index 160d0bd62..758fa3ffc 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/benchmark.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/benchmark.yml @@ -2,8 +2,11 @@ classes: - cluster.baremetal-mcp-ocata-odl-ha parameters: + _param: + dhcp_nic: eth0 + single_nic: eth1 linux: network: interface: - eth0: ${_param:linux_dhcp_interface} - eth1: ${_param:linux_single_interface} + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/compute.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/compute.yml index ba0f385e7..032dd8452 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/compute.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/compute.yml @@ -2,7 +2,6 @@ classes: - system.linux.system.repo.mcp.openstack - system.linux.system.repo.mcp.extra - - system.linux.system.repo.saltstack.xenial - system.linux.storage.loopback - system.glusterfs.client.cluster - system.nova.compute.cluster @@ -25,14 +24,14 @@ parameters: cluster_node03_hostname: ctl03 cluster_node03_address: ${_param:openstack_control_node03_address} nova_vncproxy_url: https://${_param:cluster_public_host}:6080 - mgmt_nic: enp6s0 - tenant_nic: enp7s0 - linux_system_codename: xenial - external_nic: enp8s0 + mgmt_nic: ${_param:opnfv_baremetal_primary_nic} + tenant_nic: ${_param:opnfv_baremetal_secondary_nic} + external_nic: ${_param:opnfv_baremetal_tertiary_nic} interface_mtu: 1500 keepalived_vip_interface: br-ctl keepalived_vip_virtual_router_id: 69 loopback_device_size: 20 + linux_system_codename: xenial neutron_agents: - neutron-dhcp-agent - neutron-metadata-agent diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/control.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/control.yml index 9b72199ef..9da1f03da 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/control.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/control.yml @@ -2,7 +2,6 @@ classes: - system.linux.system.repo.mcp.openstack - system.linux.system.repo.mcp.extra - - system.linux.system.repo.saltstack.xenial - system.ceilometer.client - system.memcached.server.single - system.keystone.server.cluster @@ -24,7 +23,7 @@ classes: - cluster.baremetal-mcp-ocata-odl-ha.infra parameters: _param: - keepalived_vip_interface: ens3 + keepalived_vip_interface: ${_param:single_nic} keepalived_vip_virtual_router_id: 50 cluster_vip_address: ${_param:openstack_control_address} cluster_local_address: ${_param:single_address} @@ -38,8 +37,8 @@ parameters: linux: network: interface: - ens2: ${_param:linux_dhcp_interface} - ens3: ${_param:linux_single_interface} + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} keystone: server: cacert: /etc/ssl/certs/mcp_os_cacert diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/dashboard.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/dashboard.yml index ddcc196ae..e70aab514 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/dashboard.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/dashboard.yml @@ -8,5 +8,5 @@ parameters: linux: network: interface: - ens2: ${_param:linux_dhcp_interface} - ens3: ${_param:linux_single_interface} + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/database.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/database.yml index e59c479ee..fc783d1b4 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/database.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/database.yml @@ -2,7 +2,6 @@ classes: - system.linux.system.repo.mcp.openstack - system.linux.system.repo.mcp.extra - - system.linux.system.repo.saltstack.xenial - system.galera.server.cluster - system.galera.server.database.aodh - system.galera.server.database.ceilometer @@ -17,7 +16,7 @@ classes: - cluster.baremetal-mcp-ocata-odl-ha parameters: _param: - keepalived_vip_interface: ens3 + keepalived_vip_interface: ${_param:single_nic} keepalived_vip_virtual_router_id: 80 galera_server_cluster_name: openstack_cluster galera_max_connections: 3072 @@ -33,5 +32,5 @@ parameters: linux: network: interface: - ens2: ${_param:linux_dhcp_interface} - ens3: ${_param:linux_single_interface} + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/message_queue.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/message_queue.yml index 3c6427ca0..f740e2904 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/message_queue.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/message_queue.yml @@ -2,13 +2,12 @@ classes: - system.linux.system.repo.mcp.openstack - system.linux.system.repo.mcp.extra - - system.linux.system.repo.saltstack.xenial - system.rabbitmq.server.cluster - system.rabbitmq.server.vhost.openstack - cluster.baremetal-mcp-ocata-odl-ha parameters: _param: - keepalived_vip_interface: ens3 + keepalived_vip_interface: ${_param:single_nic} keepalived_vip_virtual_router_id: 90 cluster_vip_address: ${_param:openstack_message_queue_address} cluster_local_address: ${_param:single_address} @@ -21,5 +20,5 @@ parameters: linux: network: interface: - ens2: ${_param:linux_dhcp_interface} - ens3: ${_param:linux_single_interface} + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/proxy.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/proxy.yml index 446157d41..83a4be3fb 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/proxy.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/proxy.yml @@ -2,7 +2,6 @@ classes: - system.linux.system.repo.mcp.openstack - system.linux.system.repo.mcp.extra - - system.linux.system.repo.saltstack.xenial - system.nginx.server.single - system.nginx.server.proxy.openstack_api - system.nginx.server.proxy.openstack_vnc @@ -18,7 +17,7 @@ classes: # - cluster.baremetal-mcp-ocata-odl-ha.stacklight.proxy parameters: _param: - keepalived_vip_interface: ens3 + keepalived_vip_interface: ${_param:single_nic} keepalived_vip_virtual_router_id: 240 nginx_proxy_ssl: enabled: true @@ -30,8 +29,8 @@ parameters: linux: network: interface: - ens2: ${_param:linux_dhcp_interface} - ens3: ${_param:linux_single_interface} + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} system: package: libapache2-mod-wsgi: diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/telemetry.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/telemetry.yml index e1c969cf1..4b14f7beb 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/telemetry.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-odl-ha/openstack/telemetry.yml @@ -2,7 +2,6 @@ classes: - system.linux.system.repo.mcp.openstack - system.linux.system.repo.mcp.extra - - system.linux.system.repo.saltstack.xenial - system.mongodb.server.cluster - system.mongodb.server.database.ceilometer - system.ceilometer.server.backend.mongodb @@ -13,7 +12,7 @@ classes: - cluster.baremetal-mcp-ocata-odl-ha.infra parameters: _param: - keepalived_openstack_telemetry_vip_interface: ens3 + keepalived_openstack_telemetry_vip_interface: ${_param:single_nic} keepalived_vip_virtual_router_id: 230 cluster_vip_address: ${_param:openstack_telemetry_address} cluster_local_address: ${_param:single_address} @@ -26,8 +25,8 @@ parameters: linux: network: interface: - ens2: ${_param:linux_dhcp_interface} - ens3: ${_param:linux_single_interface} + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} mongodb: server: logging: diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/config.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/config.yml index 9d53193be..cd7083040 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/config.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/config.yml @@ -30,11 +30,13 @@ parameters: salt_master_host: ${_param:infra_config_deploy_address} # yamllint disable rule:line-length salt_api_password_hash: "$6$sGnRlxGf$al5jMCetLP.vfI/fTl3Z0N7Za1aeiexL487jAtyRABVfT3NlwZxQGVhO7S1N8OwS/34VHYwZQA8lkXwKMN/GS1" + dhcp_nic: ${_param:opnfv_fn_vm_primary_interface} + single_nic: ${_param:opnfv_fn_vm_secondary_interface} linux: network: interface: - ens3: ${_param:linux_dhcp_interface} - ens4: ${_param:linux_single_interface} + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} salt: master: accept_policy: open_mode diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/init.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/init.yml index 8aadd7a6a..f68d48452 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/init.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/init.yml @@ -9,6 +9,7 @@ parameters: _param: apt_mk_version: nightly mcp_repo_version: 1.1 + salt_version: 2016.11 cluster_name: baremetal-mcp-ocata-ovs-dpdk-ha cluster_domain: ${_param:cluster_name}.local # stacklight_environment: ${_param:cluster_domain} @@ -44,14 +45,18 @@ parameters: storage: node: name: default + dhcp_nic: ${_param:opnfv_vcp_vm_primary_interface} + single_nic: ${_param:opnfv_vcp_vm_secondary_interface} linux_dhcp_interface: enabled: true type: eth proto: dhcp + name: ${_param:dhcp_nic} linux_single_interface: enabled: true type: eth proto: static + name: ${_param:single_nic} address: ${_param:single_address} netmask: 255.255.255.0 diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/kvm.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/kvm.yml index 72e6ac2ed..d5f2e92d1 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/kvm.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/kvm.yml @@ -2,7 +2,6 @@ classes: - system.linux.system.repo.mcp.openstack - system.linux.system.repo.mcp.extra - - system.linux.system.repo.saltstack.xenial - service.keepalived.cluster.single - system.glusterfs.server.volume.glance - system.glusterfs.server.volume.keystone @@ -26,7 +25,7 @@ parameters: cluster_node03_address: ${_param:infra_kvm_node03_address} keepalived_vip_interface: br-ctl keepalived_vip_virtual_router_id: 69 - deploy_nic: enp6s0 + deploy_nic: ${_param:opnfv_baremetal_primary_nic} salt: control: size: # RAM 4096,8192,16384,32768,65536 @@ -130,7 +129,7 @@ parameters: linux: network: interface: - eth3: + deploy: enabled: true type: eth proto: manual diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/maas.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/maas.yml index ee1dfdaf3..9c76526a3 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/maas.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/infra/maas.yml @@ -1,14 +1,13 @@ --- classes: - - system.linux.system.repo.saltstack.xenial - system.maas.region.single - service.maas.cluster.single - cluster.baremetal-mcp-ocata-ovs-dpdk-ha.infra parameters: _param: - dhcp_interface: ens3 - primary_interface: ens4 - pxe_interface: ens5 + dhcp_interface: ${_param:opnfv_fn_vm_primary_interface} + primary_interface: ${_param:opnfv_fn_vm_secondary_interface} + pxe_interface: ${_param:opnfv_fn_vm_tertiary_interface} interface_mtu: 1500 # MaaS has issues using MTU > 1500 for PXE interface pxe_interface_mtu: 1500 @@ -34,12 +33,12 @@ parameters: default_min_hwe_kernel: 'hwe-16.04' subnets: opnfv_maas_pxe: - name: ${_param:opnfv_maas_pxe_network}/24 - cidr: ${_param:opnfv_maas_pxe_network}/24 + name: ${_param:opnfv_maas_pxe_network_address}/24 + cidr: ${_param:opnfv_maas_pxe_network_address}/24 gateway_ip: ${_param:single_address} iprange: - start: ${_param:opnfv_maas_pxe_iprange_start} - end: ${_param:opnfv_maas_pxe_iprange_end} + start: ${_param:opnfv_maas_pxe_start_address} + end: ${_param:opnfv_maas_pxe_end_address} type: dynamic vlans: untagged: diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/benchmark.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/benchmark.yml index 54fe3d793..083a2df68 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/benchmark.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/benchmark.yml @@ -2,8 +2,11 @@ classes: - cluster.baremetal-mcp-ocata-ovs-dpdk-ha parameters: + _param: + dhcp_nic: eth0 + single_nic: eth1 linux: network: interface: - eth0: ${_param:linux_dhcp_interface} - eth1: ${_param:linux_single_interface} + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/compute.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/compute.yml index 696c5a5bb..e8fc0870f 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/compute.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/compute.yml @@ -2,7 +2,6 @@ classes: - system.linux.system.repo.mcp.openstack - system.linux.system.repo.mcp.extra - - system.linux.system.repo.saltstack.xenial - system.linux.storage.loopback - system.glusterfs.client.cluster - system.nova.compute.cluster @@ -25,13 +24,13 @@ parameters: cluster_node03_hostname: ctl03 cluster_node03_address: ${_param:openstack_control_node03_address} nova_vncproxy_url: https://${_param:cluster_public_host}:6080 - mgmt_nic: enp6s0 - linux_system_codename: xenial - external_nic: enp8s0 + mgmt_nic: ${_param:opnfv_baremetal_primary_nic} + external_nic: ${_param:opnfv_baremetal_tertiary_nic} interface_mtu: 1500 keepalived_vip_interface: br-ctl keepalived_vip_virtual_router_id: 69 loopback_device_size: 20 + linux_system_codename: xenial neutron: gateway: dpdk: 'True' diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/control.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/control.yml index fb9f54e03..1aba5242a 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/control.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/control.yml @@ -2,7 +2,6 @@ classes: - system.linux.system.repo.mcp.openstack - system.linux.system.repo.mcp.extra - - system.linux.system.repo.saltstack.xenial - system.ceilometer.client - system.memcached.server.single - system.keystone.server.cluster @@ -24,7 +23,7 @@ classes: - cluster.baremetal-mcp-ocata-ovs-dpdk-ha.infra parameters: _param: - keepalived_vip_interface: ens3 + keepalived_vip_interface: ${_param:single_nic} keepalived_vip_virtual_router_id: 50 cluster_vip_address: ${_param:openstack_control_address} cluster_local_address: ${_param:single_address} @@ -42,8 +41,8 @@ parameters: linux: network: interface: - ens2: ${_param:linux_dhcp_interface} - ens3: ${_param:linux_single_interface} + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} keystone: server: cacert: /etc/ssl/certs/mcp_os_cacert diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/dashboard.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/dashboard.yml index 9e44d62b1..1b3c5c5a9 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/dashboard.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/dashboard.yml @@ -8,5 +8,5 @@ parameters: linux: network: interface: - ens2: ${_param:linux_dhcp_interface} - ens3: ${_param:linux_single_interface} + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/database.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/database.yml index c7d81c85e..9ecf7e923 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/database.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/database.yml @@ -2,7 +2,6 @@ classes: - system.linux.system.repo.mcp.openstack - system.linux.system.repo.mcp.extra - - system.linux.system.repo.saltstack.xenial - system.galera.server.cluster - system.galera.server.database.aodh - system.galera.server.database.ceilometer @@ -17,7 +16,7 @@ classes: - cluster.baremetal-mcp-ocata-ovs-dpdk-ha parameters: _param: - keepalived_vip_interface: ens3 + keepalived_vip_interface: ${_param:single_nic} keepalived_vip_virtual_router_id: 80 galera_server_cluster_name: openstack_cluster galera_max_connections: 3072 @@ -33,5 +32,5 @@ parameters: linux: network: interface: - ens2: ${_param:linux_dhcp_interface} - ens3: ${_param:linux_single_interface} + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/message_queue.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/message_queue.yml index d9215c53f..ba9e0656f 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/message_queue.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/message_queue.yml @@ -2,13 +2,12 @@ classes: - system.linux.system.repo.mcp.openstack - system.linux.system.repo.mcp.extra - - system.linux.system.repo.saltstack.xenial - system.rabbitmq.server.cluster - system.rabbitmq.server.vhost.openstack - cluster.baremetal-mcp-ocata-ovs-dpdk-ha parameters: _param: - keepalived_vip_interface: ens3 + keepalived_vip_interface: ${_param:single_nic} keepalived_vip_virtual_router_id: 90 cluster_vip_address: ${_param:openstack_message_queue_address} cluster_local_address: ${_param:single_address} @@ -21,5 +20,5 @@ parameters: linux: network: interface: - ens2: ${_param:linux_dhcp_interface} - ens3: ${_param:linux_single_interface} + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/proxy.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/proxy.yml index 11f0e05a4..16c4a0968 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/proxy.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/proxy.yml @@ -2,7 +2,6 @@ classes: - system.linux.system.repo.mcp.openstack - system.linux.system.repo.mcp.extra - - system.linux.system.repo.saltstack.xenial - system.nginx.server.single - system.nginx.server.proxy.openstack_api - system.nginx.server.proxy.openstack_vnc @@ -18,7 +17,7 @@ classes: # - cluster.baremetal-mcp-ocata-ovs-dpdk-ha.stacklight.proxy parameters: _param: - keepalived_vip_interface: ens3 + keepalived_vip_interface: ${_param:single_nic} keepalived_vip_virtual_router_id: 240 nginx_proxy_ssl: enabled: true @@ -30,8 +29,8 @@ parameters: linux: network: interface: - ens2: ${_param:linux_dhcp_interface} - ens3: ${_param:linux_single_interface} + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} system: package: libapache2-mod-wsgi: diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/telemetry.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/telemetry.yml index 28a27b076..38267218c 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/telemetry.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-dpdk-ha/openstack/telemetry.yml @@ -2,7 +2,6 @@ classes: - system.linux.system.repo.mcp.openstack - system.linux.system.repo.mcp.extra - - system.linux.system.repo.saltstack.xenial - system.mongodb.server.cluster - system.mongodb.server.database.ceilometer - system.ceilometer.server.backend.mongodb @@ -13,7 +12,7 @@ classes: - cluster.baremetal-mcp-ocata-ovs-dpdk-ha.infra parameters: _param: - keepalived_openstack_telemetry_vip_interface: ens3 + keepalived_openstack_telemetry_vip_interface: ${_param:single_nic} keepalived_vip_virtual_router_id: 230 cluster_vip_address: ${_param:openstack_telemetry_address} cluster_local_address: ${_param:single_address} @@ -26,8 +25,8 @@ parameters: linux: network: interface: - ens2: ${_param:linux_dhcp_interface} - ens3: ${_param:linux_single_interface} + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} mongodb: server: logging: diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/config.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/config.yml index 3966dae6c..75c20f4b4 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/config.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/config.yml @@ -30,11 +30,13 @@ parameters: salt_master_host: ${_param:infra_config_deploy_address} # yamllint disable rule:line-length salt_api_password_hash: "$6$sGnRlxGf$al5jMCetLP.vfI/fTl3Z0N7Za1aeiexL487jAtyRABVfT3NlwZxQGVhO7S1N8OwS/34VHYwZQA8lkXwKMN/GS1" + dhcp_nic: ${_param:opnfv_fn_vm_primary_interface} + single_nic: ${_param:opnfv_fn_vm_secondary_interface} linux: network: interface: - ens3: ${_param:linux_dhcp_interface} - ens4: ${_param:linux_single_interface} + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} salt: master: accept_policy: open_mode diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/init.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/init.yml index b4cc054a2..7c250a30e 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/init.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/init.yml @@ -9,6 +9,7 @@ parameters: _param: apt_mk_version: nightly mcp_repo_version: 1.1 + salt_version: 2016.11 cluster_name: baremetal-mcp-ocata-ovs-ha cluster_domain: ${_param:cluster_name}.local # stacklight_environment: ${_param:cluster_domain} @@ -44,14 +45,18 @@ parameters: storage: node: name: default + dhcp_nic: ${_param:opnfv_vcp_vm_primary_interface} + single_nic: ${_param:opnfv_vcp_vm_secondary_interface} linux_dhcp_interface: enabled: true type: eth proto: dhcp + name: ${_param:dhcp_nic} linux_single_interface: enabled: true type: eth proto: static + name: ${_param:single_nic} address: ${_param:single_address} netmask: 255.255.255.0 diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/kvm.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/kvm.yml index 9e023e33d..eb73e1cca 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/kvm.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/kvm.yml @@ -2,7 +2,6 @@ classes: - system.linux.system.repo.mcp.openstack - system.linux.system.repo.mcp.extra - - system.linux.system.repo.saltstack.xenial - service.keepalived.cluster.single - system.glusterfs.server.volume.glance - system.glusterfs.server.volume.keystone @@ -26,7 +25,7 @@ parameters: cluster_node03_address: ${_param:infra_kvm_node03_address} keepalived_vip_interface: br-ctl keepalived_vip_virtual_router_id: 69 - deploy_nic: enp6s0 + deploy_nic: ${_param:opnfv_baremetal_primary_nic} salt: control: size: # RAM 4096,8192,16384,32768,65536 @@ -131,7 +130,7 @@ parameters: linux: network: interface: - eth3: + deploy: enabled: true type: eth proto: manual diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/maas.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/maas.yml index bf5783703..1ec662d93 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/maas.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/infra/maas.yml @@ -1,14 +1,13 @@ --- classes: - - system.linux.system.repo.saltstack.xenial - system.maas.region.single - service.maas.cluster.single - cluster.baremetal-mcp-ocata-ovs-ha.infra parameters: _param: - dhcp_interface: ens3 - primary_interface: ens4 - pxe_interface: ens5 + dhcp_interface: ${_param:opnfv_fn_vm_primary_interface} + primary_interface: ${_param:opnfv_fn_vm_secondary_interface} + pxe_interface: ${_param:opnfv_fn_vm_tertiary_interface} interface_mtu: 1500 # MaaS has issues using MTU > 1500 for PXE interface pxe_interface_mtu: 1500 @@ -34,12 +33,12 @@ parameters: default_min_hwe_kernel: 'hwe-16.04' subnets: opnfv_maas_pxe: - name: ${_param:opnfv_maas_pxe_network}/24 - cidr: ${_param:opnfv_maas_pxe_network}/24 + name: ${_param:opnfv_maas_pxe_network_address}/24 + cidr: ${_param:opnfv_maas_pxe_network_address}/24 gateway_ip: ${_param:single_address} iprange: - start: ${_param:opnfv_maas_pxe_iprange_start} - end: ${_param:opnfv_maas_pxe_iprange_end} + start: ${_param:opnfv_maas_pxe_start_address} + end: ${_param:opnfv_maas_pxe_end_address} type: dynamic vlans: untagged: diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/benchmark.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/benchmark.yml index 23a8d46f3..7d5eb80c3 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/benchmark.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/benchmark.yml @@ -2,8 +2,11 @@ classes: - cluster.baremetal-mcp-ocata-ovs-ha parameters: + _param: + dhcp_nic: eth0 + single_nic: eth1 linux: network: interface: - eth0: ${_param:linux_dhcp_interface} - eth1: ${_param:linux_single_interface} + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/compute.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/compute.yml index ff97fe819..165e0c9c4 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/compute.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/compute.yml @@ -2,7 +2,6 @@ classes: - system.linux.system.repo.mcp.openstack - system.linux.system.repo.mcp.extra - - system.linux.system.repo.saltstack.xenial - system.linux.storage.loopback - system.glusterfs.client.cluster - system.nova.compute.cluster @@ -24,9 +23,9 @@ parameters: cluster_node03_hostname: ctl03 cluster_node03_address: ${_param:openstack_control_node03_address} nova_vncproxy_url: https://${_param:cluster_public_host}:6080 - mgmt_nic: enp6s0 - tenant_nic: enp7s0 - external_nic: enp8s0 + mgmt_nic: ${_param:opnfv_baremetal_primary_nic} + tenant_nic: ${_param:opnfv_baremetal_secondary_nic} + external_nic: ${_param:opnfv_baremetal_tertiary_nic} linux_system_codename: xenial interface_mtu: 1500 keepalived_vip_interface: br-ctl diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/control.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/control.yml index f0c03cc0e..3fd4fd185 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/control.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/control.yml @@ -2,7 +2,6 @@ classes: - system.linux.system.repo.mcp.openstack - system.linux.system.repo.mcp.extra - - system.linux.system.repo.saltstack.xenial - system.ceilometer.client - system.memcached.server.single - system.keystone.server.cluster @@ -24,7 +23,7 @@ classes: - cluster.baremetal-mcp-ocata-ovs-ha.infra parameters: _param: - keepalived_vip_interface: ens3 + keepalived_vip_interface: ${_param:single_nic} keepalived_vip_virtual_router_id: 50 cluster_vip_address: ${_param:openstack_control_address} cluster_local_address: ${_param:single_address} @@ -38,8 +37,8 @@ parameters: linux: network: interface: - ens2: ${_param:linux_dhcp_interface} - ens3: ${_param:linux_single_interface} + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} keystone: server: cacert: /etc/ssl/certs/mcp_os_cacert diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/dashboard.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/dashboard.yml index f2e010da4..03635ca68 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/dashboard.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/dashboard.yml @@ -8,5 +8,5 @@ parameters: linux: network: interface: - ens2: ${_param:linux_dhcp_interface} - ens3: ${_param:linux_single_interface} + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/database.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/database.yml index b8a43d814..e2ee1a89c 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/database.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/database.yml @@ -2,7 +2,6 @@ classes: - system.linux.system.repo.mcp.openstack - system.linux.system.repo.mcp.extra - - system.linux.system.repo.saltstack.xenial - system.galera.server.cluster - system.galera.server.database.aodh - system.galera.server.database.ceilometer @@ -17,7 +16,7 @@ classes: - cluster.baremetal-mcp-ocata-ovs-ha parameters: _param: - keepalived_vip_interface: ens3 + keepalived_vip_interface: ${_param:single_nic} keepalived_vip_virtual_router_id: 80 galera_server_cluster_name: openstack_cluster galera_max_connections: 3072 @@ -33,5 +32,5 @@ parameters: linux: network: interface: - ens2: ${_param:linux_dhcp_interface} - ens3: ${_param:linux_single_interface} + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/message_queue.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/message_queue.yml index 66b58221c..67a5d3d5a 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/message_queue.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/message_queue.yml @@ -2,13 +2,12 @@ classes: - system.linux.system.repo.mcp.openstack - system.linux.system.repo.mcp.extra - - system.linux.system.repo.saltstack.xenial - system.rabbitmq.server.cluster - system.rabbitmq.server.vhost.openstack - cluster.baremetal-mcp-ocata-ovs-ha parameters: _param: - keepalived_vip_interface: ens3 + keepalived_vip_interface: ${_param:single_nic} keepalived_vip_virtual_router_id: 90 cluster_vip_address: ${_param:openstack_message_queue_address} cluster_local_address: ${_param:single_address} @@ -21,5 +20,5 @@ parameters: linux: network: interface: - ens2: ${_param:linux_dhcp_interface} - ens3: ${_param:linux_single_interface} + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/proxy.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/proxy.yml index e948d93ad..c6a68fa29 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/proxy.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/proxy.yml @@ -2,7 +2,6 @@ classes: - system.linux.system.repo.mcp.openstack - system.linux.system.repo.mcp.extra - - system.linux.system.repo.saltstack.xenial - system.nginx.server.single - system.nginx.server.proxy.openstack_api - system.nginx.server.proxy.openstack_vnc @@ -18,7 +17,7 @@ classes: # - cluster.baremetal-mcp-ocata-ovs-ha.stacklight.proxy parameters: _param: - keepalived_vip_interface: ens3 + keepalived_vip_interface: ${_param:single_nic} keepalived_vip_virtual_router_id: 240 nginx_proxy_ssl: enabled: true @@ -30,8 +29,8 @@ parameters: linux: network: interface: - ens2: ${_param:linux_dhcp_interface} - ens3: ${_param:linux_single_interface} + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} system: package: libapache2-mod-wsgi: diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/telemetry.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/telemetry.yml index 4389a4918..4a72a61e6 100644 --- a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/telemetry.yml +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-ovs-ha/openstack/telemetry.yml @@ -2,7 +2,6 @@ classes: - system.linux.system.repo.mcp.openstack - system.linux.system.repo.mcp.extra - - system.linux.system.repo.saltstack.xenial - system.mongodb.server.cluster - system.mongodb.server.database.ceilometer - system.ceilometer.server.backend.mongodb @@ -13,7 +12,7 @@ classes: - cluster.baremetal-mcp-ocata-ovs-ha.infra parameters: _param: - keepalived_openstack_telemetry_vip_interface: ens3 + keepalived_openstack_telemetry_vip_interface: ${_param:single_nic} keepalived_vip_virtual_router_id: 230 cluster_vip_address: ${_param:openstack_telemetry_address} cluster_local_address: ${_param:single_address} @@ -26,8 +25,8 @@ parameters: linux: network: interface: - ens2: ${_param:linux_dhcp_interface} - ens3: ${_param:linux_single_interface} + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} mongodb: server: logging: diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/openstack_compute.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/openstack_compute.yml index d072956dc..ddd804a42 100644 --- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/openstack_compute.yml +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/openstack_compute.yml @@ -1,6 +1,5 @@ --- classes: - - system.linux.system.repo.saltstack.xenial - system.linux.storage.loopback - service.nfs.client - system.nova.compute.single @@ -17,7 +16,7 @@ parameters: external_interface: ${_param:opnfv_fn_vm_quaternary_interface} interface_mtu: 9000 linux_system_codename: xenial - loopback_device_size: 10 + loopback_device_size: 20 nova: compute: libvirt_service: libvirtd @@ -78,7 +77,6 @@ parameters: primary_interface: enabled: true name: ${_param:primary_interface} - mtu: ${_param:interface_mtu} proto: manual type: eth tenant_interface: diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/openstack_control.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/openstack_control.yml index 4c9af8d55..a2382bb2d 100644 --- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/openstack_control.yml +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/openstack_control.yml @@ -3,7 +3,6 @@ classes: - system.linux.system.lowmem - system.linux.system.repo.mcp.openstack - system.linux.system.repo.mcp.extra - - system.linux.system.repo.saltstack.xenial - service.nfs.server - system.mongodb.server.single - system.mongodb.server.database.ceilometer diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/openstack_gateway.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/openstack_gateway.yml index b0316f209..c6e2b7e28 100644 --- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/openstack_gateway.yml +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-common/openstack_gateway.yml @@ -2,7 +2,6 @@ classes: - system.linux.system.repo.mcp.openstack - system.linux.system.repo.mcp.extra - - system.linux.system.repo.saltstack.xenial parameters: _param: primary_interface: ${_param:opnfv_fn_vm_secondary_interface} diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/opendaylight/control.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/opendaylight/control.yml index d47e5cc3d..1c659fa73 100644 --- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/opendaylight/control.yml +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/opendaylight/control.yml @@ -2,7 +2,6 @@ classes: - system.linux.system.repo.mcp.openstack - system.linux.system.repo.mcp.extra - - system.linux.system.repo.saltstack.xenial - system.opendaylight.server.single - cluster.virtual-mcp-ocata-odl-router parameters: @@ -30,5 +29,6 @@ parameters: - odl-restconf-all - odl-aaa-authn - odl-dlux-all + - odl-mdsal-apidocs netvirt: - odl-netvirt-openstack diff --git a/mcp/salt-formulas/maas/pxe_route.sls b/mcp/salt-formulas/maas/pxe_route.sls index 9c22b2a76..e6e9a7801 100644 --- a/mcp/salt-formulas/maas/pxe_route.sls +++ b/mcp/salt-formulas/maas/pxe_route.sls @@ -3,6 +3,6 @@ routes: - name: {{ salt['pillar.get']('_param:opnfv_fn_vm_primary_interface') }} - routes: - name: maas_mcp_to_pxe_network - ipaddr: {{ salt['pillar.get']('_param:opnfv_maas_pxe_network') }} + ipaddr: {{ salt['pillar.get']('_param:opnfv_maas_pxe_network_address') }} netmask: 255.255.255.0 gateway: {{ salt['pillar.get']('_param:opnfv_maas_mcp_address') }} diff --git a/mcp/salt-formulas/opendaylight/files/jetty.xml b/mcp/salt-formulas/opendaylight/files/jetty.xml index 062568c54..e6371883a 100644 --- a/mcp/salt-formulas/opendaylight/files/jetty.xml +++ b/mcp/salt-formulas/opendaylight/files/jetty.xml @@ -21,7 +21,7 @@ <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting// DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd"> -<Configure class="org.eclipse.jetty.server.Server"> +<Configure id="Server" class="org.eclipse.jetty.server.Server"> <!-- =========================================================== --> <!-- Set connectors --> @@ -31,41 +31,98 @@ DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd"> <!-- Use this connector for many frequently idle connections and for threadless continuations. --> + <New id="http-default" class="org.eclipse.jetty.server.HttpConfiguration"> + <Set name="secureScheme">https</Set> + <Set name="securePort"> + <Property name="jetty.secure.port" default="8543" /> + </Set> + <Set name="outputBufferSize">32768</Set> + <Set name="requestHeaderSize">8192</Set> + <Set name="responseHeaderSize">8192</Set> + + <!-- Default security setting: do not leak our version --> + <Set name="sendServerVersion">false</Set> + + <Set name="sendDateHeader">false</Set> + <Set name="headerCacheSize">512</Set> + </New> + + <New id="http-legacy" class="org.eclipse.jetty.server.HttpConfiguration"> + <Set name="secureScheme">https</Set> + <Set name="securePort"> + <Property name="jetty.secure.port" default="8443" /> + </Set> + <Set name="outputBufferSize">32768</Set> + <Set name="requestHeaderSize">8192</Set> + <Set name="responseHeaderSize">8192</Set> + + <!-- Default security setting: do not leak our version --> + <Set name="sendServerVersion">false</Set> + + <Set name="sendDateHeader">false</Set> + <Set name="headerCacheSize">512</Set> + </New> + <Call name="addConnector"> <Arg> - <New class="org.eclipse.jetty.server.nio.SelectChannelConnector"> + <New class="org.eclipse.jetty.server.ServerConnector"> + <Arg name="server"> + <Ref refid="Server" /> + </Arg> + <Arg name="factories"> + <Array type="org.eclipse.jetty.server.ConnectionFactory"> + <Item> + <New class="org.eclipse.jetty.server.HttpConnectionFactory"> + <Arg name="config"> + <Ref refid="http-default"/> + </Arg> + </New> + </Item> + </Array> + </Arg> <Set name="host">{{ server.odl_bind_ip }} - <Property name="jetty.host" /> + <Property name="jetty.host"/> </Set> <Set name="port"> - <Property name="jetty.port" default="8181" /> + <Property name="jetty.port" default="8181"/> </Set> - <Set name="maxIdleTime">300000</Set> - <Set name="Acceptors">2</Set> - <Set name="statsOn">false</Set> - <Set name="confidentialPort">8543</Set> - <Set name="lowResourcesConnections">20000</Set> - <Set name="lowResourcesMaxIdleTime">5000</Set> + <Set name="idleTimeout"> + <Property name="http.timeout" default="300000"/> + </Set> + <Set name="name">jetty-default</Set> </New> </Arg> </Call> + <Call name="addConnector"> - <Arg> - <New class="org.eclipse.jetty.server.nio.SelectChannelConnector"> - <Set name="host">{{ server.odl_bind_ip }} - <Property name="jetty.host" /> - </Set> - <Set name="port"> - <Property name="jetty.port" default="{{ server.odl_rest_port }}" /> - </Set> - <Set name="maxIdleTime">300000</Set> - <Set name="Acceptors">2</Set> - <Set name="statsOn">false</Set> - <Set name="confidentialPort">8443</Set> - <Set name="lowResourcesConnections">20000</Set> - <Set name="lowResourcesMaxIdleTime">5000</Set> - </New> - </Arg> + <Arg> + <New class="org.eclipse.jetty.server.ServerConnector"> + <Arg name="server"> + <Ref refid="Server" /> + </Arg> + <Arg name="factories"> + <Array type="org.eclipse.jetty.server.ConnectionFactory"> + <Item> + <New class="org.eclipse.jetty.server.HttpConnectionFactory"> + <Arg name="config"> + <Ref refid="http-legacy" /> + </Arg> + </New> + </Item> + </Array> + </Arg> + <Set name="host">{{ server.odl_bind_ip }} + <Property name="jetty.host"/> + </Set> + <Set name="port"> + <Property name="jetty.port" default="{{ server.odl_rest_port }}"/> + </Set> + <Set name="idleTimeout"> + <Property name="http.timeout" default="300000"/> + </Set>q + <Set name="name">jetty-legacy</Set> + </New> + </Arg> </Call> <!-- =========================================================== --> @@ -77,7 +134,7 @@ DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd"> <!-- =========================================================== --> <Call name="addBean"> <Arg> - <New class="org.eclipse.jetty.plus.jaas.JAASLoginService"> + <New class="org.eclipse.jetty.jaas.JAASLoginService"> <Set name="name">karaf</Set> <Set name="loginModuleName">karaf</Set> <Set name="roleClassNames"> @@ -91,7 +148,7 @@ DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd"> </Call> <Call name="addBean"> <Arg> - <New class="org.eclipse.jetty.plus.jaas.JAASLoginService"> + <New class="org.eclipse.jetty.jaas.JAASLoginService"> <Set name="name">default</Set> <Set name="loginModuleName">karaf</Set> <Set name="roleClassNames"> @@ -103,5 +160,4 @@ DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd"> </New> </Arg> </Call> - </Configure> diff --git a/mcp/salt-formulas/opendaylight/map.jinja b/mcp/salt-formulas/opendaylight/map.jinja index 0f6bf3c7e..755f878e2 100644 --- a/mcp/salt-formulas/opendaylight/map.jinja +++ b/mcp/salt-formulas/opendaylight/map.jinja @@ -1,10 +1,10 @@ {% set server = salt['grains.filter_by']({ 'Debian': { - 'karaf_features': {'default': ['config', 'standard', 'region', 'package', 'kar', 'ssh', 'management']}, + 'karaf_features': {'default': ['standard', 'wrap', 'ssh']}, 'odl_rest_port': '8282', 'odl_bind_ip': '0.0.0.0', - 'repo': 'odl-team/carbon', + 'repo': 'odl-team/nitrogen', 'log_levels': {}, 'enable_ha': false, 'ha_node_ips': [], diff --git a/mcp/salt-formulas/opendaylight/server.sls b/mcp/salt-formulas/opendaylight/server.sls index 8c6c3b28a..f7a97417e 100644 --- a/mcp/salt-formulas/opendaylight/server.sls +++ b/mcp/salt-formulas/opendaylight/server.sls @@ -14,12 +14,14 @@ opendaylight: - file: /opt/opendaylight/etc/jetty.xml - file: /opt/opendaylight/bin/setenv - ini: /opt/opendaylight/etc/org.apache.karaf.features.cfg + - ini: /opt/opendaylight/etc/org.ops4j.pax.web.cfg service.running: - enable: true - watch: - file: /opt/opendaylight/etc/jetty.xml - file: /opt/opendaylight/bin/setenv - ini: /opt/opendaylight/etc/org.apache.karaf.features.cfg + - ini: /opt/opendaylight/etc/org.ops4j.pax.web.cfg /opt/opendaylight/etc/jetty.xml: file.managed: @@ -46,6 +48,11 @@ opendaylight: - sections: featuresBoot: {{ features }} +/opt/opendaylight/etc/org.ops4j.pax.web.cfg: + ini.options_present: + - sections: + org.ops4j.pax.web.listening.addresses: {{ server.odl_bind_ip }} + {%- if server.get('router_enabled', false) %} /opt/opendaylight/etc/custom.properties: ini.options_present: diff --git a/mcp/scripts/globals.sh b/mcp/scripts/globals.sh new file mode 100644 index 000000000..6dabe65fe --- /dev/null +++ b/mcp/scripts/globals.sh @@ -0,0 +1,21 @@ +#!/bin/bash -ex +############################################################################## +# Copyright (c) 2017 Ericsson AB, Mirantis Inc., Enea AB and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +# Global variables +export SSH_KEY=${SSH_KEY:-"/var/lib/opnfv/mcp.rsa"} +export SALT_MASTER=${INSTALLER_IP:-10.20.0.2} +export SALT_MASTER_USER=${SALT_MASTER_USER:-ubuntu} +export MAAS_IP=${MAAS_IP:-${SALT_MASTER%.*}.3} + +# These should be determined from PDF later +export MAAS_PXE_NETWORK=${MAAS_PXE_NETWORK:-192.168.11.0} + +# Derivated from above global vars +export SSH_OPTS="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ${SSH_KEY}" +export SSH_SALT="${SALT_MASTER_USER}@${SALT_MASTER}" diff --git a/mcp/scripts/lib.sh b/mcp/scripts/lib.sh index dc4d9dc2f..fcc5d76ac 100644 --- a/mcp/scripts/lib.sh +++ b/mcp/scripts/lib.sh @@ -103,13 +103,7 @@ create_vms() { vnode_networks[2]="${vnode_networks[0]}" fi for net in "${vnode_networks[@]:1}"; do - net_type="bridge" - # in case of custom network, host should already have the bridge in place - if [ -f "net_${net}.xml" ] && \ - [ ! -d "/sys/class/net/${net}/bridge" ]; then - net_type="network" - fi - net_args="${net_args} --network ${net_type}=${net},model=virtio" + net_args="${net_args} --network bridge=${net},model=virtio" done # shellcheck disable=SC2086 diff --git a/mcp/scripts/log.sh b/mcp/scripts/log.sh index 1ae0953af..8c4bf3ef5 100755 --- a/mcp/scripts/log.sh +++ b/mcp/scripts/log.sh @@ -14,6 +14,8 @@ DEPLOY_LOG=$1 OPNFV_TMP_LOG="opnfv_fuel_logs" [ -n "${DEPLOY_LOG}" ] || exit 0 +# shellcheck disable=SC1090 +[ -n "${SSH_OPTS}" ] || source "$(dirname "${BASH_SOURCE[0]}")/globals.sh" # ssh to cfg01 # shellcheck disable=SC2086,2087 diff --git a/mcp/scripts/net_mcpcontrol.xml.template b/mcp/scripts/net_mcpcontrol.xml.template index 722a66aa9..ab58851e8 100644 --- a/mcp/scripts/net_mcpcontrol.xml.template +++ b/mcp/scripts/net_mcpcontrol.xml.template @@ -2,9 +2,9 @@ <name>mcpcontrol</name> <bridge name="mcpcontrol"/> <forward mode="nat"/> - <ip address="${MCP_CTRL_NETWORK_ROOTSTR}.1" netmask="255.255.255.0"> + <ip address="${SALT_MASTER%.*}.1" netmask="255.255.255.0"> <dhcp> - <range start="${MCP_CTRL_NETWORK_ROOTSTR}.2" end="${MCP_CTRL_NETWORK_ROOTSTR}.254"/> + <range start="${SALT_MASTER%.*}.2" end="${SALT_MASTER%.*}.254"/> </dhcp> </ip> </network> diff --git a/mcp/scripts/pharos b/mcp/scripts/pharos -Subproject 908dab58edbbe8f22db14a9261693a54e9b2d8f +Subproject 2c4fac2e41aaca9dd679b200ffc968eeb448b39 diff --git a/mcp/scripts/salt.sh b/mcp/scripts/salt.sh index 081513c6b..b0a26873d 100755 --- a/mcp/scripts/salt.sh +++ b/mcp/scripts/salt.sh @@ -65,4 +65,9 @@ ssh ${SSH_OPTS} "${SSH_SALT}" bash -s << SALT_INSTALL_END salt -C '* and not cfg01*' pkg.upgrade refresh=False salt '*' state.sls ntp + + # Temporary fixup for mismatch between neutron formula and reclass model + salt-call pkg.install salt-formula-neutron allow_updates=False refresh=False \ + version=2016.12.1+201709251458.f0607d9-1xenial1 + cd ${OPNFV_FUEL_DIR}/mcp/patches && ./patch.sh patches_neutron.list formulas SALT_INSTALL_END |