update nfv-vim puppet runtime manifests and config files

nfvi would raise openstack alarms/logs to the fm in pods,
when it is availiable. following configure changes are
required:
1. add "fault_mgmt_plugin_disabled" para in vim config
file. Set it "True" when openstack application is not
implement, and "False" when it is.

2. add "fault_mgmt_endpoint_disabled" para in alarm
and event_log config file. rules are the same with
"fault_mgmt_plugin_disabled"

3. add "openstack" and "fm" info to alarms and event_logs
config file

Story: 2004008
Task: 30954
Depends-On: https://review.opendev.org/#/c/661548/
Change-Id: Iee2a4515336f4ce9b6373d56d4f7a5779664233d
Signed-off-by: SidneyAn <ran1.an@intel.com>
This commit is contained in:
SidneyAn 2019-05-14 14:39:08 +08:00 committed by Sun Austin
parent a974b35ce4
commit 4f406285e4
5 changed files with 201 additions and 154 deletions

View File

@ -35,6 +35,8 @@ class platform::nfv {
include ::nfv include ::nfv
include ::nfv::vim include ::nfv::vim
include ::nfv::nfvi include ::nfv::nfvi
include ::nfv::alarm
include ::nfv::event_log
} }

View File

@ -7,6 +7,19 @@
class nfv::alarm ( class nfv::alarm (
$enabled = false, $enabled = false,
$storage_file = '/var/log/nfv-vim-alarms.log', $storage_file = '/var/log/nfv-vim-alarms.log',
$openstack_username = 'admin',
$openstack_tenant = 'admin',
$openstack_user_domain = 'Default',
$openstack_project_domain = 'Default',
$openstack_auth_protocol = 'http',
$openstack_auth_host = '127.0.0.1',
$openstack_auth_port = 5000,
$openstack_keyring_service = undef,
$fault_mgmt_region_name = 'RegionOne',
$fault_mgmt_service_name = 'fm',
$fault_mgmt_service_type = 'faultmanagement',
$fault_mgmt_endpoint_type = 'admin',
$fault_mgmt_endpoint_disabled = false,
) { ) {
include nfv::params include nfv::params
@ -14,6 +27,23 @@ class nfv::alarm (
nfv_plugin_alarm_config { nfv_plugin_alarm_config {
# File-Storage Information # File-Storage Information
'File-Storage/file': value => $storage_file; 'File-Storage/file': value => $storage_file;
# OpenStack Authentication Information
'openstack/username': value => $openstack_username;
'openstack/tenant': value => $openstack_tenant;
'openstack/user_domain_name': value => $openstack_user_domain;
'openstack/project_domain_name': value => $openstack_project_domain;
'openstack/authorization_protocol': value => $openstack_auth_protocol;
'openstack/authorization_ip': value => $openstack_auth_host;
'openstack/authorization_port': value => $openstack_auth_port;
'openstack/keyring_service': value => $openstack_keyring_service;
# Fault Management Information
'fm/region_name': value => $fault_mgmt_region_name;
'fm/service_name': value => $fault_mgmt_service_name;
'fm/service_type': value => $fault_mgmt_service_type;
'fm/endpoint_type': value => $fault_mgmt_endpoint_type;
'fm/endpoint_disabled': value => $fault_mgmt_endpoint_disabled;
} }
if $enabled { if $enabled {

View File

@ -7,6 +7,19 @@
class nfv::event_log ( class nfv::event_log (
$enabled = false, $enabled = false,
$storage_file = '/var/log/nfv-vim-events.log', $storage_file = '/var/log/nfv-vim-events.log',
$openstack_username = 'admin',
$openstack_tenant = 'admin',
$openstack_user_domain = 'Default',
$openstack_project_domain = 'Default',
$openstack_auth_protocol = 'http',
$openstack_auth_host = '127.0.0.1',
$openstack_auth_port = 5000,
$openstack_keyring_service = undef,
$fault_mgmt_region_name = 'RegionOne',
$fault_mgmt_service_name = 'fm',
$fault_mgmt_service_type = 'faultmanagement',
$fault_mgmt_endpoint_type = 'admin',
$fault_mgmt_endpoint_disabled = false,
) { ) {
include nfv::params include nfv::params
@ -14,6 +27,23 @@ class nfv::event_log (
nfv_plugin_event_log_config { nfv_plugin_event_log_config {
# File-Storage Information # File-Storage Information
'File-Storage/file': value => $storage_file; 'File-Storage/file': value => $storage_file;
# OpenStack Authentication Information
'openstack/username': value => $openstack_username;
'openstack/tenant': value => $openstack_tenant;
'openstack/user_domain_name': value => $openstack_user_domain;
'openstack/project_domain_name': value => $openstack_project_domain;
'openstack/authorization_protocol': value => $openstack_auth_protocol;
'openstack/authorization_ip': value => $openstack_auth_host;
'openstack/authorization_port': value => $openstack_auth_port;
'openstack/keyring_service': value => $openstack_keyring_service;
# Fault Management Information
'fm/region_name': value => $fault_mgmt_region_name;
'fm/service_name': value => $fault_mgmt_service_name;
'fm/service_type': value => $fault_mgmt_service_type;
'fm/endpoint_type': value => $fault_mgmt_endpoint_type;
'fm/endpoint_disabled': value => $fault_mgmt_endpoint_disabled;
} }
if $enabled { if $enabled {

View File

@ -25,6 +25,7 @@ class nfv::vim (
$compute_plugin_disabled = false, $compute_plugin_disabled = false,
$network_plugin_disabled = false, $network_plugin_disabled = false,
$guest_plugin_disabled = false, $guest_plugin_disabled = false,
$fault_mgmt_plugin_disabled = false,
$vim_rpc_ip = '127.0.0.1', $vim_rpc_ip = '127.0.0.1',
$vim_rpc_port = 4343, $vim_rpc_port = 4343,
$vim_api_ip = '0.0.0.0', $vim_api_ip = '0.0.0.0',
@ -70,6 +71,7 @@ class nfv::vim (
'nfvi/compute_plugin_disabled': value => $compute_plugin_disabled; 'nfvi/compute_plugin_disabled': value => $compute_plugin_disabled;
'nfvi/network_plugin_disabled': value => $network_plugin_disabled; 'nfvi/network_plugin_disabled': value => $network_plugin_disabled;
'nfvi/guest_plugin_disabled': value => $guest_plugin_disabled; 'nfvi/guest_plugin_disabled': value => $guest_plugin_disabled;
'nfvi/fault_mgmt_plugin_disabled': value => $fault_mgmt_plugin_disabled;
# INSTANCE CONFIGURATION # INSTANCE CONFIGURATION
'instance-configuration/max_live_migrate_wait_in_secs': value => $instance_max_live_migrate_wait_in_secs; 'instance-configuration/max_live_migrate_wait_in_secs': value => $instance_max_live_migrate_wait_in_secs;

View File

@ -83,145 +83,140 @@ class NfvPuppet(openstack.OpenstackBasePuppet):
self._to_create_services(), self._to_create_services(),
} }
if self._kubernetes_enabled(): if utils.is_openstack_applied(self.dbapi):
if utils.is_openstack_applied(self.dbapi): helm_data = helm.HelmOperatorData(self.dbapi)
helm_data = helm.HelmOperatorData(self.dbapi)
# The openstack services are authenticated with pod based # The openstack services are authenticated with pod based
# keystone. # keystone.
keystone_auth_data = helm_data.get_keystone_auth_data() keystone_auth_data = helm_data.get_keystone_auth_data()
openstack_auth_config = { openstack_auth_config = {
'nfv::nfvi::openstack_username': 'nfv::nfvi::openstack_username':
keystone_auth_data['admin_user_name'], keystone_auth_data['admin_user_name'],
'nfv::nfvi::openstack_tenant': 'nfv::nfvi::openstack_tenant':
keystone_auth_data['admin_project_name'], keystone_auth_data['admin_project_name'],
'nfv::nfvi::openstack_auth_host': 'nfv::nfvi::openstack_auth_host':
keystone_auth_data['auth_host'], keystone_auth_data['auth_host'],
'nfv::nfvi::openstack_user_domain': 'nfv::nfvi::openstack_user_domain':
keystone_auth_data['admin_user_domain'], keystone_auth_data['admin_user_domain'],
'nfv::nfvi::openstack_project_domain': 'nfv::nfvi::openstack_project_domain':
keystone_auth_data['admin_project_domain'], keystone_auth_data['admin_project_domain'],
'nfv::nfvi::openstack_keyring_service': 'nfv::nfvi::openstack_keyring_service':
self.PLATFORM_KEYRING_SERVICE, self.PLATFORM_KEYRING_SERVICE,
}
config.update(openstack_auth_config)
# Nova is running in a pod 'nfv::alarm::openstack_username':
nova_endpoint_data = helm_data.get_nova_endpoint_data() keystone_auth_data['admin_user_name'],
nova_config = { 'nfv::alarm::openstack_tenant':
'nfv::nfvi::nova_endpoint_override': keystone_auth_data['admin_project_name'],
nova_endpoint_data['endpoint_override'], 'nfv::alarm::openstack_auth_host':
'nfv::nfvi::nova_region_name': keystone_auth_data['auth_host'],
nova_endpoint_data['region_name'], 'nfv::alarm::openstack_user_domain':
} keystone_auth_data['admin_user_domain'],
config.update(nova_config) 'nfv::alarm::openstack_project_domain':
keystone_auth_data['admin_project_domain'],
'nfv::alarm::openstack_keyring_service':
self.PLATFORM_KEYRING_SERVICE,
# Cinder is running in a pod 'nfv::event_log::openstack_username':
cinder_endpoint_data = helm_data.get_cinder_endpoint_data() keystone_auth_data['admin_user_name'],
cinder_config = { 'nfv::event_log::openstack_tenant':
'nfv::nfvi::cinder_region_name': keystone_auth_data['admin_project_name'],
cinder_endpoint_data['region_name'], 'nfv::event_log::openstack_auth_host':
'nfv::nfvi::cinder_service_name': keystone_auth_data['auth_host'],
cinder_endpoint_data['service_name'], 'nfv::event_log::openstack_user_domain':
'nfv::nfvi::cinder_service_type': keystone_auth_data['admin_user_domain'],
cinder_endpoint_data['service_type'], 'nfv::event_log::openstack_project_domain':
} keystone_auth_data['admin_project_domain'],
config.update(cinder_config) 'nfv::event_log::openstack_keyring_service':
self.PLATFORM_KEYRING_SERVICE,
}
config.update(openstack_auth_config)
# Glance is running in a pod # Nova is running in a pod
glance_endpoint_data = helm_data.get_glance_endpoint_data() nova_endpoint_data = helm_data.get_nova_endpoint_data()
glance_config = { nova_config = {
'nfv::nfvi::glance_region_name': 'nfv::nfvi::nova_endpoint_override':
glance_endpoint_data['region_name'], nova_endpoint_data['endpoint_override'],
'nfv::nfvi::glance_service_name': 'nfv::nfvi::nova_region_name':
glance_endpoint_data['service_name'], nova_endpoint_data['region_name'],
'nfv::nfvi::glance_service_type': }
glance_endpoint_data['service_type'], config.update(nova_config)
}
config.update(glance_config)
# Neutron is running in a pod # Cinder is running in a pod
neutron_endpoint_data = helm_data.get_neutron_endpoint_data() cinder_endpoint_data = helm_data.get_cinder_endpoint_data()
neutron_config = { cinder_config = {
'nfv::nfvi::neutron_region_name': 'nfv::nfvi::cinder_region_name':
neutron_endpoint_data['region_name'], cinder_endpoint_data['region_name'],
} 'nfv::nfvi::cinder_service_name':
config.update(neutron_config) cinder_endpoint_data['service_name'],
'nfv::nfvi::cinder_service_type':
cinder_endpoint_data['service_type'],
}
config.update(cinder_config)
# Heat is running in a pod # Glance is running in a pod
heat_endpoint_data = helm_data.get_heat_endpoint_data() glance_endpoint_data = helm_data.get_glance_endpoint_data()
heat_config = { glance_config = {
'nfv::nfvi::heat_region_name': 'nfv::nfvi::glance_region_name':
heat_endpoint_data['region_name'], glance_endpoint_data['region_name'],
} 'nfv::nfvi::glance_service_name':
config.update(heat_config) glance_endpoint_data['service_name'],
'nfv::nfvi::glance_service_type':
glance_endpoint_data['service_type'],
}
config.update(glance_config)
# Ceilometer is running in a pod # Neutron is running in a pod
ceilometer_endpoint_data = \ neutron_endpoint_data = helm_data.get_neutron_endpoint_data()
helm_data.get_ceilometer_endpoint_data() neutron_config = {
ceilometer_config = { 'nfv::nfvi::neutron_region_name':
'nfv::nfvi::ceilometer_region_name': neutron_endpoint_data['region_name'],
ceilometer_endpoint_data['region_name'], }
} config.update(neutron_config)
config.update(ceilometer_config)
# The openstack rabbitmq is running in a pod # Heat is running in a pod
nova_oslo_messaging_data = \ heat_endpoint_data = helm_data.get_heat_endpoint_data()
helm_data.get_nova_oslo_messaging_data() heat_config = {
rabbit_config = { 'nfv::nfvi::heat_region_name':
'nfv::nfvi::rabbit_host': heat_endpoint_data['region_name'],
nova_oslo_messaging_data['host'], }
'nfv::nfvi::rabbit_port': config.update(heat_config)
nova_oslo_messaging_data['port'],
'nfv::nfvi::rabbit_virtual_host':
nova_oslo_messaging_data['virt_host'],
'nfv::nfvi::rabbit_userid':
nova_oslo_messaging_data['username'],
'nfv::nfvi::rabbit_password':
nova_oslo_messaging_data['password'],
}
config.update(rabbit_config)
# Listen to nova api proxy on management address # Ceilometer is running in a pod
nova_api_proxy_config = { ceilometer_endpoint_data = \
'nfv::nfvi::compute_rest_api_host': helm_data.get_ceilometer_endpoint_data()
self._get_management_address(), ceilometer_config = {
} 'nfv::nfvi::ceilometer_region_name':
config.update(nova_api_proxy_config) ceilometer_endpoint_data['region_name'],
else: }
# The openstack auth info is still required as the VIM will config.update(ceilometer_config)
# audit some keystone entities (e.g. tenants). Point it to
# the platform keystone.
openstack_auth_config = {
'nfv::nfvi::openstack_username':
self._operator.keystone.get_admin_user_name(),
'nfv::nfvi::openstack_tenant':
self._operator.keystone.get_admin_project_name(),
'nfv::nfvi::openstack_auth_host':
self._keystone_auth_address(),
'nfv::nfvi::openstack_user_domain':
self._operator.keystone.get_admin_user_domain(),
'nfv::nfvi::openstack_project_domain':
self._operator.keystone.get_admin_project_domain(),
'nfv::nfvi::openstack_keyring_service':
self.PLATFORM_KEYRING_SERVICE,
}
config.update(openstack_auth_config)
vim_disabled = { # The openstack rabbitmq is running in a pod
# Disable VIM plugins for resources not yet active. nova_oslo_messaging_data = \
'nfv::vim::block_storage_plugin_disabled': True, helm_data.get_nova_oslo_messaging_data()
'nfv::vim::compute_plugin_disabled': True, rabbit_config = {
'nfv::vim::network_plugin_disabled': True, 'nfv::nfvi::rabbit_host':
'nfv::vim::image_plugin_disabled': True, nova_oslo_messaging_data['host'],
'nfv::vim::guest_plugin_disabled': True, 'nfv::nfvi::rabbit_port':
'nfv::nfvi::nova_endpoint_disabled': True, nova_oslo_messaging_data['port'],
'nfv::nfvi::neutron_endpoint_disabled': True, 'nfv::nfvi::rabbit_virtual_host':
'nfv::nfvi::cinder_endpoint_disabled': True, nova_oslo_messaging_data['virt_host'],
} 'nfv::nfvi::rabbit_userid':
config.update(vim_disabled) nova_oslo_messaging_data['username'],
'nfv::nfvi::rabbit_password':
nova_oslo_messaging_data['password'],
}
config.update(rabbit_config)
# Listen to nova api proxy on management address
nova_api_proxy_config = {
'nfv::nfvi::compute_rest_api_host':
self._get_management_address(),
}
config.update(nova_api_proxy_config)
else: else:
# The openstack services are authenticated with platform keystone. # The openstack auth info is still required as the VIM will
# audit some keystone entities (e.g. tenants). Point it to
# the platform keystone.
openstack_auth_config = { openstack_auth_config = {
'nfv::nfvi::openstack_username': 'nfv::nfvi::openstack_username':
self._operator.keystone.get_admin_user_name(), self._operator.keystone.get_admin_user_name(),
@ -238,33 +233,21 @@ class NfvPuppet(openstack.OpenstackBasePuppet):
} }
config.update(openstack_auth_config) config.update(openstack_auth_config)
openstack_config = { vim_disabled = {
'nfv::nfvi::nova_endpoint_override': # Disable VIM plugins for resources not yet active.
self._get_nova_endpoint_url(), 'nfv::vim::block_storage_plugin_disabled': True,
'nfv::nfvi::nova_region_name': 'nfv::vim::compute_plugin_disabled': True,
self._operator.nova.get_region_name(), 'nfv::vim::network_plugin_disabled': True,
'nfv::nfvi::cinder_region_name': 'nfv::vim::image_plugin_disabled': True,
self._operator.cinder.get_region_name(), 'nfv::vim::guest_plugin_disabled': True,
'nfv::nfvi::cinder_service_name': 'nfv::vim::fault_mgmt_plugin_disabled': True,
self._operator.cinder.get_service_name_v2(), 'nfv::nfvi::nova_endpoint_disabled': True,
'nfv::nfvi::cinder_service_type': 'nfv::nfvi::neutron_endpoint_disabled': True,
self._operator.cinder.get_service_type_v2(), 'nfv::nfvi::cinder_endpoint_disabled': True,
'nfv::nfvi::cinder_endpoint_disabled': 'nfv::alarm::fault_mgmt_endpoint_disabled': True,
not self._operator.cinder.is_service_enabled(), 'nfv::event_log::fault_mgmt_endpoint_disabled': True,
'nfv::nfvi::glance_region_name':
self._operator.glance.get_region_name(),
'nfv::nfvi::glance_service_name':
self._operator.glance.get_service_name(),
'nfv::nfvi::glance_service_type':
self._operator.glance.get_service_type(),
'nfv::nfvi::neutron_region_name':
self._operator.neutron.get_region_name(),
'nfv::nfvi::heat_region_name':
self._operator.heat.get_region_name(),
'nfv::nfvi::ceilometer_region_name':
self._operator.ceilometer.get_region_name(),
} }
config.update(openstack_config) config.update(vim_disabled)
return config return config