191 lines
3.5 KiB
Plaintext
191 lines
3.5 KiB
Plaintext
' The png image can be generated by running:
|
|
'
|
|
' plantuml fast_fw_upgrade.plantuml
|
|
|
|
@startuml
|
|
|
|
actor User
|
|
participant Mistral
|
|
participant Heat
|
|
participant Ansible
|
|
participant Nodes
|
|
' in newer versions of plantuml we should use: collections Nodes
|
|
|
|
|
|
' === FFWD-UPGRADE PREPARE ===
|
|
|
|
User -> Mistral : openstack overcloud\nffwd-upgrade prepare
|
|
activate Mistral
|
|
|
|
Mistral -> Mistral : plan update
|
|
|
|
Mistral -> Heat : stack update
|
|
activate Heat
|
|
|
|
Heat --> Mistral
|
|
deactivate Heat
|
|
|
|
Mistral --> User
|
|
deactivate Mistral
|
|
|
|
|
|
' === FFWD-UPGRADE RUN ===
|
|
|
|
User -> Mistral : openstack overcloud\nffwd-upgrade run
|
|
activate Mistral
|
|
note right of Heat
|
|
* Operates on all overcloud nodes.
|
|
* Intended usage:
|
|
* On bootstrap nodes it shuts down services and
|
|
performs upgrade to N+1 and N+2.
|
|
* On other nodes it just shuts down services.
|
|
end note
|
|
|
|
Mistral -> Heat : query stack outputs
|
|
activate Heat
|
|
|
|
Heat --> Mistral : stack outputs
|
|
deactivate Heat
|
|
|
|
Mistral -> Mistral : generate playbooks
|
|
|
|
Mistral -> Ansible : fast_forward_upgrade_playbook.yaml
|
|
activate Ansible
|
|
|
|
Ansible -> Nodes : fast_forward_upgrade_tasks\n(once per each release)
|
|
activate Nodes
|
|
|
|
Nodes --> Ansible
|
|
deactivate Nodes
|
|
|
|
Ansible -> Nodes : fast_forward_post_upgrade_tasks
|
|
activate Nodes
|
|
|
|
Nodes --> Ansible
|
|
deactivate Nodes
|
|
|
|
Ansible --> Mistral
|
|
deactivate Ansible
|
|
|
|
Mistral --> User :
|
|
deactivate Mistral
|
|
|
|
|
|
' === UPGRADE RUN ===
|
|
|
|
User -> Mistral : openstack overcloud\nupgrade run
|
|
activate Mistral
|
|
note right of Heat
|
|
* Reuse of the normal upgrade command.
|
|
* Operates on all selected nodes in parallel.
|
|
* Note the separate ansible-playbook invocations:
|
|
facts aren't carried over between playbooks.
|
|
* Intended usage:
|
|
* Upgrades bootstrap nodes from N+2 to N+3.
|
|
* Upgrades other nodes from N to N+3.
|
|
end note
|
|
|
|
Mistral -> Heat : query stack outputs
|
|
activate Heat
|
|
|
|
Heat --> Mistral : stack outputs
|
|
deactivate Heat
|
|
|
|
Mistral -> Mistral : generate playbooks
|
|
|
|
Mistral -> Ansible : upgrade_steps_playbook.yaml
|
|
activate Ansible
|
|
|
|
Ansible -> Nodes : upgrade_tasks all steps
|
|
activate Nodes
|
|
|
|
Nodes --> Ansible
|
|
deactivate Nodes
|
|
|
|
Ansible --> Mistral
|
|
deactivate Ansible
|
|
|
|
Mistral -> Ansible : deploy_steps_playbook.yaml
|
|
activate Ansible
|
|
|
|
Ansible -> Nodes : host_prep_tasks
|
|
activate Nodes
|
|
|
|
Nodes --> Ansible
|
|
deactivate Nodes
|
|
|
|
Ansible -> Nodes : deploy_tasks all steps
|
|
activate Nodes
|
|
|
|
Nodes --> Ansible
|
|
deactivate Nodes
|
|
|
|
Ansible --> Mistral
|
|
deactivate Ansible
|
|
|
|
Mistral -> Ansible : post_upgrade_steps_playbook.yaml
|
|
activate Ansible
|
|
|
|
Ansible -> Nodes : post_upgrade_tasks all steps
|
|
activate Nodes
|
|
|
|
Nodes --> Ansible
|
|
deactivate Nodes
|
|
|
|
Ansible --> Mistral
|
|
deactivate Ansible
|
|
|
|
Mistral --> User :
|
|
deactivate Mistral
|
|
|
|
|
|
' === FFWD-UPGRADE CONVERGE ===
|
|
|
|
User -> Mistral : openstack overcloud\nffwd-upgrade converge
|
|
activate Mistral
|
|
note right of Heat
|
|
* Essentially the same as `overcloud deploy`,
|
|
asserts that the state of overcloud matches
|
|
the latest templates.
|
|
end note
|
|
|
|
Mistral -> Mistral : plan update
|
|
|
|
Mistral -> Heat : stack update
|
|
activate Heat
|
|
|
|
Heat --> Mistral
|
|
deactivate Heat
|
|
|
|
Mistral -> Heat : query stack outputs
|
|
activate Heat
|
|
|
|
Heat --> Mistral : stack outputs
|
|
deactivate Heat
|
|
|
|
Mistral -> Mistral : generate playbooks
|
|
|
|
Mistral -> Ansible : deploy_steps_playbook.yaml
|
|
activate Ansible
|
|
|
|
Ansible -> Nodes : host_prep_tasks
|
|
activate Nodes
|
|
|
|
Nodes --> Ansible
|
|
deactivate Nodes
|
|
|
|
Ansible -> Nodes : deploy_tasks and external_deploy_tasks\nall steps (interleaved)
|
|
activate Nodes
|
|
|
|
Nodes --> Ansible
|
|
deactivate Nodes
|
|
|
|
Ansible --> Mistral
|
|
deactivate Ansible
|
|
|
|
Mistral --> User :
|
|
deactivate Mistral
|
|
|
|
|
|
@enduml
|