Implement Pci Interrupt Affinity Agent

Create an agent which runs on each worker node to do pci interrupt
affinity work.
In this patch, it will add related puppet file to get configurations
from helm data.

Below test done and pass, see detailed test spec in story link.
1) deployment test with/without openstack application
2) Periodic audit pci irq affinity
3) Remove VM without sriov pci port
4) Remove VM with sriov pci port
5) Add VM without sriov pci port
6) Add VM with sriov pci port
7) Add VM without pci_irq_affinity_mask
8) Add VM without cpu policy set
9) VM resize test
10) Remove one pci port for VM
11) config file apply

Story: 2004600
Task: 28850

Change-Id: I798180800284feea4a694ff7c20b12dd24dda958
Signed-off-by: zhipengl <zhipengs.liu@intel.com>
This commit is contained in:
zhipengl 2019-04-23 01:43:55 +08:00 committed by zhipeng liu
parent ab5f872c17
commit 855d783691
3 changed files with 71 additions and 0 deletions

View File

@ -37,6 +37,7 @@ include ::platform::multipath
include ::platform::client
include ::platform::ceph::worker
include ::platform::worker::storage
include ::platform::pciirqaffinity
class { '::platform::config::worker::post':
stage => post,

View File

@ -0,0 +1,44 @@
#
# Copyright (c) 2019 StarlingX.
#
# SPDX-License-Identifier: Apache-2.0
#
class platform::pciirqaffinity::params (
$openstack_enabled,
$openstack_auth_host,
$openstack_user_domain,
$openstack_project_domain,
$openstack_keyring_service,
$rabbit_host,
$rabbit_port,
$rabbit_userid,
$rabbit_password,
$rabbit_virtual_host,
) {}
class platform::pciirqaffinity
inherits ::platform::pciirqaffinity::params {
file { '/etc/pci_irq_affinity/config.ini':
ensure => 'present',
replace => true,
content => template('platform/pci-irq-affinity.conf.erb'),
}
}
class platform::pciirqaffinity::reload {
exec {'restart-pciirqaffinity-service':
command => 'systemctl restart pci-irq-affinity-agent.service',
}
}
class platform::pciirqaffinity::runtime {
include ::platform::pciirqaffinity
class {'::platform::pciirqaffinity::reload':
stage => post
}
}

View File

@ -0,0 +1,26 @@
#
# Copyright (c) 2019 StarlingX.
#
# SPDX-License-Identifier: Apache-2.0
#
[openstack]
openstack_enabled=<%= @openstack_enabled %>
<% if @openstack_enabled -%>
username=admin
tenant=admin
authorization_protocol=http
authorization_ip=<%= @openstack_auth_host %>
authorization_port=5000
user_domain_name=<%= @openstack_user_domain %>
project_domain_name=<%= @openstack_project_domain %>
project_name=admin
keyring_service=<%= @openstack_keyring_service %>
auth_url=http://keystone.openstack.svc.cluster.local/v3
[amqp]
host=<%= @rabbit_host %>
port=<%= @rabbit_port %>
user_id=<%= @rabbit_userid %>
password=<%= @rabbit_password %>
virt_host=<%= @rabbit_virtual_host %>
<% end -%>