aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeffrey Zhang <zhang.lei.fly@gmail.com>2018-10-08 14:04:14 +0800
committerJeffrey Zhang <zhang.lei.fly@gmail.com>2018-10-15 10:10:26 +0000
commit60009339827ff81537d80f6a6d3dfa23ad36dbf1 (patch)
tree60f9fca231dbaaf34a0b3406f79aca980543b950
parent649094f9d26382a8a08b2cd35e15ba2d815df7cb (diff)
downloadkolla-60009339827ff81537d80f6a6d3dfa23ad36dbf1.tar.gz
kolla-60009339827ff81537d80f6a6d3dfa23ad36dbf1.zip
Install UEFI related package for nova image
- for x86_64 arch, install OVMF for RHEL family and ovmf for Debian family - for aarch64 arch, install AAVMF for RHEL family and qemu-efi for Debian family - there is no package support for ppc64le Closes-Bug: #1796558 Change-Id: Ie1c688e74ec2aa3b6169c0a18a856dd0c92fe443
-rw-r--r--docker/nova/nova-base/Dockerfile.j254
1 files changed, 53 insertions, 1 deletions
diff --git a/docker/nova/nova-base/Dockerfile.j2 b/docker/nova/nova-base/Dockerfile.j2
index 959319a59..73f3ca02e 100644
--- a/docker/nova/nova-base/Dockerfile.j2
+++ b/docker/nova/nova-base/Dockerfile.j2
@@ -18,6 +18,18 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'python-keystoneclient'
] %}
+ {% if base_arch == 'x86_64' %}
+ {% set nova_base_packages = nova_base_packages + [
+ 'OVMF'
+ ] %}
+ {% elif base_arch == 'aarch64' %}
+ {% set nova_base_packages = nova_base_packages + [
+ 'AAVMF'
+ ] %}
+ {% elif base_arch == 'ppc64le' %}
+ {# NOTE(Jeffrey4l): no packages for ppc64le #}
+ {% endif %}
+
{% elif base_distro in ['debian', 'ubuntu'] %}
{% set nova_base_packages = [
@@ -26,7 +38,17 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'openvswitch-switch',
'python-nova'
] %}
-
+ {% if base_arch == 'x86_64' %}
+ {% set nova_base_packages = nova_base_packages + [
+ 'ovmf'
+ ] %}
+ {% elif base_arch == 'aarch64' %}
+ {% set nova_base_packages = nova_base_packages + [
+ 'qemu-efi',
+ ] %}
+ {% elif base_arch == 'ppc64le' %}
+ {# NOTE(Jeffrey4l): no packages for ppc64le #}
+ {% endif %}
{% endif %}
{{ macros.install_packages(nova_base_packages | customizable("packages")) }}
@@ -38,6 +60,17 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'bridge-utils',
'openvswitch'
] %}
+ {% if base_arch == 'x86_64' %}
+ {% set nova_base_packages = nova_base_packages + [
+ 'OVMF'
+ ] %}
+ {% elif base_arch == 'aarch64' %}
+ {% set nova_base_packages = nova_base_packages + [
+ 'AAVMF'
+ ] %}
+ {% elif base_arch == 'ppc64le' %}
+ {# NOTE(Jeffrey4l): no packages for ppc64le #}
+ {% endif %}
{% elif base_distro in ['debian', 'ubuntu'] %}
@@ -51,6 +84,17 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'openvswitch-switch',
'python-libvirt'
] %}
+ {% if base_arch == 'x86_64' %}
+ {% set nova_base_packages = nova_base_packages + [
+ 'ovmf'
+ ] %}
+ {% elif base_arch == 'aarch64' %}
+ {% set nova_base_packages = nova_base_packages + [
+ 'qemu-efi',
+ ] %}
+ {% elif base_arch == 'ppc64le' %}
+ {# NOTE(Jeffrey4l): no packages for ppc64le #}
+ {% endif %}
{% endif %}
@@ -83,6 +127,14 @@ RUN chmod 750 /etc/sudoers.d \
{% endif %}
+
+{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
+ {% if base_arch == 'x86_64' %}
+# NOTE(jeffrey4l): for x86_64, nova will validate the existence of /usr/share/OVMF/OVMF_CODE.fd
+RUN ln -sf /usr/share/OVMF/OVMF_CODE.secboot.fd /usr/share/OVMF/OVMF_CODE.fd
+ {% endif %}
+{% endif %}
+
COPY extend_start.sh /usr/local/bin/kolla_extend_start
RUN touch /usr/local/bin/kolla_nova_extend_start \