diff --git a/docker/nova/nova-base/Dockerfile.j2 b/docker/nova/nova-base/Dockerfile.j2 index 959319a592..73f3ca02e6 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 \