213 lines
6.2 KiB
YAML
213 lines
6.2 KiB
YAML
# 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: [validate_kernel_devel]
|
|
requires: [setup_repositories_mlnx]
|
|
type: shell
|
|
parameters:
|
|
cmd: ./log_stage.sh mlnx_deployment_start
|
|
timeout: 10
|
|
# Verify kernel-devel packages are installed (if CentOS)
|
|
- id: validate_kernel_devel
|
|
role: '*'
|
|
required_for: [install_mlnx_ofed]
|
|
requires: [init_mlnx_logs]
|
|
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: [reboot_after_max_vfs_num_change]
|
|
requires: [configure_sriov]
|
|
type: puppet
|
|
parameters:
|
|
puppet_manifest: puppet/manifests/iser_rename.pp
|
|
puppet_modules: puppet/modules:/etc/puppet/modules
|
|
timeout: 300
|
|
# Reboot due to changing MAX number of VFs
|
|
- id: reboot_after_max_vfs_num_change
|
|
role: '*'
|
|
required_for: [validate_sriov]
|
|
requires: [rename_iser_probe_vf]
|
|
type: reboot
|
|
condition: "settings:mellanox-plugin.reboot_required.value == true"
|
|
parameters:
|
|
timeout: 6000
|
|
# 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
|