Add VPP composable service

Vector Packet Processing (VPP) is a high performance packet processing
stack that runs in user space in Linux. VPP is used as an alternative to
kernel networking stack for accelerated network data path. This patch
adds VPP as a composable service. Note that NIC binding related configs
for VPP are handled in os-net-config.

Depends-on: I70a68a204a8b9d533fc2fa4fc33c39c3b1c366bf

Change-Id: I5e4b1903dc87cb16259eeb05db585678acadbc6b
Implements: blueprint fdio-integration-tripleo
This commit is contained in:
Feng Pan 2017-01-31 15:04:13 -05:00
parent 3ebe390a38
commit 0ea941a615
5 changed files with 66 additions and 0 deletions

View File

@ -0,0 +1,9 @@
resource_registry:
OS::TripleO::Services::Vpp: ../../puppet/services/vpp.yaml
#parameter_defaults:
#VPP main thread core pinning
#VppCpuMainCore: '1'
#List of cores for VPP worker thread pinning
#VppCpuCorelistWorkers: ['3','4']

View File

@ -248,6 +248,7 @@ resource_registry:
OS::TripleO::Services::OctaviaHousekeeping: OS::Heat::None
OS::TripleO::Services::OctaviaWorker: OS::Heat::None
OS::TripleO::Services::MySQLClient: puppet/services/database/mysql-client.yaml
OS::TripleO::Services::Vpp: OS::Heat::None
parameter_defaults:
EnablePackageInstall: false

47
puppet/services/vpp.yaml Normal file
View File

@ -0,0 +1,47 @@
heat_template_version: ocata
description: >
Vpp service configured with Puppet
parameters:
ServiceNetMap:
default: {}
description: Mapping of service_name -> network name. Typically set
via parameter_defaults in the resource registry. This
mapping overrides those in ServiceNetMapDefaults.
type: json
DefaultPasswords:
default: {}
type: json
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
VppCpuMainCore:
default: ''
description: VPP main thread core pinning.
type: string
VppCpuCorelistWorkers:
default: ''
description: List of cores for VPP worker thread pinning
type: string
MonitoringSubscriptionVpp:
default: 'overcloud-vpp'
type: string
outputs:
role_data:
description: Role data for the Vpp role.
value:
service_name: vpp
monitoring_subscription: {get_param: MonitoringSubscriptionVpp}
config_settings:
fdio::vpp_cpu_main_core: {get_param: VppCpuMainCore}
fdio::vpp_cpu_corelist_workers: {get_param: VppCpuCorelistWorkers}
step_config: |
include ::tripleo::profile::base::vpp
upgrade_tasks:
- name: Stop vpp service
tags: step2
service: name=vpp state=stopped

View File

@ -0,0 +1,6 @@
---
features:
- Add the ability to deploy VPP. Vector Packet Processing (VPP) is a high
performance packet processing stack that runs in user space in Linux.
VPP is used as an alternative to kernel networking stack for
accelerated network data path.

View File

@ -125,6 +125,7 @@
- OS::TripleO::Services::OctaviaHealthManager
- OS::TripleO::Services::OctaviaHousekeeping
- OS::TripleO::Services::OctaviaWorker
- OS::TripleO::Services::Vpp
- name: Compute
CountDefault: 1
@ -154,6 +155,8 @@
- OS::TripleO::Services::FluentdClient
- OS::TripleO::Services::AuditD
- OS::TripleO::Services::Collectd
- OS::TripleO::Services::Vpp
- name: BlockStorage
ServicesDefault: