deec7f4a92
Currently all almost all of the deployment process is contained in a single deploy step called deploy, on the deploy interface. This restricts the customisation that can be applied via deploy steps, since steps may only be added before or after this step. This change allows deploy interfaces inheriting agent_base.AgentDeployMixin to be used with in-band deploy steps. It is implemented by decomposing the reboot_and_finish_deploy call into three deploy steps: * tear_down_agent (priority 40) * switch_to_tenant_network (priority 30) * boot_instance (priority 20) All steps with priorities between 99 and 41 can run in-band. Backwards compatibility with drivers that do not support decomposed steps is maintained via a 'has_decomposed_deploy_steps' method on the agent heartbeat mixin. The old reboot_and_finish_deploy call is also left for compatibility but does nothing since the new steps will be automatically run. Change-Id: Ie4fdd195efa941165e22bd4ce9484988a1760b2d Story: #2006963 Task: #40151
24 lines
1.1 KiB
YAML
24 lines
1.1 KiB
YAML
---
|
|
features:
|
|
- |
|
|
Adds support for running custom in-band deploy steps when provisioning.
|
|
Step priorities from 41 to 59 can be used for steps that run after
|
|
the image is written and the bootloader is installed.
|
|
deprecations:
|
|
- |
|
|
Running the whole deployment process as a monolithic ``deploy.deploy``
|
|
deploy step is now deprecated. In a future release this step will only be
|
|
used to prepare deployment and starting the agent, and special handling
|
|
will be removed. All third party deploy interfaces must be updated
|
|
to provide real deploy steps instead and set the
|
|
``has_decomposed_deploy_steps`` attribute to ``True`` on the deploy
|
|
interface level.
|
|
other:
|
|
- |
|
|
As part of the agent deploy interfaces refactoring, breaking changes will
|
|
be made to implementations of ``AgentDeploy`` and ``ISCSIDeploy``.
|
|
Third party deploy interfaces must be updated to inherit
|
|
``HeartbeatMixin``, ``AgentBaseMixin`` or ``AgentDeployMixin``
|
|
from ``ironic.drivers.modules.agent_base`` instead since their API is
|
|
considered more stable.
|