Skip to content
Snippets Groups Projects
Commit fa7d29b4 authored by Mark Goddard's avatar Mark Goddard
Browse files

Fix overcloud provisioning due to Bifrost IPA rename

Kolla recently upgraded bifrost from 7.0.0 to 7.1.0 on the stable/train
branch. This switched to IPA builder to build the IPA image, and
introduced a rename of the IPA kernel file from ipa.vmlinuz to
ipa.kernel, which breaks overcloud provisioning. The iPXE kernel
download fails with a 404, since Kayobe introspection rules use
ipa.vmlinuz for the driver_info.deploy_kernel URL.

This change works around the issue by setting two Bifrost variables,
ipa_kernel and ipa_kernel_url, to reference the old kernel filename of
ipa.vmlinuz. This works both in the case where the image is downloaded
from a URL (ipa_kernel sets the destination file name), and where it is
built via 'kayobe seed deployment image build' (kayobe uses the legacy
ironic-agent DIB element rather than IPA builder, which creates a
hardlink to ipa.vmlinuz).

We chose the above approach rather than switching to IPA builder due to
it being a less risky change at a time close to release. A future
release of Kayobe should switch to IPA builder, but this will be a
larger effort.

[1] https://review.opendev.org/#/c/692200/1/playbooks/roles/bifrost-ironic-install/defaults/main.yml

Change-Id: I7f75c25602fd7ae4bfeb6abbdd3b42d8ee465abf
Story: 2007068
Task: 37951
parent 4acc1b64
No related branches found
No related tags found
No related merge requests found
...@@ -46,6 +46,21 @@ ipa_kernel_upstream_url: "{{ kolla_bifrost_ipa_kernel_upstream_url }}" ...@@ -46,6 +46,21 @@ ipa_kernel_upstream_url: "{{ kolla_bifrost_ipa_kernel_upstream_url }}"
# URL of checksum of Ironic Python Agent (IPA) kernel image. # URL of checksum of Ironic Python Agent (IPA) kernel image.
ipa_kernel_upstream_checksum_url: "{{ kolla_bifrost_ipa_kernel_checksum_url }}" ipa_kernel_upstream_checksum_url: "{{ kolla_bifrost_ipa_kernel_checksum_url }}"
# NOTE(mgoddard): In bifrost 7.1.0, the default for ipa_kernel and
# ipa_kernel_url was changed from .vmlinuz to .kernel. This broke our inspector
# rule which uses .vmlinuz when setting driver_info.deploy_kernel. It will also
# break existing nodes if the IPA kernel is updated e.g. following an upgrade.
# Use the old value of .vmlinuz here.
# TODO(mgoddard): Remove these when we use IPA builder.
{# Using double jinja escaping here since this will be templated by kayobe #}
{# and kolla ansible, then interpreted as Ansible variables by Bifrost. #}
{{ '{% raw %}' }}
{% raw %}
ipa_kernel: "{{http_boot_folder}}/ipa.vmlinuz"
ipa_kernel_url: "{{ ipa_file_protocol }}://{{ hostvars[inventory_hostname]['ansible_' + ans_network_interface]['ipv4']['address'] }}:{{file_url_port}}/ipa.vmlinuz"
{% endraw %}
{{ '{% endraw %}' }}
# Algorithm of checksum of Ironic Python Agent (IPA) kernel image. # Algorithm of checksum of Ironic Python Agent (IPA) kernel image.
ipa_kernel_upstream_checksum_algo: "{{ kolla_bifrost_ipa_kernel_checksum_algorithm }}" ipa_kernel_upstream_checksum_algo: "{{ kolla_bifrost_ipa_kernel_checksum_algorithm }}"
......
---
fixes:
- |
Fixes an issue seen during overcloud provisioning due to Bifrost renaming
the IPA kernel file. See `story 2007068
<https://storyboard.openstack.org/#!/story/2007068>`__ for details.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment