aboutsummaryrefslogtreecommitdiffstats
path: root/environments/contrail
diff options
context:
space:
mode:
authorMichael Henkel <mhenkel@juniper.net>2017-06-16 11:02:59 -0700
committerMichael Henkel <mhenkel@juniper.net>2017-07-25 18:24:13 +0200
commitaa5194f878bb0c9fb98891abd6005b1b252eff3e (patch)
treecff5a15d52a123e72c399ec293f29229adf80563 /environments/contrail
parentec25c792d73c4a4b6e14ddfa0ffa385211fa1a29 (diff)
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
Diffstat (limited to 'environments/contrail')
-rw-r--r--environments/contrail/contrail-net-storage-mgmt.yaml37
-rw-r--r--environments/contrail/contrail-net.yaml27
-rw-r--r--environments/contrail/contrail-nic-config-compute.yaml167
-rw-r--r--environments/contrail/contrail-services.yaml27
-rw-r--r--environments/contrail/roles_data_contrail.yaml13
5 files changed, 88 insertions, 183 deletions
diff --git a/environments/contrail/contrail-net-storage-mgmt.yaml b/environments/contrail/contrail-net-storage-mgmt.yaml
new file mode 100644
index 00000000..b382732c
--- /dev/null
+++ b/environments/contrail/contrail-net-storage-mgmt.yaml
@@ -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
diff --git a/environments/contrail/contrail-net.yaml b/environments/contrail/contrail-net.yaml
index cca9beac..a1862c36 100644
--- a/environments/contrail/contrail-net.yaml
+++ b/environments/contrail/contrail-net.yaml
@@ -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'
diff --git a/environments/contrail/contrail-nic-config-compute.yaml b/environments/contrail/contrail-nic-config-compute.yaml
deleted file mode 100644
index a5f0ecab..00000000
--- a/environments/contrail/contrail-nic-config-compute.yaml
+++ /dev/null
@@ -1,167 +0,0 @@
-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
- - type: interface
- name: vhost0
- 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
diff --git a/environments/contrail/contrail-services.yaml b/environments/contrail/contrail-services.yaml
index 80ef9d3a..1cf4bc0a 100644
--- a/environments/contrail/contrail-services.yaml
+++ b/environments/contrail/contrail-services.yaml
@@ -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
diff --git a/environments/contrail/roles_data_contrail.yaml b/environments/contrail/roles_data_contrail.yaml
index e6487685..eae809a5 100644
--- a/environments/contrail/roles_data_contrail.yaml
+++ b/environments/contrail/roles_data_contrail.yaml
@@ -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