aboutsummaryrefslogtreecommitdiffstats
path: root/.gitignore
diff options
context:
space:
mode:
authorDimitrios Markou <mardim@intracom-telecom.com>2017-12-21 18:04:20 +0000
committerGerrit Code Review <gerrit@opnfv.org>2017-12-21 18:04:20 +0000
commit9681f405a83f93dba8a3455ee2b601ac4188a392 (patch)
treeab4093ac1b180ca36cfa2e966be65f30b91cfcc2 /.gitignore
parentdeca6d35cd4ba0c6444b92d15b07ade1169d0ef3 (diff)
parent75c8dafa546b6ce13032241255d6976a28d76e2e (diff)
Merge "Add the xci_overrides file"
Diffstat (limited to '.gitignore')
0 files changed, 0 insertions, 0 deletions
='n116' href='#n116'>116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
: Copyright (c) 2017 Enea AB and others.
:
: All rights reserved. This program and the accompanying materials
: are made available under the terms of the Apache License, Version 2.0
: which accompanies this distribution, and is available at
: http://www.apache.org/licenses/LICENSE-2.0
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
From: Guillermo Herrero <Guillermo.Herrero@enea.com>
Date: Tue, 25 Jul 2017 00:58:32 +0200
Subject: [PATCH] mcp: salt-formulas: Add & enable armband formula

FIXME: Re-enable apparmor.
FIXME: Detect baremetal and re-enable acceleration.

- install qemu-efi;
- install vgabios;
- disable apparmor as security driver for libvirt (temporary);
- fix missing link for vgabios binary blob;
- nova: virt_type=qemu (temporary, until we support baremetal too);
- nova: pointer_model=ps2mouse since AArch64 has no USB tablet;
- nova: cpu_model=cortex-a57;
- nova: libvirt driver: Add ttyAMA0 by default on AArch64;
- nova: libvirt driver: Use VGA video type by default on AArch64;

Signed-off-by: Guillermo Herrero <Guillermo.Herrero@enea.com>
Signed-off-by: Charalampos Kominos <Charalampos.Kominos@enea.com>
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
---
 mcp/config/states/maas                             |  1 +
 mcp/config/states/openstack                        |  2 +
 mcp/config/states/openstack_ha                     |  1 +
 .../armband/files/nova-libvirt-driver.diff         | 48 ++++++++++++++++++++++
 mcp/salt-formulas/armband/init.sls                 |  6 +++
 mcp/salt-formulas/armband/libvirt_driver.sls       |  5 +++
 mcp/salt-formulas/armband/nova.sls                 | 30 ++++++++++++++
 mcp/salt-formulas/armband/qemu.sls                 |  7 ++++
 mcp/salt-formulas/armband/vgabios.sls              |  6 +++
 9 files changed, 106 insertions(+)
 create mode 100644 mcp/salt-formulas/armband/files/nova-libvirt-driver.diff
 create mode 100644 mcp/salt-formulas/armband/init.sls
 create mode 100644 mcp/salt-formulas/armband/libvirt_driver.sls
 create mode 100644 mcp/salt-formulas/armband/nova.sls
 create mode 100644 mcp/salt-formulas/armband/qemu.sls
 create mode 100644 mcp/salt-formulas/armband/vgabios.sls

diff --git a/mcp/config/states/maas b/mcp/config/states/maas
index 710ec0e..6c2ae04 100755
--- a/mcp/config/states/maas
+++ b/mcp/config/states/maas
@@ -81,6 +81,7 @@ wait_for 90 "! salt 'kvm*' test.ping | tee /dev/stderr | fgrep -q 'Not connected

 salt -C '* and not cfg01* and not mas01*' state.apply linux,ntp

+salt -C 'kvm*' state.sls armband
 salt -C 'kvm*' state.sls libvirt

 salt -C '* and not cfg01* and not mas01*' state.apply salt
diff --git a/mcp/config/states/openstack b/mcp/config/states/openstack
index eaab135..050b648 100755
--- a/mcp/config/states/openstack
+++ b/mcp/config/states/openstack
@@ -31,3 +31,5 @@ salt -I 'ceilometer:server' state.sls ceilometer
 salt -I 'ceilometer:agent' state.sls ceilometer

 salt -I 'horizon:server' state.sls horizon
+
+salt -I 'nova:compute' state.sls armband
diff --git a/mcp/config/states/openstack_ha b/mcp/config/states/openstack_ha
index fc1fed7..7ba9d82 100755
--- a/mcp/config/states/openstack_ha
+++ b/mcp/config/states/openstack_ha
@@ -41,6 +41,7 @@ salt -I 'neutron:server' state.sls neutron -b 1
 salt -I 'neutron:gateway' state.sls neutron.gateway

 salt -I 'nova:compute' state.sls nova
+salt -I 'nova:compute' state.sls armband

 salt -I 'horizon:server' state.sls horizon
 salt -I 'nginx:server' state.sls nginx
diff --git a/mcp/salt-formulas/armband/files/nova-libvirt-driver.diff b/mcp/salt-formulas/armband/files/nova-libvirt-driver.diff
new file mode 100644
index 0000000..a5b08da
--- /dev/null
+++ b/mcp/salt-formulas/armband/files/nova-libvirt-driver.diff
@@ -0,0 +1,48 @@
+From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
+Date: Tue, 22 Mar 2016 12:05:09 +0100
+Subject: [PATCH] nova: Update vga, console defaults for armv7, aarch64
+
+Nova hardcodes default options for both video=cirrus and console.
+armv7 and aarch64 VMs require video=vga, and since most applications
+use PL011 serial driver for guests, adding console=ttyAMA0 is also
+a nice UX addition.
+
+Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com>
+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+Signed-off-by: Guillermo Herrero <Guillermo.Herrero@enea.com>
+
+---
+ usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py b/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py
+index bba9b00..99e86be 100644
+--- a/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py
++++ b/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py
+@@ -4179,7 +4179,12 @@ class LibvirtDriver(driver.ComputeDriver):
+         if virt_type == "xen":
+             guest.os_cmdline = "ro root=%s" % root_device_name
+         else:
++            guestarch = libvirt_utils.get_arch(image_meta)
+             guest.os_cmdline = ("root=%s %s" % (root_device_name, CONSOLE))
++            if guestarch in (fields.Architecture.ARMV7,
++                             fields.Architecture.AARCH64):
++                # NOTE(armband): ARM v7/v8 use PL011 drv, add ttyAMA0 console
++                guest.os_cmdline += " console=ttyAMA0"
+             if virt_type == "qemu":
+                 guest.os_cmdline += " no_timer_check"
+         if instance.ramdisk_id:
+@@ -4288,9 +4293,12 @@ class LibvirtDriver(driver.ComputeDriver):
+             video.type = 'xen'
+         elif CONF.libvirt.virt_type == 'parallels':
+             video.type = 'vga'
+-        elif guestarch in (fields.Architecture.PPC,
++        elif guestarch in (fields.Architecture.ARMV7,
++                           fields.Architecture.AARCH64,
++                           fields.Architecture.PPC,
+                            fields.Architecture.PPC64,
+                            fields.Architecture.PPC64LE):
++            # NOTE(armband): Added ARM v7/v8, same as on PPC.
+             # NOTE(ldbragst): PowerKVM doesn't support 'cirrus' be default
+             # so use 'vga' instead when running on Power hardware.
+             video.type = 'vga'
diff --git a/mcp/salt-formulas/armband/init.sls b/mcp/salt-formulas/armband/init.sls
new file mode 100644
index 0000000..6e7b6ad
--- /dev/null
+++ b/mcp/salt-formulas/armband/init.sls
@@ -0,0 +1,6 @@
+include:
+ - armband.qemu
+ - armband.vgabios
+ - armband.nova
+ - armband.libvirt_driver
+
diff --git a/mcp/salt-formulas/armband/libvirt_driver.sls b/mcp/salt-formulas/armband/libvirt_driver.sls
new file mode 100644
index 0000000..c309035
--- /dev/null
+++ b/mcp/salt-formulas/armband/libvirt_driver.sls
@@ -0,0 +1,5 @@
+/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py:
+  file.patch:
+  - source:  salt://armband/files/nova-libvirt-driver.diff
+  - hash: "668641080c6a77a9205d0f71d510ad5f"
+
diff --git a/mcp/salt-formulas/armband/nova.sls b/mcp/salt-formulas/armband/nova.sls
new file mode 100644
index 0000000..674f371
--- /dev/null
+++ b/mcp/salt-formulas/armband/nova.sls
@@ -0,0 +1,30 @@
+{% if grains['virtual'] == 'kvm' %}
+nova_virt_type:
+  file.replace:
+    - name: "/etc/nova/nova.conf"
+    - pattern: '^virt_type\s*=.*$'
+    - repl: "virt_type = qemu"
+{% endif %}
+nova_pointer_model:
+  file.replace:
+    - name: "/etc/nova/nova.conf"
+    - pattern: '^#pointer_model\s*=.*$'
+    - repl: "pointer_model = ps2mouse"
+nova_cpu_mode:
+  file.replace:
+    - name: "/etc/nova/nova.conf"
+    - pattern:  '^cpu_mode\s*=\s*host-passthrough'
+    - repl: "cpu_mode = custom"
+nova_cpu_model:
+  file.replace:
+    - name: "/etc/nova/nova.conf"
+    - pattern: '^#cpu_model\s*=.*$'
+    {% if grains['virtual'] == 'kvm' %}
+    - repl: "cpu_model = cortex-a57"
+    {% else %}
+    - repl: "cpu_model = host"
+    {% endif %}
+restart_nova-compute:
+  cmd:
+    - run
+    - name: "service nova-compute restart"
diff --git a/mcp/salt-formulas/armband/qemu.sls b/mcp/salt-formulas/armband/qemu.sls
new file mode 100644
index 0000000..ecdb5ae
--- /dev/null
+++ b/mcp/salt-formulas/armband/qemu.sls
@@ -0,0 +1,7 @@
+qemu-efi:
+  pkg.installed
+/etc/libvirt/qemu.conf:
+  file.replace:
+    - pattern: ^#security_driver =.*$
+    - repl: "security_driver = \"none\""
+
diff --git a/mcp/salt-formulas/armband/vgabios.sls b/mcp/salt-formulas/armband/vgabios.sls
new file mode 100644
index 0000000..a31eafa
--- /dev/null
+++ b/mcp/salt-formulas/armband/vgabios.sls
@@ -0,0 +1,6 @@
+vgabios:
+  pkg.installed
+/usr/share/qemu/vgabios-stdvga.bin:
+  file.symlink:
+    - target: "/usr/share/vgabios/vgabios.bin"
+