From abded1e472ed1e6dbb4b77c776eb6c822d34a8a3 Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Mon, 25 Jun 2018 15:22:29 +0000 Subject: [PATCH] Add support for Mellanox switches running MLNX-OS Mellanox switches running MLNX-OS cannot be managed using the Ansible onyx* modules, as the OS is too old. This change uses the stackhpc.mellanox-switch Ansible role to configure these devices using the Ansible expect module. Change-Id: I86f654c95be05e3a82d6015e4c89093127553408 Story: 2002687 Task: 22512 --- ansible/group_vars/switches/mellanox | 12 ++++++++++++ ansible/physical-network.yml | 12 ++++++++++++ .../notes/mellanox-switch-cb82a8c278f5e652.yaml | 5 +++++ requirements.yml | 1 + 4 files changed, 30 insertions(+) create mode 100644 ansible/group_vars/switches/mellanox create mode 100644 releasenotes/notes/mellanox-switch-cb82a8c278f5e652.yaml diff --git a/ansible/group_vars/switches/mellanox b/ansible/group_vars/switches/mellanox new file mode 100644 index 000000000..7cb697916 --- /dev/null +++ b/ansible/group_vars/switches/mellanox @@ -0,0 +1,12 @@ +--- +# Switch configuration. + +############################################################################### +# Authentication configuration. + +# For Mellanox switches, this defines a 'provider' argument to the +# mellanox-switch role. +switch_mellanox_provider: + host: "{{ ansible_host }}" + username: "{{ ansible_user }}" + auth_pass: "{{ switch_auth_pass }}" diff --git a/ansible/physical-network.yml b/ansible/physical-network.yml index f87ee3b6e..eaa4c9016 100644 --- a/ansible/physical-network.yml +++ b/ansible/physical-network.yml @@ -93,3 +93,15 @@ junos_switch_config_format: "{{ switch_junos_config_format }}" junos_switch_config: "{{ switch_config }}" junos_switch_interface_config: "{{ switch_interface_config }}" + +- name: Ensure Mellanox physical switches are configured + hosts: switches_of_type_mellanox:&switches_in_display_mode_False + gather_facts: no + roles: + - role: ssh-known-host + + - role: stackhpc.mellanox-switch + mellanox_switch_type: "{{ switch_type }}" + mellanox_switch_provider: "{{ switch_mellanox_provider }}" + mellanox_switch_config: "{{ switch_config }}" + mellanox_switch_interface_config: "{{ switch_interface_config }}" diff --git a/releasenotes/notes/mellanox-switch-cb82a8c278f5e652.yaml b/releasenotes/notes/mellanox-switch-cb82a8c278f5e652.yaml new file mode 100644 index 000000000..10745ed4a --- /dev/null +++ b/releasenotes/notes/mellanox-switch-cb82a8c278f5e652.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + Adds support for configuration of Mellanox switches running MLNX-OS. This + is integrated with the `kayobe physical network configure` command. diff --git a/requirements.yml b/requirements.yml index c0ae60f73..34082bd6c 100644 --- a/requirements.yml +++ b/requirements.yml @@ -14,6 +14,7 @@ - src: stackhpc.grafana-conf - src: stackhpc.libvirt-host - src: stackhpc.libvirt-vm +- src: stackhpc.mellanox-switch - src: stackhpc.os-flavors - src: stackhpc.os-images - src: stackhpc.os-ironic-state