# 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: [customize_mellanox_hiera] requires: [init_mlnx_logs] type: shell parameters: cmd: ./link_astute_file.sh timeout: 10 # 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: [validate_kernel_devel] requires: [link_astute_file] type: shell parameters: cmd: ./mellanox_settings.py timeout: 20 # Verify kernel-devel packages are installed (if CentOS) - id: validate_kernel_devel role: '*' required_for: [install_mlnx_ofed] requires: [customize_mellanox_hiera] type: puppet parameters: puppet_manifest: puppet/manifests/verify_kernel_devel.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 200 # Install OFED + FW upgrade - id: install_mlnx_ofed role: '*' required_for: [configure_vxlan_offload] requires: [validate_kernel_devel] type: shell parameters: cmd: ./install_ofed.sh timeout: 3600 # add VXLAN offloading parameters - id: configure_vxlan_offload role: '*' required_for: [configure_sriov] requires: [install_mlnx_ofed] type: shell parameters: cmd: ./vxlan_offloading.sh configure timeout: 120 # 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: 200 # if VXLAN is not required. Rename iSER interface for Eth mode - id: rename_iser_probe_vf role: '*' required_for: [reboot_after_ofed] requires: [configure_sriov] type: puppet parameters: puppet_manifest: puppet/manifests/iser_rename.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 200 # Reboot due to OFED installation / IOMMU configuration - id: reboot_after_ofed role: '*' required_for: [validate_sriov] requires: [rename_iser_probe_vf] type: reboot parameters: timeout: 500 # Check number of VFs - id: validate_sriov role: '*' required_for: [modprobe_vfio] requires: [reboot_after_ofed] type: shell parameters: cmd: ./sriov.sh validate timeout: 200 # Load required kmods for SR-IOV - id: modprobe_vfio role: ['compute'] required_for: [remove_blocking_iptable_roles] requires: [validate_sriov] type: shell parameters: cmd: ./vfio.sh 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: [modprobe_vfio] 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: [post_deployment_end] requires: [post_deployment_start] type: shell parameters: cmd: ./log_stage.sh post_deployment timeout: 20 # Execute post_deployment manifest for each role - id: configure_mellanox_controller role: ['controller', 'primary-controller'] required_for: [configure_mlnx_iser_ib] requires: [print_stage_post_deployment] 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: [configure_mlnx_iser_ib] requires: [print_stage_post_deployment] 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_mlnx_iser_ib] requires: [print_stage_post_deployment] type: puppet parameters: puppet_manifest: puppet/manifests/cinder.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 500 # Set storage network configurations on the IB child # if exists - id: configure_mlnx_iser_ib role: '*' required_for: [move_ib_interfaces_to_persistent] requires: [post_deployment_start] 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 - id: move_ib_interfaces_to_persistent role: '*' required_for: [cp_sriov_user_scripts] requires: [configure_mlnx_iser_ib] type: shell parameters: cmd: ./move_ubuntu_ib_interfaces_conf.sh timeout: 120 # Copy SR-IOV user scripts to controllers - id: cp_sriov_user_scripts role: ['controller', 'primary-controller'] required_for: [post_deployment_end] requires: [move_ib_interfaces_to_persistent] type: shell parameters: cmd: cp -r ./user_scripts/* /sbin/ timeout: 180 retries: 10