A service for managing and provisioning Bare Metal servers.
Go to file
Dmitry Tantsur adec0f6f01
Add a reserved workers pool (5% by default)
I've seen a situation where heartbeats managed to completely saturate
the conductor workers, so that no API requests could come through that
required interaction with the conductor (i.e. everything other than
reads). Add periodic tasks for a large (thousands) number of nodes, and
you get a completely locked up Ironic.

This change reserves 5% (configurable) of the threads for API requests.
This is done by splitting one executor into two, of which the latter is
only used by normal _spawn_worker calls and only when the former is
exhausted. This allows an operator to apply a remediation, e.g. abort
some deployments or outright power off some nodes.

Partial-Bug: #2038438
Change-Id: Iacc62d33ffccfc11694167ee2a7bc6aad82c1f2f
2023-12-07 13:47:39 +01:00
api-ref Merge "Generic API for attaching/detaching virtual media" 2023-11-30 14:02:38 +00:00
devstack CI: Remove deprecated devstack method 2023-11-16 15:16:49 -08:00
doc Add a reserved workers pool (5% by default) 2023-12-07 13:47:39 +01:00
etc Bye-bye iSCSI deploy, you served us well 2021-05-04 14:28:25 +02:00
ironic Add a reserved workers pool (5% by default) 2023-12-07 13:47:39 +01:00
playbooks Enable OVN CI 2023-10-03 14:24:34 +00:00
redfish-interop-profiles Follow-up to Redfish Interop Profile 2022-11-30 12:08:56 -05:00
releasenotes Add a reserved workers pool (5% by default) 2023-12-07 13:47:39 +01:00
tools Merge "Fix missing oslo.versionedobjects library option" 2023-08-08 12:57:29 +00:00
zuul.d [trivial] remove note on non-voting snmp job 2023-12-01 09:15:59 +01:00
.gitignore Migrate to stestr as unit tests runner 2017-09-22 08:56:34 +00:00
.gitreview OpenDev Migration Patch 2019-04-19 19:40:53 +00:00
.mailmap Add my new address to .mailmap 2020-04-13 07:29:37 -07:00
.stestr.conf Migrate to stestr as unit tests runner 2017-09-22 08:56:34 +00:00
CONTRIBUTING.rst Project Contributing updates for Goal 2020-02-20 02:01:21 +00:00
LICENSE Added project infrastructure needs. 2013-05-02 14:55:43 -04:00
README.rst Update docs: Ironic uses launchpad now 2023-05-17 15:42:41 -07:00
bindep.txt Merge "Remove traces of Docker from devstack dependencies" 2023-10-06 22:15:08 +00:00
driver-requirements.txt Update proliantutils driver requirements for bobcat 2023-09-06 14:07:50 +00:00
requirements.txt Replace swiftclient usage with openstacksdk 2023-11-29 12:44:30 +13:00
setup.cfg [trivial] add Python 3.11 mention in setup.cfg 2023-11-07 14:16:53 +01:00
setup.py setup.py: Remove 'py_modules' 2023-01-04 12:01:18 +00:00
test-requirements.txt Migrate to pysnmp lextudio ecosystem 2023-05-11 08:52:52 +02:00
tox.ini tox: Remove basepython 2023-08-02 16:57:32 +08:00

README.rst

Ironic

Team and repository tags

image

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

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