aboutsummaryrefslogtreecommitdiff
path: root/kolla/docker/nova/nova-libvirt/Dockerfile.j2
diff options
context:
space:
mode:
authorMichal Nasiadka <mnasiadka@gmail.com>2026-07-06 15:26:00 +0200
committerMichal Nasiadka <mnasiadka@gmail.com>2026-07-06 19:59:40 +0000
commitdb35ac8d793506bc43b62e7e39d27a75de1043ed (patch)
treefeec28d13a43490f5fd4260374144a1abfc20331 /kolla/docker/nova/nova-libvirt/Dockerfile.j2
parent1ae1850557e3b99902f73b32c9005618537a1f2d (diff)
downloadkolla-db35ac8d793506bc43b62e7e39d27a75de1043ed.tar.gz
kolla-db35ac8d793506bc43b62e7e39d27a75de1043ed.zip
Migrate to pyproject.toml
[tool.setuptools.data-files] does not support recursive directory installation. The old setup.cfg [files] worked because PBR's FilesConfig.expand_globs() used os.walk() to expand docker/*, but this hook is not triggered by the pbr.build PEP-517 backend. Move docker/ into kolla/ and use [tool.setuptools.package-data] instead. Update kolla_worker._get_images_dir() to check the kolla package directory first so both editable and regular installs work. Change-Id: I4fc452c03740ef22ebbb4e8d0d86c4f4783e2d09 Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
Diffstat (limited to 'kolla/docker/nova/nova-libvirt/Dockerfile.j2')
-rw-r--r--kolla/docker/nova/nova-libvirt/Dockerfile.j2100
1 files changed, 100 insertions, 0 deletions
diff --git a/kolla/docker/nova/nova-libvirt/Dockerfile.j2 b/kolla/docker/nova/nova-libvirt/Dockerfile.j2
new file mode 100644
index 000000000..fb82401b3
--- /dev/null
+++ b/kolla/docker/nova/nova-libvirt/Dockerfile.j2
@@ -0,0 +1,100 @@
+FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"
+{% endblock %}
+
+{% block nova_libvirt_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{{ macros.configure_user(name='nova', groups='qemu') }}
+
+{% if base_package_type == 'rpm' %}
+
+{{ macros.enable_extra_repos(['ceph', 'crb', 'epel', 'openvswitch']) }}
+
+ {% set nova_libvirt_packages = [
+ 'ceph-common',
+ 'cyrus-sasl-md5',
+ 'cyrus-sasl-scram',
+ 'libguestfs',
+ 'libvirt-client',
+ 'libvirt-daemon',
+ 'libvirt-daemon-log',
+ 'libvirt-daemon-config-nwfilter',
+ 'libvirt-daemon-driver-nwfilter',
+ 'libvirt-daemon-driver-nodedev',
+ 'openvswitch${KOLLA_RPM_OVS_VERSION}',
+ 'qemu-img',
+ 'qemu-kvm',
+ 'swtpm',
+ ] %}
+ {% if base_arch == 'x86_64' %}
+ {% set nova_libvirt_packages = nova_libvirt_packages + [
+ 'edk2-ovmf'
+ ] %}
+ {% elif base_arch == 'aarch64' %}
+ {% set nova_libvirt_packages = nova_libvirt_packages + [
+ 'edk2-aarch64'
+ ] %}
+ {% endif %}
+
+{% elif base_package_type == 'deb' %}
+
+ {% set nova_libvirt_packages = [
+ 'ceph-common',
+ 'ebtables',
+ 'libsasl2-modules-gssapi-mit',
+ 'libvirt-clients',
+ 'libvirt-daemon-system',
+ 'mdevctl',
+ 'openvswitch-switch',
+ 'pm-utils',
+ 'python3-cephfs',
+ 'python3-rados',
+ 'python3-rbd',
+ 'qemu-block-extra',
+ 'qemu-system',
+ 'qemu-system-modules-spice',
+ 'qemu-utils',
+ 'sasl2-bin',
+ 'swtpm',
+ 'swtpm-tools',
+ 'tpm2-tools',
+ 'trousers'
+ ] %}
+
+ {% if base_arch == "aarch64" %}
+ {% set nova_libvirt_packages = nova_libvirt_packages + [
+ 'qemu-efi-aarch64'
+ ] %}
+ {% elif base_arch == "x86_64" %}
+ {% set nova_libvirt_packages = nova_libvirt_packages + [
+ 'ovmf',
+ ] %}
+ {% endif %}
+
+ {% if base_distro in ['debian'] %}
+ {% set nova_libvirt_packages = nova_libvirt_packages + [
+ 'libvirt-daemon-log',
+ '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
+
+{% endif %}
+
+COPY extend_start.sh /usr/local/bin/kolla_extend_start
+COPY kolla_nova_libvirt_start.sh /usr/local/bin/kolla_nova_libvirt_start
+RUN chmod 644 /usr/local/bin/kolla_extend_start && chmod 744 /usr/local/bin/kolla_nova_libvirt_start
+
+{{ macros.kolla_patch_sources() }}
+
+{% block nova_libvirt_footer %}{% endblock %}
+{% block footer %}{% endblock %}