diff options
4 files changed, 46 insertions, 1 deletions
diff --git a/ansible/roles/ironic/defaults/main.yml b/ansible/roles/ironic/defaults/main.yml index e9e2163fe..c7f746cb2 100644 --- a/ansible/roles/ironic/defaults/main.yml +++ b/ansible/roles/ironic/defaults/main.yml @@ -362,3 +362,23 @@ ironic_copy_certs: "{{ kolla_copy_ca_into_containers | bool or ironic_enable_tls # WSGI ############ ironic_wsgi_provider: "uwsgi" + +############ +# NTP +############ +# If set, pass this NTP server via the kernel command line to IPA +ironic_ntp_server: "" + +#################### +# Kernel Parameters +#################### +ironic_kernel_append_params_default: + - "nofb" + - "nomodeset" + - "vga=normal" + - "console=tty0" + - "console=ttyS0,{{ ironic_console_serial_speed }}" + - "{% if ironic_ntp_server is not none and ironic_ntp_server | length > 0 %}ipa-ntp-server={{ ironic_ntp_server }}{% endif %}" + +ironic_kernel_append_params_extras: [] +ironic_kernel_append_params: "{{ (ironic_kernel_append_params_default + ironic_kernel_append_params_extras) | select() | join(' ') }}" diff --git a/ansible/roles/ironic/templates/ironic.conf.j2 b/ansible/roles/ironic/templates/ironic.conf.j2 index 7ed1a9e9d..9cc4fd78e 100644 --- a/ansible/roles/ironic/templates/ironic.conf.j2 +++ b/ansible/roles/ironic/templates/ironic.conf.j2 @@ -178,7 +178,7 @@ deploy_logs_storage_backend = local deploy_logs_collect = always [pxe] -kernel_append_params = nofb nomodeset vga=normal console=tty0 console=ttyS0,{{ ironic_console_serial_speed }} +kernel_append_params = {{ ironic_kernel_append_params }} tftp_root = /var/lib/ironic/tftpboot tftp_master_path = /var/lib/ironic/master_images tftp_server = {{ api_interface_address }} diff --git a/doc/source/reference/bare-metal/ironic-guide.rst b/doc/source/reference/bare-metal/ironic-guide.rst index fbbe00ff2..962ece762 100644 --- a/doc/source/reference/bare-metal/ironic-guide.rst +++ b/doc/source/reference/bare-metal/ironic-guide.rst @@ -146,6 +146,22 @@ The port used for conductor's HTTP server is controlled via ironic_http_port: "8089" +Configure Ironic Python Agent NTP server (optional) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +The Ironic Python Agent requires that the system clock is set correctly for +the heartbeat mechanism to work. One way of achieving this is to pass +the address of an NTP server via the kernel commandline, which is then +used to set the system clock when IPA first starts. This is not a hard +requirement, and you may use other methods. For example DHCP, or functionality +built into the BMC. + +If you wish to use this option you can set ``ironic_ntp_server`` in +``/etc/kolla/globals.yml``. Eg. + +.. code-block:: yaml + + ironic_ntp_server: "192.168.33.3" + Revert to plain PXE (not recommended) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Starting with Yoga, Ironic has changed the default PXE from plain PXE to iPXE. diff --git a/releasenotes/notes/ironic-parameter-ntp-rework-672efa37e5cc918f.yaml b/releasenotes/notes/ironic-parameter-ntp-rework-672efa37e5cc918f.yaml new file mode 100644 index 000000000..4cb0b07b0 --- /dev/null +++ b/releasenotes/notes/ironic-parameter-ntp-rework-672efa37e5cc918f.yaml @@ -0,0 +1,9 @@ +--- +features: + - | + Adds explicit support for passing through the ``ipa-ntp-server`` setting + via the kernel commandline to the Ironic Python Agent. + + You can now also use ``ironic_kernel_append_params`` to provide + additional arguments to the kernel command line when booting the Ironic + Python Agent. |
