summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2018-02-22 17:11:01 +0000
committerGerrit Code Review <review@openstack.org>2018-02-22 17:11:01 +0000
commit46828a2a509c9836684f0c5b7f8699fbe04c32cc (patch)
treeb9e1608cbe28978c29ee225523d306976784aa14
parentf51f1beae66824d19066e16f3ee441d469822847 (diff)
parent6f3e8927e69d6ef781786bbfbeb511f8611991d0 (diff)
downloadironic-46828a2a509c9836684f0c5b7f8699fbe04c32cc.tar.gz
Merge "Set 'initrd' to 'rescue_ramdisk' for rescue with iPXE" into stable/queens10.1.1
-rw-r--r--ironic/drivers/modules/ipxe_config.template2
-rw-r--r--ironic/drivers/modules/pxe.py2
-rw-r--r--ironic/tests/unit/common/test_pxe_utils.py2
-rw-r--r--ironic/tests/unit/drivers/modules/test_pxe.py2
-rw-r--r--releasenotes/notes/bug-1749860-457292cf62e18a0e.yaml6
5 files changed, 13 insertions, 1 deletions
diff --git a/ironic/drivers/modules/ipxe_config.template b/ironic/drivers/modules/ipxe_config.template
index 5b6be48a2..5fba7215e 100644
--- a/ironic/drivers/modules/ipxe_config.template
+++ b/ironic/drivers/modules/ipxe_config.template
@@ -4,7 +4,7 @@ goto deploy
:deploy
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
boot
diff --git a/ironic/drivers/modules/pxe.py b/ironic/drivers/modules/pxe.py
index 20b7f013e..486623779 100644
--- a/ironic/drivers/modules/pxe.py
+++ b/ironic/drivers/modules/pxe.py
@@ -171,6 +171,8 @@ def _build_deploy_pxe_options(task, pxe_info, mode='deploy'):
else:
pxe_opts[option] = pxe_utils.get_path_relative_to_tftp_root(
pxe_info[label][1])
+ if CONF.pxe.ipxe_enabled:
+ pxe_opts['initrd_filename'] = ramdisk_label
return pxe_opts
diff --git a/ironic/tests/unit/common/test_pxe_utils.py b/ironic/tests/unit/common/test_pxe_utils.py
index 9b16addc0..6761a3388 100644
--- a/ironic/tests/unit/common/test_pxe_utils.py
+++ b/ironic/tests/unit/common/test_pxe_utils.py
@@ -57,6 +57,7 @@ class TestPXEUtils(db_base.DbTestCase):
'deployment_ari_path': 'http://1.2.3.4:1234/deploy_ramdisk',
'aki_path': 'http://1.2.3.4:1234/kernel',
'ari_path': 'http://1.2.3.4:1234/ramdisk',
+ 'initrd_filename': 'deploy_ramdisk',
})
self.ipxe_options_timeout = self.ipxe_options.copy()
@@ -73,6 +74,7 @@ class TestPXEUtils(db_base.DbTestCase):
'username': 'fake_username',
'password': 'fake_password'
})
+ self.ipxe_options_boot_from_volume.pop('initrd_filename', None)
self.node = object_utils.create_test_node(self.context)
diff --git a/ironic/tests/unit/drivers/modules/test_pxe.py b/ironic/tests/unit/drivers/modules/test_pxe.py
index 575427da3..62826883f 100644
--- a/ironic/tests/unit/drivers/modules/test_pxe.py
+++ b/ironic/tests/unit/drivers/modules/test_pxe.py
@@ -414,6 +414,7 @@ class PXEPrivateMethodsTestCase(db_base.DbTestCase):
'ipxe_timeout': ipxe_timeout_in_ms,
'ari_path': ramdisk,
'aki_path': kernel,
+ 'initrd_filename': ramdisk_label,
}
if mode == 'rescue':
@@ -430,6 +431,7 @@ class PXEPrivateMethodsTestCase(db_base.DbTestCase):
'password': 'fake_password'})
expected_options.pop('deployment_aki_path')
expected_options.pop('deployment_ari_path')
+ expected_options.pop('initrd_filename')
with task_manager.acquire(self.context, self.node.uuid,
shared=True) as task:
diff --git a/releasenotes/notes/bug-1749860-457292cf62e18a0e.yaml b/releasenotes/notes/bug-1749860-457292cf62e18a0e.yaml
new file mode 100644
index 000000000..b053d153e
--- /dev/null
+++ b/releasenotes/notes/bug-1749860-457292cf62e18a0e.yaml
@@ -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.