Since the documentation PTI job config was implemented in zuul, the local docs builds no longer matched the builds performed by zuul in terms of treating warnings as errors. Adds flag to treat warnings as errors, and addresses the numerous formatting issues that resulted in errors. In some cases, the footnote no longer made sense to retain and was as such removed. Change-Id: Ie80d9c4480507c52fd0f3eee41fd6478e4c5c758
3.8 KiB
iPXE to use Swift Temporary URLs
https://bugs.launchpad.net/ironic/+bug/1526404
This adds support for generating Swift temporary URLs for the deploy ramdisk and kernel when booting with iPXE.
Problem description
Currently the iPXE driver requires an external HTTP server to serve
the deploy ramdisk and kernel. When used with Glance, the
ironic-conductor
fetches the images from it and place them
under the HTTP root directory, and if a rebalance happens in the hash
right the new ironic-conductor
taking over the node have to
do the same thing, fetch the images and cache it locally to be able to
manage that node.
Having an external HTTP server should not be required when Glance is used with a Swift backend, with Swift we can generate temporary URLs that can be passed to iPXE to download the images without requiring credentials.
Proposed change
The proposed implementation consists in having the iPXE driver to create a Swift tempurl1 for the deploy ramdisk and kernel that the node will boot as part of the config generation.
This also proposes adding a boolean configuration option under the
pxe
group called ipxe_use_swift
. If True this
will tell iPXE to not cache the images in the disk and generate the
Swift tempurl for the ramdisk and kernel, if False, iPXE will continue
to cache the images under the HTTP root directory. Defaults to
False.
Note that in order to keep compatibility with Nova behavior,
kernel/ramdisk of the user image still have to be cached in case
netboot
is required. Doing otherwise will make it
impossible for user to reboot the instance from within when tempurls
have expired or the image is deleted from Glance altogether.
Alternatives
Continue to use an external HTTP server and caching the images on the disk.
Data model impact
None
State Machine Impact
None
REST API impact
None
Client (CLI) impact
None
RPC API impact
None
Driver API impact
None
Nova driver impact
None
Ramdisk impact
N/A
Security impact
There's a positive security impact because the Swift temporary URLs does have an expiration time and the images in the external HTTP server will be available until the instance is destroyed.
Other end user impact
None
Scalability impact
There is a scaling benefit to download directly from Swift since a Swift cluster can be scaled horizontally by adding new nodes.
Performance Impact
None
Other deployer impact
None
Developer impact
None
Implementation
Assignee(s)
- Primary assignee:
-
lucasagomes <lucasagomes@gmail.com>
- Other contributors:
-
pshchelo <shchelokovskyy@gmail.com>
Work Items
- Add the new
ipxe_use_swift
configuration option under thepxe
group. - Get the PXE driver to generate the Swift temporary URLs as part of
the configuration generation when
ipxe_use_swift
is True. - Skip caching the image on the disk when
ipxe_use_swift
is True.
Dependencies
None
Testing
Unittests will be added.
Upgrades and Backwards Compatibility
None
Documentation Impact
The iPXE documentation will be updated to reflect the changes made by this spec.