Port Cisco Nexus/UCSM ExtraConfig to AllNodes
authorSteven Hardy <shardy@redhat.com>
Thu, 10 Sep 2015 14:17:16 +0000 (10:17 -0400)
committerSteven Hardy <shardy@redhat.com>
Thu, 17 Sep 2015 14:50:39 +0000 (15:50 +0100)
commit81785633bd33b3e5c8cf47c39b8ea2525b7e630a
treebc28ce7ec515519c42c5229924bb3274118bbdd6
parent196e6f3ff6cb9d261d8c8f872d43deb129b1a2e8
Port Cisco Nexus/UCSM ExtraConfig to AllNodes

Switch the implemention from a pre_deploy ExtraConfig to an
AllNodesExtraConfig, so we can collect the mac->hostname mapping
for all nodes, then calculate a NexusConfig based on that and
a provided mapping of switch ports to mac address.
The same conversion is also done to the NetworkUCSMHostList:

The port mappings are provided via parameter_defaults like:

parameter_defaults:
  NetworkNexusConfig: {
    "bxb-tor-1": {
      "username": "admin",
      "ssh_port": 22,
      "password": "lab",
      "ip_address": "10.86.7.204",
      "nve_src_intf": 0,
      "physnet": "datacentre",
      "servers": {
        "fa:16:3e:fa:be:ef": "1/11",
        "fa:16:3e:fa:5e:cf": "1/23",
        "fa:16:3e:fa:12:34": "2/34"
      }
    }
  }
  NetworkUCSMHostList: 'fa:16:3e:fa:be:ef:profile1'

This results in an entry like this appended to
/etc/puppet/hieradata/neutron_cisco_data.yaml:

neutron::plugins::ml2::cisco::nexus::nexus_config:\
 {"bxb-tor-1": {"username": "admin", "nve_src_intf": 0, "ssh_port": 22,
"servers": {"overcloud-compute02": "2/34", "overcloud-compute01": "1/23",
"overcloud-control01": "1/11"}, "password": "lab", "ip_address": "10.86.7.204",
"physnet": "datacentre"}}
neutron::plugins::ml2::cisco::ucsm::ucsm_host_list: overcloud-control01:profile1

Co-Authored-By: Rob Pothier <rpothier@cisco.com>
Co-Authored-By: Tim Swanson <tiswanso@cisco.com>
Change-Id: I372c3ffb6bd85b7239fcb9f3fc4fa51cd4a39332
environments/neutron-ml2-cisco-nexus-ucsm.yaml
puppet/extraconfig/all_nodes/neutron-ml2-cisco-nexus-ucsm.yaml [new file with mode: 0644]
puppet/extraconfig/pre_deploy/controller/network-cisco.yaml [deleted file]