Files
fuel-docs/devdocs/develop/sequence.rst
Dzmitry Moisa 931509ef44 Replace PlantUML descriptions with static png
Replace PlantUML descriptions with static pictures as PlantUML is not
supported in gate. Remove all the related stuff from configs and
scripts.

Change-Id: I905153ef7d93a1248c76818048f58e24fc1d556d
Implements: blueprints.launchpad.net/fuel/+spec/fuel-docs-migration
2016-03-29 21:02:23 +03:00

42 lines
1.8 KiB
ReStructuredText

Sequence Diagrams
=================
OS Provisioning
---------------
.. image:: _images/uml/nodes_provisioning.png
:width: 100%
Networks Verification
---------------------
.. image:: _images/uml/network_verification.png
:width: 100%
Details on Cluster Provisioning & Deployment (via Facter extension)
-------------------------------------------------------------------
.. image:: _images/uml/cluster_deployment.png
:width: 100%
Once deploy and provisioning messages are accepted by Astute, provisioning
method is called. Provisioning part creates system in Cobbler and
calls reboot over Cobbler. Then Astute uses `MCollective direct addressing
mode
<http://www.devco.net/archives/2012/06/19/mcollective-direct-addressing-mode.ph
p>`_
to check if all required nodes are available, include puppet agent on them. If
some nodes are not yet ready, Astute waits for a few seconds and tries to
request again. When nodes are booted in target OS, Astute uses upload_file
MCollective plugin to push data to a special file */etc/astute.yaml* on the
target system.
Data include role and all other variables needed for deployment. Then, Astute
calls puppetd MCollective plugin to start deployment. Puppet is started on
nodes.
Accordingly, puppet agent starts its run. Modules contain facter extension,
which runs before deployment. Extension reads data from */etc/astute.yaml*
placed by mcollective, and extends Facter data with it as a single fact, which
is then parsed by *parseyaml* function to create *$::fuel_settings* data
structure. This structure contains all variables as a single hash and
supports embedding of other rich structures such as nodes hash or arrays.
Case structure in running class chooses appropriate class to import,
based on *role* and *deployment_mode* variables found in */etc/astute.yaml*.