# Setup standard repositories for MLNX_OFED installation - role: '*' id: hiera_mlnx parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/hiera/hiera.pp puppet_modules: /etc/puppet/modules timeout: 3600 required_for: [setup_repositories_mlnx] requires: [pre_deployment_start] type: puppet version: 2.0.0 - role: '*' id: setup_repositories_mlnx parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/fuel_pkgs/setup_repositories.pp puppet_modules: /etc/puppet/modules timeout: 600 requires: [hiera_mlnx] required_for: [pre_deployment_end] type: puppet version: 2.0.0 # Log a notice about pre_deployment start - id: init_mlnx_logs role: '*' required_for: [link_astute_file] requires: [setup_repositories_mlnx] type: shell parameters: cmd: ./log_stage.sh mlnx_deployment_start timeout: 10 # This is a workaround: during the plugin pre_deployment stage # 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. - id: link_astute_file role: '*' required_for: [validate_kernel_devel] requires: [init_mlnx_logs] type: shell parameters: cmd: ./link_astute_file.sh timeout: 10 # Verify kernel-devel packages are installed (if CentOS) - id: validate_kernel_devel role: '*' required_for: [install_mlnx_ofed] requires: [link_astute_file] type: puppet parameters: puppet_manifest: puppet/manifests/verify_kernel_devel.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 600 # Install OFED + FW upgrade - id: install_mlnx_ofed role: '*' required_for: [customize_mellanox_hiera] requires: [validate_kernel_devel] type: shell parameters: cmd: ./install_ofed.sh timeout: 5000 # Add relevant settings for Mellanox manifests to mellanox plugin section in # Hiera, to make the data easily accessible and independent of astute.yaml - id: customize_mellanox_hiera role: '*' required_for: [configure_vxlan_offload] requires: [install_mlnx_ofed] type: shell parameters: cmd: ./mellanox_settings.py timeout: 100 # add VXLAN offloading parameters - id: configure_vxlan_offload role: '*' required_for: [configure_sriov] requires: [customize_mellanox_hiera] type: shell parameters: cmd: ./vxlan_offloading.sh configure timeout: 200 # Configure number of VFs according to the user decision: # change modprobe file + IOMMU in grub file + change VFs num in FW - id: configure_sriov role: '*' required_for: [rename_iser_probe_vf] requires: [configure_vxlan_offload] type: shell parameters: cmd: ./sriov.sh configure timeout: 300 # if VXLAN is not required. Rename iSER interface for Eth mode - id: rename_iser_probe_vf role: '*' required_for: [validate_sriov] requires: [configure_sriov] type: puppet parameters: puppet_manifest: puppet/manifests/iser_rename.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 300 # Check number of VFs - id: validate_sriov role: '*' required_for: [configure_qos] requires: [rename_iser_probe_vf] type: shell parameters: cmd: ./sriov.sh validate timeout: 300 # Enable QoS if required - id: configure_qos role: '*' required_for: [remove_blocking_iptable_roles] requires: [validate_sriov] type: shell parameters: cmd: ./configure_qos.sh configure timeout: 200 # This is a workaround: disable wrong rules in CentOS IBP #1458832. - id: remove_blocking_iptable_roles role: '*' required_for: [pre_deployment_end] requires: [configure_qos] type: shell parameters: cmd: ./blocking_iptables_rules.sh timeout: 200 # Log a notice about post_deployment start - id: print_stage_post_deployment role: '*' required_for: [configure_mlnx_iser_ib] requires: [post_deployment_start] type: shell parameters: cmd: ./log_stage.sh post_deployment timeout: 20 # Set storage network configurations on the IB child # if exists - id: configure_mlnx_iser_ib role: '*' required_for: [post_set_mellanox_interfaces] requires: [print_stage_post_deployment] type: puppet parameters: puppet_manifest: puppet/manifests/configure_iser_child.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 200 # Move Ubuntu iSER conigurations to /etc/network/interfaces # For MLNX_OFED drivers and reset VFs number - id: post_set_mellanox_interfaces role: '*' required_for: [configure_mellanox_neo] requires: [configure_mlnx_iser_ib] type: shell parameters: cmd: ./post_set_mellanox_interfaces.sh timeout: 500 # Execute post_deployment manifest for each role - id: configure_mellanox_controller role: ['controller', 'primary-controller'] required_for: [configure_mellanox_neo] requires: [post_set_mellanox_interfaces] type: puppet parameters: puppet_manifest: puppet/manifests/controller.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 2000 - id: configure_mellanox_compute role: ['compute'] required_for: [set_apparmor] requires: [post_set_mellanox_interfaces] type: puppet parameters: puppet_manifest: puppet/manifests/compute.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 500 - id: configure_mellanox_cinder role: ['cinder'] required_for: [configure_mellanox_neo] requires: [post_set_mellanox_interfaces] type: puppet parameters: puppet_manifest: puppet/manifests/cinder.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 500 # Add required exceptions for SR-IOV - id: set_apparmor role: ['compute'] required_for: [configure_mellanox_neo] requires: [configure_mlnx_iser_ib] type: shell parameters: cmd: ./set_apparmor.sh timeout: 500 # Configure Mellanox NEO SDN controller for auto VLAN # provisioning - id: configure_mellanox_neo role: '*' required_for: [cp_sriov_user_scripts] requires: [post_set_mellanox_interfaces] type: puppet parameters: puppet_manifest: puppet/manifests/configure_mlnx_neo.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 500 # Copy SR-IOV user scripts to controllers - id: cp_sriov_user_scripts role: ['controller', 'primary-controller'] required_for: [post_deployment_end] requires: [configure_mellanox_neo] type: shell parameters: cmd: cp -r ./user_scripts/* /sbin/ timeout: 180 retries: 10