fuel-plugin-mellanox/deployment_tasks.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