Fix the bug with custom hostname
There is the task openstack-network-plugins-l2 that works unwell with environments with custom hostnames. The root of problem is incorrect detection of neutron nodes. Unfortuantely it happens in core task and for fixing that task should be replaced. Change-Id: I663960befa4cfa82348b231728722d774482fb4e Closes-bug: #1590403
This commit is contained in:
parent
e0f03b5262
commit
8e25a8579d
|
@ -0,0 +1,6 @@
|
|||
notice('MODULAR: fuel-plugin-vmware-dvs/plugins/ml2.pp')
|
||||
|
||||
class neutron {}
|
||||
class { 'neutron' :}
|
||||
|
||||
class {'::vmware_dvs::l2': }
|
|
@ -0,0 +1,183 @@
|
|||
class vmware_dvs::l2 {
|
||||
|
||||
$use_neutron = hiera('use_neutron', false)
|
||||
|
||||
if $use_neutron {
|
||||
# override neutron options
|
||||
$override_configuration = hiera_hash('configuration', {})
|
||||
override_resources { 'neutron_agent_ovs':
|
||||
data => $override_configuration['neutron_agent_ovs']
|
||||
} ~> Service['neutron-ovs-agent-service']
|
||||
}
|
||||
|
||||
if $use_neutron {
|
||||
include ::neutron::params
|
||||
|
||||
$node_name = hiera('node_name')
|
||||
$neutron_primary_controller_roles = hiera('neutron_primary_controller_roles', ['primary-controller'])
|
||||
$neutron_compute_roles = hiera('neutron_compute_nodes', ['compute'])
|
||||
$primary_controller = roles_include($neutron_primary_controller_roles)
|
||||
$compute = roles_include($neutron_compute_roles)
|
||||
|
||||
$neutron_config = hiera_hash('neutron_config')
|
||||
$neutron_server_enable = pick($neutron_config['neutron_server_enable'], true)
|
||||
$neutron_nodes = hiera_hash('neutron_nodes')
|
||||
|
||||
$dpdk_config = hiera_hash('dpdk', {})
|
||||
$enable_dpdk = pick($dpdk_config['enabled'], false)
|
||||
|
||||
$management_vip = hiera('management_vip')
|
||||
$service_endpoint = hiera('service_endpoint', $management_vip)
|
||||
$ssl_hash = hiera_hash('use_ssl', {})
|
||||
$internal_auth_protocol = get_ssl_property($ssl_hash, {}, 'keystone', 'internal', 'protocol', 'http')
|
||||
$internal_auth_address = get_ssl_property($ssl_hash, {}, 'keystone', 'internal', 'hostname', [$service_endpoint])
|
||||
|
||||
$auth_api_version = 'v2.0'
|
||||
$identity_uri = "${internal_auth_protocol}://${internal_auth_address}:5000"
|
||||
$auth_url = "${identity_uri}/${auth_api_version}"
|
||||
$auth_password = $neutron_config['keystone']['admin_password']
|
||||
$auth_user = pick($neutron_config['keystone']['admin_user'], 'neutron')
|
||||
$auth_tenant = pick($neutron_config['keystone']['admin_tenant'], 'services')
|
||||
$auth_region = hiera('region', 'RegionOne')
|
||||
$auth_endpoint_type = 'internalURL'
|
||||
|
||||
$network_scheme = hiera_hash('network_scheme', {})
|
||||
prepare_network_config($network_scheme)
|
||||
|
||||
$neutron_advanced_config = hiera_hash('neutron_advanced_configuration', { })
|
||||
$l2_population = try_get_value($neutron_advanced_config, 'neutron_l2_pop', false)
|
||||
$dvr = try_get_value($neutron_advanced_config, 'neutron_dvr', false)
|
||||
$enable_qos = pick($neutron_advanced_config['neutron_qos'], false)
|
||||
$segmentation_type = try_get_value($neutron_config, 'L2/segmentation_type')
|
||||
|
||||
if $compute and ! $dvr {
|
||||
$do_floating = false
|
||||
} else {
|
||||
$do_floating = true
|
||||
}
|
||||
|
||||
if $enable_qos {
|
||||
$extensions = ['qos']
|
||||
} else {
|
||||
$extensions = undef
|
||||
}
|
||||
|
||||
$bridge_mappings = generate_bridge_mappings($neutron_config, $network_scheme, {
|
||||
'do_floating' => $do_floating,
|
||||
'do_tenant' => true,
|
||||
'do_provider' => false
|
||||
})
|
||||
|
||||
if $segmentation_type == 'vlan' {
|
||||
$net_role_property = 'neutron/private'
|
||||
$iface = get_network_role_property($net_role_property, 'phys_dev')
|
||||
$enable_tunneling = false
|
||||
$network_type = 'vlan'
|
||||
$tunnel_types = []
|
||||
} else {
|
||||
$net_role_property = 'neutron/mesh'
|
||||
$tunneling_ip = get_network_role_property($net_role_property, 'ipaddr')
|
||||
$iface = get_network_role_property($net_role_property, 'phys_dev')
|
||||
$physical_net_mtu = pick(get_transformation_property('mtu', $iface[0]), '1500')
|
||||
|
||||
if $segmentation_type == 'gre' {
|
||||
$mtu_offset = '42'
|
||||
$network_type = 'gre'
|
||||
} else {
|
||||
# vxlan is the default segmentation type for non-vlan cases
|
||||
$mtu_offset = '50'
|
||||
$network_type = 'vxlan'
|
||||
}
|
||||
$tunnel_types = [$network_type]
|
||||
|
||||
$enable_tunneling = true
|
||||
}
|
||||
|
||||
if $enable_dpdk and $compute {
|
||||
neutron_agent_ovs {
|
||||
'securitygroup/enable_security_group': value => false;
|
||||
}
|
||||
$firewall_driver = 'neutron.agent.firewall.NoopFirewallDriver'
|
||||
$ovs_datapath_type = 'netdev'
|
||||
$ovs_vhostuser_socket_dir = '/var/run/openvswitch'
|
||||
} else {
|
||||
neutron_agent_ovs {
|
||||
'securitygroup/enable_security_group': value => true;
|
||||
}
|
||||
$firewall_driver = 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver'
|
||||
# Leave default values when passed to the class
|
||||
$ovs_datapath_type = undef
|
||||
$ovs_vhostuser_socket_dir = undef
|
||||
}
|
||||
|
||||
Neutron_agent_ovs<||> ~> Service['neutron-ovs-agent-service']
|
||||
|
||||
class { '::neutron::agents::ml2::ovs':
|
||||
bridge_mappings => $bridge_mappings,
|
||||
enable_tunneling => $enable_tunneling,
|
||||
local_ip => $tunneling_ip,
|
||||
tunnel_types => $tunnel_types,
|
||||
enable_distributed_routing => $dvr,
|
||||
l2_population => $l2_population,
|
||||
arp_responder => $l2_population,
|
||||
firewall_driver => $firewall_driver,
|
||||
datapath_type => $ovs_datapath_type,
|
||||
vhostuser_socket_dir => $ovs_vhostuser_socket_dir,
|
||||
extensions => $extensions,
|
||||
manage_vswitch => false,
|
||||
manage_service => true,
|
||||
enabled => true,
|
||||
}
|
||||
|
||||
if str2bool(inline_template('<%= @neutron_nodes.values.keep_if {|h| h["name"] == @node_name}.length > 0%>')) {
|
||||
if $neutron_server_enable {
|
||||
$service_ensure = 'running'
|
||||
} else {
|
||||
$service_ensure = 'stopped'
|
||||
}
|
||||
|
||||
service { 'neutron-server':
|
||||
name => $::neutron::params::server_service,
|
||||
enable => $neutron_server_enable,
|
||||
ensure => $service_ensure,
|
||||
hasstatus => true,
|
||||
hasrestart => true,
|
||||
tag => 'neutron-service',
|
||||
}
|
||||
|
||||
exec { 'waiting-for-neutron-api':
|
||||
environment => [
|
||||
"OS_TENANT_NAME=${auth_tenant}",
|
||||
"OS_USERNAME=${auth_user}",
|
||||
"OS_PASSWORD=${auth_password}",
|
||||
"OS_AUTH_URL=${auth_url}",
|
||||
"OS_REGION_NAME=${auth_region}",
|
||||
"OS_ENDPOINT_TYPE=${auth_endpoint_type}",
|
||||
],
|
||||
path => '/usr/sbin:/usr/bin:/sbin:/bin',
|
||||
tries => '30',
|
||||
try_sleep => '4',
|
||||
command => 'neutron net-list --http-timeout=4 2>&1 > /dev/null',
|
||||
provider => 'shell',
|
||||
subscribe => Service['neutron-server'],
|
||||
refreshonly => true,
|
||||
}
|
||||
|
||||
$ha_agent = try_get_value($neutron_advanced_config, 'l2_agent_ha', true)
|
||||
if $ha_agent {
|
||||
#Exec<| title == 'waiting-for-neutron-api' |> ->
|
||||
class { '::cluster::neutron::ovs' :
|
||||
primary => $primary_controller,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Stub for upstream neutron manifests
|
||||
package { 'neutron':
|
||||
name => 'binutils',
|
||||
ensure => 'installed',
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -1,9 +1,5 @@
|
|||
# PRE_DEPLOYMENT TASKS
|
||||
|
||||
# DEPLYMENT TASKS
|
||||
|
||||
- id: vmware-dvs-override-hiera
|
||||
version: 2.0.0
|
||||
version: 2.1.0
|
||||
role: ['primary-controller','controller', 'compute-vmware']
|
||||
required_for: [openstack-network-server-config, vmware-dvs-network-common-config]
|
||||
requires: [deploy_start]
|
||||
|
@ -14,9 +10,9 @@
|
|||
timeout: 720
|
||||
|
||||
- id: vmware-dvs-setup-neutron-plugin
|
||||
version: 2.0.0
|
||||
version: 2.1.0
|
||||
groups: ['primary-controller','controller', 'compute-vmware']
|
||||
required_for: [primary-openstack-network-plugins-l2,openstack-network-plugins-l2,vmware-dvs-network-plugins-l2]
|
||||
required_for: [primary-openstack-network-plugins-l2,openstack-network-plugins-l2]
|
||||
requires: [openstack-network-common-config, vmware-dvs-network-common-config]
|
||||
type: puppet
|
||||
parameters:
|
||||
|
@ -25,7 +21,7 @@
|
|||
timeout: 720
|
||||
|
||||
- id: vmware-dvs-neutron-agent-install
|
||||
version: 2.0.0
|
||||
version: 2.1.0
|
||||
groups: ['primary-controller','controller','compute-vmware']
|
||||
require_for: [openstack-network-networks]
|
||||
requires: [vmware-dvs-network-common-config]
|
||||
|
@ -36,7 +32,7 @@
|
|||
timeout: 720
|
||||
|
||||
- id: vmware-dvs-compute-vmware
|
||||
version: 2.0.0
|
||||
version: 2.1.0
|
||||
groups: ['compute-vmware']
|
||||
requires: [top-role-compute-vmware]
|
||||
type: puppet
|
||||
|
@ -46,7 +42,7 @@
|
|||
timeout: 720
|
||||
|
||||
- id: vmware-dvs-set-neutron-timeout
|
||||
version: 2.0.0
|
||||
version: 2.1.0
|
||||
groups: ['primary-controller','controller']
|
||||
required_for: [deploy_end]
|
||||
requires: [openstack-network-server-nova]
|
||||
|
@ -59,7 +55,7 @@
|
|||
# Anchor (empty task) for another tasks, say 'tenant network FW setup starting'
|
||||
- id: vmware-dvs-network-start
|
||||
type: skipped
|
||||
version: 2.0.0
|
||||
version: 2.1.0
|
||||
groups: ['primary-controller','controller','compute-vmware']
|
||||
requires: [neutron-keystone, neutron-db, netconfig, openstack-controller, top-role-compute]
|
||||
required_for: [openstack-network-common-config]
|
||||
|
@ -70,7 +66,7 @@
|
|||
|
||||
- id: vmware-dvs-network-common-config
|
||||
type: puppet
|
||||
version: 2.0.0
|
||||
version: 2.1.0
|
||||
groups: ['primary-controller','controller','compute-vmware']
|
||||
required_for: [vmware-dvs-network-end]
|
||||
requires: [vmware-dvs-network-start]
|
||||
|
@ -79,26 +75,47 @@
|
|||
puppet_modules: /etc/puppet/modules
|
||||
timeout: 1800
|
||||
|
||||
- id: vmware-dvs-network-plugins-l2
|
||||
- id: primary-openstack-network-plugins-l2
|
||||
type: puppet
|
||||
version: 2.0.0
|
||||
groups: ['primary-controller','controller','compute-vmware']
|
||||
required_for: [vmware-dvs-network-end]
|
||||
requires: [vmware-dvs-network-common-config, openstack-network-server-config]
|
||||
refresh_on: [neutron_plugin_ml2, neutron_agent_ovs, neutron_config, neutron_api_config]
|
||||
version: 2.1.0
|
||||
groups: [primary-controller]
|
||||
required_for: [openstack-network-end]
|
||||
requires: [openstack-network-start, openstack-network-common-config, openstack-network-server-config]
|
||||
condition:
|
||||
yaql_exp: &network_plugins_l2 >
|
||||
changedAny($.quantum, $.configuration, $.fqdn,
|
||||
$.get('neutron_primary_controller_roles'),
|
||||
$.get('neutron_compute_nodes'), $.quantum_settings, $.public_ssl,
|
||||
$.get('use_ssl'), $.get('region'), $.network_scheme,
|
||||
$.neutron_advanced_configuration)
|
||||
refresh_on: [neutron_agent_ovs]
|
||||
parameters:
|
||||
puppet_manifest: puppet/manifests/vmware-dvs-network-plugins-l2.pp
|
||||
puppet_modules: puppet/modules:/etc/puppet/modules
|
||||
timeout: 1800
|
||||
|
||||
- id: openstack-network-plugins-l2
|
||||
type: puppet
|
||||
version: 2.1.0
|
||||
groups: [controller,compute,compute-vmware]
|
||||
required_for: [openstack-network-end]
|
||||
requires: [openstack-network-start, openstack-network-common-config, openstack-network-server-config]
|
||||
condition:
|
||||
yaql_exp: *network_plugins_l2
|
||||
refresh_on: [neutron_agent_ovs]
|
||||
cross-depends:
|
||||
- name: primary-openstack-network-plugins-l2
|
||||
parameters:
|
||||
puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-network/plugins/ml2.pp
|
||||
puppet_modules: /etc/puppet/modules
|
||||
puppet_manifest: puppet/manifests/vmware-dvs-network-plugins-l2.pp
|
||||
puppet_modules: puppet/modules:/etc/puppet/modules
|
||||
timeout: 1800
|
||||
|
||||
- id: vmware-dvs-network-agents-l3
|
||||
type: puppet
|
||||
version: 2.0.0
|
||||
version: 2.1.0
|
||||
groups: ['primary-controller','controller','compute-vmware']
|
||||
required_for: [vmware-dvs-network-end]
|
||||
requires: [openstack-network-networks, openstack-network-routers, primary-openstack-network-plugins-l2, vmware-dvs-network-plugins-l2]
|
||||
requires: [openstack-network-networks, openstack-network-routers, primary-openstack-network-plugins-l2]
|
||||
refresh_on: [neutron_l3_agent_config]
|
||||
cross-depends:
|
||||
- name: /(primary-)?openstack-network-plugins-l2/
|
||||
|
@ -110,7 +127,7 @@
|
|||
|
||||
- id: vmware-dvs-network-agents-metadata
|
||||
type: puppet
|
||||
version: 2.0.0
|
||||
version: 2.1.0
|
||||
groups: ['primary-controller','controller','compute-vmware']
|
||||
required_for: [vmware-dvs-network-end]
|
||||
requires: [vmware-dvs-network-common-config, openstack-network-server-nova,vmware-dvs-network-agents-l3]
|
||||
|
@ -126,30 +143,7 @@
|
|||
# Anchor (empty task) for another tasks, say 'tenant network FW setup done'
|
||||
- id: vmware-dvs-network-end
|
||||
type: skipped
|
||||
version: 2.0.0
|
||||
version: 2.1.0
|
||||
groups: ['primary-controller','controller','compute-vmware']
|
||||
required_for: [deploy_end]
|
||||
requires: []
|
||||
|
||||
# POST_DEPLOYMENT TASKS
|
||||
#- id: vmware-dvs-property-hypervisor_type
|
||||
# version: 2.0.0
|
||||
# role: ['primary-controller']
|
||||
# required_for: [post_deployment_end]
|
||||
# requires: [disable_keystone_service_token]
|
||||
# type: shell
|
||||
# parameters:
|
||||
# cmd: bash add_hyperv_type.sh 2>&1 | tee -a /tmp/add_hyper_type.log
|
||||
# timeout: 240
|
||||
|
||||
# explicit restart nova-compute #1557980
|
||||
#- id: vmware-dvs-restart-nova-compute
|
||||
# version: 2.0.0
|
||||
# role: [primary-controller, controller, compute-vmware]
|
||||
# requires: [post_deployment_start]
|
||||
# required_for: [post_deployment_end]
|
||||
# type: puppet
|
||||
# parameters:
|
||||
# puppet_manifest: puppet/manifests/restart-nova-compute.pp
|
||||
# puppet_modules: puppet/modules:/etc/puppet/modules
|
||||
# timeout: 720
|
||||
|
|
|
@ -3,7 +3,7 @@ name: fuel-plugin-vmware-dvs
|
|||
# Human-readable name for your plugin
|
||||
title: Neutron VMware DVS ML2 plugin
|
||||
# Plugin version
|
||||
version: '3.0.0'
|
||||
version: '3.0.2'
|
||||
# Description
|
||||
description: Enable to use plugin vmware_dvs for Neutron
|
||||
# Required fuel version
|
||||
|
|
Loading…
Reference in New Issue