129 lines
3.8 KiB
Django/Jinja
129 lines
3.8 KiB
Django/Jinja
FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }}
|
|
LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
|
|
|
|
{% block nova_libvirt_header %}{% endblock %}
|
|
|
|
{% import "macros.j2" as macros with context %}
|
|
|
|
{{ macros.configure_user(name='nova', groups='qemu') }}
|
|
|
|
# FIXME(mnasiadka): Remove when CentOS Storage SIG repo is available for CentOS 8
|
|
{% if distro_package_manager == 'dnf' %}
|
|
{{ macros.enable_extra_repos(['ceph', 'ceph-noarch', 'ceph-el8', 'ceph-lab-extras']) }}
|
|
{% else %}
|
|
{{ macros.enable_extra_repos(['ceph']) }}
|
|
{% endif %}
|
|
|
|
{% if base_package_type == 'rpm' %}
|
|
|
|
{% set nova_libvirt_packages = [
|
|
'ceph-common',
|
|
'cyrus-sasl-scram',
|
|
'libguestfs',
|
|
'libvirt-client',
|
|
'libvirt-daemon',
|
|
'libvirt-daemon-config-nwfilter',
|
|
'libvirt-daemon-driver-nwfilter',
|
|
'openvswitch',
|
|
'trousers'
|
|
] %}
|
|
{% if distro_package_manager == 'dnf' or base_distro not in ['centos'] %}
|
|
{% set nova_libvirt_packages = nova_libvirt_packages + [
|
|
'qemu-kvm'
|
|
] %}
|
|
{% else %}
|
|
{% set nova_libvirt_packages = nova_libvirt_packages + [
|
|
'qemu-kvm-ev'
|
|
] %}
|
|
{% endif %}
|
|
{% if distro_package_manager != 'dnf' %}
|
|
{% set nova_libvirt_packages = nova_libvirt_packages + [
|
|
'libvirt-daemon-driver-lxc',
|
|
] %}
|
|
{% endif %}
|
|
|
|
{% if base_arch == 'x86_64' %}
|
|
{% if base_distro_tag.startswith('7') %}
|
|
{% set nova_libvirt_packages = nova_libvirt_packages + [
|
|
'OVMF'
|
|
] %}
|
|
{% else %}
|
|
{% set nova_libvirt_packages = nova_libvirt_packages + [
|
|
'edk2-ovmf'
|
|
] %}
|
|
{% endif %}
|
|
{% elif base_arch == 'aarch64' %}
|
|
{% if base_distro_tag.startswith('7') %}
|
|
{% set nova_libvirt_packages = nova_libvirt_packages + [
|
|
'AAVMF'
|
|
] %}
|
|
{% else %}
|
|
{% set nova_libvirt_packages = nova_libvirt_packages + [
|
|
'edk2-aarch64'
|
|
] %}
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
{% elif base_package_type == 'deb' %}
|
|
|
|
{% set nova_libvirt_packages = [
|
|
'ceph-common',
|
|
'ebtables',
|
|
'libvirt-clients',
|
|
'libvirt-daemon-system',
|
|
'openvswitch-switch',
|
|
'pm-utils',
|
|
'python3-cephfs',
|
|
'python3-rados',
|
|
'python3-rbd',
|
|
'qemu-block-extra',
|
|
'qemu-system',
|
|
'trousers'
|
|
] %}
|
|
|
|
{% if base_arch == "aarch64" %}
|
|
{% set nova_libvirt_packages = nova_libvirt_packages + [
|
|
'qemu-efi'
|
|
] %}
|
|
{% elif base_arch == "x86_64" %}
|
|
{% set nova_libvirt_packages = nova_libvirt_packages + [
|
|
'ovmf',
|
|
'qemu-kvm'
|
|
] %}
|
|
{% endif %}
|
|
|
|
{% if base_arch != "ppc64le" %}
|
|
{% set nova_libvirt_packages = nova_libvirt_packages + [
|
|
'dmidecode',
|
|
'xen-utils'
|
|
] %}
|
|
{% endif %}
|
|
|
|
{% if base_distro in ['debian'] %}
|
|
{% set nova_libvirt_packages = nova_libvirt_packages + [
|
|
'usermode'
|
|
] %}
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
{{ macros.install_packages(nova_libvirt_packages | customizable("packages")) }}
|
|
|
|
{% if base_package_type == 'deb' %}
|
|
|
|
RUN rm -f /etc/libvirt/qemu/networks/default.xml /etc/libvirt/qemu/networks/autostart/default.xml
|
|
|
|
{% elif base_package_type == 'rpm' %}
|
|
|
|
{% if base_arch == 'x86_64' and base_distro_tag.startswith('7') %}
|
|
# 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 chmod 755 /usr/local/bin/kolla_extend_start
|
|
|
|
{% block nova_libvirt_footer %}{% endblock %}
|
|
{% block footer %}{% endblock %}
|