Skip to content

Synchronise master with upstream #400

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Apr 14, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 28 additions & 4 deletions docker/bifrost/bifrost-base/Dockerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,51 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build

{% import "macros.j2" as macros with context %}

{% set venv_path='/var/lib/kolla/venv' %}

{{ macros.configure_user(name='bifrost') }}

{# NOTE(mgoddard): EPEL required for nginx #}
{{ macros.enable_extra_repos(['epel']) }}

{% set bifrost_base_packages = [
'cpio',
'cpio'
] %}

{% if base_package_type == 'rpm' %}
{% set bifrost_base_packages = bifrost_base_packages + [
'python3.12',
'python3.12-devel'
] %}
{% endif %}

{{ macros.install_packages(bifrost_base_packages | customizable("packages")) }}

ENV VENV /var/lib/kolla/venv
{# Ensure we use Python 3.12 on RPM-based systems #}
{% if base_package_type == 'rpm' %}
RUN cd /usr/bin && \
rm -f python3 && \
ln -s python3.12 python3
{% endif %}

ENV VENV {{ venv_path }}

{% set bifrost_base_pip_packages = [
'/bifrost'
] %}

ADD bifrost-base-archive /bifrost-base-source
COPY build_arg.yml /tmp/build_arg.yml

RUN mkdir -p /requirements \
&& curl -o /requirements/upper-constraints.txt ${UPPER_CONSTRAINTS_FILE:-https://releases.openstack.org/constraints/upper/{{ openstack_release }}} \
&& python3 -m venv --system-site-packages {{ venv_path }} \
&& KOLLA_DISTRO_PYTHON_VERSION=$(/usr/bin/python3 -c "import sys; print('{}.{}'.format(sys.version_info.major, sys.version_info.minor))") \
&& cd {{ venv_path }}/lib \
&& ln -s python${KOLLA_DISTRO_PYTHON_VERSION} {{ venv_path }}/lib/python3

RUN ln -s bifrost-base-source/* bifrost \
&& {{ macros.install_pip(['pip', 'wheel', 'setuptools']) }} \
&& {{ macros.install_pip(bifrost_base_pip_packages | customizable("pip_packages")) }}

WORKDIR /bifrost
Expand All @@ -37,11 +62,10 @@ ENV ANSIBLE_GATHER_TIMEOUT=30
{% block bifrost_ansible_install %}
{%- if base_package_type == 'deb' %}
RUN apt-get --error-on=any update && \
bash -c '$VENV/bin/pip install "ansible>=9,<10" && \
{%- else %}
RUN echo " " && \
bash -c '$VENV/bin/pip install "ansible>=8,<9" && \
{%- endif %}
bash -c '$VENV/bin/pip install "ansible>=11,<12" && \
$VENV/bin/ansible-galaxy collection install -r /bifrost/ansible-collections-requirements.yml && \
$VENV/bin/ansible-playbook -vvvv -i /bifrost/playbooks/inventory/target \
/bifrost/playbooks/install.yaml \
Expand Down
1 change: 1 addition & 0 deletions docker/ironic/ironic-pxe/Dockerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'grub2-efi-*64',
'grub2-efi-aa64-modules',
'ipxe-bootimgs',
'ipxe-bootimgs-aarch64',
'mtools',
'shim-*64',
'tftp-server',
Expand Down
7 changes: 6 additions & 1 deletion docker/ironic/ironic-pxe/extend_start.sh
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,12 @@ function prepare_ipxe {
# was ipxe.efi. Ensure that both exist, using symlinks where the files are
# named differently to allow the original names to be used in ironic.conf.
if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then
cp /usr/lib/ipxe/{undionly.kpxe,ipxe.efi,snponly.efi} ${TFTPBOOT_PATH}/
# NOTE(m-anson): ipxe-arm64.efi is not symlinked from /boot to
# /usr/lib/ipxe by the Ubuntu ipxe package, so fix that here.
if [[ -e /boot/ipxe-arm64.efi ]]; then
ln -s /boot/ipxe-arm64.efi /usr/lib/ipxe/
fi
cp /usr/lib/ipxe/{undionly.kpxe,ipxe*.efi,snponly.efi} ${TFTPBOOT_PATH}/
elif [[ "${KOLLA_BASE_DISTRO}" =~ centos|rocky ]]; then
cp /usr/share/ipxe/{undionly.kpxe,ipxe*.efi} ${TFTPBOOT_PATH}/
if [[ ! -e ${TFTPBOOT_PATH}/ipxe.efi ]]; then
Expand Down
5 changes: 3 additions & 2 deletions docker/neutron/neutron-l3-agent/Dockerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,14 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% set neutron_l3_agent_packages = [
'libreswan',
'radvd',
'dibbler-client'
'dibbler-client',
] %}
{% elif base_package_type == 'deb' %}
{% set neutron_l3_agent_packages = [
'strongswan',
'radvd',
'dibbler-client'
'dibbler-client',
'libnetfilter-log1'
] %}
{% endif %}

Expand Down
1 change: 1 addition & 0 deletions docker/nova/nova-libvirt/Dockerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'libsasl2-modules-gssapi-mit',
'libvirt-clients',
'libvirt-daemon-system',
'mdevctl',
'openvswitch-switch',
'pm-utils',
'python3-cephfs',
Expand Down
9 changes: 9 additions & 0 deletions releasenotes/notes/aarch64-ipxe-51888a5972528d77.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
features:
- |
Adds aarch64 iPXE support to the ironic-pxe image, by adding
``ipxe-bootimgs-aarch64`` RPM package to Rocky Linux ironic-pxe
images, and ensuring that an aarch64 iPXE binary is available
in Ubuntu ironic-pxe images. No support for aarch64 iPXE in
Debian images is included, as the distro packages do not
install an aarch64 binary.
4 changes: 4 additions & 0 deletions releasenotes/notes/bifrost-ansible-11-d14b635f9f766675.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
upgrade:
- |
Bifrost is now using Ansible 11.x.
10 changes: 10 additions & 0 deletions releasenotes/notes/fix-fwaas-l3-log-aed85e0782dece8d.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
issues:
- |
libnetfilter_log, which is required in neutron-l3-agent when fwaas_v2_log
is enabled, is not available in official rpm repos and enabling this
feature on rpm platforms will prevent neutron-l3-agent from running.
fixes:
- |
libnnetfilter_log has been added to deb platforms in order to support
the fwaas_v2_log feature in neutron l3 agent.