diff options
author | Steven Hardy <shardy@redhat.com> | 2015-09-10 10:17:16 -0400 |
---|---|---|
committer | Steven Hardy <shardy@redhat.com> | 2015-09-17 15:50:39 +0100 |
commit | 81785633bd33b3e5c8cf47c39b8ea2525b7e630a (patch) | |
tree | bc28ce7ec515519c42c5229924bb3274118bbdd6 /puppet/extraconfig/pre_deploy | |
parent | 196e6f3ff6cb9d261d8c8f872d43deb129b1a2e8 (diff) |
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
Diffstat (limited to 'puppet/extraconfig/pre_deploy')
-rw-r--r-- | puppet/extraconfig/pre_deploy/controller/network-cisco.yaml | 141 |
1 files changed, 0 insertions, 141 deletions
diff --git a/puppet/extraconfig/pre_deploy/controller/network-cisco.yaml b/puppet/extraconfig/pre_deploy/controller/network-cisco.yaml deleted file mode 100644 index ed3bf291..00000000 --- a/puppet/extraconfig/pre_deploy/controller/network-cisco.yaml +++ /dev/null @@ -1,141 +0,0 @@ -heat_template_version: 2015-04-30 - -description: Configure hieradata for Network Cisco configuration - -parameters: - server: - description: ID of the controller node to apply this config to - type: string - - NetworkUCSMIp: - type: string - description: Cisco UCSM IP - default: 127.0.0.1 - NetworkUCSMUsername: - type: string - description: Cisco UCSM username - default: admin - NetworkUCSMPassword: - type: string - description: Cisco UCSM password - default: password - NetworkUCSMHostList: - type: string - description: Cisco UCSM hostname - default: 127.0.0.1 - NetworkUCSMSupportedPciDevs: - type: string - description: Cisco UCSM SR-IOV and VM-FEX vendors supported - default: '' - NetworkNexusConfig: - type: json - description: Nexus switch configuration - default: {} - NetworkNexusManagedPhysicalNetwork: - type: string - description: The name of the physical_network - default: '' - NetworkNexusVlanNamePrefix: - type: string - description: A short prefix to prepend to the VLAN name - default: 'q-' - NetworkNexusSviRoundRobin: - type: boolean - description: A flag to enable round robin scheduling - default: false - NetworkNexusProviderVlanNamePrefix: - type: string - description: A short prefix to prepend to the VLAN name - default: 'p-' - NetworkNexusPersistentSwitchConfig: - type: string - description: To make Nexus device persistent - default: false - NetworkNexusSwitchHeartbeatTime: - type: number - description: Time interval to check the state of the Nexus device - default: 0 - NetworkNexusSwitchReplayCount: - type: number - description: Number of times to attempt config replay - default: 3 - NetworkNexusProviderVlanAutoCreate: - type: boolean - description: A flag whether to manage the creation and removal of VLANs - default: true - NetworkNexusProviderVlanAutoTrunk: - type: boolean - description: A flag whether to manage the trunk ports on the Nexus - default: true - NetworkNexusVxlanGlobalConfig: - type: boolean - description: A flag whether to manage the VXLAN global settings - default: true - NetworkNexusHostKeyChecks: - type: boolean - description: enable strict host key checks when connecting to Nexus switches - default: false - NetworkNexusVxlanVniRanges: - type: string - description: VXLAN Network IDs that are available for tenant network - default: '' - NetworkNexusVxlanMcastRanges: - type: string - description: Multicast groups for the VXLAN interface. - default: '' - -resources: - NetworkCiscoConfig: - type: OS::Heat::StructuredConfig - properties: - group: os-apply-config - config: - hiera: - datafiles: - neutron_cisco_data: - mapped_data: - neutron::plugins::ml2::cisco::ucsm::ucsm_ip: {get_input: UCSM_ip} - neutron::plugins::ml2::cisco::ucsm::ucsm_username: {get_input: UCSM_username} - neutron::plugins::ml2::cisco::ucsm::ucsm_password: {get_input: UCSM_password} - neutron::plugins::ml2::cisco::ucsm::ucsm_host_list: {get_input: UCSM_host_list} - neutron::plugins::ml2::cisco::ucsm::supported_pci_devs: {get_input: UCSMSupportedPciDevs} - neutron::plugins::ml2::cisco::nexus::nexus_config: {get_input: NexusConfig} - neutron::plugins::ml2::cisco::nexus::managed_physical_network: {get_input: NexusManagedPhysicalNetwork} - neutron::plugins::ml2::cisco::nexus::vlan_name_prefix: {get_input: NexusVlanNamePrefix} - neutron::plugins::ml2::cisco::nexus::svi_round_robin: {get_input: NexusSviRoundRobin} - neutron::plugins::ml2::cisco::nexus::provider_vlan_name_prefix: {get_input: NexusProviderVlanNamePrefix} - neutron::plugins::ml2::cisco::nexus::persistent_switch_config: {get_input: NexusPersistentSwitchConfig} - neutron::plugins::ml2::cisco::nexus::switch_heartbeat_time: {get_input: NexusSwitchHeartbeatTime} - neutron::plugins::ml2::cisco::nexus::switch_replay_count: {get_input: NexusSwitchReplayCount} - neutron::plugins::ml2::cisco::nexus::provider_vlan_auto_create: {get_input: NexusProviderVlanAutoCreate} - neutron::plugins::ml2::cisco::nexus::provider_vlan_auto_trunk: {get_input: NexusProviderVlanAutoTrunk} - neutron::plugins::ml2::cisco::nexus::vxlan_global_config: {get_input: NexusVxlanGlobalConfig} - neutron::plugins::ml2::cisco::nexus::host_key_checks: {get_input: NexusHostKeyChecks} - neutron::plugins::ml2::cisco::type_nexus_vxlan::vni_ranges: {get_input: NexusVxlanVniRanges} - neutron::plugins::ml2::cisco::type_nexus_vxlan::mcast_ranges: {get_input: NexusVxlanMcastRanges} - - NetworkCiscoDeployment: - type: OS::Heat::StructuredDeployment - properties: - config: {get_resource: NetworkCiscoConfig} - server: {get_param: server} - input_values: - UCSM_ip: {get_param: NetworkUCSMIp} - UCSM_username: {get_param: NetworkUCSMUsername} - UCSM_password: {get_param: NetworkUCSMPassword} - UCSM_host_list: {get_param: NetworkUCSMHostList} - UCSMSupportedPciDevs: {get_param: NetworkUCSMSupportedPciDevs} - NexusConfig: {get_param: NetworkNexusConfig} - NexusManagedPhysicalNetwork: {get_param: NetworkNexusManagedPhysicalNetwork} - NexusVlanNamePrefix: {get_param: NetworkNexusVlanNamePrefix} - NexusSviRoundRobin: {get_param: NetworkNexusSviRoundRobin} - NexusProviderVlanNamePrefix: {get_param: NetworkNexusProviderVlanNamePrefix} - NexusPersistentSwitchConfig: {get_param: NetworkNexusPersistentSwitchConfig} - NexusSwitchHeartbeatTime: {get_param: NetworkNexusSwitchHeartbeatTime} - NexusSwitchReplayCount: {get_param: NetworkNexusSwitchReplayCount} - NexusProviderVlanAutoCreate: {get_param: NetworkNexusProviderVlanAutoCreate} - NexusProviderVlanAutoTrunk: {get_param: NetworkNexusProviderVlanAutoTrunk} - NexusVxlanGlobalConfig: {get_param: NetworkNexusVxlanGlobalConfig} - NexusHostKeyChecks: {get_param: NetworkNexusHostKeyChecks} - NexusVxlanVniRanges: {get_param: NetworkNexusVxlanVniRanges} - NexusVxlanMcastRanges: {get_param: NetworkNexusVxlanMcastRanges} |