From 88e7f8006e33cd39db0fee479cc36730fc13aeaa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rados=C5=82aw=20Piliszek?= <radoslaw.piliszek@gmail.com>
Date: Sun, 14 Jun 2020 12:03:32 +0200
Subject: [PATCH] CI: Add Ubuntu KVM job

This also uses the recommended machinery to set qemu instead
of relying on config file override so that we test what we
really want to test.

Change-Id: I560e4f9d0a69c347e6aaf3b970331157c1a56f18
---
 tests/templates/globals-default.j2        |  2 ++
 tests/templates/nova-compute-overrides.j2 |  4 ----
 zuul.d/base.yaml                          | 10 ++++++++++
 zuul.d/jobs.yaml                          |  8 ++++++++
 zuul.d/nodesets.yaml                      |  6 ++++++
 zuul.d/project.yaml                       |  1 +
 6 files changed, 27 insertions(+), 4 deletions(-)

diff --git a/tests/templates/globals-default.j2 b/tests/templates/globals-default.j2
index e44b46809d..dc649394a5 100644
--- a/tests/templates/globals-default.j2
+++ b/tests/templates/globals-default.j2
@@ -23,6 +23,8 @@ keepalived_virtual_router_id: "{{ 250 | random(1) }}"
 mariadb_wsrep_extra_provider_options:
   - "gmcast.peer_timeout=PT15S"
 
+nova_compute_virt_type: "{{ virt_type }}"
+
 enable_openstack_core: "{{ openstack_core_enabled }}"
 enable_horizon: "{{ dashboard_enabled }}"
 enable_heat: "{{ openstack_core_tested }}"
diff --git a/tests/templates/nova-compute-overrides.j2 b/tests/templates/nova-compute-overrides.j2
index 5ad30c8e4b..26c756a043 100644
--- a/tests/templates/nova-compute-overrides.j2
+++ b/tests/templates/nova-compute-overrides.j2
@@ -1,9 +1,5 @@
 [libvirt]
-virt_type=qemu
-# NOTE(Jeffrey4l): fix the gate in iax-ord nodes for libvirt 2.0.
 {% if ansible_architecture == 'aarch64' %}
 cpu_mode=custom
 cpu_model=max
-{% else %}
-cpu_mode=none
 {% endif %}
diff --git a/zuul.d/base.yaml b/zuul.d/base.yaml
index 6ac0cc215d..6446487b6f 100644
--- a/zuul.d/base.yaml
+++ b/zuul.d/base.yaml
@@ -28,6 +28,7 @@
     vars:
       previous_release: ussuri
       scenario: core
+      virt_type: qemu
       is_upgrade: no
       api_network_prefix: "192.0.2."
       api_network_prefix_length: "24"
@@ -44,6 +45,15 @@
     roles:
       - zuul: zuul/zuul-jobs
 
+- job:
+    name: kolla-ansible-kvm-base
+    parent: kolla-ansible-base
+    voting: false
+    files:
+      - ^ansible/roles/(nova-cell)/
+    vars:
+      virt_type: kvm
+
 - job:
     name: kolla-ansible-ipv6-base
     parent: kolla-ansible-base
diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml
index 8f7e21e15c..e9a3ec7085 100644
--- a/zuul.d/jobs.yaml
+++ b/zuul.d/jobs.yaml
@@ -36,6 +36,14 @@
       install_type: source
       tls_enabled: true
 
+- job:
+    name: kolla-ansible-ubuntu-source-kvm
+    parent: kolla-ansible-kvm-base
+    nodeset: kolla-ansible-bionic-nested-virt
+    vars:
+      base_distro: ubuntu
+      install_type: source
+
 - job:
     name: kolla-ansible-ubuntu-source-multinode-ipv6
     parent: kolla-ansible-ipv6-base
diff --git a/zuul.d/nodesets.yaml b/zuul.d/nodesets.yaml
index d6f573b025..25ad0936e0 100644
--- a/zuul.d/nodesets.yaml
+++ b/zuul.d/nodesets.yaml
@@ -82,3 +82,9 @@
         nodes:
           - secondary1
           - secondary2
+
+- nodeset:
+    name: kolla-ansible-bionic-nested-virt
+    nodes:
+      - name: primary
+        label: nested-virt-ubuntu-bionic
diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml
index 86278b9b31..434ff563e3 100644
--- a/zuul.d/project.yaml
+++ b/zuul.d/project.yaml
@@ -14,6 +14,7 @@
         - kolla-ansible-centos8-source
         - kolla-ansible-debian-source
         - kolla-ansible-ubuntu-source
+        - kolla-ansible-ubuntu-source-kvm
         - kolla-ansible-ubuntu-source-multinode-ipv6
         - kolla-ansible-centos8-source-bifrost
         - kolla-ansible-centos8-source-zun