Merge "Contrail network realignement + DPDK enablement"

This commit is contained in:
Jenkins 2017-07-26 11:21:46 +00:00 committed by Gerrit Code Review
commit 4c05db369c
29 changed files with 847 additions and 2823 deletions

View File

@ -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

View File

@ -1,10 +1,10 @@
resource_registry:
OS::TripleO::Compute::Net::SoftwareConfig: contrail-nic-config-compute.yaml
OS::TripleO::Controller::Net::SoftwareConfig: contrail-nic-config.yaml
OS::TripleO::ContrailController::Net::SoftwareConfig: contrail-nic-config.yaml
OS::TripleO::ContrailAnalytics::Net::SoftwareConfig: contrail-nic-config.yaml
OS::TripleO::ContrailAnalyticsDatabase::Net::SoftwareConfig: contrail-nic-config.yaml
OS::TripleO::ContrailTsn::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: ../../network/config/contrail/contrail-nic-config.yaml
OS::TripleO::ContrailController::Net::SoftwareConfig: ../../network/config/contrail/contrail-nic-config.yaml
OS::TripleO::ContrailAnalytics::Net::SoftwareConfig: ../../network/config/contrail/contrail-nic-config.yaml
OS::TripleO::ContrailAnalyticsDatabase::Net::SoftwareConfig: ../../network/config/contrail/contrail-nic-config.yaml
OS::TripleO::ContrailTsn::Net::SoftwareConfig: ../../network/config/contrail/contrail-nic-config-compute.yaml
parameter_defaults:
ControlPlaneSubnetCidr: '24'
@ -18,9 +18,16 @@ parameter_defaults:
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: ["8.8.8.8","8.8.4.4"]
VrouterPhysicalInterface: eth1
VrouterGateway: 10.0.0.1
VrouterNetmask: 255.255.255.0
DnsServers: ["8.8.8.8"]
NtpServer: 10.0.0.1
ContrailVrouterPhysicalInterface: eth1
ContrailVrouterGateway: 10.0.0.1
ContrailVrouterNetmask: 255.255.255.0
ControlVirtualInterface: eth0
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'

View File

@ -8,7 +8,6 @@ resource_registry:
OS::TripleO::Services::ComputeNeutronOvsAgent: OS::Heat::None
OS::TripleO::Services::NeutronCorePlugin: OS::TripleO::Services::NeutronCorePluginContrail
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::ContrailAnalytics: ../../puppet/services/network/contrail-analytics.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::ContrailWebUI: ../../puppet/services/network/contrail-webui.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::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:
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
# ContrailConfigIfmapUserName: api-server
# ContrailConfigIfmapUserPassword: api-server
@ -30,16 +45,16 @@ parameter_defaults:
OvercloudContrailAnalyticsDatabaseFlavor: contrail-analytics-database
OvercloudContrailTsnFlavor: contrail-tsn
OvercloudComputeFlavor: compute
OvercloudContrailDpdkFlavor: compute-dpdk
ControllerCount: 3
ContrailControllerCount: 3
ContrailAnalyticsCount: 3
ContrailAnalyticsDatabaseCount: 3
ContrailTsnCount: 1
ContrailTsnCount: 0
ComputeCount: 3
DnsServers: ["8.8.8.8","8.8.4.4"]
NtpServer: 10.0.0.1
ContrailDpdkCount: 0
NeutronCorePlugin: neutron_plugin_contrail.plugins.opencontrail.contrail_plugin.NeutronPluginContrailCoreV2
NeutronServicePlugins: ''
NeutronServicePlugins: 'neutron_plugin_contrail.plugins.opencontrail.loadbalancer.v2.plugin.LoadBalancerPluginV2'
NeutronTunnelTypes: ''
# NeutronMetadataProxySharedSecret:
# ContrailControlRNDCSecret: # sda1/256 hmac key, e.g. echo -n "values" | openssl dgst -sha256 -hmac key -binary | base64

View File

@ -248,3 +248,16 @@
- OS::TripleO::Services::TripleoPackages
- OS::TripleO::Services::SensuClient
- 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

View File

@ -30,39 +30,6 @@ parameter_defaults:
CongressAdmin: {protocol: 'http', port: '1789', host: 'IP_ADDRESS'}
CongressInternal: {protocol: 'http', port: '1789', host: 'IP_ADDRESS'}
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'}
Ec2ApiInternal: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'}
Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'CLOUDNAME'}

View File

@ -30,39 +30,6 @@ parameter_defaults:
CongressAdmin: {protocol: 'http', port: '1789', host: 'IP_ADDRESS'}
CongressInternal: {protocol: 'http', port: '1789', 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'}
Ec2ApiInternal: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'}
Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'IP_ADDRESS'}

View File

@ -30,39 +30,6 @@ parameter_defaults:
CongressAdmin: {protocol: 'https', port: '1789', host: 'CLOUDNAME'}
CongressInternal: {protocol: 'https', port: '1789', 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'}
Ec2ApiInternal: {protocol: 'https', port: '8788', host: 'CLOUDNAME'}
Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'CLOUDNAME'}

View File

@ -24,39 +24,6 @@ parameter_defaults:
CongressAdmin: {protocol: 'http', port: '1789', host: 'IP_ADDRESS'}
CongressInternal: {protocol: 'http', port: '1789', host: 'IP_ADDRESS'}
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'}
Ec2ApiInternal: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'}
Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'CLOUDNAME'}

View File

@ -24,39 +24,6 @@ parameter_defaults:
CongressAdmin: {protocol: 'http', port: '1789', host: 'IP_ADDRESS'}
CongressInternal: {protocol: 'http', port: '1789', 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'}
Ec2ApiInternal: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'}
Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'IP_ADDRESS'}

View File

@ -20,39 +20,6 @@ parameter_defaults:
CongressAdmin: {protocol: 'https', port: '1789', host: 'CLOUDNAME'}
CongressInternal: {protocol: 'https', port: '1789', 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'}
Ec2ApiInternal: {protocol: 'https', port: '8788', host: 'CLOUDNAME'}
Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'CLOUDNAME'}

View File

@ -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}

View File

@ -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

View File

@ -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

View File

@ -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}

View File

@ -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

View File

@ -28,87 +28,6 @@ Ceilometer:
net_param: CeilometerApi
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:
Internal:
net_param: Ec2Api

File diff suppressed because it is too large Load Diff

View File

@ -33,6 +33,26 @@ parameters:
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
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:
ContrailBase:
@ -41,7 +61,6 @@ resources:
ServiceData: {get_param: ServiceData}
ServiceNetMap: {get_param: ServiceNetMap}
DefaultPasswords: {get_param: DefaultPasswords}
EndpointMap: {get_param: EndpointMap}
RoleName: {get_param: RoleName}
RoleParameters: {get_param: RoleParameters}
@ -53,14 +72,14 @@ outputs:
config_settings:
map_merge:
- get_attr: [ContrailBase, role_data, config_settings]
- contrail::analytics::collector_http_server_port: {get_param: [EndpointMap, ContrailAnalyticsCollectorHttpInternal, port]}
contrail::analytics::collector_sandesh_port: {get_param: [EndpointMap, ContrailAnalyticsCollectorSandeshInternal, port]}
- contrail::analytics::collector_http_server_port: {get_param: ContrailAnalyticsCollectorHttp}
contrail::analytics::collector_sandesh_port: {get_param: ContrailAnalyticsCollectorSandesh}
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::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_port: {get_param: [EndpointMap, ContrailAnalyticsApiInternal, port]}
contrail::analytics::rest_api_port: {get_param: ContrailAnalyticsApi}
step_config: |
include ::tripleo::network::contrail::analytics

View File

@ -30,11 +30,11 @@ parameters:
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
ContrailAAAMode:
AAAMode:
description: AAAmode can be no-auth, cloud-admin or rbac
type: string
default: 'rbac'
ContrailAAAModeAnalytics:
AAAModeAnalytics:
description: AAAmode for analytics can be no-auth, cloud-admin or rbac
type: string
default: 'no-auth'
@ -54,18 +54,26 @@ parameters:
description: Keystone admin user name
type: string
default: 'admin'
AuthPortSSL:
default: 13357
description: Keystone SSL port
type: number
AuthPortSSLPublic:
default: 13000
description: Keystone Public SSL port
type: number
ContrailAuth:
default: 'keystone'
description: Keystone authentication method
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:
default: false
description: Keystone insecure mode
@ -74,6 +82,14 @@ parameters:
default: '127.0.0.1:12111'
description: Memcached server
type: string
ContrailVIP:
default: ''
description: Contrail VIP
type: string
ContrailWebuiVIP:
default: ''
description: Contrail Webui Virtual IP address
type: string
RabbitPassword:
description: The password for RabbitMQ
type: string
@ -87,29 +103,49 @@ parameters:
description: Set rabbit subscriber port, change this if using SSL
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:
role_data:
description: Shared role data for the Contrail services.
value:
service_name: contrail_base
config_settings:
contrail::aaa_mode: {get_param: ContrailAAAMode}
contrail::analytics_aaa_mode: {get_param: ContrailAAAModeAnalytics}
contrail::admin_password: {get_param: AdminPassword}
contrail::admin_tenant_name: {get_param: AdminTenantName}
contrail::admin_token: {get_param: AdminToken}
contrail::admin_user: {get_param: AdminUser}
contrail::auth: {get_param: ContrailAuth}
contrail::auth_host: {get_param: [EndpointMap, KeystonePublic, host] }
contrail::auth_port: {get_param: [EndpointMap, KeystoneAdmin, port] }
contrail::auth_port_ssl: {get_param: AuthPortSSL }
contrail::auth_port_public: {get_param: [EndpointMap, KeystonePublic, port] }
contrail::auth_port_ssl_public: {get_param: AuthPortSSLPublic }
contrail::auth_protocol: {get_param: [EndpointMap, KeystoneInternal, protocol] }
contrail::api_port: {get_param: [EndpointMap, ContrailConfigInternal, port] }
contrail::disc_server_port: {get_param: [EndpointMap, ContrailDiscoveryInternal, port] }
contrail::insecure: {get_param: ContrailInsecure}
contrail::memcached_server: {get_param: ContrailMemcachedServer}
contrail::rabbit_password: {get_param: RabbitPassword}
contrail::rabbit_user: {get_param: RabbitUserName}
contrail::rabbit_port: {get_param: RabbitClientPort}
map_merge:
- contrail::aaa_mode: {get_param: AAAMode}
contrail::analytics_aaa_mode: {get_param: AAAModeAnalytics}
contrail::admin_password: {get_param: AdminPassword}
contrail::admin_tenant_name: {get_param: AdminTenantName}
contrail::admin_token: {get_param: AdminToken}
contrail::admin_user: {get_param: AdminUser}
contrail::auth: {get_param: ContrailAuth}
contrail::auth_host: {get_param: [EndpointMap, KeystoneAdmin, host] }
contrail::auth_port: {get_param: [EndpointMap, KeystoneAdmin, port] }
contrail::auth_port_public: {get_param: [EndpointMap, KeystonePublic, port] }
contrail::auth_protocol: {get_param: [EndpointMap, KeystonePublic, protocol] }
contrail::api_port: {get_param: ContrailConfigPort }
contrail::disc_server_port: {get_param: ContrailDiscoveryPort }
contrail::insecure: {get_param: ContrailInsecure}
contrail::memcached_server: {get_param: ContrailMemcachedServer}
contrail::rabbit_password: {get_param: RabbitPassword}
contrail::rabbit_user: {get_param: RabbitUserName}
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}

View File

@ -41,6 +41,10 @@ parameters:
description: Ifmap user password
type: string
default: 'api-server'
ContrailConfigPort:
default: 8082
description: Contrail Config Api port
type: number
resources:
ContrailBase:
@ -64,8 +68,8 @@ outputs:
- contrail::config::ifmap_password: {get_param: ContrailConfigIfmapUserPassword}
contrail::config::ifmap_username: {get_param: ContrailConfigIfmapUserName}
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::host_ip: {get_param: [ServiceNetMap, ContrailConfigNetwork] }
contrail::config::host_ip: {get_param: [ServiceNetMap, ContrailConfigNetwork]}
step_config: |
include ::tripleo::network::contrail::config

View File

@ -41,6 +41,10 @@ parameters:
description: sda1/256 hmac key, e.g. echo -n "values" | openssl dgst -sha256 -hmac key -binary | base64
type: string
hidden: true
ContrailControlManageNamed:
description: named config file mgmt
type: string
default: true
resources:
ContrailBase:
@ -64,5 +68,6 @@ outputs:
- contrail::control::asn: {get_param: ContrailControlASN }
contrail::control::host_ip: {get_param: [ServiceNetMap, ContrailControlNetwork]}
contrail::control::rndc_secret: {get_param: ContrailControlRNDCSecret}
contrail::control::manage_named: {get_param: ContrailControlManageNamed}
step_config: |
include ::tripleo::network::contrail::control

View File

@ -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

View File

@ -33,7 +33,7 @@ parameters:
ContrailExtensions:
description: List of OpenContrail extensions to be enabled
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:
ContrailBase:
@ -54,7 +54,7 @@ outputs:
config_settings:
map_merge:
- 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}
step_config: |
include tripleo::network::contrail::neutron_plugin

View File

@ -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

View File

@ -33,15 +33,15 @@ parameters:
NeutronMetadataProxySharedSecret:
description: Metadata Secret
type: string
VrouterPhysicalInterface:
ContrailVrouterPhysicalInterface:
default: 'eth0'
description: vRouter physical interface
type: string
VrouterGateway:
ContrailVrouterGateway:
default: '192.168.24.1'
description: vRouter default gateway
type: string
VrouterNetmask:
ContrailVrouterNetmask:
default: '255.255.255.0'
description: vRouter netmask
type: string
@ -65,10 +65,10 @@ outputs:
config_settings:
map_merge:
- get_attr: [ContrailBase, role_data, config_settings]
- contrail::vrouter::host_ip: {get_param: [ServiceNetMap, NeutronCorePluginOpencontrailNetwork]}
contrail::vrouter::physical_interface: {get_param: VrouterPhysicalInterface}
contrail::vrouter::gateway: {get_param: VrouterGateway}
contrail::vrouter::netmask: {get_param: VrouterNetmask}
- contrail::vrouter::host_ip: {get_param: [ServiceNetMap, ContrailVrouterNetwork]}
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}
contrail::vrouter::is_tsn: 'true'
tripleo.neutron_compute_plugin_opencontrail.firewall_rules:

View File

@ -46,6 +46,10 @@ parameters:
default: '255.255.255.0'
description: vRouter netmask
type: string
ContrailVrouterControlNodeIps:
description: List of Contrail Node IPs
type: comma_delimited_list
default: ''
resources:
ContrailBase:
@ -66,14 +70,16 @@ outputs:
config_settings:
map_merge:
- 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::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':
contrail::vrouter::control_node_ips: {get_param: ContrailVrouterControlNodeIps}
tripleo.contrail_vrouter.firewall_rules:
'111 contrail_vrouter_8085':
dport: 8085
'112 contrail_vrouter_8097':
dport: 8097
proto: tcp
step_config: |
include ::tripleo::network::contrail::vrouter

View File

@ -33,6 +33,14 @@ parameters:
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
ContrailWebuiHttp:
default: 8080
description: Contrail Webui http port
type: number
ContrailWebuiHttps:
default: 8143
description: Contrail Webui https port
type: number
resources:
ContrailBase:
@ -53,8 +61,8 @@ outputs:
config_settings:
map_merge:
- get_attr: [ContrailBase, role_data, config_settings]
- contrail::webui::http_port: {get_param: [EndpointMap, ContrailWebuiHttpInternal, port] }
contrail::webui::https_port: {get_param: [EndpointMap, ContrailWebuiHttpsInternal, port] }
- contrail::webui::http_port: {get_param: ContrailWebuiHttp }
contrail::webui::https_port: {get_param: ContrailWebuiHttps }
contrail::webui::redis_ip: '127.0.0.1'
step_config: |
include ::tripleo::network::contrail::webui

View File

@ -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.