blob: ed3bf291dff82efaa5654cc7f9cf23937ecfd38a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
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}
|