
Add power state change callbacks of an instance to nova by performing API requests. Whenever there is a change in the power state of a physical instance (example a "power on" or "power off" IPMI command is issued or the periodic ``_sync_power_states`` task detects a change in power state) ironic will create and send a ``power-update`` external event to nova using which nova will update the power state of the instance in its database. By conveying the power state changes to nova, ironic becomes the source of truth thus preventing nova from forcing wrong power states on the instance during the nova-ironic periodic sync. It also adds the possibility of bringing up/down a physical instance through the ironic API even if it was put down/up through the nova API. Note that ironic only sends requests to nova if the target power state is either "power on" or "power off". Other error states will be ignored. In cases where the power state change is originally coming from nova, the event will still be created and sent to nova and on the nova side it will be a no-op with a debug log saying the node is already powering on/off. NOTE: Although an exclusive lock (task_manager.upgrade_lock() method) is used when calling the nova API to send events, there can still be a race condition if the nova-ironic power sync happens to happen a nano-second before the power state change event is received from ironic in which case the nova state will be forced on the node. Credit for introducing ksa adapter: Eric Fried <openstack@fried.cc> Depends-On: https://review.opendev.org/#/c/645611/ Part of blueprint nova-support-instance-power-update Story: 2004969 Task: 29424 Change-Id: I6d105524e1645d9a40dfeae2850c33cf2d110826
1.4 KiB
Administrator's Guide
If you are a system administrator running Ironic, this section contains information that may help you understand how to operate and upgrade the services.
Drivers, Hardware Types and Hardware Interfaces <drivers> Ironic Python Agent <drivers/ipa> Node Hardware Inspection <inspection> Node Deployment <node-deployment> Node Cleaning <cleaning> Node Adoption <adoption> RAID Configuration <raid> BIOS Settings <bios> Node Rescuing <rescue> Configuring to boot from volume <boot-from-volume> Multi-tenant Networking <multitenancy> Port Groups <portgroups> Configuring Web or Serial Console <console> Enabling Notifications <notifications> Ceph Object Gateway <radosgw> Emitting Software Metrics <metrics> Auditing API Traffic <api-audit-support> Service State Reporting <gmr> Conductor Groups <conductor-groups> Upgrade Guide <upgrade-guide> Security <security> Windows Images <building-windows-images> Troubleshooting FAQ <troubleshooting> Power Sync with the Compute Service <power-sync>
deploy-steps
Dashboard Integration
A plugin for the OpenStack Dashboard (horizon) service is under development. Documentation for that can be found within the ironic-ui project.
Dashboard (horizon) plugin <https://docs.openstack.org/ironic-ui/latest>