Skip to content

Commit b3c26ae

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "ironic: always enable conductor HTTP server" into stable/wallaby
2 parents 6832f8f + a7c13ad commit b3c26ae

File tree

4 files changed

+35
-6
lines changed

4 files changed

+35
-6
lines changed

ansible/roles/ironic/defaults/main.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,9 @@ ironic_services:
6464
ironic-ipxe:
6565
container_name: ironic_ipxe
6666
group: ironic-ipxe
67-
enabled: "{{ enable_ironic_ipxe | bool }}"
67+
# NOTE(mgoddard): This container is always enabled, since may be used by
68+
# the direct deploy driver.
69+
enabled: true
6870
image: "{{ ironic_pxe_image_full }}"
6971
volumes: "{{ ironic_ipxe_default_volumes + ironic_ipxe_extra_volumes }}"
7072
dimensions: "{{ ironic_ipxe_dimensions }}"

ansible/roles/ironic/templates/ironic.conf.j2

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,15 +184,18 @@ deploy_logs_collect = always
184184
[pxe]
185185
pxe_append_params = nofb nomodeset vga=normal console=tty0 console=ttyS0,{{ ironic_console_serial_speed }}
186186
{% if enable_ironic_ipxe | bool %}
187+
{# NOTE(mgoddard): iPXE uses the TFTP image cache (tftp_master_path, default
188+
/tftpboot/master_images), in which images get hard linked to the http_root
189+
directory (/httpboot). These must be on the same device, but /httpboot and
190+
/tftpboot live in separate Docker volumes. Override the default paths for
191+
iPXE to place them both in /httpboot. This prevents mixing PXE and iPXE. #}
187192
tftp_root = /httpboot
188193
tftp_master_path = /httpboot/master_images
189194
tftp_server = {{ api_interface_address }}
190195
{% endif %}
191196

192-
{% if enable_ironic_ipxe | bool %}
193197
[deploy]
194198
http_url = {{ ironic_ipxe_url }}
195-
{% endif %}
196199

197200
[oslo_middleware]
198201
enable_proxy_headers_parsing = True

doc/source/reference/bare-metal/ironic-guide.rst

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,11 @@ true in ``/etc/kolla/globals.yml``:
7474

7575
.. code-block:: yaml
7676
77-
enable_ironic_ipxe: "yes"
77+
enable_ironic_ipxe: "yes"
7878
79-
This will enable deployment of a docker container, called ironic_ipxe, running
80-
the web server which iPXE uses to obtain it's boot images.
79+
When iPXE booting is enabled, the ``ironic_ipxe`` container is used to serve
80+
the iPXE boot images as described below. Regardless of the setting above, the
81+
same container is used to support the ``direct`` deploy interface.
8182

8283
The port used for the iPXE webserver is controlled via ``ironic_ipxe_port`` in
8384
``/etc/kolla/globals.yml``:
@@ -95,6 +96,17 @@ The following changes will occur if iPXE booting is enabled:
9596
environment. You may also boot directly to iPXE by some other means e.g by
9697
burning it to the option rom of your ethernet card.
9798

99+
Note that due to a limitation in Kolla Ansible, PXE and iPXE cannot be used
100+
together in a single deployment.
101+
102+
In order to enable the iPXE driver in Ironic, set the ``[DEFAULT]
103+
enabled_boot_interfaces`` option in ``/etc/kolla/config/ironic.conf``:
104+
105+
.. code-block:: yaml
106+
107+
[DEFAULT]
108+
enabled_boot_interfaces = ipxe
109+
98110
Attach ironic to external keystone (optional)
99111
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
100112
In :kolla-ansible-doc:`multi-regional <user/multi-regions.html>` deployment
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
upgrade:
3+
- |
4+
An HTTP server is now always deployed for Ironic conductor, while
5+
previously it was only deployed when iPXE is enabled.
6+
7+
In the Wallaby release, Ironic changed the default deploy driver from
8+
iSCSI to direct. In the Xena release, Ironic removed the iSCSI driver.
9+
The recommended deploy driver is ``direct``, which uses HTTP to
10+
transfer the disk image.
11+
This requires an HTTP server, and the simplest option is to use the one
12+
previously deployed when ``enable_ironic_ipxe`` is set to ``true``.

0 commit comments

Comments
 (0)