Big Switch Neutron ML2 plugin integration
[apex-tripleo-heat-templates.git] / puppet / extraconfig / pre_deploy / controller / network-cisco.yaml
1 heat_template_version: 2015-04-30
2
3 description: Configure hieradata for Network Cisco configuration
4
5 parameters:
6   server:
7     description: ID of the controller node to apply this config to
8     type: string
9
10   NetworkUCSMIp:
11     type: string
12     description: Cisco UCSM IP
13     default: 127.0.0.1
14   NetworkUCSMUsername:
15     type: string
16     description: Cisco UCSM username
17     default: admin
18   NetworkUCSMPassword:
19     type: string
20     description: Cisco UCSM password
21     default: password
22   NetworkUCSMHostList:
23     type: string
24     description: Cisco UCSM hostname
25     default: 127.0.0.1
26   NetworkUCSMSupportedPciDevs:
27     type: string
28     description: Cisco UCSM SR-IOV and VM-FEX vendors supported
29     default: ''
30   NetworkNexusConfig:
31     type: json
32     description: Nexus switch configuration
33     default: {}
34   NetworkNexusManagedPhysicalNetwork:
35     type: string
36     description: The name of the physical_network
37     default: ''
38   NetworkNexusVlanNamePrefix:
39     type: string
40     description: A short prefix to prepend to the VLAN name
41     default: 'q-'
42   NetworkNexusSviRoundRobin:
43     type: boolean
44     description: A flag to enable round robin scheduling
45     default: false
46   NetworkNexusProviderVlanNamePrefix:
47     type: string
48     description:  A short prefix to prepend to the VLAN name
49     default: 'p-'
50   NetworkNexusPersistentSwitchConfig:
51     type: string
52     description: To make Nexus device persistent
53     default: false
54   NetworkNexusSwitchHeartbeatTime:
55     type: number
56     description: Time interval to check the state of the Nexus device
57     default: 0
58   NetworkNexusSwitchReplayCount:
59     type: number
60     description: Number of times to attempt config replay
61     default: 3
62   NetworkNexusProviderVlanAutoCreate:
63     type: boolean
64     description: A flag whether to manage the creation and removal of VLANs
65     default: true
66   NetworkNexusProviderVlanAutoTrunk:
67     type: boolean
68     description: A flag whether to manage the trunk ports on the Nexus
69     default: true
70   NetworkNexusVxlanGlobalConfig:
71     type: boolean
72     description: A flag whether to manage the VXLAN global settings
73     default: true
74   NetworkNexusHostKeyChecks:
75     type: boolean
76     description: enable strict host key checks when connecting to Nexus switches
77     default: false
78   NetworkNexusVxlanVniRanges:
79     type: string
80     description: VXLAN Network IDs that are available for tenant network
81     default: ''
82   NetworkNexusVxlanMcastRanges:
83     type: string
84     description: Multicast groups for the VXLAN interface.
85     default: ''
86
87 resources:
88   NetworkCiscoConfig:
89     type: OS::Heat::StructuredConfig
90     properties:
91       group: os-apply-config
92       config:
93         hiera:
94           datafiles:
95             neutron_cisco_data:
96               mapped_data:
97                 neutron::plugins::ml2::cisco::ucsm::ucsm_ip: {get_input: UCSM_ip}
98                 neutron::plugins::ml2::cisco::ucsm::ucsm_username: {get_input: UCSM_username}
99                 neutron::plugins::ml2::cisco::ucsm::ucsm_password: {get_input: UCSM_password}
100                 neutron::plugins::ml2::cisco::ucsm::ucsm_host_list: {get_input: UCSM_host_list}
101                 neutron::plugins::ml2::cisco::ucsm::supported_pci_devs:  {get_input: UCSMSupportedPciDevs}
102                 neutron::plugins::ml2::cisco::nexus::nexus_config: {get_input: NexusConfig}
103                 neutron::plugins::ml2::cisco::nexus::managed_physical_network: {get_input: NexusManagedPhysicalNetwork}
104                 neutron::plugins::ml2::cisco::nexus::vlan_name_prefix: {get_input: NexusVlanNamePrefix}
105                 neutron::plugins::ml2::cisco::nexus::svi_round_robin: {get_input: NexusSviRoundRobin}
106                 neutron::plugins::ml2::cisco::nexus::provider_vlan_name_prefix: {get_input: NexusProviderVlanNamePrefix}
107                 neutron::plugins::ml2::cisco::nexus::persistent_switch_config: {get_input: NexusPersistentSwitchConfig}
108                 neutron::plugins::ml2::cisco::nexus::switch_heartbeat_time: {get_input: NexusSwitchHeartbeatTime}
109                 neutron::plugins::ml2::cisco::nexus::switch_replay_count: {get_input: NexusSwitchReplayCount}
110                 neutron::plugins::ml2::cisco::nexus::provider_vlan_auto_create: {get_input: NexusProviderVlanAutoCreate}
111                 neutron::plugins::ml2::cisco::nexus::provider_vlan_auto_trunk: {get_input: NexusProviderVlanAutoTrunk}
112                 neutron::plugins::ml2::cisco::nexus::vxlan_global_config: {get_input: NexusVxlanGlobalConfig}
113                 neutron::plugins::ml2::cisco::nexus::host_key_checks: {get_input: NexusHostKeyChecks}
114                 neutron::plugins::ml2::cisco::type_nexus_vxlan::vni_ranges: {get_input: NexusVxlanVniRanges}
115                 neutron::plugins::ml2::cisco::type_nexus_vxlan::mcast_ranges: {get_input: NexusVxlanMcastRanges}
116
117   NetworkCiscoDeployment:
118     type: OS::Heat::StructuredDeployment
119     properties:
120       config: {get_resource: NetworkCiscoConfig}
121       server: {get_param: server}
122       input_values:
123         UCSM_ip: {get_param: NetworkUCSMIp}
124         UCSM_username: {get_param: NetworkUCSMUsername}
125         UCSM_password: {get_param: NetworkUCSMPassword}
126         UCSM_host_list: {get_param: NetworkUCSMHostList}
127         UCSMSupportedPciDevs: {get_param: NetworkUCSMSupportedPciDevs}
128         NexusConfig: {get_param: NetworkNexusConfig}
129         NexusManagedPhysicalNetwork: {get_param: NetworkNexusManagedPhysicalNetwork}
130         NexusVlanNamePrefix: {get_param: NetworkNexusVlanNamePrefix}
131         NexusSviRoundRobin: {get_param: NetworkNexusSviRoundRobin}
132         NexusProviderVlanNamePrefix: {get_param: NetworkNexusProviderVlanNamePrefix}
133         NexusPersistentSwitchConfig: {get_param: NetworkNexusPersistentSwitchConfig}
134         NexusSwitchHeartbeatTime: {get_param: NetworkNexusSwitchHeartbeatTime}
135         NexusSwitchReplayCount: {get_param: NetworkNexusSwitchReplayCount}
136         NexusProviderVlanAutoCreate: {get_param: NetworkNexusProviderVlanAutoCreate}
137         NexusProviderVlanAutoTrunk: {get_param: NetworkNexusProviderVlanAutoTrunk}
138         NexusVxlanGlobalConfig: {get_param: NetworkNexusVxlanGlobalConfig}
139         NexusHostKeyChecks: {get_param: NetworkNexusHostKeyChecks}
140         NexusVxlanVniRanges: {get_param: NetworkNexusVxlanVniRanges}
141         NexusVxlanMcastRanges: {get_param: NetworkNexusVxlanMcastRanges}