tripleo-common/workbooks/octavia_post.yaml
Brent Eagles df1980a385 octavia: parameterize calls to container cli
The octavia ansible playbooks restart the octavia containers to pickup
generated configuration so this needs to be changed to take the value
from the heat environment.

Change-Id: I6ef5ae0cf8c8acdb6e9a9ab78e0deddd0ea968ec
2019-03-14 12:06:49 -02:30

161 lines
5.8 KiB
YAML

---
version: '2.0'
name: tripleo.octavia_post.v1
description: TripleO Octavia post deployment Workflows
workflows:
octavia_post_deploy:
description: Octavia post deployment
input:
- amp_image_name
- amp_image_filename
- amp_image_tag
- amp_ssh_key_name
- amp_ssh_key_path
- amp_ssh_key_data
- amp_to_raw
- amp_hw_arch
- auth_username
- auth_password
- auth_project_name
- lb_mgmt_net_name
- lb_mgmt_subnet_name
- lb_sec_group_name
- lb_mgmt_subnet_cidr
- lb_mgmt_subnet_gateway
- lb_mgmt_subnet_pool_start
- lb_mgmt_subnet_pool_end
- generate_certs
- octavia_ansible_playbook
- overcloud_admin
- ca_cert_path
- ca_private_key_path
- ca_passphrase
- client_cert_path
- mgmt_port_dev
- overcloud_password
- overcloud_project
- overcloud_pub_auth_uri
- container_cli
- ansible_extra_env_variables:
ANSIBLE_HOST_KEY_CHECKING: 'False'
ANSIBLE_SSH_RETRIES: '3'
tags:
- tripleo-common-managed
tasks:
get_overcloud_stack_details:
publish:
# TODO(beagles), we are making an assumption about the octavia heatlh manager and
# controller worker needing
#
octavia_controller_ips: <% env().get('service_ips', {}).get('octavia_worker_ctlplane_node_ips', []) %>
on-success: enable_ssh_admin
enable_ssh_admin:
workflow: tripleo.access.v1.enable_ssh_admin
input:
ssh_servers: <% $.octavia_controller_ips %>
on-success: get_private_key
get_private_key:
action: tripleo.validations.get_privkey
publish:
private_key: <% task().result %>
on-success: make_local_temp_directory
make_local_temp_directory:
action: tripleo.files.make_temp_dir
publish:
undercloud_local_dir: <% task().result.path %>
on-success: make_remote_temp_directory
make_remote_temp_directory:
action: tripleo.files.make_temp_dir
publish:
undercloud_remote_dir: <% task().result.path %>
on-success: build_local_connection_environment_vars
build_local_connection_environment_vars:
publish:
ansible_local_connection_variables: <% dict('ANSIBLE_REMOTE_TEMP' => $.undercloud_remote_dir, 'ANSIBLE_LOCAL_TEMP' => $.undercloud_local_dir) + $.ansible_extra_env_variables %>
on-success: upload_amphora
upload_amphora:
action: tripleo.ansible-playbook
input:
inventory:
undercloud:
hosts:
localhost:
ansible_connection: local
playbook: <% $.octavia_ansible_playbook %>
remote_user: stack
extra_env_variables: <% $.ansible_local_connection_variables %>
extra_vars:
os_password: <% $.overcloud_password %>
os_username: <% $.overcloud_admin %>
os_project_name: <% $.overcloud_project %>
os_auth_url: <% $.overcloud_pub_auth_uri %>
os_auth_type: "password"
os_identity_api_version: "3"
amp_image_name: <% $.amp_image_name %>
amp_image_filename: <% $.amp_image_filename %>
amp_image_tag: <% $.amp_image_tag %>
amp_ssh_key_name: <% $.amp_ssh_key_name %>
amp_ssh_key_path: <% $.amp_ssh_key_path %>
amp_ssh_key_data: <% $.amp_ssh_key_data %>
amp_to_raw: <% $.amp_to_raw %>
amp_hw_arch: <% $.amp_hw_arch %>
auth_username: <% $.auth_username %>
auth_password: <% $.auth_password %>
auth_project_name: <% $.auth_project_name %>
execution_id: <% execution().id %>
on-success: config_octavia
config_octavia:
action: tripleo.ansible-playbook
input:
inventory:
octavia_nodes:
hosts: <% $.octavia_controller_ips.toDict($, {}) %>
verbosity: 0
playbook: <% $.octavia_ansible_playbook %>
remote_user: tripleo-admin
become: true
become_user: root
ssh_private_key: <% $.private_key %>
extra_env_variables: <% $.ansible_extra_env_variables %>
extra_vars:
os_password: <% $.overcloud_password %>
os_username: <% $.overcloud_admin %>
os_project_name: <% $.overcloud_project %>
os_auth_url: <% $.overcloud_pub_auth_uri %>
os_auth_type: "password"
os_identity_api_version: "3"
amp_image_tag: <% $.amp_image_tag %>
lb_mgmt_net_name: <% $.lb_mgmt_net_name %>
lb_mgmt_subnet_name: <% $.lb_mgmt_subnet_name %>
lb_sec_group_name: <% $.lb_sec_group_name %>
lb_mgmt_subnet_cidr: <% $.lb_mgmt_subnet_cidr %>
lb_mgmt_subnet_gateway: <% $.lb_mgmt_subnet_gateway %>
lb_mgmt_subnet_pool_start: <% $.lb_mgmt_subnet_pool_start %>
lb_mgmt_subnet_pool_end: <% $.lb_mgmt_subnet_pool_end %>
ca_cert_path: <% $.ca_cert_path %>
ca_private_key_path: <% $.ca_private_key_path %>
ca_passphrase: <% $.ca_passphrase %>
client_cert_path: <% $.client_cert_path %>
generate_certs: <% $.generate_certs %>
mgmt_port_dev: <% $.mgmt_port_dev %>
auth_project_name: <% $.auth_project_name %>
container_cli: <% $.container_cli %>
execution_id: <% execution().id %>
on-complete: purge_local_temp_dir
purge_local_temp_dir:
action: tripleo.files.remove_temp_dir path=<% $.undercloud_local_dir %>
on-complete: purge_remote_temp_dir
purge_remote_temp_dir:
action: tripleo.files.remove_temp_dir path=<% $.undercloud_remote_dir %>