
Sometimes, the output is REALLY big. It ends up throwing an error in MySQL trying to write to the output of the ActionExecution to the database. Since we're passing the output back via zaqar, we can just throw this away. The trash_output flag defaults to false, to maintain the original behavior. Change-Id: Id13c7cf52b306891d780243b2562c8ca305aa365 Closes-Bug: #1768913
297 lines
8.2 KiB
YAML
297 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_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" %>
|