Set 'initrd' to 'rescue_ramdisk' for rescue with iPXE
The kernel paramter 'initrd' is hard-coded as 'deploy_ramdisk' in iPXE config template. A rescue ramdisk may fail to boot due to this wrong paramter. This patch sets this 'initrd' paramter properly to 'deploy_ramdisk' or 'rescue_ramdisk' by adding a new pxe option. Change-Id: I8ad1223dc289bbe915ee4ca8db66c8f80bf08f15 Closes-Bug: 1749860
This commit is contained in:
parent
4df93fc474
commit
8f2e487b2b
@ -4,7 +4,7 @@ goto deploy
|
|||||||
|
|
||||||
:deploy
|
:deploy
|
||||||
imgfree
|
imgfree
|
||||||
kernel {% if pxe_options.ipxe_timeout > 0 %}--timeout {{ pxe_options.ipxe_timeout }} {% endif %}{{ pxe_options.deployment_aki_path }} selinux=0 troubleshoot=0 text {{ pxe_options.pxe_append_params|default("", true) }} ip=${ip}:${next-server}:${gateway}:${netmask} BOOTIF=${mac} ipa-api-url={{ pxe_options['ipa-api-url'] }} initrd=deploy_ramdisk coreos.configdrive=0 || goto deploy
|
kernel {% if pxe_options.ipxe_timeout > 0 %}--timeout {{ pxe_options.ipxe_timeout }} {% endif %}{{ pxe_options.deployment_aki_path }} selinux=0 troubleshoot=0 text {{ pxe_options.pxe_append_params|default("", true) }} ip=${ip}:${next-server}:${gateway}:${netmask} BOOTIF=${mac} ipa-api-url={{ pxe_options['ipa-api-url'] }} initrd={{ pxe_options.initrd_filename|default("deploy_ramdisk", true) }} coreos.configdrive=0 || goto deploy
|
||||||
|
|
||||||
initrd {% if pxe_options.ipxe_timeout > 0 %}--timeout {{ pxe_options.ipxe_timeout }} {% endif %}{{ pxe_options.deployment_ari_path }} || goto deploy
|
initrd {% if pxe_options.ipxe_timeout > 0 %}--timeout {{ pxe_options.ipxe_timeout }} {% endif %}{{ pxe_options.deployment_ari_path }} || goto deploy
|
||||||
boot
|
boot
|
||||||
|
@ -178,6 +178,8 @@ def _build_deploy_pxe_options(task, pxe_info, mode='deploy'):
|
|||||||
else:
|
else:
|
||||||
pxe_opts[option] = pxe_utils.get_path_relative_to_tftp_root(
|
pxe_opts[option] = pxe_utils.get_path_relative_to_tftp_root(
|
||||||
pxe_info[label][1])
|
pxe_info[label][1])
|
||||||
|
if CONF.pxe.ipxe_enabled:
|
||||||
|
pxe_opts['initrd_filename'] = ramdisk_label
|
||||||
return pxe_opts
|
return pxe_opts
|
||||||
|
|
||||||
|
|
||||||
|
@ -57,6 +57,7 @@ class TestPXEUtils(db_base.DbTestCase):
|
|||||||
'deployment_ari_path': 'http://1.2.3.4:1234/deploy_ramdisk',
|
'deployment_ari_path': 'http://1.2.3.4:1234/deploy_ramdisk',
|
||||||
'aki_path': 'http://1.2.3.4:1234/kernel',
|
'aki_path': 'http://1.2.3.4:1234/kernel',
|
||||||
'ari_path': 'http://1.2.3.4:1234/ramdisk',
|
'ari_path': 'http://1.2.3.4:1234/ramdisk',
|
||||||
|
'initrd_filename': 'deploy_ramdisk',
|
||||||
})
|
})
|
||||||
|
|
||||||
self.ipxe_options_timeout = self.ipxe_options.copy()
|
self.ipxe_options_timeout = self.ipxe_options.copy()
|
||||||
@ -73,6 +74,7 @@ class TestPXEUtils(db_base.DbTestCase):
|
|||||||
'username': 'fake_username',
|
'username': 'fake_username',
|
||||||
'password': 'fake_password'
|
'password': 'fake_password'
|
||||||
})
|
})
|
||||||
|
self.ipxe_options_boot_from_volume.pop('initrd_filename', None)
|
||||||
|
|
||||||
self.node = object_utils.create_test_node(self.context)
|
self.node = object_utils.create_test_node(self.context)
|
||||||
|
|
||||||
|
@ -415,6 +415,7 @@ class PXEPrivateMethodsTestCase(db_base.DbTestCase):
|
|||||||
'ipxe_timeout': ipxe_timeout_in_ms,
|
'ipxe_timeout': ipxe_timeout_in_ms,
|
||||||
'ari_path': ramdisk,
|
'ari_path': ramdisk,
|
||||||
'aki_path': kernel,
|
'aki_path': kernel,
|
||||||
|
'initrd_filename': ramdisk_label,
|
||||||
}
|
}
|
||||||
|
|
||||||
if mode == 'rescue':
|
if mode == 'rescue':
|
||||||
@ -431,6 +432,7 @@ class PXEPrivateMethodsTestCase(db_base.DbTestCase):
|
|||||||
'password': 'fake_password'})
|
'password': 'fake_password'})
|
||||||
expected_options.pop('deployment_aki_path')
|
expected_options.pop('deployment_aki_path')
|
||||||
expected_options.pop('deployment_ari_path')
|
expected_options.pop('deployment_ari_path')
|
||||||
|
expected_options.pop('initrd_filename')
|
||||||
|
|
||||||
with task_manager.acquire(self.context, self.node.uuid,
|
with task_manager.acquire(self.context, self.node.uuid,
|
||||||
shared=True) as task:
|
shared=True) as task:
|
||||||
|
6
releasenotes/notes/bug-1749860-457292cf62e18a0e.yaml
Normal file
6
releasenotes/notes/bug-1749860-457292cf62e18a0e.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
fixes:
|
||||||
|
- |
|
||||||
|
Fixes rescue timeout due to incorrect kernel parameter in the iPXE script.
|
||||||
|
See `bug 1749860 <https://bugs.launchpad.net/ironic/+bug/1749860>`_ for
|
||||||
|
details.
|
Loading…
Reference in New Issue
Block a user