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
37
environments/contrail/contrail-net-storage-mgmt.yaml
Normal file
37
environments/contrail/contrail-net-storage-mgmt.yaml
Normal 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
|
@ -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'
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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'}
|
||||
|
@ -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'}
|
||||
|
@ -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'}
|
||||
|
@ -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'}
|
||||
|
@ -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'}
|
||||
|
@ -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'}
|
||||
|
43
extraconfig/all_nodes/contrail/enable_contrail_repo.yaml
Normal file
43
extraconfig/all_nodes/contrail/enable_contrail_repo.yaml
Normal 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}
|
162
extraconfig/pre_network/contrail/compute_pre_network.yaml
Normal file
162
extraconfig/pre_network/contrail/compute_pre_network.yaml
Normal 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
|
168
extraconfig/pre_network/contrail/contrail_dpdk_pre_network.yaml
Normal file
168
extraconfig/pre_network/contrail/contrail_dpdk_pre_network.yaml
Normal 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
|
@ -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}
|
164
network/config/contrail/contrail-nic-config.yaml
Normal file
164
network/config/contrail/contrail-nic-config.yaml
Normal 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
|
@ -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
@ -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
|
||||
|
@ -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}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
82
puppet/services/network/contrail-dpdk.yaml
Normal file
82
puppet/services/network/contrail-dpdk.yaml
Normal 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
|
@ -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
|
||||
|
@ -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:
|
||||
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:
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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…
x
Reference in New Issue
Block a user