diff --git a/modules/openstack_project/files/jenkins_job_builder/config/devstack-gate.yaml b/modules/openstack_project/files/jenkins_job_builder/config/devstack-gate.yaml
index e286ac8a0b..c3d25f89f5 100644
--- a/modules/openstack_project/files/jenkins_job_builder/config/devstack-gate.yaml
+++ b/modules/openstack_project/files/jenkins_job_builder/config/devstack-gate.yaml
@@ -1240,6 +1240,73 @@
       - devstack-logs
       - console-log
 
+- job-template:
+    name: '{pipeline}-tempest-dsvm-{topology}{branch-designator}'
+    node: '{node}'
+
+    wrappers:
+      - build-timeout:
+          timeout: 125
+      - timestamps
+
+    builders:
+      - link-logs
+      - net-info
+      - devstack-checkout
+      - shell: |
+          #!/bin/bash -xe
+          export PYTHONUNBUFFERED=true
+          export DEVSTACK_GATE_TIMEOUT=120
+          export DEVSTACK_GATE_TEMPEST=1
+          export DEVSTACK_GATE_FULL=1
+          export BRANCH_OVERRIDE={branch-override}
+          if [ "$BRANCH_OVERRIDE" != "default" ] ; then
+              export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
+          fi
+          export DEVSTACK_GATE_TOPOLOGY={topology}
+
+          cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
+          ./safe-devstack-vm-gate-wrap.sh
+
+    publishers:
+      - devstack-logs
+      - console-log
+
+
+- job-template:
+    name: '{pipeline}-tempest-dsvm-neutron-{topology}{branch-designator}'
+    node: '{node}'
+
+    wrappers:
+      - build-timeout:
+          timeout: 125
+      - timestamps
+
+    builders:
+      - link-logs
+      - net-info
+      - devstack-checkout
+      - shell: |
+          #!/bin/bash -xe
+          export PYTHONUNBUFFERED=true
+          export DEVSTACK_GATE_TIMEOUT=120
+          export DEVSTACK_GATE_TEMPEST=1
+          export DEVSTACK_GATE_FULL=1
+          export DEVSTACK_GATE_NEUTRON=1
+          export BRANCH_OVERRIDE={branch-override}
+          if [ "$BRANCH_OVERRIDE" != "default" ] ; then
+              export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
+          fi
+          export DEVSTACK_GATE_TOPOLOGY={topology}
+
+          cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
+          ./safe-devstack-vm-gate-wrap.sh
+
+    publishers:
+      - devstack-logs
+      - console-log
+
+
 - job:
     name: gate-devstack-gate-unittests
     node: 'bare-precise || bare-trusty'
diff --git a/modules/openstack_project/files/jenkins_job_builder/config/projects.yaml b/modules/openstack_project/files/jenkins_job_builder/config/projects.yaml
index 3355401c9e..d21baafeb0 100644
--- a/modules/openstack_project/files/jenkins_job_builder/config/projects.yaml
+++ b/modules/openstack_project/files/jenkins_job_builder/config/projects.yaml
@@ -1619,6 +1619,18 @@
       # Special jobs for devstack-gate
       - devstack-gate-jobs:
           node: 'devstack-precise || devstack-trusty'
+      - '{pipeline}-tempest-dsvm-{topology}{branch-designator}':
+          pipeline: check
+          node: devstack-trusty-2-node
+          branch-designator: ''
+          branch-override: default
+          topology: aiopcpu
+      - '{pipeline}-tempest-dsvm-neutron-{topology}{branch-designator}':
+          pipeline: check
+          node: devstack-trusty-2-node
+          branch-designator: ''
+          branch-override: default
+          topology: aiopcpu
 
 
 - project:
diff --git a/modules/openstack_project/files/zuul/layout.yaml b/modules/openstack_project/files/zuul/layout.yaml
index 89bf9bf042..3014be92e9 100644
--- a/modules/openstack_project/files/zuul/layout.yaml
+++ b/modules/openstack_project/files/zuul/layout.yaml
@@ -382,6 +382,10 @@ project-templates:
 jobs:
   - name: ^.*$
     parameter-function: set_node_options_default_precise
+  - name: ^.*tempest-dsvm-aiopcpu.*$
+    parameter-function: set_node_options_default_trusty
+  - name: ^.*tempest-dsvm-neutron-aiopcpu.*$
+    parameter-function: set_node_options_default_trusty
   # Pecan ceilometer tests need new mongodb available in trusty
   - name: ^gate-pecan-tox-ceilometer-.*$
     parameter-function: set_node_options_default_trusty
@@ -502,6 +506,10 @@ jobs:
     voting: false
   - name: check-tempest-dsvm-f20
     voting: false
+  - name: check-tempest-dsvm-aiopcpu
+    voting: false
+  - name: check-tempest-dsvm-neutron-aiopcpu
+    voting: false
   - name: gate-designate-devstack-dsvm
     branch: ^(?!stable/(?:havana|icehouse)).*$
 # For Gerrit ver 2.4.x (using maven)
@@ -2729,6 +2737,8 @@ projects:
       - check-tempest-master-dsvm-full-havana
       - check-tempest-master-dsvm-neutron-havana
       - check-tempest-dsvm-f20
+      - check-tempest-dsvm-aiopcpu
+      - check-tempest-dsvm-neutron-aiopcpu
     experimental-tripleo:
       - check-tripleo-ironic-seed-precise
       - check-tripleo-undercloud-precise
diff --git a/modules/openstack_project/files/zuul/openstack_functions.py b/modules/openstack_project/files/zuul/openstack_functions.py
index c70e0c871b..4e16834bda 100644
--- a/modules/openstack_project/files/zuul/openstack_functions.py
+++ b/modules/openstack_project/files/zuul/openstack_functions.py
@@ -49,6 +49,8 @@ def devstack_params(item, job, params):
         'icehouse' in job.name or
         'precise' in job.name)):
         params['ZUUL_NODE'] = 'devstack-precise'
+    elif 'aiopcpu' in job.name:
+        params['ZUUL_NODE'] = 'devstack-trusty-2-node'
     else:
         params['ZUUL_NODE'] = 'devstack-trusty'
 
diff --git a/modules/openstack_project/templates/nodepool/nodepool.yaml.erb b/modules/openstack_project/templates/nodepool/nodepool.yaml.erb
index 9cf40e562f..b762ed19f7 100644
--- a/modules/openstack_project/templates/nodepool/nodepool.yaml.erb
+++ b/modules/openstack_project/templates/nodepool/nodepool.yaml.erb
@@ -101,8 +101,8 @@ labels:
     min-ready: 1
     providers:
       - name: rax-dfw
-  - name: devstack-precise-2-node
-    image: devstack-precise
+  - name: devstack-trusty-2-node
+    image: devstack-trusty
     ready-script: multinode_setup.sh
     subnodes: 1
     min-ready: 1