+From ec3299c72eae195106092a646409564b5b3eb560 Mon Sep 17 00:00:00 2001
From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
Date: Wed, 24 Feb 2016 20:08:24 +0100
-Subject: [PATCH] Make TestVM creation architecture aware
+Subject: [PATCH 10/20] Make TestVM creation architecture aware
This depends on cirros-testvm package to contain both amd64 and arm64
images.
---
- deployment/puppet/openstack/manifests/img/cirros.pp | 8 ++++++--
- .../puppet/osnailyfacter/modular/generate_vms/generate_vms.pp | 11 +++++++++++
- deployment/puppet/osnailyfacter/templates/vm_libvirt.erb | 5 ++++-
- files/fuel-migrate/fuel-migrate | 5 ++++-
- 4 files changed, 25 insertions(+), 4 deletions(-)
+ deployment/puppet/openstack/manifests/img/cirros.pp | 8 ++++++--
+ .../osnailyfacter/manifests/generate_vms/vm_config.pp | 11 +++++++++++
+ deployment/puppet/osnailyfacter/templates/vm_libvirt.erb | 15 ++++++++++++++-
+ files/fuel-migrate/fuel-migrate | 5 ++++-
+ 4 files changed, 35 insertions(+), 4 deletions(-)
diff --git a/deployment/puppet/openstack/manifests/img/cirros.pp b/deployment/puppet/openstack/manifests/img/cirros.pp
-index 84e202e..57ae256 100644
+index 84e202e..cff06e0 100644
--- a/deployment/puppet/openstack/manifests/img/cirros.pp
+++ b/deployment/puppet/openstack/manifests/img/cirros.pp
@@ -9,6 +9,10 @@ class openstack::img::cirros (
$os_name = 'cirros',
) {
+ $arch = $::architecture ? {
-+ 'arm64', 'aarch64' => 'aarch64',
-+ default => 'x86_64',
++ /(arm64|aarch64)/ => 'aarch64',
++ default => 'x86_64',
+ }
package { 'cirros-testvm':
unless => "/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} index && (/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} index | grep ${img_name})",
}
-diff --git a/deployment/puppet/osnailyfacter/modular/generate_vms/generate_vms.pp b/deployment/puppet/osnailyfacter/modular/generate_vms/generate_vms.pp
-index 6d5426a..da5954e 100644
---- a/deployment/puppet/osnailyfacter/modular/generate_vms/generate_vms.pp
-+++ b/deployment/puppet/osnailyfacter/modular/generate_vms/generate_vms.pp
-@@ -11,6 +11,17 @@ define vm_config {
+diff --git a/deployment/puppet/osnailyfacter/manifests/generate_vms/vm_config.pp b/deployment/puppet/osnailyfacter/manifests/generate_vms/vm_config.pp
+index 70fef32..dfefcbe 100644
+--- a/deployment/puppet/osnailyfacter/manifests/generate_vms/vm_config.pp
++++ b/deployment/puppet/osnailyfacter/manifests/generate_vms/vm_config.pp
+@@ -4,6 +4,17 @@ define osnailyfacter::generate_vms::vm_config(
$details = $name
$id = $details['id']
owner => 'root',
group => 'root',
diff --git a/deployment/puppet/osnailyfacter/templates/vm_libvirt.erb b/deployment/puppet/osnailyfacter/templates/vm_libvirt.erb
-index ae2ba5b..decf3ab 100644
+index ae2ba5b..64e716d 100644
--- a/deployment/puppet/osnailyfacter/templates/vm_libvirt.erb
+++ b/deployment/puppet/osnailyfacter/templates/vm_libvirt.erb
-@@ -3,7 +3,7 @@
+@@ -3,14 +3,23 @@
<memory unit='GiB'><%= @details['mem'] %></memory>
<vcpu placement='static'><%= @details['cpu'] %></vcpu>
<os>
- <type arch='x86_64' machine='pc-i440fx-trusty'>hvm</type>
+ <type arch='<%= @machine_arch %>' machine='<%= @machine_type %>'>hvm</type>
++ <% if == 'aarch64' %>
++ <kernel>/var/lib/nova/<%= @details['id'] %>_vm.kernel</kernel>
++ <initrd>/var/lib/nova/<%= @details['id'] %>_vm.initramfs</initrd>
++ <cmdline>root=/dev/vda1 rw rootwait console=tty0 console=ttyS0 console=ttyAMA0</cmdline>
++ <% else %>
<boot dev='network'/>
<boot dev='hd'/>
++ <% end %>
</os>
-@@ -11,6 +11,9 @@
+ <features>
<acpi/>
<apic/>
<pae/>
-+ <% if $machine_arch == 'arm64' { %>
-+ <gic version='3' />
-+ <% } %>
++ <% if $machine_arch == 'aarch64' %>
++ <gic version='host' />
++ <% end %>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
+@@ -57,7 +66,11 @@
+ <input type='keyboard' bus='ps2'/>
+ <graphics type='vnc' port='-1' autoport='yes'/>
+ <video>
++<% if $machine_arch == 'aarch64' %>
++ <model type='vga' vram='9216' heads='1'/>
++<% else %>
+ <model type='cirrus' vram='9216' heads='1'/>
++<% end %>
+ </video>
+ <memballoon model='virtio'>
+ </memballoon>
diff --git a/files/fuel-migrate/fuel-migrate b/files/fuel-migrate/fuel-migrate
-index fad9436..667d4a7 100755
+index a215e0a..7d5b6cd 100755
--- a/files/fuel-migrate/fuel-migrate
+++ b/files/fuel-migrate/fuel-migrate
-@@ -175,6 +175,8 @@ create_vm(){
+@@ -176,6 +176,8 @@ create_vm(){
exit 1
fi
fi
# create disk
ssh "${dkvm_ip}" qemu-img create -f raw "${dkvm_folder}/${fvm_name}.img" "${fvm_disk_size}"
# make template for virsh
-@@ -184,13 +186,14 @@ create_vm(){
+@@ -185,13 +187,14 @@ create_vm(){
<memory unit='MiB'>${fvm_ram}</memory>
<vcpu >${fvm_cpu}</vcpu>
<os>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
---
-1.9.1
-