diff --git a/ansible/roles/kolla-openstack/defaults/main.yml b/ansible/roles/kolla-openstack/defaults/main.yml index 677d3ed96..284b189b2 100644 --- a/ansible/roles/kolla-openstack/defaults/main.yml +++ b/ansible/roles/kolla-openstack/defaults/main.yml @@ -189,6 +189,9 @@ kolla_ironic_pxe_append_params: [] # Free form extra configuration to append to ironic.conf. kolla_extra_ironic: +# Enable iPXE support in Ironic +kolla_enable_ironic_ipxe: + ############################################################################### # Ironic inspector configuration. diff --git a/ansible/roles/kolla-openstack/tasks/config.yml b/ansible/roles/kolla-openstack/tasks/config.yml index f53c02498..ec47ecc56 100644 --- a/ansible/roles/kolla-openstack/tasks/config.yml +++ b/ansible/roles/kolla-openstack/tasks/config.yml @@ -31,6 +31,7 @@ - { src: neutron.conf.j2, dest: neutron.conf, enabled: "{{ kolla_enable_neutron }}" } - { src: nova.conf.j2, dest: nova.conf, enabled: "{{ kolla_enable_nova }}" } - { src: pxelinux.default.j2, dest: ironic/pxelinux.default, enabled: "{{ kolla_enable_ironic }}" } + - { src: inspector.ipxe.j2, dest: ironic/inspector.ipxe, enabled: "{{ kolla_enable_ironic_ipxe }}" } - { src: sahara.conf.j2, dest: sahara.conf, enabled: "{{ kolla_enable_sahara }}" } - { src: zookeeper.cfg.j2, dest: zookeeper.cfg, enabled: "{{ kolla_enable_zookeeper }}" } when: item.enabled | bool diff --git a/ansible/roles/kolla-openstack/templates/inspector.ipxe.j2 b/ansible/roles/kolla-openstack/templates/inspector.ipxe.j2 new file mode 100644 index 000000000..adfb21064 --- /dev/null +++ b/ansible/roles/kolla-openstack/templates/inspector.ipxe.j2 @@ -0,0 +1,10 @@ +#!ipxe + +:retry_dhcp +dhcp || goto retry_dhcp + +:retry_boot +imgfree +kernel --timeout 30000 {% raw %}{{ ironic_ipxe_url }}/ironic-agent.kernel{% endraw %} ipa-inspection-callback-url={% raw %}http://{{ kolla_internal_vip_address }}:{{ ironic_inspector_port }}/v1/continue{% endraw %} systemd.journald.forward_to_console=yes {{ kolla_inspector_extra_kernel_options | join(' ') }} {% raw %}BOOTIF=${mac}{% endraw %} || goto retry_boot +initrd --timeout 30000 {% raw %}{{ ironic_ipxe_url }}/ironic-agent.initramfs{% endraw %} || goto retry_boot +boot diff --git a/ansible/roles/kolla-openstack/vars/main.yml b/ansible/roles/kolla-openstack/vars/main.yml index c9bc44795..b9e1861b2 100644 --- a/ansible/roles/kolla-openstack/vars/main.yml +++ b/ansible/roles/kolla-openstack/vars/main.yml @@ -70,6 +70,7 @@ kolla_openstack_custom_config: - ironic-agent.kernel - ironic-dnsmasq.conf - pxelinux.default + - inspector.ipxe # Kafka. - src: "{{ kolla_extra_config_path }}/kafka" dest: "{{ kolla_node_custom_config_path }}/kafka" diff --git a/releasenotes/notes/fix-inspection-when-using-ipxe-9bf6ed9e6456840b.yaml b/releasenotes/notes/fix-inspection-when-using-ipxe-9bf6ed9e6456840b.yaml new file mode 100644 index 000000000..d27634fd3 --- /dev/null +++ b/releasenotes/notes/fix-inspection-when-using-ipxe-9bf6ed9e6456840b.yaml @@ -0,0 +1,9 @@ +--- +fixes: + - | + Fixes an issue with introspection data not being collected + when iPXE was enabled. This meant that certain + introspection rules were not being applied. Notably, the + local_link_connection field would not be updated on the + ironic ports. +