
In the recent change to cinder, to address CVE-2023-2088, cinder changed the policy rules and behavior for unbinding, or "detaching" a volume. This was because of a vulnerability in compute nodes where a volume which was in use by a VM could be detached outside of Nova, and nova wouldn't become aware the volume was detached, and the volume could be accessible to the next VM. This vulnerability doesn't apply to bare metal operations as volumes are attached to whole baremetal nodes with Ironic. We now generate and use a service token when interacting with Cinder which allows cinder to recognize "this request is coming from a fellow OpenStack service", and by-pass checking with Nova if the "instance" is managed by Nova, or Not. This allows the volumes to be attached, and detached as needed as part of the power operation flow and overall set of lifecycle operations. Related-Bug: 2004555 Closes-Bug: 2019892 Change-Id: Ib258bc9650496da989fc93b759b112d279c8b217
Ironic
Team and repository tags
Overview
Ironic consists of an API and plug-ins for managing and provisioning physical machines in a security-aware and fault-tolerant manner. It can be used with nova as a hypervisor driver, or standalone service using bifrost. By default, it will use PXE and IPMI to interact with bare metal machines. Ironic also supports vendor-specific plug-ins which may implement additional functionality.
Ironic is distributed under the terms of the Apache License, Version 2.0. The full terms and conditions of this license are detailed in the LICENSE file.
Project resources
- Documentation: https://docs.openstack.org/ironic/latest
- Source: https://opendev.org/openstack/ironic
- Bugs: https://storyboard.openstack.org/#!/project/943
- Wiki: https://wiki.openstack.org/wiki/Ironic
- APIs: https://docs.openstack.org/api-ref/baremetal/index.html
- Release Notes: https://docs.openstack.org/releasenotes/ironic/
- Design Specifications: https://specs.openstack.org/openstack/ironic-specs/
Project status, bugs, and requests for feature enhancements (RFEs) are tracked in StoryBoard: https://storyboard.openstack.org/#!/project/943
For information on how to contribute to ironic, see https://docs.openstack.org/ironic/latest/contributor