fa7d29b47e
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
82 lines
3.3 KiB
Django/Jinja
82 lines
3.3 KiB
Django/Jinja
---
|
|
# List of enabled Ironic hardware types.
|
|
enabled_hardware_types: "{{ kolla_bifrost_enabled_hardware_types | join(',') }}"
|
|
|
|
# IP address range for DHCP.
|
|
dhcp_pool_start: "{{ kolla_bifrost_dhcp_pool_start }}"
|
|
dhcp_pool_end: "{{ kolla_bifrost_dhcp_pool_end }}"
|
|
|
|
{% if kolla_bifrost_dnsmasq_router %}
|
|
# Default route provided to nodes via DHCP.
|
|
dnsmasq_router: "{{ kolla_bifrost_dnsmasq_router }}"
|
|
{% endif %}
|
|
|
|
{% if kolla_bifrost_dnsmasq_dns_servers %}
|
|
# DNS servers provided to nodes via DHCP.
|
|
dnsmasq_dns_servers: "{{ kolla_bifrost_dnsmasq_dns_servers | join(',') }}"
|
|
{% endif %}
|
|
|
|
{% if kolla_bifrost_domain %}
|
|
# DNS domain provided to nodes via DHCP.
|
|
domain: "{{ kolla_bifrost_domain }}"
|
|
{% endif %}
|
|
|
|
{% if kolla_bifrost_inspector_processing_hooks %}
|
|
# Comma-separated list of inspector processing plugins.
|
|
inspector_processing_hooks: "{{ kolla_bifrost_inspector_processing_hooks | join(',') }}"
|
|
{% endif %}
|
|
|
|
{% if kolla_bifrost_inspector_port_addition %}
|
|
# Which MAC addresses to add as ports during introspection. One of 'all',
|
|
# 'active' or 'pxe'.
|
|
inspector_port_addition: "{{ kolla_bifrost_inspector_port_addition }}"
|
|
{% endif %}
|
|
|
|
{% if kolla_bifrost_inspector_extra_kernel_options %}
|
|
# Extra kernel parameters for the inspector default PXE configuration.
|
|
inspector_extra_kernel_options: "{{ kolla_bifrost_inspector_extra_kernel_options | join(' ') }}"
|
|
{% endif %}
|
|
|
|
# Whether to download Ironic Python Agent (IPA) images.
|
|
download_ipa: "{{ kolla_bifrost_download_ipa }}"
|
|
|
|
# URL of Ironic Python Agent (IPA) kernel image.
|
|
ipa_kernel_upstream_url: "{{ kolla_bifrost_ipa_kernel_upstream_url }}"
|
|
|
|
# URL of checksum of Ironic Python Agent (IPA) kernel image.
|
|
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.
|
|
ipa_kernel_upstream_checksum_algo: "{{ kolla_bifrost_ipa_kernel_checksum_algorithm }}"
|
|
|
|
# URL of Ironic Python Agent (IPA) ramdisk image.
|
|
ipa_ramdisk_upstream_url: "{{ kolla_bifrost_ipa_ramdisk_upstream_url }}"
|
|
|
|
# URL of checksum of Ironic Python Agent (IPA) ramdisk image.
|
|
ipa_ramdisk_upstream_checksum_url: "{{ kolla_bifrost_ipa_ramdisk_checksum_url }}"
|
|
|
|
# Algorithm of checksum of Ironic Python Agent (IPA) ramdisk image.
|
|
ipa_ramdisk_upstream_checksum_algo: "{{ kolla_bifrost_ipa_ramdisk_checksum_algorithm }}"
|
|
|
|
{% if kolla_bifrost_extra_globals %}
|
|
###############################################################################
|
|
# Extra configuration
|
|
|
|
{{ kolla_bifrost_extra_globals|to_nice_yaml }}
|
|
{% endif %}
|