From c43afd462b643727849cf83efd20d686b0148cf5 Mon Sep 17 00:00:00 2001 From: Aviram Bar-Haim Date: Sun, 24 Jan 2016 18:59:21 +0200 Subject: [PATCH] Adding support for FPB 3.0.0 and Fuel 8.0 Change-Id: Ibc36e9371d6eba33b1ababbebe859414d5c7ed84 --- build.sh | 8 ++-- tasks.yaml => deployment_tasks.yaml | 57 +++++++++++++++++++---------- environment_config.yaml | 45 +++++++++++++---------- metadata.yaml | 18 ++------- specs/post.spec | 2 - 5 files changed, 73 insertions(+), 57 deletions(-) rename tasks.yaml => deployment_tasks.yaml (80%) diff --git a/build.sh b/build.sh index 3aeb778..afd2451 100755 --- a/build.sh +++ b/build.sh @@ -21,12 +21,13 @@ function fail_on_error() { } # Verify distrobution -( [ -f /etc/redhat-release ] && grep -q "release 6" /etc/redhat-release ) || -fail_on_error "Mellanox plugin build script supports only Redhat/CentOS 6" +( [ -f /etc/redhat-release ] ) || +fail_on_error "Mellanox plugin build script supports only Redhat/CentOS" readonly TOP_DIR=`dirname $0` readonly TMP_DIR='/tmp' readonly PLUGIN_BUILDER_DIR="$TMP_DIR/fuel-plugins/" +readonly FUEL_PLUGIN_VERSION=`cat metadata.yaml | grep package_version | awk '{print $2}' | head -c 2 | tail -c 1` readonly PLUGIN_BUILDER_PACKAGE_DIR="$PLUGIN_BUILDER_DIR/dist" pushd $TOP_DIR > /dev/null @@ -51,7 +52,8 @@ git clone https://github.com/stackforge/fuel-plugins.git $TMP_DIR/fuel-plugins | fail_on_error "Failed cloning fuel-plugin-builder git repository" # Append bootstrap post install to the spec -cat specs/post.spec >> $PLUGIN_BUILDER_DIR/fuel_plugin_builder/templates/v2/build/plugin_rpm.spec.mako +plugin_template=$PLUGIN_BUILDER_DIR/fuel_plugin_builder/templates/v$FUEL_PLUGIN_VERSION +sed -i '/%post/r specs/post.spec' $plugin_template/build/plugin_rpm.spec.mako # Install plugin builder pushd $PLUGIN_BUILDER_DIR > /dev/null diff --git a/tasks.yaml b/deployment_tasks.yaml similarity index 80% rename from tasks.yaml rename to deployment_tasks.yaml index eecd194..5ad576f 100644 --- a/tasks.yaml +++ b/deployment_tasks.yaml @@ -1,5 +1,6 @@ # Log a notice about pre_deployment start -- role: '*' +- id: init_mlnx_logs + role: '*' stage: pre_deployment type: shell parameters: @@ -9,7 +10,8 @@ # there is no symbolic link from astute.yaml to .yaml. # Since the data that the plugin uses is common to all .yaml files, # this script links astute.yaml to any .yaml on each node. -- role: '*' +- id: link_astute_file + role: '*' stage: pre_deployment type: shell parameters: @@ -17,14 +19,16 @@ timeout: 5 # Add relevant settings for Mellanox manifests to mellanox plugin section in # Hiera, to make the data easily accessible and independent of astute.yaml -- role: '*' +- id: customize_mellanox_hiera + role: '*' stage: pre_deployment type: shell parameters: cmd: ./mellanox_settings.py timeout: 10 # Verify kernel-devel packages are installed (if CentOS) -- role: '*' +- id: validate_kernel_devel + role: '*' stage: pre_deployment type: puppet parameters: @@ -32,14 +36,16 @@ puppet_modules: puppet/modules:/etc/puppet/modules timeout: 200 # Install OFED + FW upgrade -- role: '*' +- id: install_mlnx_ofed + role: '*' stage: pre_deployment type: shell parameters: cmd: ./install_ofed.sh timeout: 3600 # add VXLAN offloading parameters -- role: '*' +- id: configure_vxlan_offload + role: '*' stage: pre_deployment type: shell parameters: @@ -47,14 +53,16 @@ timeout: 60 # Configure number of VFs according to the user decision: # change modprobe file + IOMMU in grub file + change VFs num in FW -- role: '*' +- id: configure_sriov + role: '*' stage: pre_deployment type: shell parameters: cmd: ./sriov.sh configure timeout: 60 # if VXLAN is not required. Rename iSER interface for Eth mode -- role: '*' +- id: rename_iser_probe_vf + role: '*' stage: pre_deployment type: puppet parameters: @@ -62,48 +70,55 @@ puppet_modules: puppet/modules:/etc/puppet/modules timeout: 60 # Reboot due to OFED installation / IOMMU configuration -- role: '*' +- id: reboot_after_ofed + role: '*' stage: pre_deployment type: reboot parameters: timeout: 420 # change modprobe file + IOMMU in grub file + change VFs num in FW -- role: '*' +- id: validate_sriov + role: '*' stage: pre_deployment type: shell parameters: cmd: ./sriov.sh validate timeout: 60 # This is a workaround: disable wrong rules in CentOS IBP #1458832. -- role: '*' +- id: remove_blocking_iptable_roles + role: '*' stage: pre_deployment type: shell parameters: cmd: ./blocking_iptables_rules.sh timeout: 20 # Log a notice about post_deployment start -- role: '*' +- id: print_stage_post_deployment + role: '*' stage: post_deployment type: shell parameters: cmd: ./log_stage.sh post_deployment timeout: 5 # Execute post_deployment manifest for each role -- role: ['controller', 'primary-controller'] +- id: configure_mellanox_controller + role: ['controller', 'primary-controller'] stage: post_deployment type: puppet parameters: puppet_manifest: puppet/manifests/controller.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 360 -- role: ['compute'] +- id: configure_mellanox_compute + role: ['compute'] stage: post_deployment type: puppet parameters: puppet_manifest: puppet/manifests/compute.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 360 -- role: ['cinder'] +- id: configure_mellanox_cinder + role: ['cinder'] stage: post_deployment type: puppet parameters: @@ -112,7 +127,8 @@ timeout: 360 # Set storage network configurations on the IB child # if exists -- role: '*' +- id: configure_mlnx_iser_ib + role: '*' stage: post_deployment type: puppet parameters: @@ -121,16 +137,19 @@ timeout: 120 # Move Ubuntu iSER conigurations to /etc/network/interfaces # For MLNX_OFED drivers -- role: '*' +- id: move_ib_interfaces_to_persistent + role: '*' stage: post_deployment type: shell parameters: cmd: ./move_ubuntu_ib_interfaces_conf.sh timeout: 60 # Override the testvm with Mellanox Cirros TestVM -- role: ['primary-controller'] +- id: replace_cirros_sriov + role: ['primary-controller'] stage: post_deployment type: shell parameters: - cmd: ./replace_cirros.sh + cmd: source /root/openrc; ./replace_cirros.sh timeout: 180 + retries: 10 diff --git a/environment_config.yaml b/environment_config.yaml index 7786067..7952cdd 100644 --- a/environment_config.yaml +++ b/environment_config.yaml @@ -1,22 +1,29 @@ attributes: - prerequisites: - weight: 5 - type: "hidden" - value: true + metadata: + group: 'other' + notes: + type: "textarea" label: "Important notes:" - description: | - To use Mellanox High Performance features, you have to complete the following prerequisites prior to the deployment: - - For Ethernet deployment: - * Configure the Switch ports to Ethernet mode. - * Configure the desired VLANs for each port. - - For InfiniBand deployment: - * Configure the Switch ports to InfiniBand mode. - * Configure a Subnet Manager (SM) on the switch or on a node in the cluster, as described in the User manual. - * Reboot bootstrap nodes using the "reboot_bootstrap_nodes" script, from the Fuel master, in order to load eIPoIB hardware discovery support. - - After the interfaces discovery, perform the following: - * Set the relevant networks to work over Mellanox interfaces, in the interfaces configuration in the Nodes tab. - * Run network verification, after configuring the desired network subnets and VLAN segmentations. - - For more information: https://community.mellanox.com/docs/DOC-2374 + weight: 5 + extra_priority: null + value: | + To use Mellanox High Performance features, + you have to complete the following prerequisites prior to the deployment: + - For Ethernet deployment: + * Configure the Switch ports to Ethernet mode. + * Configure the desired VLANs for each port. + - For InfiniBand deployment: + * Configure the Switch ports to InfiniBand mode. + * Configure a Subnet Manager (SM) on the switch or on a node in the cluster, + as described in the User manual. + * Reboot bootstrap nodes using the 'reboot_bootstrap_nodes' script, from + the Fuel master, in order to load eIPoIB hardware discovery support. + - After the interfaces discovery, perform the following: + * Set the relevant networks to work over Mellanox interfaces, in the + interfaces configuration in the Nodes tab. + * Run network verification, after configuring the desired network subnets + and VLAN segmentations. + description: "For more information: https://community.mellanox.com/docs/DOC-2374" iser: value: false label: "iSER protocol for volumes (Cinder)" @@ -28,10 +35,10 @@ attributes: message: "For iSER support in Cinder, Cinder LVM over iSCSI should be enabled and hypervisor type should be KVM." sriov: value: false - label: "Neutron SR-IOV plugin" + label: "Neutron SR-IOV Mechanism driver" weight: 60 type: "checkbox" - description: "If selected, Mellanox network acceleration (Neutron) plugin will be installed, to enable SR-IOV capabilities." + description: "If selected, Neutron SRIOV mechanism driver will be configured, to enable SR-IOV capabilities." restrictions: - condition: "settings:common.libvirt_type.value != 'kvm' or not (cluster:net_provider == 'neutron' and networking_parameters:segmentation_type == 'vlan')" message: "For Mellanox SR-IOV support in neutron, hypervisor type should be KVM and the environment networking should be based on Neutron with VLAN segmentation." diff --git a/metadata.yaml b/metadata.yaml index 7d2a950..f96790c 100644 --- a/metadata.yaml +++ b/metadata.yaml @@ -5,13 +5,13 @@ name: mellanox-plugin title: Mellanox Openstack features # Plugin version -version: 2.0.14 +version: 2.0.15 # Description description: Enable features over Mellanox hardware # Required fuel version -fuel_version: ['6.1', '7.0', '8.0'] +fuel_version: ['7.0', '8.0'] # Specify license of your plugin licenses: ['Apache License Version 2.0'] @@ -27,26 +27,16 @@ groups: ['storage::cinder', 'hypervisor'] # The plugin is compatible with releases in the list releases: - - os: ubuntu - version: 2014.2-6.1 - mode: ['ha'] - deployment_scripts_path: deployment_scripts/ - repository_path: repositories/ubuntu - - os: centos - version: 2014.2-6.1 - mode: ['ha'] - deployment_scripts_path: deployment_scripts/ - repository_path: repositories/centos - os: ubuntu version: 2015.1.0-7.0 mode: ['ha'] deployment_scripts_path: deployment_scripts/ repository_path: repositories/ubuntu - os: ubuntu - version: 2015.2.0-8.0 + version: 2015.1.0-8.0 mode: ['ha'] deployment_scripts_path: deployment_scripts/ repository_path: repositories/ubuntu # Version of plugin package -package_version: '2.0.0' +package_version: '3.0.0' diff --git a/specs/post.spec b/specs/post.spec index d9595a4..1286bd6 100644 --- a/specs/post.spec +++ b/specs/post.spec @@ -1,6 +1,4 @@ -#%%post - FUEL_BOOTSTRAP_DIR="/var/www/nailgun/bootstrap/" PLUGINS_DIR="/var/www/nailgun/plugins/" BOOTSTRAP_BACKUP_DIR="/opt/old_bootstrap_initrd/"