Add VPP composable service
authorFeng Pan <fpan@redhat.com>
Tue, 31 Jan 2017 20:04:13 +0000 (15:04 -0500)
committerFeng Pan <fpan@redhat.com>
Sun, 26 Feb 2017 21:43:26 +0000 (16:43 -0500)
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

environments/services/vpp.yaml [new file with mode: 0644]
overcloud-resource-registry-puppet.j2.yaml
puppet/services/vpp.yaml [new file with mode: 0644]
releasenotes/notes/vpp-84d35e51ff62a58c.yaml [new file with mode: 0644]
roles_data.yaml

diff --git a/environments/services/vpp.yaml b/environments/services/vpp.yaml
new file mode 100644 (file)
index 0000000..9bad70f
--- /dev/null
@@ -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']
index 1360d0b..b811a5a 100644 (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
diff --git a/puppet/services/vpp.yaml b/puppet/services/vpp.yaml
new file mode 100644 (file)
index 0000000..59866d3
--- /dev/null
@@ -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
diff --git a/releasenotes/notes/vpp-84d35e51ff62a58c.yaml b/releasenotes/notes/vpp-84d35e51ff62a58c.yaml
new file mode 100644 (file)
index 0000000..b78df17
--- /dev/null
@@ -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.
index 9e3b0a1..64b72a4 100644 (file)
     - OS::TripleO::Services::OctaviaHealthManager
     - OS::TripleO::Services::OctaviaHousekeeping
     - OS::TripleO::Services::OctaviaWorker
+    - OS::TripleO::Services::Vpp
 
 - name: Compute
   CountDefault: 1
     - OS::TripleO::Services::FluentdClient
     - OS::TripleO::Services::AuditD
     - OS::TripleO::Services::Collectd
+    - OS::TripleO::Services::Vpp
+
 
 - name: BlockStorage
   ServicesDefault: