Contrail network realignement + DPDK enablement
This patch moves Contrail roles communication from public/external to internal_api network for OpenStack API. It also adds the option to enable dpdk. Monolithic firstboot script is broken down into small pre-network and per-node extraconfig scripts Change-Id: I296a3bf60cef6fa950fd71d6e68effe367d1e66b Closes-Bug: 1698422
This commit is contained in:
parent
ec25c792d7
commit
aa5194f878
|
@ -0,0 +1,37 @@
|
||||||
|
resource_registry:
|
||||||
|
OS::TripleO::Compute::Net::SoftwareConfig: contrail-nic-config-compute-storage-mgmt.yaml
|
||||||
|
OS::TripleO::ContrailDpdk::Net::SoftwareConfig: contrail-nic-config-compute-storage-mgmt.yaml
|
||||||
|
OS::TripleO::Controller::Net::SoftwareConfig: contrail-nic-config-storage-mgmt.yaml
|
||||||
|
OS::TripleO::ContrailController::Net::SoftwareConfig: contrail-nic-config-storage-mgmt.yaml
|
||||||
|
OS::TripleO::ContrailAnalytics::Net::SoftwareConfig: contrail-nic-config-storage-mgmt.yaml
|
||||||
|
OS::TripleO::ContrailAnalyticsDatabase::Net::SoftwareConfig: contrail-nic-config-storage-mgmt.yaml
|
||||||
|
OS::TripleO::ContrailTsn::Net::SoftwareConfig: contrail-nic-config-compute-storage-mgmt.yaml
|
||||||
|
|
||||||
|
parameter_defaults:
|
||||||
|
ContrailConfigVIP: 10.0.0.10
|
||||||
|
ContrailAnalyticsVIP: 10.0.0.10
|
||||||
|
ContrailWebuiVIP: 10.0.0.10
|
||||||
|
ContrailVIP: 10.0.0.10
|
||||||
|
ControlPlaneSubnetCidr: '24'
|
||||||
|
ControlPlaneDefaultRoute: 192.168.24.254
|
||||||
|
InternalApiNetCidr: 10.3.0.0/24
|
||||||
|
InternalApiAllocationPools: [{'start': '10.3.0.10', 'end': '10.3.0.200'}]
|
||||||
|
InternalApiDefaultRoute: 10.3.0.1
|
||||||
|
StorageMgmtNetCidr: 10.0.0.0/24
|
||||||
|
StorageMgmtAllocationPools: [{'start': '10.0.0.10', 'end': '10.0.0.200'}]
|
||||||
|
StorageMgmtDefaultRoute: 10.0.0.1
|
||||||
|
StorageMgmtInterfaceDefaultRoute: 10.0.0.1
|
||||||
|
StorageMgmtVirtualIP: 10.0.0.10
|
||||||
|
ManagementNetCidr: 10.1.0.0/24
|
||||||
|
ManagementAllocationPools: [{'start': '10.1.0.10', 'end': '10.1.0.200'}]
|
||||||
|
ManagementInterfaceDefaultRoute: 10.1.0.1
|
||||||
|
ExternalNetCidr: 10.2.0.0/24
|
||||||
|
ExternalAllocationPools: [{'start': '10.2.0.10', 'end': '10.2.0.200'}]
|
||||||
|
EC2MetadataIp: 192.168.24.1 # Generally the IP of the Undercloud
|
||||||
|
DnsServers: ["10.87.64.101"]
|
||||||
|
VrouterPhysicalInterface: eth1
|
||||||
|
VrouterGateway: 10.0.0.1
|
||||||
|
VrouterNetmask: 255.255.255.0
|
||||||
|
ControlVirtualInterface: eth0
|
||||||
|
PublicVirtualInterface: vlan10
|
||||||
|
# VlanParentInterface: eth1 # If VrouterPhysicalInterface is a vlan interface using vlanX notation
|
|
@ -1,10 +1,10 @@
|
||||||
resource_registry:
|
resource_registry:
|
||||||
OS::TripleO::Compute::Net::SoftwareConfig: contrail-nic-config-compute.yaml
|
OS::TripleO::Compute::Net::SoftwareConfig: ../../network/config/contrail/contrail-nic-config-compute.yaml
|
||||||
OS::TripleO::Controller::Net::SoftwareConfig: contrail-nic-config.yaml
|
OS::TripleO::Controller::Net::SoftwareConfig: ../../network/config/contrail/contrail-nic-config.yaml
|
||||||
OS::TripleO::ContrailController::Net::SoftwareConfig: contrail-nic-config.yaml
|
OS::TripleO::ContrailController::Net::SoftwareConfig: ../../network/config/contrail/contrail-nic-config.yaml
|
||||||
OS::TripleO::ContrailAnalytics::Net::SoftwareConfig: contrail-nic-config.yaml
|
OS::TripleO::ContrailAnalytics::Net::SoftwareConfig: ../../network/config/contrail/contrail-nic-config.yaml
|
||||||
OS::TripleO::ContrailAnalyticsDatabase::Net::SoftwareConfig: contrail-nic-config.yaml
|
OS::TripleO::ContrailAnalyticsDatabase::Net::SoftwareConfig: ../../network/config/contrail/contrail-nic-config.yaml
|
||||||
OS::TripleO::ContrailTsn::Net::SoftwareConfig: contrail-nic-config-compute.yaml
|
OS::TripleO::ContrailTsn::Net::SoftwareConfig: ../../network/config/contrail/contrail-nic-config-compute.yaml
|
||||||
|
|
||||||
parameter_defaults:
|
parameter_defaults:
|
||||||
ControlPlaneSubnetCidr: '24'
|
ControlPlaneSubnetCidr: '24'
|
||||||
|
@ -18,9 +18,16 @@ parameter_defaults:
|
||||||
ExternalNetCidr: 10.2.0.0/24
|
ExternalNetCidr: 10.2.0.0/24
|
||||||
ExternalAllocationPools: [{'start': '10.2.0.10', 'end': '10.2.0.200'}]
|
ExternalAllocationPools: [{'start': '10.2.0.10', 'end': '10.2.0.200'}]
|
||||||
EC2MetadataIp: 192.168.24.1 # Generally the IP of the Undercloud
|
EC2MetadataIp: 192.168.24.1 # Generally the IP of the Undercloud
|
||||||
DnsServers: ["8.8.8.8","8.8.4.4"]
|
DnsServers: ["8.8.8.8"]
|
||||||
VrouterPhysicalInterface: eth1
|
NtpServer: 10.0.0.1
|
||||||
VrouterGateway: 10.0.0.1
|
ContrailVrouterPhysicalInterface: eth1
|
||||||
VrouterNetmask: 255.255.255.0
|
ContrailVrouterGateway: 10.0.0.1
|
||||||
|
ContrailVrouterNetmask: 255.255.255.0
|
||||||
ControlVirtualInterface: eth0
|
ControlVirtualInterface: eth0
|
||||||
PublicVirtualInterface: vlan10
|
PublicVirtualInterface: vlan10
|
||||||
|
## If vhost0 is linked to a vlan interface:
|
||||||
|
# ContrailVlanParentInterface: eth1 # If VrouterPhysicalInterface is a vlan interface using vlanX notation
|
||||||
|
## If vhost0 is linked to a bonded vlan interface:
|
||||||
|
# ContrailVlanParentInterface: bond0
|
||||||
|
# ContrailBondInterface: bond0
|
||||||
|
# ContrailBondInterfaceMembers: 'eth1,eth2'
|
||||||
|
|
|
@ -8,7 +8,6 @@ resource_registry:
|
||||||
OS::TripleO::Services::ComputeNeutronOvsAgent: OS::Heat::None
|
OS::TripleO::Services::ComputeNeutronOvsAgent: OS::Heat::None
|
||||||
OS::TripleO::Services::NeutronCorePlugin: OS::TripleO::Services::NeutronCorePluginContrail
|
OS::TripleO::Services::NeutronCorePlugin: OS::TripleO::Services::NeutronCorePluginContrail
|
||||||
OS::TripleO::Services::ComputeNeutronCorePlugin: OS::TripleO::Services::ComputeNeutronCorePluginContrail
|
OS::TripleO::Services::ComputeNeutronCorePlugin: OS::TripleO::Services::ComputeNeutronCorePluginContrail
|
||||||
OS::TripleO::NodeUserData: ../../firstboot/install_vrouter_kmod.yaml
|
|
||||||
OS::TripleO::Services::ContrailHeat: ../../puppet/services/network/contrail-heat.yaml
|
OS::TripleO::Services::ContrailHeat: ../../puppet/services/network/contrail-heat.yaml
|
||||||
OS::TripleO::Services::ContrailAnalytics: ../../puppet/services/network/contrail-analytics.yaml
|
OS::TripleO::Services::ContrailAnalytics: ../../puppet/services/network/contrail-analytics.yaml
|
||||||
OS::TripleO::Services::ContrailAnalyticsDatabase: ../../puppet/services/network/contrail-analytics-database.yaml
|
OS::TripleO::Services::ContrailAnalyticsDatabase: ../../puppet/services/network/contrail-analytics-database.yaml
|
||||||
|
@ -17,10 +16,26 @@ resource_registry:
|
||||||
OS::TripleO::Services::ContrailDatabase: ../../puppet/services/network/contrail-database.yaml
|
OS::TripleO::Services::ContrailDatabase: ../../puppet/services/network/contrail-database.yaml
|
||||||
OS::TripleO::Services::ContrailWebUI: ../../puppet/services/network/contrail-webui.yaml
|
OS::TripleO::Services::ContrailWebUI: ../../puppet/services/network/contrail-webui.yaml
|
||||||
OS::TripleO::Services::ContrailTsn: ../../puppet/services/network/contrail-tsn.yaml
|
OS::TripleO::Services::ContrailTsn: ../../puppet/services/network/contrail-tsn.yaml
|
||||||
|
OS::TripleO::Services::ContrailDpdk: ../../puppet/services/network/contrail-dpdk.yaml
|
||||||
OS::TripleO::Services::ComputeNeutronCorePluginContrail: ../../puppet/services/network/contrail-vrouter.yaml
|
OS::TripleO::Services::ComputeNeutronCorePluginContrail: ../../puppet/services/network/contrail-vrouter.yaml
|
||||||
OS::TripleO::Services::NeutronCorePluginContrail: ../../puppet/services/network/contrail-neutron-plugin.yaml
|
OS::TripleO::Services::NeutronCorePluginContrail: ../../puppet/services/network/contrail-neutron-plugin.yaml
|
||||||
|
OS::TripleO::NodeUserData: ../../extraconfig/all_nodes/contrail/enable_contrail_repo.yaml
|
||||||
|
OS::TripleO::ContrailTsn::PreNetworkConfig: ../../extraconfig/pre_network/contrail/compute_pre_network.yaml
|
||||||
|
OS::TripleO::ContrailDpdk::PreNetworkConfig: ../../extraconfig/pre_network/contrail/contrail_dpdk_pre_network.yaml
|
||||||
|
OS::TripleO::Compute::PreNetworkConfig: ../../extraconfig/pre_network/contrail/compute_pre_network.yaml
|
||||||
parameter_defaults:
|
parameter_defaults:
|
||||||
ContrailRepo: http://192.168.24.1/contrail-3.2.0.0-19
|
ServiceNetMap:
|
||||||
|
ContrailAnalyticsNetwork: internal_api
|
||||||
|
ContrailAnalyticsDatabaseNetwork: internal_api
|
||||||
|
ContrailConfigNetwork: internal_api
|
||||||
|
ContrailControlNetwork: internal_api
|
||||||
|
ContrailDatabaseNetwork: internal_api
|
||||||
|
ContrailWebuiNetwork: internal_api
|
||||||
|
ContrailTsnNetwork: internal_api
|
||||||
|
ContrailVrouterNetwork: internal_api
|
||||||
|
ContrailDpdkNetwork: internal_api
|
||||||
|
ContrailRepo: http://192.168.24.1/contrail
|
||||||
|
ContrailControlManageNamed: true
|
||||||
EnablePackageInstall: true
|
EnablePackageInstall: true
|
||||||
# ContrailConfigIfmapUserName: api-server
|
# ContrailConfigIfmapUserName: api-server
|
||||||
# ContrailConfigIfmapUserPassword: api-server
|
# ContrailConfigIfmapUserPassword: api-server
|
||||||
|
@ -30,16 +45,16 @@ parameter_defaults:
|
||||||
OvercloudContrailAnalyticsDatabaseFlavor: contrail-analytics-database
|
OvercloudContrailAnalyticsDatabaseFlavor: contrail-analytics-database
|
||||||
OvercloudContrailTsnFlavor: contrail-tsn
|
OvercloudContrailTsnFlavor: contrail-tsn
|
||||||
OvercloudComputeFlavor: compute
|
OvercloudComputeFlavor: compute
|
||||||
|
OvercloudContrailDpdkFlavor: compute-dpdk
|
||||||
ControllerCount: 3
|
ControllerCount: 3
|
||||||
ContrailControllerCount: 3
|
ContrailControllerCount: 3
|
||||||
ContrailAnalyticsCount: 3
|
ContrailAnalyticsCount: 3
|
||||||
ContrailAnalyticsDatabaseCount: 3
|
ContrailAnalyticsDatabaseCount: 3
|
||||||
ContrailTsnCount: 1
|
ContrailTsnCount: 0
|
||||||
ComputeCount: 3
|
ComputeCount: 3
|
||||||
DnsServers: ["8.8.8.8","8.8.4.4"]
|
ContrailDpdkCount: 0
|
||||||
NtpServer: 10.0.0.1
|
|
||||||
NeutronCorePlugin: neutron_plugin_contrail.plugins.opencontrail.contrail_plugin.NeutronPluginContrailCoreV2
|
NeutronCorePlugin: neutron_plugin_contrail.plugins.opencontrail.contrail_plugin.NeutronPluginContrailCoreV2
|
||||||
NeutronServicePlugins: ''
|
NeutronServicePlugins: 'neutron_plugin_contrail.plugins.opencontrail.loadbalancer.v2.plugin.LoadBalancerPluginV2'
|
||||||
NeutronTunnelTypes: ''
|
NeutronTunnelTypes: ''
|
||||||
# NeutronMetadataProxySharedSecret:
|
# NeutronMetadataProxySharedSecret:
|
||||||
# ContrailControlRNDCSecret: # sda1/256 hmac key, e.g. echo -n "values" | openssl dgst -sha256 -hmac key -binary | base64
|
# ContrailControlRNDCSecret: # sda1/256 hmac key, e.g. echo -n "values" | openssl dgst -sha256 -hmac key -binary | base64
|
||||||
|
|
|
@ -248,3 +248,16 @@
|
||||||
- OS::TripleO::Services::TripleoPackages
|
- OS::TripleO::Services::TripleoPackages
|
||||||
- OS::TripleO::Services::SensuClient
|
- OS::TripleO::Services::SensuClient
|
||||||
- OS::TripleO::Services::FluentdClient
|
- OS::TripleO::Services::FluentdClient
|
||||||
|
|
||||||
|
- name: ContrailDpdk
|
||||||
|
ServicesDefault:
|
||||||
|
- OS::TripleO::Services::CACerts
|
||||||
|
- OS::TripleO::Services::CertmongerUser
|
||||||
|
- OS::TripleO::Services::ContrailTsn
|
||||||
|
- OS::TripleO::Services::Kernel
|
||||||
|
- OS::TripleO::Services::Ntp
|
||||||
|
- OS::TripleO::Services::Timezone
|
||||||
|
- OS::TripleO::Services::Snmp
|
||||||
|
- OS::TripleO::Services::TripleoPackages
|
||||||
|
- OS::TripleO::Services::SensuClient
|
||||||
|
- OS::TripleO::Services::FluentdClient
|
||||||
|
|
|
@ -30,39 +30,6 @@ parameter_defaults:
|
||||||
CongressAdmin: {protocol: 'http', port: '1789', host: 'IP_ADDRESS'}
|
CongressAdmin: {protocol: 'http', port: '1789', host: 'IP_ADDRESS'}
|
||||||
CongressInternal: {protocol: 'http', port: '1789', host: 'IP_ADDRESS'}
|
CongressInternal: {protocol: 'http', port: '1789', host: 'IP_ADDRESS'}
|
||||||
CongressPublic: {protocol: 'https', port: '13789', host: 'CLOUDNAME'}
|
CongressPublic: {protocol: 'https', port: '13789', host: 'CLOUDNAME'}
|
||||||
ContrailAnalyticsApiAdmin: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsApiInternal: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsApiPublic: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorHttpAdmin: {protocol: 'http', port: '8089',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorHttpInternal: {protocol: 'http', port: '8089',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorHttpPublic: {protocol: 'http', port: '8089',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorSandeshAdmin: {protocol: 'http', port: '8086',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorSandeshInternal: {protocol: 'http', port: '8086',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorSandeshPublic: {protocol: 'http', port: '8086',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsHttpAdmin: {protocol: 'http', port: '8090', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsHttpInternal: {protocol: 'http', port: '8090', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsHttpPublic: {protocol: 'http', port: '8090', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsRedisAdmin: {protocol: 'http', port: '6379', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsRedisInternal: {protocol: 'http', port: '6379', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsRedisPublic: {protocol: 'http', port: '6379', host: 'IP_ADDRESS'}
|
|
||||||
ContrailConfigAdmin: {protocol: 'http', port: '8082', host: 'IP_ADDRESS'}
|
|
||||||
ContrailConfigInternal: {protocol: 'http', port: '8082', host: 'IP_ADDRESS'}
|
|
||||||
ContrailConfigPublic: {protocol: 'http', port: '8082', host: 'IP_ADDRESS'}
|
|
||||||
ContrailDiscoveryAdmin: {protocol: 'http', port: '5998', host: 'IP_ADDRESS'}
|
|
||||||
ContrailDiscoveryInternal: {protocol: 'http', port: '5998', host: 'IP_ADDRESS'}
|
|
||||||
ContrailDiscoveryPublic: {protocol: 'http', port: '5998', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpAdmin: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpInternal: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpPublic: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpsAdmin: {protocol: 'http', port: '8143', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpsInternal: {protocol: 'http', port: '8143', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpsPublic: {protocol: 'http', port: '8143', host: 'IP_ADDRESS'}
|
|
||||||
Ec2ApiAdmin: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'}
|
Ec2ApiAdmin: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'}
|
||||||
Ec2ApiInternal: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'}
|
Ec2ApiInternal: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'}
|
||||||
Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'CLOUDNAME'}
|
Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'CLOUDNAME'}
|
||||||
|
|
|
@ -30,39 +30,6 @@ parameter_defaults:
|
||||||
CongressAdmin: {protocol: 'http', port: '1789', host: 'IP_ADDRESS'}
|
CongressAdmin: {protocol: 'http', port: '1789', host: 'IP_ADDRESS'}
|
||||||
CongressInternal: {protocol: 'http', port: '1789', host: 'IP_ADDRESS'}
|
CongressInternal: {protocol: 'http', port: '1789', host: 'IP_ADDRESS'}
|
||||||
CongressPublic: {protocol: 'https', port: '13789', host: 'IP_ADDRESS'}
|
CongressPublic: {protocol: 'https', port: '13789', host: 'IP_ADDRESS'}
|
||||||
ContrailAnalyticsApiAdmin: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsApiInternal: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsApiPublic: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorHttpAdmin: {protocol: 'http', port: '8089',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorHttpInternal: {protocol: 'http', port: '8089',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorHttpPublic: {protocol: 'http', port: '8089',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorSandeshAdmin: {protocol: 'http', port: '8086',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorSandeshInternal: {protocol: 'http', port: '8086',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorSandeshPublic: {protocol: 'http', port: '8086',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsHttpAdmin: {protocol: 'http', port: '8090', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsHttpInternal: {protocol: 'http', port: '8090', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsHttpPublic: {protocol: 'http', port: '8090', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsRedisAdmin: {protocol: 'http', port: '6379', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsRedisInternal: {protocol: 'http', port: '6379', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsRedisPublic: {protocol: 'http', port: '6379', host: 'IP_ADDRESS'}
|
|
||||||
ContrailConfigAdmin: {protocol: 'http', port: '8082', host: 'IP_ADDRESS'}
|
|
||||||
ContrailConfigInternal: {protocol: 'http', port: '8082', host: 'IP_ADDRESS'}
|
|
||||||
ContrailConfigPublic: {protocol: 'http', port: '8082', host: 'IP_ADDRESS'}
|
|
||||||
ContrailDiscoveryAdmin: {protocol: 'http', port: '5998', host: 'IP_ADDRESS'}
|
|
||||||
ContrailDiscoveryInternal: {protocol: 'http', port: '5998', host: 'IP_ADDRESS'}
|
|
||||||
ContrailDiscoveryPublic: {protocol: 'http', port: '5998', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpAdmin: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpInternal: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpPublic: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpsAdmin: {protocol: 'http', port: '8143', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpsInternal: {protocol: 'http', port: '8143', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpsPublic: {protocol: 'http', port: '8143', host: 'IP_ADDRESS'}
|
|
||||||
Ec2ApiAdmin: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'}
|
Ec2ApiAdmin: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'}
|
||||||
Ec2ApiInternal: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'}
|
Ec2ApiInternal: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'}
|
||||||
Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'IP_ADDRESS'}
|
Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'IP_ADDRESS'}
|
||||||
|
|
|
@ -30,39 +30,6 @@ parameter_defaults:
|
||||||
CongressAdmin: {protocol: 'https', port: '1789', host: 'CLOUDNAME'}
|
CongressAdmin: {protocol: 'https', port: '1789', host: 'CLOUDNAME'}
|
||||||
CongressInternal: {protocol: 'https', port: '1789', host: 'CLOUDNAME'}
|
CongressInternal: {protocol: 'https', port: '1789', host: 'CLOUDNAME'}
|
||||||
CongressPublic: {protocol: 'https', port: '13789', host: 'CLOUDNAME'}
|
CongressPublic: {protocol: 'https', port: '13789', host: 'CLOUDNAME'}
|
||||||
ContrailAnalyticsApiAdmin: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsApiInternal: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsApiPublic: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorHttpAdmin: {protocol: 'http', port: '8089',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorHttpInternal: {protocol: 'http', port: '8089',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorHttpPublic: {protocol: 'http', port: '8089',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorSandeshAdmin: {protocol: 'http', port: '8086',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorSandeshInternal: {protocol: 'http', port: '8086',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorSandeshPublic: {protocol: 'http', port: '8086',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsHttpAdmin: {protocol: 'http', port: '8090', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsHttpInternal: {protocol: 'http', port: '8090', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsHttpPublic: {protocol: 'http', port: '8090', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsRedisAdmin: {protocol: 'http', port: '6379', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsRedisInternal: {protocol: 'http', port: '6379', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsRedisPublic: {protocol: 'http', port: '6379', host: 'IP_ADDRESS'}
|
|
||||||
ContrailConfigAdmin: {protocol: 'http', port: '8082', host: 'IP_ADDRESS'}
|
|
||||||
ContrailConfigInternal: {protocol: 'http', port: '8082', host: 'IP_ADDRESS'}
|
|
||||||
ContrailConfigPublic: {protocol: 'http', port: '8082', host: 'IP_ADDRESS'}
|
|
||||||
ContrailDiscoveryAdmin: {protocol: 'http', port: '5998', host: 'IP_ADDRESS'}
|
|
||||||
ContrailDiscoveryInternal: {protocol: 'http', port: '5998', host: 'IP_ADDRESS'}
|
|
||||||
ContrailDiscoveryPublic: {protocol: 'http', port: '5998', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpAdmin: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpInternal: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpPublic: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpsAdmin: {protocol: 'http', port: '8143', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpsInternal: {protocol: 'http', port: '8143', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpsPublic: {protocol: 'http', port: '8143', host: 'IP_ADDRESS'}
|
|
||||||
Ec2ApiAdmin: {protocol: 'https', port: '8788', host: 'CLOUDNAME'}
|
Ec2ApiAdmin: {protocol: 'https', port: '8788', host: 'CLOUDNAME'}
|
||||||
Ec2ApiInternal: {protocol: 'https', port: '8788', host: 'CLOUDNAME'}
|
Ec2ApiInternal: {protocol: 'https', port: '8788', host: 'CLOUDNAME'}
|
||||||
Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'CLOUDNAME'}
|
Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'CLOUDNAME'}
|
||||||
|
|
|
@ -24,39 +24,6 @@ parameter_defaults:
|
||||||
CongressAdmin: {protocol: 'http', port: '1789', host: 'IP_ADDRESS'}
|
CongressAdmin: {protocol: 'http', port: '1789', host: 'IP_ADDRESS'}
|
||||||
CongressInternal: {protocol: 'http', port: '1789', host: 'IP_ADDRESS'}
|
CongressInternal: {protocol: 'http', port: '1789', host: 'IP_ADDRESS'}
|
||||||
CongressPublic: {protocol: 'https', port: '13789', host: 'CLOUDNAME'}
|
CongressPublic: {protocol: 'https', port: '13789', host: 'CLOUDNAME'}
|
||||||
ContrailAnalyticsApiAdmin: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsApiInternal: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsApiPublic: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorHttpAdmin: {protocol: 'http', port: '8089',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorHttpInternal: {protocol: 'http', port: '8089',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorHttpPublic: {protocol: 'http', port: '8089',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorSandeshAdmin: {protocol: 'http', port: '8086',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorSandeshInternal: {protocol: 'http', port: '8086',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorSandeshPublic: {protocol: 'http', port: '8086',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsHttpAdmin: {protocol: 'http', port: '8090', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsHttpInternal: {protocol: 'http', port: '8090', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsHttpPublic: {protocol: 'http', port: '8090', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsRedisAdmin: {protocol: 'http', port: '6379', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsRedisInternal: {protocol: 'http', port: '6379', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsRedisPublic: {protocol: 'http', port: '6379', host: 'IP_ADDRESS'}
|
|
||||||
ContrailConfigAdmin: {protocol: 'http', port: '8082', host: 'IP_ADDRESS'}
|
|
||||||
ContrailConfigInternal: {protocol: 'http', port: '8082', host: 'IP_ADDRESS'}
|
|
||||||
ContrailConfigPublic: {protocol: 'http', port: '8082', host: 'IP_ADDRESS'}
|
|
||||||
ContrailDiscoveryAdmin: {protocol: 'http', port: '5998', host: 'IP_ADDRESS'}
|
|
||||||
ContrailDiscoveryInternal: {protocol: 'http', port: '5998', host: 'IP_ADDRESS'}
|
|
||||||
ContrailDiscoveryPublic: {protocol: 'http', port: '5998', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpAdmin: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpInternal: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpPublic: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpsAdmin: {protocol: 'http', port: '8143', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpsInternal: {protocol: 'http', port: '8143', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpsPublic: {protocol: 'http', port: '8143', host: 'IP_ADDRESS'}
|
|
||||||
Ec2ApiAdmin: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'}
|
Ec2ApiAdmin: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'}
|
||||||
Ec2ApiInternal: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'}
|
Ec2ApiInternal: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'}
|
||||||
Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'CLOUDNAME'}
|
Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'CLOUDNAME'}
|
||||||
|
|
|
@ -24,39 +24,6 @@ parameter_defaults:
|
||||||
CongressAdmin: {protocol: 'http', port: '1789', host: 'IP_ADDRESS'}
|
CongressAdmin: {protocol: 'http', port: '1789', host: 'IP_ADDRESS'}
|
||||||
CongressInternal: {protocol: 'http', port: '1789', host: 'IP_ADDRESS'}
|
CongressInternal: {protocol: 'http', port: '1789', host: 'IP_ADDRESS'}
|
||||||
CongressPublic: {protocol: 'https', port: '13789', host: 'IP_ADDRESS'}
|
CongressPublic: {protocol: 'https', port: '13789', host: 'IP_ADDRESS'}
|
||||||
ContrailAnalyticsApiAdmin: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsApiInternal: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsApiPublic: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorHttpAdmin: {protocol: 'http', port: '8089',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorHttpInternal: {protocol: 'http', port: '8089',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorHttpPublic: {protocol: 'http', port: '8089',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorSandeshAdmin: {protocol: 'http', port: '8086',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorSandeshInternal: {protocol: 'http', port: '8086',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorSandeshPublic: {protocol: 'http', port: '8086',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsHttpAdmin: {protocol: 'http', port: '8090', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsHttpInternal: {protocol: 'http', port: '8090', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsHttpPublic: {protocol: 'http', port: '8090', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsRedisAdmin: {protocol: 'http', port: '6379', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsRedisInternal: {protocol: 'http', port: '6379', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsRedisPublic: {protocol: 'http', port: '6379', host: 'IP_ADDRESS'}
|
|
||||||
ContrailConfigAdmin: {protocol: 'http', port: '8082', host: 'IP_ADDRESS'}
|
|
||||||
ContrailConfigInternal: {protocol: 'http', port: '8082', host: 'IP_ADDRESS'}
|
|
||||||
ContrailConfigPublic: {protocol: 'http', port: '8082', host: 'IP_ADDRESS'}
|
|
||||||
ContrailDiscoveryAdmin: {protocol: 'http', port: '5998', host: 'IP_ADDRESS'}
|
|
||||||
ContrailDiscoveryInternal: {protocol: 'http', port: '5998', host: 'IP_ADDRESS'}
|
|
||||||
ContrailDiscoveryPublic: {protocol: 'http', port: '5998', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpAdmin: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpInternal: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpPublic: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpsAdmin: {protocol: 'http', port: '8143', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpsInternal: {protocol: 'http', port: '8143', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpsPublic: {protocol: 'http', port: '8143', host: 'IP_ADDRESS'}
|
|
||||||
Ec2ApiAdmin: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'}
|
Ec2ApiAdmin: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'}
|
||||||
Ec2ApiInternal: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'}
|
Ec2ApiInternal: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'}
|
||||||
Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'IP_ADDRESS'}
|
Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'IP_ADDRESS'}
|
||||||
|
|
|
@ -20,39 +20,6 @@ parameter_defaults:
|
||||||
CongressAdmin: {protocol: 'https', port: '1789', host: 'CLOUDNAME'}
|
CongressAdmin: {protocol: 'https', port: '1789', host: 'CLOUDNAME'}
|
||||||
CongressInternal: {protocol: 'https', port: '1789', host: 'CLOUDNAME'}
|
CongressInternal: {protocol: 'https', port: '1789', host: 'CLOUDNAME'}
|
||||||
CongressPublic: {protocol: 'https', port: '13789', host: 'CLOUDNAME'}
|
CongressPublic: {protocol: 'https', port: '13789', host: 'CLOUDNAME'}
|
||||||
ContrailAnalyticsApiAdmin: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsApiInternal: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsApiPublic: {protocol: 'http', port: '8081', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorHttpAdmin: {protocol: 'http', port: '8089',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorHttpInternal: {protocol: 'http', port: '8089',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorHttpPublic: {protocol: 'http', port: '8089',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorSandeshAdmin: {protocol: 'http', port: '8086',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorSandeshInternal: {protocol: 'http', port: '8086',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsCollectorSandeshPublic: {protocol: 'http', port: '8086',
|
|
||||||
host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsHttpAdmin: {protocol: 'http', port: '8090', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsHttpInternal: {protocol: 'http', port: '8090', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsHttpPublic: {protocol: 'http', port: '8090', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsRedisAdmin: {protocol: 'http', port: '6379', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsRedisInternal: {protocol: 'http', port: '6379', host: 'IP_ADDRESS'}
|
|
||||||
ContrailAnalyticsRedisPublic: {protocol: 'http', port: '6379', host: 'IP_ADDRESS'}
|
|
||||||
ContrailConfigAdmin: {protocol: 'http', port: '8082', host: 'IP_ADDRESS'}
|
|
||||||
ContrailConfigInternal: {protocol: 'http', port: '8082', host: 'IP_ADDRESS'}
|
|
||||||
ContrailConfigPublic: {protocol: 'http', port: '8082', host: 'IP_ADDRESS'}
|
|
||||||
ContrailDiscoveryAdmin: {protocol: 'http', port: '5998', host: 'IP_ADDRESS'}
|
|
||||||
ContrailDiscoveryInternal: {protocol: 'http', port: '5998', host: 'IP_ADDRESS'}
|
|
||||||
ContrailDiscoveryPublic: {protocol: 'http', port: '5998', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpAdmin: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpInternal: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpPublic: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpsAdmin: {protocol: 'http', port: '8143', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpsInternal: {protocol: 'http', port: '8143', host: 'IP_ADDRESS'}
|
|
||||||
ContrailWebuiHttpsPublic: {protocol: 'http', port: '8143', host: 'IP_ADDRESS'}
|
|
||||||
Ec2ApiAdmin: {protocol: 'https', port: '8788', host: 'CLOUDNAME'}
|
Ec2ApiAdmin: {protocol: 'https', port: '8788', host: 'CLOUDNAME'}
|
||||||
Ec2ApiInternal: {protocol: 'https', port: '8788', host: 'CLOUDNAME'}
|
Ec2ApiInternal: {protocol: 'https', port: '8788', host: 'CLOUDNAME'}
|
||||||
Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'CLOUDNAME'}
|
Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'CLOUDNAME'}
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
heat_template_version: pike
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
ContrailRepo:
|
||||||
|
type: string
|
||||||
|
default: ''
|
||||||
|
|
||||||
|
resources:
|
||||||
|
userdata:
|
||||||
|
type: OS::Heat::MultipartMime
|
||||||
|
properties:
|
||||||
|
parts:
|
||||||
|
- config: {get_resource: EnableContrailRepoConfig}
|
||||||
|
|
||||||
|
EnableContrailRepoConfig:
|
||||||
|
type: OS::Heat::SoftwareConfig
|
||||||
|
properties:
|
||||||
|
config:
|
||||||
|
str_replace:
|
||||||
|
template: |
|
||||||
|
#!/bin/bash
|
||||||
|
contrail_repo=$contrail_repo
|
||||||
|
if [[ ${contrail_repo} ]]; then
|
||||||
|
cat <<EOF > /etc/yum.repos.d/contrail.repo
|
||||||
|
[Contrail]
|
||||||
|
name=Contrail Repo
|
||||||
|
baseurl=${contrail_repo}
|
||||||
|
enabled=1
|
||||||
|
gpgcheck=0
|
||||||
|
protect=1
|
||||||
|
metadata_expire=30
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
params:
|
||||||
|
$contrail_repo: {get_param: ContrailRepo}
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
# This means get_resource from the parent template will get the userdata, see:
|
||||||
|
# http://docs.openstack.org/developer/heat/template_guide/composition.html#making-your-template-resource-more-transparent
|
||||||
|
# Note this is new-for-kilo, an alternative is returning a value then using
|
||||||
|
# get_attr in the parent template instead.
|
||||||
|
OS::stack_id:
|
||||||
|
value: {get_resource: userdata}
|
|
@ -0,0 +1,162 @@
|
||||||
|
heat_template_version: pike
|
||||||
|
|
||||||
|
# NOTE: You don't need to pass the parameter explicitly from the
|
||||||
|
# parent template, it can be specified via the parameter_defaults
|
||||||
|
# in the resource_registry instead, if you want to override the default
|
||||||
|
# and/or share values with other templates in the tree.
|
||||||
|
parameters:
|
||||||
|
ContrailRepo:
|
||||||
|
type: string
|
||||||
|
default: ''
|
||||||
|
ContrailVrouterPhysicalInterface:
|
||||||
|
default: 'eth0'
|
||||||
|
description: vRouter physical interface
|
||||||
|
type: string
|
||||||
|
ContrailVlanParentInterface:
|
||||||
|
default: ''
|
||||||
|
description: Parent interface of vlan interface
|
||||||
|
type: string
|
||||||
|
ContrailBondInterface:
|
||||||
|
default: ''
|
||||||
|
description: Bond interface name
|
||||||
|
type: string
|
||||||
|
ContrailBondInterfaceMembers:
|
||||||
|
default: ''
|
||||||
|
description: Bond interface members
|
||||||
|
type: string
|
||||||
|
ContrailBondMode:
|
||||||
|
default: '4'
|
||||||
|
description: Bond Mode
|
||||||
|
type: string
|
||||||
|
ContrailBondPolicy:
|
||||||
|
default: '1'
|
||||||
|
description: Bond Policy
|
||||||
|
type: string
|
||||||
|
RoleParameters:
|
||||||
|
type: json
|
||||||
|
description: Role Specific parameters
|
||||||
|
default: {}
|
||||||
|
ServiceNames:
|
||||||
|
type: comma_delimited_list
|
||||||
|
default: []
|
||||||
|
server:
|
||||||
|
type: string
|
||||||
|
|
||||||
|
description: >
|
||||||
|
This template installs the Contrail kernel module packages in order
|
||||||
|
to bring vhost0 interface up. Vhost0 interface must be up before
|
||||||
|
os-net-config takes over.
|
||||||
|
|
||||||
|
resources:
|
||||||
|
|
||||||
|
ContrailVrouterModuleDeployment:
|
||||||
|
type: OS::Heat::SoftwareDeployment
|
||||||
|
properties:
|
||||||
|
name: ContrailVrouterModuleDeployment
|
||||||
|
server: {get_param: server}
|
||||||
|
config: {get_resource: ContrailVrouterModuleConfig}
|
||||||
|
input_values:
|
||||||
|
phy_int: {get_param: ContrailVrouterPhysicalInterface}
|
||||||
|
bond_int: {get_param: ContrailBondInterface}
|
||||||
|
bond_int_members: {get_param: ContrailBondInterfaceMembers}
|
||||||
|
vlan_parent: {get_param: ContrailVlanParentInterface}
|
||||||
|
contrail_repo: {get_param: ContrailRepo}
|
||||||
|
bond_mode: {get_param: ContrailBondMode}
|
||||||
|
bond_policy: {get_param: ContrailBondPolicy}
|
||||||
|
actions: ['CREATE'] # Only do this on CREATE
|
||||||
|
|
||||||
|
ContrailVrouterModuleConfig:
|
||||||
|
type: OS::Heat::SoftwareConfig
|
||||||
|
properties:
|
||||||
|
group: script
|
||||||
|
inputs:
|
||||||
|
- name: phy_int
|
||||||
|
- name: bond_int
|
||||||
|
- name: bond_int_members
|
||||||
|
- name: vlan_parent
|
||||||
|
- name: contrail_repo
|
||||||
|
- name: bond_mode
|
||||||
|
- name: bond_policy
|
||||||
|
config: |
|
||||||
|
#!/bin/bash
|
||||||
|
phy_int=$phy_int
|
||||||
|
bond_int=$bond_int
|
||||||
|
bond_int_members=$bond_int_members
|
||||||
|
bond_mode=$bond_mode
|
||||||
|
bond_policy=$bond_policy
|
||||||
|
vlan_parent=$vlan_parent
|
||||||
|
contrail_repo=$contrail_repo
|
||||||
|
if [[ ${contrail_repo} ]]; then
|
||||||
|
yum install -y contrail-vrouter-utils
|
||||||
|
fi
|
||||||
|
function pkt_setup () {
|
||||||
|
for f in /sys/class/net/$1/queues/rx-*
|
||||||
|
do
|
||||||
|
q="$(echo $f | cut -d '-' -f2)"
|
||||||
|
r=$(($q%32))
|
||||||
|
s=$(($q/32))
|
||||||
|
((mask=1<<$r))
|
||||||
|
str=(`printf "%x" $mask`)
|
||||||
|
if [ $s -gt 0 ]; then
|
||||||
|
for ((i=0; i < $s; i++))
|
||||||
|
do
|
||||||
|
str+=,00000000
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
echo $str > $f/rps_cpus
|
||||||
|
done
|
||||||
|
ifconfig $1 up
|
||||||
|
}
|
||||||
|
function insert_vrouter() {
|
||||||
|
if [ -f /sys/class/net/pkt1/queues/rx-0/rps_cpus ]; then
|
||||||
|
pkt_setup pkt1
|
||||||
|
fi
|
||||||
|
if [ -f /sys/class/net/pkt2/queues/rx-0/rps_cpus ]; then
|
||||||
|
pkt_setup pkt2
|
||||||
|
fi
|
||||||
|
if [ -f /sys/class/net/pkt3/queues/rx-0/rps_cpus ]; then
|
||||||
|
pkt_setup pkt3
|
||||||
|
fi
|
||||||
|
DEV_MAC=$(cat /sys/class/net/${phy_int}/address)
|
||||||
|
vif --create vhost0 --mac $DEV_MAC
|
||||||
|
vif --add ${phy_int} --mac $DEV_MAC --vrf 0 --vhost-phys --type physical
|
||||||
|
vif --add vhost0 --mac $DEV_MAC --vrf 0 --type vhost --xconnect ${phy_int}
|
||||||
|
ip link set vhost0 up
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
if [[ ${bond_int} ]]; then
|
||||||
|
bond_int_member_list=$(echo ${bond_int_members} | tr "," "\n")
|
||||||
|
ip link add name ${bond_int} type bond
|
||||||
|
echo ${bond_mode} > /sys/class/net/${bond_int}/bonding/mode
|
||||||
|
echo ${bond_policy} > /sys/class/net/${bond_int}/bonding/xmit_hash_policy
|
||||||
|
for member in ${bond_int_member_list}; do
|
||||||
|
ip link set dev $member master ${bond_int}
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
if [[ ${vlan_parent} ]]; then
|
||||||
|
vlanId=`echo ${phy_int} | awk -F"vlan" '{print $2}'`
|
||||||
|
ip link add name ${phy_int} link ${vlan_parent} type vlan id ${vlanId}
|
||||||
|
fi
|
||||||
|
if [[ ${contrail_repo} ]]; then
|
||||||
|
yumdownloader contrail-vrouter --destdir /tmp
|
||||||
|
cd /tmp
|
||||||
|
rpm2cpio /tmp/contrail-vrouter*.rpm | cpio -idmv
|
||||||
|
cp `find /tmp/lib/modules -name vrouter.ko |tail -1` /tmp
|
||||||
|
insmod /tmp/vrouter.ko
|
||||||
|
else
|
||||||
|
modprobe vrouter
|
||||||
|
fi
|
||||||
|
insert_vrouter
|
||||||
|
if [[ `ifconfig ${phy_int} |grep "inet "` ]]; then
|
||||||
|
def_gw=''
|
||||||
|
if [[ `ip route show |grep default|grep ${phy_int}` ]]; then
|
||||||
|
def_gw=`ip route show |grep default|grep ${phy_int}|awk '{print $3}'`
|
||||||
|
fi
|
||||||
|
ip=`ifconfig ${phy_int} |grep "inet "|awk '{print $2}'`
|
||||||
|
mask=`ifconfig ${phy_int} |grep "inet "|awk '{print $4}'`
|
||||||
|
ip address delete $ip/$mask dev ${phy_int}
|
||||||
|
ip address add $ip/$mask dev vhost0
|
||||||
|
if [[ $def_gw ]]; then
|
||||||
|
ip route add default via $def_gw
|
||||||
|
fi
|
||||||
|
fi
|
|
@ -0,0 +1,168 @@
|
||||||
|
heat_template_version: pike
|
||||||
|
|
||||||
|
# NOTE: You don't need to pass the parameter explicitly from the
|
||||||
|
# parent template, it can be specified via the parameter_defaults
|
||||||
|
# in the resource_registry instead, if you want to override the default
|
||||||
|
# and/or share values with other templates in the tree.
|
||||||
|
parameters:
|
||||||
|
ContrailRepo:
|
||||||
|
type: string
|
||||||
|
default: ''
|
||||||
|
ContrailVrouterPhysicalInterface:
|
||||||
|
default: 'eth0'
|
||||||
|
description: vRouter physical interface
|
||||||
|
type: string
|
||||||
|
ContrailVlanParentInterface:
|
||||||
|
default: ''
|
||||||
|
description: Parent interface of vlan interface
|
||||||
|
type: string
|
||||||
|
ContrailBondInterface:
|
||||||
|
default: ''
|
||||||
|
description: Bond interface name
|
||||||
|
type: string
|
||||||
|
ContrailBondInterfaceMembers:
|
||||||
|
default: ''
|
||||||
|
description: Bond interface members
|
||||||
|
type: string
|
||||||
|
ContrailBondMode:
|
||||||
|
default: '4'
|
||||||
|
description: Bond Mode
|
||||||
|
type: string
|
||||||
|
ContrailBondPolicy:
|
||||||
|
default: '1'
|
||||||
|
description: Bond Policy
|
||||||
|
type: string
|
||||||
|
ContrailDpdkHugePages:
|
||||||
|
default: '2048'
|
||||||
|
description: DPDK Hugepages setting
|
||||||
|
type: string
|
||||||
|
RoleParameters:
|
||||||
|
type: json
|
||||||
|
description: Role Specific parameters
|
||||||
|
default: {}
|
||||||
|
ServiceNames:
|
||||||
|
type: comma_delimited_list
|
||||||
|
default: []
|
||||||
|
server:
|
||||||
|
type: string
|
||||||
|
|
||||||
|
description: >
|
||||||
|
This template installs the Contrail dpdk packages in order
|
||||||
|
to bring vhost0 interface up. Vhost0 interface must be up before
|
||||||
|
os-net-config takes over.
|
||||||
|
|
||||||
|
resources:
|
||||||
|
|
||||||
|
ContrailVrouterDpdkDeployment:
|
||||||
|
type: OS::Heat::SoftwareDeployment
|
||||||
|
properties:
|
||||||
|
name: ContrailVrouterDpdkDeployment
|
||||||
|
server: {get_param: server}
|
||||||
|
config: {get_resource: ContrailVrouterDpdkConfig}
|
||||||
|
input_values:
|
||||||
|
phy_int: {get_param: ContrailVrouterPhysicalInterface}
|
||||||
|
bond_int: {get_param: ContrailBondInterface}
|
||||||
|
bond_int_members: {get_param: ContrailBondInterfaceMembers}
|
||||||
|
vlan_parent: {get_param: ContrailVlanParentInterface}
|
||||||
|
contrail_repo: {get_param: ContrailRepo}
|
||||||
|
bond_mode: {get_param: ContrailBondMode}
|
||||||
|
bond_policy: {get_param: ContrailBondPolicy}
|
||||||
|
dpdk_hugepages: {get_param: ContrailDpdkHugePages}
|
||||||
|
actions: ['CREATE'] # Only do this on CREATE
|
||||||
|
|
||||||
|
ContrailVrouterDpdkConfig:
|
||||||
|
type: OS::Heat::SoftwareConfig
|
||||||
|
properties:
|
||||||
|
group: script
|
||||||
|
config: |
|
||||||
|
#!/bin/bash
|
||||||
|
phy_int=$phy_int
|
||||||
|
bond_int=$bond_int
|
||||||
|
bond_int_members=$bond_int_members
|
||||||
|
bond_mode=$bond_mode
|
||||||
|
bond_policy=$bond_policy
|
||||||
|
vlan_parent=$vlan_parent
|
||||||
|
contrail_repo=$contrail_repo
|
||||||
|
dpdk_hugepages=$dpdk_hugepages
|
||||||
|
echo "vm.nr_hugepages = $dpdk_hugepages" >> /etc/sysctl.conf
|
||||||
|
echo "vm.max_map_count = 128960" >> /etc/sysctl.conf
|
||||||
|
echo "kernel.core_pattern = /var/crashes/core.%e.%p.%h.%t" >> /etc/sysctl.conf
|
||||||
|
echo "net.ipv4.tcp_keepalive_time = 5" >> /etc/sysctl.conf
|
||||||
|
echo "net.ipv4.tcp_keepalive_probes = 5" >> /etc/sysctl.conf
|
||||||
|
echo "net.ipv4.tcp_keepalive_intvl = 1" >> /etc/sysctl.conf
|
||||||
|
/sbin/sysctl --system
|
||||||
|
modprobe uio
|
||||||
|
if [[ ${contrail_repo} ]]; then
|
||||||
|
yum install -y contrail-vrouter-utils contrail-vrouter-dpdk contrail-vrouter-dpdk-init
|
||||||
|
fi
|
||||||
|
pci_address=`ethtool -i ${phy_int} |grep bus-info| awk '{print $2}' |tr -d ' '`
|
||||||
|
if [[ ${vlan_parent} ]]; then
|
||||||
|
pci_address=`ethtool -i ${vlan_parent} |grep bus-info| awk '{print $2}' |tr -d ' '`
|
||||||
|
fi
|
||||||
|
if [[ ${bond_int} ]]; then
|
||||||
|
bond_int_member_list=$(echo ${bond_int_members} | tr "," "\n")
|
||||||
|
cat <<EOF> /etc/sysconfig/network-scripts/ifcfg-${bond_int}
|
||||||
|
DEVICE=${bond_int}
|
||||||
|
BOOTPROTO=none
|
||||||
|
ONBOOT=yes
|
||||||
|
USERCTL=no
|
||||||
|
BONDING_OPTS="mode=${bond_mode} xmit_hash_policy=${bond_policy}"
|
||||||
|
EOF
|
||||||
|
for member in ${bond_int_member_list}; do
|
||||||
|
cat <<EOF> /etc/sysconfig/network-scripts/ifcfg-${member}
|
||||||
|
DEVICE=${member}
|
||||||
|
BOOTPROTO=none
|
||||||
|
ONBOOT=yes
|
||||||
|
MASTER=${bond_int}
|
||||||
|
SLAVE=yes
|
||||||
|
USERCTL=no
|
||||||
|
EOF
|
||||||
|
ip link set dev ${member} down
|
||||||
|
done
|
||||||
|
ifup ${bond_int}
|
||||||
|
pci_address=0000:00:00.0
|
||||||
|
fi
|
||||||
|
if [[ ${vlan_parent} ]]; then
|
||||||
|
echo ${vlan_parent} >> /tmp/vlan_parent
|
||||||
|
vlanId=`echo ${phy_int} | awk -F"vlan" '{print $2}'`
|
||||||
|
ip link add name ${phy_int} link ${vlan_parent} type vlan id ${vlanId}
|
||||||
|
fi
|
||||||
|
cat <<EOF > /etc/contrail/agent_param
|
||||||
|
LOG=/var/log/contrail.log
|
||||||
|
CONFIG=/etc/contrail/contrail-vrouter-agent.conf
|
||||||
|
prog=/usr/bin/contrail-vrouter-agent
|
||||||
|
pname=contrail-vrouter-agent
|
||||||
|
LIBDIR=/usr/lib64
|
||||||
|
DEVICE=vhost0
|
||||||
|
dev=${phy_int}
|
||||||
|
vgw_subnet_ip=__VGW_SUBNET_IP__
|
||||||
|
vgw_intf=__VGW_INTF_LIST__
|
||||||
|
LOGFILE=--log-file=/var/log/contrail/vrouter.log
|
||||||
|
EOF
|
||||||
|
mac=`ip link sh dev ${phy_int} | grep link/ether|awk '{print $2}' | tr -d ' '`
|
||||||
|
cat <<EOF > /etc/contrail/contrail-vrouter-agent.conf
|
||||||
|
[DEFAULT]
|
||||||
|
platform=dpdk
|
||||||
|
physical_interface_address=$pci_address
|
||||||
|
physical_interface_mac=$mac
|
||||||
|
physical_uio_driver=uio_pci_generic
|
||||||
|
[VIRTUAL-HOST-INTERFACE]
|
||||||
|
physical_interface=${phy_int}
|
||||||
|
name=vhost0
|
||||||
|
EOF
|
||||||
|
echo $pci_address > /etc/contrail/dpdk_pci
|
||||||
|
echo $mac > /etc/contrail/dpdk_mac
|
||||||
|
systemctl start supervisor-vrouter
|
||||||
|
if [[ `ifconfig ${phy_int} |grep "inet "` ]]; then
|
||||||
|
def_gw=''
|
||||||
|
if [[ `ip route show |grep default|grep ${phy_int}` ]]; then
|
||||||
|
def_gw=`ip route show |grep default|grep ${phy_int}|awk '{print $3}'`
|
||||||
|
fi
|
||||||
|
ip=`ifconfig ${phy_int} |grep "inet "|awk '{print $2}'`
|
||||||
|
mask=`ifconfig ${phy_int} |grep "inet "|awk '{print $4}'`
|
||||||
|
ip address delete $ip/$mask dev ${phy_int}
|
||||||
|
ip address add $ip/$mask dev vhost0
|
||||||
|
if [[ $def_gw ]]; then
|
||||||
|
ip route add default via $def_gw
|
||||||
|
fi
|
||||||
|
fi
|
|
@ -1,105 +0,0 @@
|
||||||
heat_template_version: pike
|
|
||||||
|
|
||||||
parameters:
|
|
||||||
ContrailRepo:
|
|
||||||
type: string
|
|
||||||
default: http://192.168.24.1/contrail
|
|
||||||
VrouterPhysicalInterface:
|
|
||||||
default: 'eth0'
|
|
||||||
description: vRouter physical interface
|
|
||||||
type: string
|
|
||||||
|
|
||||||
description: >
|
|
||||||
Prepares vhost0 interface to be used by os-net-config
|
|
||||||
|
|
||||||
resources:
|
|
||||||
userdata:
|
|
||||||
type: OS::Heat::MultipartMime
|
|
||||||
properties:
|
|
||||||
parts:
|
|
||||||
- config: {get_resource: vrouter_module_config}
|
|
||||||
|
|
||||||
vrouter_module_config:
|
|
||||||
type: OS::Heat::SoftwareConfig
|
|
||||||
properties:
|
|
||||||
config:
|
|
||||||
str_replace:
|
|
||||||
template: |
|
|
||||||
#!/bin/bash
|
|
||||||
sed -i '/\[main\]/a \ \ \ \ \parser = future' /etc/puppet/puppet.conf
|
|
||||||
cat <<EOF > /etc/yum.repos.d/contrail.repo
|
|
||||||
[Contrail]
|
|
||||||
name=Contrail Repo
|
|
||||||
baseurl=$contrail_repo
|
|
||||||
enabled=1
|
|
||||||
gpgcheck=0
|
|
||||||
protect=1
|
|
||||||
EOF
|
|
||||||
if [[ `hostname |awk -F"-" '{print $2}'` == "novacompute" || `hostname |awk -F"-" '{print $2}'` == "contrailtsn" ]]; then
|
|
||||||
yum install -y contrail-vrouter-utils
|
|
||||||
function pkt_setup () {
|
|
||||||
for f in /sys/class/net/$1/queues/rx-*
|
|
||||||
do
|
|
||||||
q="$(echo $f | cut -d '-' -f2)"
|
|
||||||
r=$(($q%32))
|
|
||||||
s=$(($q/32))
|
|
||||||
((mask=1<<$r))
|
|
||||||
str=(`printf "%x" $mask`)
|
|
||||||
if [ $s -gt 0 ]; then
|
|
||||||
for ((i=0; i < $s; i++))
|
|
||||||
do
|
|
||||||
str+=,00000000
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
echo $str > $f/rps_cpus
|
|
||||||
done
|
|
||||||
ifconfig $1 up
|
|
||||||
}
|
|
||||||
function insert_vrouter() {
|
|
||||||
insmod /tmp/vrouter.ko
|
|
||||||
if [ -f /sys/class/net/pkt1/queues/rx-0/rps_cpus ]; then
|
|
||||||
pkt_setup pkt1
|
|
||||||
fi
|
|
||||||
if [ -f /sys/class/net/pkt2/queues/rx-0/rps_cpus ]; then
|
|
||||||
pkt_setup pkt2
|
|
||||||
fi
|
|
||||||
if [ -f /sys/class/net/pkt3/queues/rx-0/rps_cpus ]; then
|
|
||||||
pkt_setup pkt3
|
|
||||||
fi
|
|
||||||
DEV_MAC=$(cat /sys/class/net/$phy_int/address)
|
|
||||||
vif --create vhost0 --mac $DEV_MAC
|
|
||||||
vif --add $phy_int --mac $DEV_MAC --vrf 0 --vhost-phys --type physical
|
|
||||||
vif --add vhost0 --mac $DEV_MAC --vrf 0 --type vhost --xconnect $phy_int
|
|
||||||
ip link set vhost0 up
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
yumdownloader contrail-vrouter --destdir /tmp
|
|
||||||
cd /tmp
|
|
||||||
rpm2cpio /tmp/contrail-vrouter*.rpm | cpio -idmv
|
|
||||||
cp `find /tmp/lib/modules -name vrouter.ko |tail -1` /tmp
|
|
||||||
insert_vrouter
|
|
||||||
if [[ `ifconfig $dev |grep "inet "` ]]; then
|
|
||||||
def_gw=''
|
|
||||||
if [[ `ip route show |grep default|grep $dev` ]]; then
|
|
||||||
def_gw=`ip route show |grep default|grep $dev|awk '{print $3}'`
|
|
||||||
fi
|
|
||||||
ip=`ifconfig $dev |grep "inet "|awk '{print $2}'`
|
|
||||||
mask=`ifconfig $dev |grep "inet "|awk '{print $4}'`
|
|
||||||
ip address delete $ip/$mask dev $dev
|
|
||||||
ip address add $ip/$mask dev vhost0
|
|
||||||
if [[ $def_gw ]]; then
|
|
||||||
ip route add default via $def_gw
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
params:
|
|
||||||
$phy_int: {get_param: VrouterPhysicalInterface}
|
|
||||||
$contrail_repo: {get_param: ContrailRepo}
|
|
||||||
|
|
||||||
outputs:
|
|
||||||
# This means get_resource from the parent template will get the userdata, see:
|
|
||||||
# http://docs.openstack.org/developer/heat/template_guide/composition.html#making-your-template-resource-more-transparent
|
|
||||||
# Note this is new-for-kilo, an alternative is returning a value then using
|
|
||||||
# get_attr in the parent template instead.
|
|
||||||
OS::stack_id:
|
|
||||||
value: {get_resource: userdata}
|
|
|
@ -0,0 +1,164 @@
|
||||||
|
heat_template_version: pike
|
||||||
|
|
||||||
|
description: >
|
||||||
|
Software Config to drive os-net-config to configure multiple interfaces
|
||||||
|
for the compute role. This is an example for a Nova compute node using
|
||||||
|
Contrail vrouter and the vhost0 interface.
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
ControlPlaneIp:
|
||||||
|
default: ''
|
||||||
|
description: IP address/subnet on the ctlplane network
|
||||||
|
type: string
|
||||||
|
ExternalIpSubnet:
|
||||||
|
default: ''
|
||||||
|
description: IP address/subnet on the external network
|
||||||
|
type: string
|
||||||
|
InternalApiIpSubnet:
|
||||||
|
default: ''
|
||||||
|
description: IP address/subnet on the internal API network
|
||||||
|
type: string
|
||||||
|
InternalApiDefaultRoute: # Not used by default in this template
|
||||||
|
default: '10.0.0.1'
|
||||||
|
description: The default route of the internal api network.
|
||||||
|
type: string
|
||||||
|
StorageIpSubnet:
|
||||||
|
default: ''
|
||||||
|
description: IP address/subnet on the storage network
|
||||||
|
type: string
|
||||||
|
StorageMgmtIpSubnet:
|
||||||
|
default: ''
|
||||||
|
description: IP address/subnet on the storage mgmt network
|
||||||
|
type: string
|
||||||
|
TenantIpSubnet:
|
||||||
|
default: ''
|
||||||
|
description: IP address/subnet on the tenant network
|
||||||
|
type: string
|
||||||
|
ManagementIpSubnet: # Only populated when including environments/network-management.yaml
|
||||||
|
default: ''
|
||||||
|
description: IP address/subnet on the management network
|
||||||
|
type: string
|
||||||
|
ExternalNetworkVlanID:
|
||||||
|
default: 10
|
||||||
|
description: Vlan ID for the external network traffic.
|
||||||
|
type: number
|
||||||
|
InternalApiNetworkVlanID:
|
||||||
|
default: 20
|
||||||
|
description: Vlan ID for the internal_api network traffic.
|
||||||
|
type: number
|
||||||
|
StorageNetworkVlanID:
|
||||||
|
default: 30
|
||||||
|
description: Vlan ID for the storage network traffic.
|
||||||
|
type: number
|
||||||
|
StorageMgmtNetworkVlanID:
|
||||||
|
default: 40
|
||||||
|
description: Vlan ID for the storage mgmt network traffic.
|
||||||
|
type: number
|
||||||
|
TenantNetworkVlanID:
|
||||||
|
default: 50
|
||||||
|
description: Vlan ID for the tenant network traffic.
|
||||||
|
type: number
|
||||||
|
ManagementNetworkVlanID:
|
||||||
|
default: 60
|
||||||
|
description: Vlan ID for the management network traffic.
|
||||||
|
type: number
|
||||||
|
ControlPlaneSubnetCidr: # Override this via parameter_defaults
|
||||||
|
default: '24'
|
||||||
|
description: The subnet CIDR of the control plane network.
|
||||||
|
type: string
|
||||||
|
ControlPlaneDefaultRoute: # Override this via parameter_defaults
|
||||||
|
description: The default route of the control plane network.
|
||||||
|
type: string
|
||||||
|
ExternalInterfaceDefaultRoute: # Not used by default in this template
|
||||||
|
default: '10.0.0.1'
|
||||||
|
description: The default route of the external network.
|
||||||
|
type: string
|
||||||
|
ManagementInterfaceDefaultRoute: # Commented out by default in this template
|
||||||
|
default: unset
|
||||||
|
description: The default route of the management network.
|
||||||
|
type: string
|
||||||
|
DnsServers: # Override this via parameter_defaults
|
||||||
|
default: []
|
||||||
|
description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf.
|
||||||
|
type: comma_delimited_list
|
||||||
|
EC2MetadataIp: # Override this via parameter_defaults
|
||||||
|
description: The IP address of the EC2 metadata server.
|
||||||
|
type: string
|
||||||
|
|
||||||
|
resources:
|
||||||
|
OsNetConfigImpl:
|
||||||
|
type: OS::Heat::SoftwareConfig
|
||||||
|
properties:
|
||||||
|
group: script
|
||||||
|
config:
|
||||||
|
str_replace:
|
||||||
|
template:
|
||||||
|
get_file: ../../scripts/run-os-net-config.sh
|
||||||
|
params:
|
||||||
|
$network_config:
|
||||||
|
network_config:
|
||||||
|
- type: interface
|
||||||
|
name: nic1
|
||||||
|
use_dhcp: false
|
||||||
|
dns_servers:
|
||||||
|
get_param: DnsServers
|
||||||
|
addresses:
|
||||||
|
- ip_netmask:
|
||||||
|
list_join:
|
||||||
|
- '/'
|
||||||
|
- - get_param: ControlPlaneIp
|
||||||
|
- get_param: ControlPlaneSubnetCidr
|
||||||
|
routes:
|
||||||
|
- ip_netmask: 169.254.169.254/32
|
||||||
|
next_hop:
|
||||||
|
get_param: EC2MetadataIp
|
||||||
|
- type: interface
|
||||||
|
name: nic2
|
||||||
|
use_dhcp: false
|
||||||
|
addresses:
|
||||||
|
- ip_netmask:
|
||||||
|
get_param: InternalApiIpSubnet
|
||||||
|
routes:
|
||||||
|
- default: true
|
||||||
|
next_hop:
|
||||||
|
get_param: InternalApiDefaultRoute
|
||||||
|
- type: linux_bridge
|
||||||
|
name: br0
|
||||||
|
use_dhcp: false
|
||||||
|
members:
|
||||||
|
- type: interface
|
||||||
|
name: nic3
|
||||||
|
- type: vlan
|
||||||
|
vlan_id:
|
||||||
|
get_param: ManagementNetworkVlanID
|
||||||
|
device: br0
|
||||||
|
addresses:
|
||||||
|
- ip_netmask:
|
||||||
|
get_param: ManagementIpSubnet
|
||||||
|
- type: vlan
|
||||||
|
vlan_id:
|
||||||
|
get_param: ExternalNetworkVlanID
|
||||||
|
device: br0
|
||||||
|
addresses:
|
||||||
|
- ip_netmask:
|
||||||
|
get_param: ExternalIpSubnet
|
||||||
|
- type: vlan
|
||||||
|
vlan_id:
|
||||||
|
get_param: StorageNetworkVlanID
|
||||||
|
device: br0
|
||||||
|
addresses:
|
||||||
|
- ip_netmask:
|
||||||
|
get_param: StorageIpSubnet
|
||||||
|
- type: vlan
|
||||||
|
vlan_id:
|
||||||
|
get_param: StorageMgmtNetworkVlanID
|
||||||
|
device: br0
|
||||||
|
addresses:
|
||||||
|
- ip_netmask:
|
||||||
|
get_param: StorageMgmtIpSubnet
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
OS::stack_id:
|
||||||
|
description: The OsNetConfigImpl resource.
|
||||||
|
value:
|
||||||
|
get_resource: OsNetConfigImpl
|
|
@ -28,87 +28,6 @@ Ceilometer:
|
||||||
net_param: CeilometerApi
|
net_param: CeilometerApi
|
||||||
port: 8777
|
port: 8777
|
||||||
|
|
||||||
ContrailConfig:
|
|
||||||
Internal:
|
|
||||||
net_param: ContrailConfig
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
Admin:
|
|
||||||
net_param: ContrailConfig
|
|
||||||
port: 8082
|
|
||||||
|
|
||||||
ContrailDiscovery:
|
|
||||||
Internal:
|
|
||||||
net_param: ContrailConfig
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
Admin:
|
|
||||||
net_param: ContrailConfig
|
|
||||||
port: 5998
|
|
||||||
|
|
||||||
ContrailAnalyticsCollectorHttp:
|
|
||||||
Internal:
|
|
||||||
net_param: ContrailAnalytics
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
Admin:
|
|
||||||
net_param: ContrailAnalytics
|
|
||||||
port: 8089
|
|
||||||
|
|
||||||
ContrailAnalyticsApi:
|
|
||||||
Internal:
|
|
||||||
net_param: ContrailAnalytics
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
Admin:
|
|
||||||
net_param: ContrailAnalytics
|
|
||||||
port: 8081
|
|
||||||
|
|
||||||
ContrailAnalyticsHttp:
|
|
||||||
Internal:
|
|
||||||
net_param: ContrailAnalytics
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
Admin:
|
|
||||||
net_param: ContrailAnalytics
|
|
||||||
port: 8090
|
|
||||||
|
|
||||||
ContrailAnalyticsCollectorSandesh:
|
|
||||||
Internal:
|
|
||||||
net_param: ContrailAnalytics
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
Admin:
|
|
||||||
net_param: ContrailAnalytics
|
|
||||||
port: 8086
|
|
||||||
|
|
||||||
ContrailAnalyticsRedis:
|
|
||||||
Internal:
|
|
||||||
net_param: ContrailAnalytics
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
Admin:
|
|
||||||
net_param: ContrailAnalytics
|
|
||||||
port: 6379
|
|
||||||
|
|
||||||
ContrailWebuiHttp:
|
|
||||||
Internal:
|
|
||||||
net_param: ContrailConfig
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
Admin:
|
|
||||||
net_param: ContrailConfig
|
|
||||||
port: 8080
|
|
||||||
|
|
||||||
ContrailWebuiHttps:
|
|
||||||
Internal:
|
|
||||||
net_param: ContrailConfig
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
Admin:
|
|
||||||
net_param: ContrailConfig
|
|
||||||
port: 8143
|
|
||||||
|
|
||||||
Ec2Api:
|
Ec2Api:
|
||||||
Internal:
|
Internal:
|
||||||
net_param: Ec2Api
|
net_param: Ec2Api
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -33,6 +33,26 @@ parameters:
|
||||||
description: Mapping of service endpoint -> protocol. Typically set
|
description: Mapping of service endpoint -> protocol. Typically set
|
||||||
via parameter_defaults in the resource registry.
|
via parameter_defaults in the resource registry.
|
||||||
type: json
|
type: json
|
||||||
|
ContrailAnalyticsCollectorHttp:
|
||||||
|
default: 8089
|
||||||
|
description: Contrail Analytics Collector http port
|
||||||
|
type: number
|
||||||
|
ContrailAnalyticsCollectorSandesh:
|
||||||
|
default: 8086
|
||||||
|
description: Contrail Analytics Collector sandesh port
|
||||||
|
type: number
|
||||||
|
ContrailAnalyticsHttp:
|
||||||
|
default: 8090
|
||||||
|
description: Contrail Analytics http port
|
||||||
|
type: number
|
||||||
|
ContrailAnalyticsRedis:
|
||||||
|
default: 6379
|
||||||
|
description: Contrail Analytics redis port
|
||||||
|
type: number
|
||||||
|
ContrailAnalyticsApi:
|
||||||
|
default: 8081
|
||||||
|
description: Contrail Analytics Api port
|
||||||
|
type: number
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
ContrailBase:
|
ContrailBase:
|
||||||
|
@ -41,7 +61,6 @@ resources:
|
||||||
ServiceData: {get_param: ServiceData}
|
ServiceData: {get_param: ServiceData}
|
||||||
ServiceNetMap: {get_param: ServiceNetMap}
|
ServiceNetMap: {get_param: ServiceNetMap}
|
||||||
DefaultPasswords: {get_param: DefaultPasswords}
|
DefaultPasswords: {get_param: DefaultPasswords}
|
||||||
EndpointMap: {get_param: EndpointMap}
|
|
||||||
RoleName: {get_param: RoleName}
|
RoleName: {get_param: RoleName}
|
||||||
RoleParameters: {get_param: RoleParameters}
|
RoleParameters: {get_param: RoleParameters}
|
||||||
|
|
||||||
|
@ -53,14 +72,14 @@ outputs:
|
||||||
config_settings:
|
config_settings:
|
||||||
map_merge:
|
map_merge:
|
||||||
- get_attr: [ContrailBase, role_data, config_settings]
|
- get_attr: [ContrailBase, role_data, config_settings]
|
||||||
- contrail::analytics::collector_http_server_port: {get_param: [EndpointMap, ContrailAnalyticsCollectorHttpInternal, port]}
|
- contrail::analytics::collector_http_server_port: {get_param: ContrailAnalyticsCollectorHttp}
|
||||||
contrail::analytics::collector_sandesh_port: {get_param: [EndpointMap, ContrailAnalyticsCollectorSandeshInternal, port]}
|
contrail::analytics::collector_sandesh_port: {get_param: ContrailAnalyticsCollectorSandesh}
|
||||||
contrail::analytics::host_ip: {get_param: [ServiceNetMap, ContrailAnalyticsNetwork]}
|
contrail::analytics::host_ip: {get_param: [ServiceNetMap, ContrailAnalyticsNetwork]}
|
||||||
contrail::analytics::http_server_port: {get_param: [EndpointMap, ContrailAnalyticsHttpInternal, port]}
|
contrail::analytics::http_server_port: {get_param: ContrailAnalyticsHttp}
|
||||||
contrail::analytics::listen_ip_address: {get_param: [ServiceNetMap, ContrailAnalyticsNetwork]}
|
contrail::analytics::listen_ip_address: {get_param: [ServiceNetMap, ContrailAnalyticsNetwork]}
|
||||||
contrail::analytics::redis_server: '127.0.0.1'
|
contrail::analytics::redis_server: '127.0.0.1'
|
||||||
contrail::analytics::redis_server_port: {get_param: [EndpointMap, ContrailAnalyticsRedisInternal, port]}
|
contrail::analytics::redis_server_port: {get_param: ContrailAnalyticsRedis}
|
||||||
contrail::analytics::rest_api_ip: {get_param: [ServiceNetMap, ContrailAnalyticsNetwork]}
|
contrail::analytics::rest_api_ip: {get_param: [ServiceNetMap, ContrailAnalyticsNetwork]}
|
||||||
contrail::analytics::rest_api_port: {get_param: [EndpointMap, ContrailAnalyticsApiInternal, port]}
|
contrail::analytics::rest_api_port: {get_param: ContrailAnalyticsApi}
|
||||||
step_config: |
|
step_config: |
|
||||||
include ::tripleo::network::contrail::analytics
|
include ::tripleo::network::contrail::analytics
|
||||||
|
|
|
@ -30,11 +30,11 @@ parameters:
|
||||||
description: Mapping of service endpoint -> protocol. Typically set
|
description: Mapping of service endpoint -> protocol. Typically set
|
||||||
via parameter_defaults in the resource registry.
|
via parameter_defaults in the resource registry.
|
||||||
type: json
|
type: json
|
||||||
ContrailAAAMode:
|
AAAMode:
|
||||||
description: AAAmode can be no-auth, cloud-admin or rbac
|
description: AAAmode can be no-auth, cloud-admin or rbac
|
||||||
type: string
|
type: string
|
||||||
default: 'rbac'
|
default: 'rbac'
|
||||||
ContrailAAAModeAnalytics:
|
AAAModeAnalytics:
|
||||||
description: AAAmode for analytics can be no-auth, cloud-admin or rbac
|
description: AAAmode for analytics can be no-auth, cloud-admin or rbac
|
||||||
type: string
|
type: string
|
||||||
default: 'no-auth'
|
default: 'no-auth'
|
||||||
|
@ -54,18 +54,26 @@ parameters:
|
||||||
description: Keystone admin user name
|
description: Keystone admin user name
|
||||||
type: string
|
type: string
|
||||||
default: 'admin'
|
default: 'admin'
|
||||||
AuthPortSSL:
|
|
||||||
default: 13357
|
|
||||||
description: Keystone SSL port
|
|
||||||
type: number
|
|
||||||
AuthPortSSLPublic:
|
|
||||||
default: 13000
|
|
||||||
description: Keystone Public SSL port
|
|
||||||
type: number
|
|
||||||
ContrailAuth:
|
ContrailAuth:
|
||||||
default: 'keystone'
|
default: 'keystone'
|
||||||
description: Keystone authentication method
|
description: Keystone authentication method
|
||||||
type: string
|
type: string
|
||||||
|
ContrailAnalyticsVIP:
|
||||||
|
default: ''
|
||||||
|
description: Contrail Analytics Api Virtual IP address
|
||||||
|
type: string
|
||||||
|
ContrailConfigPort:
|
||||||
|
default: 8082
|
||||||
|
description: Contrail Config Api port
|
||||||
|
type: number
|
||||||
|
ContrailConfigVIP:
|
||||||
|
default: ''
|
||||||
|
description: Contrail Config Virtual IP address
|
||||||
|
type: string
|
||||||
|
ContrailDiscoveryPort:
|
||||||
|
default: 5998
|
||||||
|
description: Contrail Config Api port
|
||||||
|
type: number
|
||||||
ContrailInsecure:
|
ContrailInsecure:
|
||||||
default: false
|
default: false
|
||||||
description: Keystone insecure mode
|
description: Keystone insecure mode
|
||||||
|
@ -74,6 +82,14 @@ parameters:
|
||||||
default: '127.0.0.1:12111'
|
default: '127.0.0.1:12111'
|
||||||
description: Memcached server
|
description: Memcached server
|
||||||
type: string
|
type: string
|
||||||
|
ContrailVIP:
|
||||||
|
default: ''
|
||||||
|
description: Contrail VIP
|
||||||
|
type: string
|
||||||
|
ContrailWebuiVIP:
|
||||||
|
default: ''
|
||||||
|
description: Contrail Webui Virtual IP address
|
||||||
|
type: string
|
||||||
RabbitPassword:
|
RabbitPassword:
|
||||||
description: The password for RabbitMQ
|
description: The password for RabbitMQ
|
||||||
type: string
|
type: string
|
||||||
|
@ -87,29 +103,49 @@ parameters:
|
||||||
description: Set rabbit subscriber port, change this if using SSL
|
description: Set rabbit subscriber port, change this if using SSL
|
||||||
type: number
|
type: number
|
||||||
|
|
||||||
|
conditions:
|
||||||
|
contrail_config_vip_unset: {equals : [{get_param: ContrailConfigVIP}, '']}
|
||||||
|
contrail_analytics_vip_unset: {equals : [{get_param: ContrailAnalyticsVIP}, '']}
|
||||||
|
contrail_webui_vip_unset: {equals : [{get_param: ContrailWebuiVIP}, '']}
|
||||||
|
|
||||||
outputs:
|
outputs:
|
||||||
role_data:
|
role_data:
|
||||||
description: Shared role data for the Contrail services.
|
description: Shared role data for the Contrail services.
|
||||||
value:
|
value:
|
||||||
service_name: contrail_base
|
service_name: contrail_base
|
||||||
config_settings:
|
config_settings:
|
||||||
contrail::aaa_mode: {get_param: ContrailAAAMode}
|
map_merge:
|
||||||
contrail::analytics_aaa_mode: {get_param: ContrailAAAModeAnalytics}
|
- contrail::aaa_mode: {get_param: AAAMode}
|
||||||
contrail::admin_password: {get_param: AdminPassword}
|
contrail::analytics_aaa_mode: {get_param: AAAModeAnalytics}
|
||||||
contrail::admin_tenant_name: {get_param: AdminTenantName}
|
contrail::admin_password: {get_param: AdminPassword}
|
||||||
contrail::admin_token: {get_param: AdminToken}
|
contrail::admin_tenant_name: {get_param: AdminTenantName}
|
||||||
contrail::admin_user: {get_param: AdminUser}
|
contrail::admin_token: {get_param: AdminToken}
|
||||||
contrail::auth: {get_param: ContrailAuth}
|
contrail::admin_user: {get_param: AdminUser}
|
||||||
contrail::auth_host: {get_param: [EndpointMap, KeystonePublic, host] }
|
contrail::auth: {get_param: ContrailAuth}
|
||||||
contrail::auth_port: {get_param: [EndpointMap, KeystoneAdmin, port] }
|
contrail::auth_host: {get_param: [EndpointMap, KeystoneAdmin, host] }
|
||||||
contrail::auth_port_ssl: {get_param: AuthPortSSL }
|
contrail::auth_port: {get_param: [EndpointMap, KeystoneAdmin, port] }
|
||||||
contrail::auth_port_public: {get_param: [EndpointMap, KeystonePublic, port] }
|
contrail::auth_port_public: {get_param: [EndpointMap, KeystonePublic, port] }
|
||||||
contrail::auth_port_ssl_public: {get_param: AuthPortSSLPublic }
|
contrail::auth_protocol: {get_param: [EndpointMap, KeystonePublic, protocol] }
|
||||||
contrail::auth_protocol: {get_param: [EndpointMap, KeystoneInternal, protocol] }
|
contrail::api_port: {get_param: ContrailConfigPort }
|
||||||
contrail::api_port: {get_param: [EndpointMap, ContrailConfigInternal, port] }
|
contrail::disc_server_port: {get_param: ContrailDiscoveryPort }
|
||||||
contrail::disc_server_port: {get_param: [EndpointMap, ContrailDiscoveryInternal, port] }
|
contrail::insecure: {get_param: ContrailInsecure}
|
||||||
contrail::insecure: {get_param: ContrailInsecure}
|
contrail::memcached_server: {get_param: ContrailMemcachedServer}
|
||||||
contrail::memcached_server: {get_param: ContrailMemcachedServer}
|
contrail::rabbit_password: {get_param: RabbitPassword}
|
||||||
contrail::rabbit_password: {get_param: RabbitPassword}
|
contrail::rabbit_user: {get_param: RabbitUserName}
|
||||||
contrail::rabbit_user: {get_param: RabbitUserName}
|
contrail::rabbit_port: {get_param: RabbitClientPort}
|
||||||
contrail::rabbit_port: {get_param: RabbitClientPort}
|
contrail::vip: {get_param: ContrailVIP}
|
||||||
|
-
|
||||||
|
if:
|
||||||
|
- contrail_config_vip_unset
|
||||||
|
- {}
|
||||||
|
- contrail_config_vip: {get_param: ContrailConfigVIP}
|
||||||
|
-
|
||||||
|
if:
|
||||||
|
- contrail_webui_vip_unset
|
||||||
|
- {}
|
||||||
|
- contrail_webui_vip: {get_param: ContrailWebuiVIP}
|
||||||
|
-
|
||||||
|
if:
|
||||||
|
- contrail_analytics_vip_unset
|
||||||
|
- {}
|
||||||
|
- contrail_analytics_vip: {get_param: ContrailAnalyticsVIP}
|
||||||
|
|
|
@ -41,6 +41,10 @@ parameters:
|
||||||
description: Ifmap user password
|
description: Ifmap user password
|
||||||
type: string
|
type: string
|
||||||
default: 'api-server'
|
default: 'api-server'
|
||||||
|
ContrailConfigPort:
|
||||||
|
default: 8082
|
||||||
|
description: Contrail Config Api port
|
||||||
|
type: number
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
ContrailBase:
|
ContrailBase:
|
||||||
|
@ -64,8 +68,8 @@ outputs:
|
||||||
- contrail::config::ifmap_password: {get_param: ContrailConfigIfmapUserPassword}
|
- contrail::config::ifmap_password: {get_param: ContrailConfigIfmapUserPassword}
|
||||||
contrail::config::ifmap_username: {get_param: ContrailConfigIfmapUserName}
|
contrail::config::ifmap_username: {get_param: ContrailConfigIfmapUserName}
|
||||||
contrail::config::listen_ip_address: {get_param: [ServiceNetMap, ContrailConfigNetwork]}
|
contrail::config::listen_ip_address: {get_param: [ServiceNetMap, ContrailConfigNetwork]}
|
||||||
contrail::config::listen_port: {get_param: [EndpointMap, ContrailConfigInternal, port] }
|
contrail::config::listen_port: {get_param: ContrailConfigPort}
|
||||||
contrail::config::redis_server: '127.0.0.1'
|
contrail::config::redis_server: '127.0.0.1'
|
||||||
contrail::config::host_ip: {get_param: [ServiceNetMap, ContrailConfigNetwork] }
|
contrail::config::host_ip: {get_param: [ServiceNetMap, ContrailConfigNetwork]}
|
||||||
step_config: |
|
step_config: |
|
||||||
include ::tripleo::network::contrail::config
|
include ::tripleo::network::contrail::config
|
||||||
|
|
|
@ -41,6 +41,10 @@ parameters:
|
||||||
description: sda1/256 hmac key, e.g. echo -n "values" | openssl dgst -sha256 -hmac key -binary | base64
|
description: sda1/256 hmac key, e.g. echo -n "values" | openssl dgst -sha256 -hmac key -binary | base64
|
||||||
type: string
|
type: string
|
||||||
hidden: true
|
hidden: true
|
||||||
|
ContrailControlManageNamed:
|
||||||
|
description: named config file mgmt
|
||||||
|
type: string
|
||||||
|
default: true
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
ContrailBase:
|
ContrailBase:
|
||||||
|
@ -64,5 +68,6 @@ outputs:
|
||||||
- contrail::control::asn: {get_param: ContrailControlASN }
|
- contrail::control::asn: {get_param: ContrailControlASN }
|
||||||
contrail::control::host_ip: {get_param: [ServiceNetMap, ContrailControlNetwork]}
|
contrail::control::host_ip: {get_param: [ServiceNetMap, ContrailControlNetwork]}
|
||||||
contrail::control::rndc_secret: {get_param: ContrailControlRNDCSecret}
|
contrail::control::rndc_secret: {get_param: ContrailControlRNDCSecret}
|
||||||
|
contrail::control::manage_named: {get_param: ContrailControlManageNamed}
|
||||||
step_config: |
|
step_config: |
|
||||||
include ::tripleo::network::contrail::control
|
include ::tripleo::network::contrail::control
|
||||||
|
|
|
@ -0,0 +1,82 @@
|
||||||
|
heat_template_version: pike
|
||||||
|
|
||||||
|
description: >
|
||||||
|
OpenStack Neutron Compute OpenContrail plugin
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
ServiceData:
|
||||||
|
default: {}
|
||||||
|
description: Dictionary packing service data
|
||||||
|
type: json
|
||||||
|
ServiceNetMap:
|
||||||
|
default: {}
|
||||||
|
description: Mapping of service_name -> network name. Typically set
|
||||||
|
via parameter_defaults in the resource registry. This
|
||||||
|
mapping overrides those in ServiceNetMapDefaults.
|
||||||
|
type: json
|
||||||
|
DefaultPasswords:
|
||||||
|
default: {}
|
||||||
|
type: json
|
||||||
|
RoleName:
|
||||||
|
default: ''
|
||||||
|
description: Role name on which the service is applied
|
||||||
|
type: string
|
||||||
|
RoleParameters:
|
||||||
|
default: {}
|
||||||
|
description: Parameters specific to the role
|
||||||
|
type: json
|
||||||
|
EndpointMap:
|
||||||
|
default: {}
|
||||||
|
description: Mapping of service endpoint -> protocol. Typically set
|
||||||
|
via parameter_defaults in the resource registry.
|
||||||
|
type: json
|
||||||
|
NeutronMetadataProxySharedSecret:
|
||||||
|
description: Metadata Secret
|
||||||
|
type: string
|
||||||
|
hidden: true
|
||||||
|
ContrailVrouterPhysicalInterface:
|
||||||
|
default: 'eth0'
|
||||||
|
description: vRouter physical interface
|
||||||
|
type: string
|
||||||
|
ContrailVrouterGateway:
|
||||||
|
default: '192.168.24.1'
|
||||||
|
description: vRouter default gateway
|
||||||
|
type: string
|
||||||
|
ContrailVrouterNetmask:
|
||||||
|
default: '255.255.255.0'
|
||||||
|
description: vRouter netmask
|
||||||
|
type: string
|
||||||
|
|
||||||
|
resources:
|
||||||
|
ContrailBase:
|
||||||
|
type: ./contrail-base.yaml
|
||||||
|
properties:
|
||||||
|
ServiceData: {get_param: ServiceData}
|
||||||
|
ServiceNetMap: {get_param: ServiceNetMap}
|
||||||
|
DefaultPasswords: {get_param: DefaultPasswords}
|
||||||
|
EndpointMap: {get_param: EndpointMap}
|
||||||
|
RoleName: {get_param: RoleName}
|
||||||
|
RoleParameters: {get_param: RoleParameters}
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
role_data:
|
||||||
|
description: Role data for the Neutron Compute OpenContrail plugin
|
||||||
|
value:
|
||||||
|
service_name: contrail_dpdk
|
||||||
|
config_settings:
|
||||||
|
map_merge:
|
||||||
|
- get_attr: [ContrailBase, role_data, config_settings]
|
||||||
|
- contrail::vrouter::host_ip: {get_param: [ServiceNetMap, ContrailVrouterNetwork]}
|
||||||
|
contrail::vrouter::is_dpdk: 'true'
|
||||||
|
contrail::vrouter::physical_interface: {get_param: ContrailVrouterPhysicalInterface}
|
||||||
|
contrail::vrouter::gateway: {get_param: ContrailVrouterGateway}
|
||||||
|
contrail::vrouter::netmask: {get_param: ContrailVrouterNetmask}
|
||||||
|
contrail::vrouter::metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
|
||||||
|
tripleo.neutron_compute_plugin_opencontrail.firewall_rules:
|
||||||
|
'111 neutron_compute_plugin_opencontrail proxy':
|
||||||
|
dport:
|
||||||
|
- 8097
|
||||||
|
- 8085
|
||||||
|
proto: tcp
|
||||||
|
step_config: |
|
||||||
|
include ::tripleo::network::contrail::vrouter
|
|
@ -33,7 +33,7 @@ parameters:
|
||||||
ContrailExtensions:
|
ContrailExtensions:
|
||||||
description: List of OpenContrail extensions to be enabled
|
description: List of OpenContrail extensions to be enabled
|
||||||
type: comma_delimited_list
|
type: comma_delimited_list
|
||||||
default: ''
|
default: 'ipam:neutron_plugin_contrail.plugins.opencontrail.contrail_plugin_ipam.NeutronPluginContrailIpam,policy:neutron_plugin_contrail.plugins.opencontrail.contrail_plugin_policy.NeutronPluginContrailPolicy,route-table:neutron_plugin_contrail.plugins.opencontrail.contrail_plugin_vpc.NeutronPluginContrailVpc,contrail:None'
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
ContrailBase:
|
ContrailBase:
|
||||||
|
@ -54,7 +54,7 @@ outputs:
|
||||||
config_settings:
|
config_settings:
|
||||||
map_merge:
|
map_merge:
|
||||||
- get_attr: [ContrailBase, role_data, config_settings]
|
- get_attr: [ContrailBase, role_data, config_settings]
|
||||||
- neutron::api_extensions_path: /usr/lib/python2.7/site-packages/neutron_plugin_contrail/extensions
|
- neutron::api_extensions_path: '/usr/lib/python2.7/site-packages/neutron_plugin_contrail/extensions:/usr/lib/python2.7/site-packages/neutron_lbaas/extensions'
|
||||||
contrail::vrouter::contrail_extensions: {get_param: ContrailExtensions}
|
contrail::vrouter::contrail_extensions: {get_param: ContrailExtensions}
|
||||||
step_config: |
|
step_config: |
|
||||||
include tripleo::network::contrail::neutron_plugin
|
include tripleo::network::contrail::neutron_plugin
|
||||||
|
|
|
@ -1,54 +0,0 @@
|
||||||
heat_template_version: pike
|
|
||||||
|
|
||||||
description: >
|
|
||||||
Provision Contrail services after deployment
|
|
||||||
|
|
||||||
parameters:
|
|
||||||
ServiceData:
|
|
||||||
default: {}
|
|
||||||
description: Dictionary packing service data
|
|
||||||
type: json
|
|
||||||
ServiceNetMap:
|
|
||||||
default: {}
|
|
||||||
description: Mapping of service_name -> network name. Typically set
|
|
||||||
via parameter_defaults in the resource registry. This
|
|
||||||
mapping overrides those in ServiceNetMapDefaults.
|
|
||||||
type: json
|
|
||||||
DefaultPasswords:
|
|
||||||
default: {}
|
|
||||||
type: json
|
|
||||||
RoleName:
|
|
||||||
default: ''
|
|
||||||
description: Role name on which the service is applied
|
|
||||||
type: string
|
|
||||||
RoleParameters:
|
|
||||||
default: {}
|
|
||||||
description: Parameters specific to the role
|
|
||||||
type: json
|
|
||||||
EndpointMap:
|
|
||||||
default: {}
|
|
||||||
description: Mapping of service endpoint -> protocol. Typically set
|
|
||||||
via parameter_defaults in the resource registry.
|
|
||||||
type: json
|
|
||||||
|
|
||||||
resources:
|
|
||||||
ContrailBase:
|
|
||||||
type: ./contrail-base.yaml
|
|
||||||
properties:
|
|
||||||
ServiceData: {get_param: ServiceData}
|
|
||||||
ServiceNetMap: {get_param: ServiceNetMap}
|
|
||||||
DefaultPasswords: {get_param: DefaultPasswords}
|
|
||||||
EndpointMap: {get_param: EndpointMap}
|
|
||||||
RoleName: {get_param: RoleName}
|
|
||||||
RoleParameters: {get_param: RoleParameters}
|
|
||||||
|
|
||||||
outputs:
|
|
||||||
role_data:
|
|
||||||
description: Contrail provisioning role
|
|
||||||
value:
|
|
||||||
service_name: contrail_provision
|
|
||||||
config_settings:
|
|
||||||
map_merge:
|
|
||||||
- get_attr: [ContrailBase, role_data, config_settings]
|
|
||||||
step_config: |
|
|
||||||
include ::tripleo::network::contrail::provision
|
|
|
@ -33,15 +33,15 @@ parameters:
|
||||||
NeutronMetadataProxySharedSecret:
|
NeutronMetadataProxySharedSecret:
|
||||||
description: Metadata Secret
|
description: Metadata Secret
|
||||||
type: string
|
type: string
|
||||||
VrouterPhysicalInterface:
|
ContrailVrouterPhysicalInterface:
|
||||||
default: 'eth0'
|
default: 'eth0'
|
||||||
description: vRouter physical interface
|
description: vRouter physical interface
|
||||||
type: string
|
type: string
|
||||||
VrouterGateway:
|
ContrailVrouterGateway:
|
||||||
default: '192.168.24.1'
|
default: '192.168.24.1'
|
||||||
description: vRouter default gateway
|
description: vRouter default gateway
|
||||||
type: string
|
type: string
|
||||||
VrouterNetmask:
|
ContrailVrouterNetmask:
|
||||||
default: '255.255.255.0'
|
default: '255.255.255.0'
|
||||||
description: vRouter netmask
|
description: vRouter netmask
|
||||||
type: string
|
type: string
|
||||||
|
@ -65,10 +65,10 @@ outputs:
|
||||||
config_settings:
|
config_settings:
|
||||||
map_merge:
|
map_merge:
|
||||||
- get_attr: [ContrailBase, role_data, config_settings]
|
- get_attr: [ContrailBase, role_data, config_settings]
|
||||||
- contrail::vrouter::host_ip: {get_param: [ServiceNetMap, NeutronCorePluginOpencontrailNetwork]}
|
- contrail::vrouter::host_ip: {get_param: [ServiceNetMap, ContrailVrouterNetwork]}
|
||||||
contrail::vrouter::physical_interface: {get_param: VrouterPhysicalInterface}
|
contrail::vrouter::physical_interface: {get_param: ContrailVrouterPhysicalInterface}
|
||||||
contrail::vrouter::gateway: {get_param: VrouterGateway}
|
contrail::vrouter::gateway: {get_param: ContrailVrouterGateway}
|
||||||
contrail::vrouter::netmask: {get_param: VrouterNetmask}
|
contrail::vrouter::netmask: {get_param: ContrailVrouterNetmask}
|
||||||
contrail::vrouter::metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
|
contrail::vrouter::metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
|
||||||
contrail::vrouter::is_tsn: 'true'
|
contrail::vrouter::is_tsn: 'true'
|
||||||
tripleo.neutron_compute_plugin_opencontrail.firewall_rules:
|
tripleo.neutron_compute_plugin_opencontrail.firewall_rules:
|
||||||
|
|
|
@ -46,6 +46,10 @@ parameters:
|
||||||
default: '255.255.255.0'
|
default: '255.255.255.0'
|
||||||
description: vRouter netmask
|
description: vRouter netmask
|
||||||
type: string
|
type: string
|
||||||
|
ContrailVrouterControlNodeIps:
|
||||||
|
description: List of Contrail Node IPs
|
||||||
|
type: comma_delimited_list
|
||||||
|
default: ''
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
ContrailBase:
|
ContrailBase:
|
||||||
|
@ -66,14 +70,16 @@ outputs:
|
||||||
config_settings:
|
config_settings:
|
||||||
map_merge:
|
map_merge:
|
||||||
- get_attr: [ContrailBase, role_data, config_settings]
|
- get_attr: [ContrailBase, role_data, config_settings]
|
||||||
- contrail::vrouter::host_ip: {get_param: [ServiceNetMap, NeutronCorePluginOpencontrailNetwork]}
|
- contrail::vrouter::host_ip: {get_param: [ServiceNetMap, ContrailVrouterNetwork]}
|
||||||
contrail::vrouter::physical_interface: {get_param: ContrailVrouterPhysicalInterface}
|
contrail::vrouter::physical_interface: {get_param: ContrailVrouterPhysicalInterface}
|
||||||
contrail::vrouter::gateway: {get_param: ContrailVrouterGateway}
|
contrail::vrouter::gateway: {get_param: ContrailVrouterGateway}
|
||||||
contrail::vrouter::netmask: {get_param: ContrailVrouterNetmask}
|
contrail::vrouter::netmask: {get_param: ContrailVrouterNetmask}
|
||||||
contrail::vrouter::metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
|
contrail::vrouter::metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
|
||||||
tripleo.neutron_compute_plugin_opencontrail.firewall_rules:
|
contrail::vrouter::control_node_ips: {get_param: ContrailVrouterControlNodeIps}
|
||||||
'111 neutron_compute_plugin_opencontrail proxy':
|
tripleo.contrail_vrouter.firewall_rules:
|
||||||
|
'111 contrail_vrouter_8085':
|
||||||
|
dport: 8085
|
||||||
|
'112 contrail_vrouter_8097':
|
||||||
dport: 8097
|
dport: 8097
|
||||||
proto: tcp
|
|
||||||
step_config: |
|
step_config: |
|
||||||
include ::tripleo::network::contrail::vrouter
|
include ::tripleo::network::contrail::vrouter
|
||||||
|
|
|
@ -33,6 +33,14 @@ parameters:
|
||||||
description: Mapping of service endpoint -> protocol. Typically set
|
description: Mapping of service endpoint -> protocol. Typically set
|
||||||
via parameter_defaults in the resource registry.
|
via parameter_defaults in the resource registry.
|
||||||
type: json
|
type: json
|
||||||
|
ContrailWebuiHttp:
|
||||||
|
default: 8080
|
||||||
|
description: Contrail Webui http port
|
||||||
|
type: number
|
||||||
|
ContrailWebuiHttps:
|
||||||
|
default: 8143
|
||||||
|
description: Contrail Webui https port
|
||||||
|
type: number
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
ContrailBase:
|
ContrailBase:
|
||||||
|
@ -53,8 +61,8 @@ outputs:
|
||||||
config_settings:
|
config_settings:
|
||||||
map_merge:
|
map_merge:
|
||||||
- get_attr: [ContrailBase, role_data, config_settings]
|
- get_attr: [ContrailBase, role_data, config_settings]
|
||||||
- contrail::webui::http_port: {get_param: [EndpointMap, ContrailWebuiHttpInternal, port] }
|
- contrail::webui::http_port: {get_param: ContrailWebuiHttp }
|
||||||
contrail::webui::https_port: {get_param: [EndpointMap, ContrailWebuiHttpsInternal, port] }
|
contrail::webui::https_port: {get_param: ContrailWebuiHttps }
|
||||||
contrail::webui::redis_ip: '127.0.0.1'
|
contrail::webui::redis_ip: '127.0.0.1'
|
||||||
step_config: |
|
step_config: |
|
||||||
include ::tripleo::network::contrail::webui
|
include ::tripleo::network::contrail::webui
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
This patch enables the configuration of Contrail DPDK on the Compute nodes
|
||||||
|
by specifying the required parameters in an environment file.
|
||||||
|
fixes:
|
||||||
|
- |
|
||||||
|
The patch moves the Contrail control plane communication from the public
|
||||||
|
network to the internal_api network.
|
Loading…
Reference in New Issue