298 lines
8.2 KiB
YAML
298 lines
8.2 KiB
YAML
---
|
|
version: '2.0'
|
|
name: tripleo.package_update.v1
|
|
description: TripleO update workflows
|
|
|
|
workflows:
|
|
|
|
# Updates a workload cloud stack
|
|
package_update_plan:
|
|
description: Take a container and perform a package update with possible breakpoints
|
|
|
|
input:
|
|
- container
|
|
- container_registry
|
|
- ceph_ansible_playbook
|
|
- timeout: 240
|
|
- queue_name: tripleo
|
|
- skip_deploy_identifier: False
|
|
- config_dir: '/tmp/'
|
|
|
|
tags:
|
|
- tripleo-common-managed
|
|
|
|
tasks:
|
|
update:
|
|
action: tripleo.package_update.update_stack
|
|
input:
|
|
timeout: <% $.timeout %>
|
|
container: <% $.container %>
|
|
container_registry: <% $.container_registry %>
|
|
ceph_ansible_playbook: <% $.ceph_ansible_playbook %>
|
|
on-success: clean_plan
|
|
on-error: set_update_failed
|
|
|
|
clean_plan:
|
|
action: tripleo.plan.update_plan_environment
|
|
input:
|
|
container: <% $.container %>
|
|
parameter: CephAnsiblePlaybook
|
|
env_key: parameter_defaults
|
|
delete: true
|
|
on-success: send_message
|
|
on-error: set_update_failed
|
|
|
|
|
|
set_update_failed:
|
|
on-success: send_message
|
|
publish:
|
|
status: FAILED
|
|
message: <% task(update).result %>
|
|
|
|
send_message:
|
|
action: zaqar.queue_post
|
|
input:
|
|
queue_name: <% $.queue_name %>
|
|
messages:
|
|
body:
|
|
type: tripleo.package_update.v1.package_update_plan
|
|
payload:
|
|
status: <% $.get('status', 'SUCCESS') %>
|
|
message: <% $.get('message', '') %>
|
|
execution: <% execution() %>
|
|
on-success:
|
|
- fail: <% $.get('status') = "FAILED" %>
|
|
|
|
get_config:
|
|
input:
|
|
- container
|
|
- queue_name: tripleo
|
|
|
|
tags:
|
|
- tripleo-common-managed
|
|
|
|
tasks:
|
|
get_config:
|
|
action: tripleo.config.get_overcloud_config container=<% $.container %>
|
|
publish:
|
|
status: SUCCESS
|
|
message: <% task().result %>
|
|
publish-on-error:
|
|
status: FAILED
|
|
message: Init Minor update failed
|
|
on-complete: send_message
|
|
|
|
send_message:
|
|
action: zaqar.queue_post
|
|
input:
|
|
queue_name: <% $.queue_name %>
|
|
messages:
|
|
body:
|
|
type: tripleo.package_update.v1.package_update_plan
|
|
payload:
|
|
status: <% $.get('status', 'SUCCESS') %>
|
|
message: <% $.get('message', '') %>
|
|
execution: <% execution() %>
|
|
on-success:
|
|
- fail: <% $.get('status') = "FAILED" %>
|
|
|
|
update_nodes:
|
|
description: Take a container and perform an update nodes by nodes
|
|
|
|
input:
|
|
- node_user: tripleo-admin
|
|
- nodes
|
|
- playbook
|
|
- inventory_file
|
|
- ansible_queue_name: tripleo
|
|
- module_path: /usr/share/ansible-modules
|
|
- ansible_extra_env_variables:
|
|
ANSIBLE_LOG_PATH: /var/log/mistral/package_update.log
|
|
ANSIBLE_HOST_KEY_CHECKING: 'False'
|
|
- verbosity: 1
|
|
- work_dir: /var/lib/mistral
|
|
- skip_tags: ''
|
|
|
|
tags:
|
|
- tripleo-common-managed
|
|
|
|
tasks:
|
|
download_config:
|
|
action: tripleo.config.download_config
|
|
input:
|
|
work_dir: <% $.work_dir %>/<% execution().id %>
|
|
on-success: get_private_key
|
|
on-error: node_update_failed
|
|
|
|
get_private_key:
|
|
action: tripleo.validations.get_privkey
|
|
publish:
|
|
private_key: <% task().result %>
|
|
on-success: node_update
|
|
|
|
node_update:
|
|
action: tripleo.ansible-playbook
|
|
input:
|
|
inventory: <% $.inventory_file %>
|
|
playbook: <% $.work_dir %>/<% execution().id %>/<% $.playbook %>
|
|
remote_user: <% $.node_user %>
|
|
become: true
|
|
become_user: root
|
|
verbosity: <% $.verbosity %>
|
|
ssh_private_key: <% $.private_key %>
|
|
extra_env_variables: <% $.ansible_extra_env_variables %>
|
|
limit_hosts: <% $.nodes %>
|
|
module_path: <% $.module_path %>
|
|
queue_name: <% $.ansible_queue_name %>
|
|
execution_id: <% execution().id %>
|
|
skip_tags: <% $.skip_tags %>
|
|
trash_output: true
|
|
on-success:
|
|
- node_update_passed: <% task().result.returncode = 0 %>
|
|
- node_update_failed: <% task().result.returncode != 0 %>
|
|
on-error: node_update_failed
|
|
publish:
|
|
output: <% task().result %>
|
|
|
|
node_update_passed:
|
|
on-success: notify_zaqar
|
|
publish:
|
|
status: SUCCESS
|
|
message: Updated nodes - <% $.nodes %>
|
|
|
|
node_update_failed:
|
|
on-success: notify_zaqar
|
|
publish:
|
|
status: FAILED
|
|
message: Failed to update nodes - <% $.nodes %>, please see the logs.
|
|
|
|
notify_zaqar:
|
|
action: zaqar.queue_post
|
|
retry: count=5 delay=1
|
|
input:
|
|
queue_name: <% $.ansible_queue_name %>
|
|
messages:
|
|
body:
|
|
type: tripleo.package_update.v1.update_nodes
|
|
payload:
|
|
status: <% $.status %>
|
|
execution: <% execution() %>
|
|
on-success:
|
|
- fail: <% $.get('status') = "FAILED" %>
|
|
|
|
update_converge_plan:
|
|
description: Take a container and perform the converge for minor update
|
|
|
|
input:
|
|
- container
|
|
- queue_name: tripleo
|
|
|
|
tags:
|
|
- tripleo-common-managed
|
|
|
|
tasks:
|
|
remove_noop:
|
|
action: tripleo.plan.remove_noop_deploystep
|
|
input:
|
|
container: <% $.container %>
|
|
on-success: send_message
|
|
on-error: set_update_failed
|
|
|
|
set_update_failed:
|
|
on-success: send_message
|
|
publish:
|
|
status: FAILED
|
|
message: <% task(remove_noop).result %>
|
|
|
|
send_message:
|
|
action: zaqar.queue_post
|
|
input:
|
|
queue_name: <% $.queue_name %>
|
|
messages:
|
|
body:
|
|
type: tripleo.package_update.v1.update_converge_plan
|
|
payload:
|
|
status: <% $.get('status', 'SUCCESS') %>
|
|
message: <% $.get('message', '') %>
|
|
execution: <% execution() %>
|
|
on-success:
|
|
- fail: <% $.get('status') = "FAILED" %>
|
|
|
|
converge_upgrade_plan:
|
|
description: Take a container and perform the converge step of a major upgrade
|
|
|
|
input:
|
|
- container
|
|
- timeout: 240
|
|
- queue_name: tripleo
|
|
- skip_deploy_identifier: False
|
|
|
|
tags:
|
|
- tripleo-common-managed
|
|
|
|
tasks:
|
|
remove_noop:
|
|
action: tripleo.plan.remove_noop_deploystep
|
|
input:
|
|
container: <% $.container %>
|
|
on-success: send_message
|
|
on-error: set_update_failed
|
|
|
|
set_update_failed:
|
|
on-success: send_message
|
|
publish:
|
|
status: FAILED
|
|
message: <% task(upgrade_converge).result %>
|
|
|
|
send_message:
|
|
action: zaqar.queue_post
|
|
input:
|
|
queue_name: <% $.queue_name %>
|
|
messages:
|
|
body:
|
|
type: tripleo.major_upgrade.v1.converge_upgrade_plan
|
|
payload:
|
|
status: <% $.get('status', 'SUCCESS') %>
|
|
message: <% $.get('message', '') %>
|
|
execution: <% execution() %>
|
|
on-success:
|
|
- fail: <% $.get('status') = "FAILED" %>
|
|
|
|
ffwd_upgrade_converge_plan:
|
|
description: ffwd-upgrade converge removes DeploymentSteps no-op from plan
|
|
|
|
input:
|
|
- container
|
|
- queue_name: tripleo
|
|
|
|
tags:
|
|
- tripleo-common-managed
|
|
|
|
tasks:
|
|
remove_noop:
|
|
action: tripleo.plan.remove_noop_deploystep
|
|
input:
|
|
container: <% $.container %>
|
|
on-success: send_message
|
|
on-error: set_update_failed
|
|
|
|
set_update_failed:
|
|
on-success: send_message
|
|
publish:
|
|
status: FAILED
|
|
message: <% task(remove_noop).result %>
|
|
|
|
send_message:
|
|
action: zaqar.queue_post
|
|
input:
|
|
queue_name: <% $.queue_name %>
|
|
messages:
|
|
body:
|
|
type: tripleo.package_update.v1.ffwd_upgrade_converge_plan
|
|
payload:
|
|
status: <% $.get('status', 'SUCCESS') %>
|
|
message: <% $.get('message', '') %>
|
|
execution: <% execution() %>
|
|
on-success:
|
|
- fail: <% $.get('status') = "FAILED" %>
|