Add OVN Metadata service support to Packstack

Previously, Packstack wasn't deploying metadata service for OVN as
it didn't exist before Queens.
This patch is adding support to this service on compute nodes and
disabling config_drive.

Depends-On: I278ad5521c9529e5bd71f712c44c6a69f485d1b6
Change-Id: I6e169dea7b4a9d0d64bd61a226641b591eaf1da5
Co-Authored-By: Miguel Angel Ajo <majopela@redhat.com>
Co-Authored-By: Alfredo Moralejo <amoralej@redhat.com>
Co-Authored-By: Javier Peña <jpena@redhat.com>
This commit is contained in:
Daniel Alvarez 2018-04-19 10:27:06 +02:00 committed by Alfredo Moralejo
parent 2aef0edad8
commit 7ade23e0b3
5 changed files with 22 additions and 24 deletions

View File

@ -26,6 +26,7 @@ class packstack::neutron::ml2 ()
class {'::neutron::plugins::ml2::ovn':
ovn_nb_connection => "tcp:${hiera('CONFIG_CONTROLLER_HOST')}:6641",
ovn_sb_connection => "tcp:${hiera('CONFIG_CONTROLLER_HOST')}:6642",
ovn_metadata_enabled => true,
}
}

View File

@ -0,0 +1,13 @@
class packstack::neutron::ovn_metadata ()
{
$ovn_southd = "tcp:${hiera('CONFIG_CONTROLLER_HOST')}:6642"
class { '::neutron::agents::ovn_metadata':
ovn_sb_connection => $ovn_southd,
shared_secret => hiera('CONFIG_NEUTRON_METADATA_PW'),
metadata_ip => force_ip(hiera('CONFIG_KEYSTONE_HOST_URL')),
debug => hiera('CONFIG_DEBUG_MODE'),
metadata_workers => hiera('CONFIG_SERVICE_WORKERS'),
}
Service<| title == 'controller' |> -> Service<| title == 'ovn-metadata' |>
}

View File

@ -21,7 +21,7 @@ class packstack::nova::compute ()
group => root,
require => Package['openstack-nova-migration'],
}
$key_type = hiera('NOVA_MIGRATION_KEY_TYPE')
$key_content = hiera('NOVA_MIGRATION_KEY_PUBLIC')
@ -72,13 +72,6 @@ class packstack::nova::compute ()
$instance_usage_audit_period = 'month'
}
# OVN neutron plugin doesn't support metadata
if hiera('CONFIG_NEUTRON_L2_AGENT') == 'ovn' {
$force_config_drive = true
} else {
$force_config_drive = false
}
class { '::nova::compute':
enabled => true,
vncproxy_host => hiera('CONFIG_KEYSTONE_HOST_URL'),
@ -87,7 +80,7 @@ class packstack::nova::compute ()
instance_usage_audit => $instance_usage_audit,
instance_usage_audit_period => $instance_usage_audit_period,
allow_resize_to_same_host => hiera('CONFIG_NOVA_ALLOW_RESIZE_TO_SAME'),
force_config_drive => $force_config_drive
force_config_drive => false,
}
class { '::nova::placement':

View File

@ -96,23 +96,12 @@ class packstack::provision::tempest ()
$swift_available = str2bool(hiera('CONFIG_SWIFT_INSTALL'))
$configure_tempest = str2bool(hiera('CONFIG_PROVISION_TEMPEST'))
# Metadata service is not supported with OVN plugin
# Some API extensions are not enabled by OVN plugin
# Some API extensions as l3_agent_scheduler are not enabled by OVN plugin
$l2_agent = hiera('CONFIG_NEUTRON_L2_AGENT')
if $l2_agent == 'ovn' {
$neutron_api_extensions = 'ext-gw-mode,binding,agent,dhcp_agent_scheduler,external-net,quotas,provider,extraroute,router,extra_dhcp_opt,allowed-address-pairs,security-group'
# In last cirros version 0.3.5 there is an issue to use metadata from configdrive which make tempest to fail validation in some jobs. This is fixed in master
# but until a new version of cirros is published we have to disable run_validations. Note that connectivity validation is alwasys done by tempest even with
# run_ssh to false, but it doesn't do additional validation.
$run_ssh = false
tempest_config { 'compute-feature-enabled/metadata_service':
value => 'False',
path => "${tempest_workspace}/etc/tempest.conf",
}
$neutron_api_extensions = 'ext-gw-mode,binding,agent,dhcp_agent_scheduler,external-net,quotas,provider,extraroute,router,extra_dhcp_opt,allowed-address-pairs,security-group,trunk'
} else {
$neutron_api_extensions = undef
# clients should be able to ssh to instances
$run_ssh = true
}
class { '::tempest':
@ -141,7 +130,7 @@ class packstack::provision::tempest ()
image_name_alt => $image_name_alt,
image_name => $uec_image_name,
image_ssh_user => $image_ssh_user,
run_ssh => $run_ssh,
run_ssh => true,
log_file => $log_file,
neutron_available => $neutron_available,
nova_available => $nova_available,

View File

@ -48,7 +48,9 @@ if hiera('CONFIG_NEUTRON_INSTALL') == 'y' {
case hiera('CONFIG_NEUTRON_L2_AGENT') {
'openvswitch': { include '::packstack::neutron::ovs_agent' }
'linuxbridge': { include '::packstack::neutron::lb_agent' }
'ovn': { include '::packstack::neutron::ovn_agent' }
'ovn': { include '::packstack::neutron::ovn_agent'
include '::packstack::neutron::ovn_metadata'
}
default: { include '::packstack::neutron::ovs_agent' }
}
include '::packstack::neutron::bridge'