--- version: '2.0' name: tripleo.validations.v1 description: TripleO Validations Workflows v1 workflows: add_validation_ssh_key_parameter: input: - container - queue_name: tripleo tags: - tripleo-common-managed tasks: test_validations_enabled: action: tripleo.validations.enabled on-success: get_pubkey on-error: unset_validation_key_parameter get_pubkey: action: tripleo.validations.get_pubkey on-success: set_validation_key_parameter publish: pubkey: <% task().result %> set_validation_key_parameter: action: tripleo.parameters.update input: parameters: node_admin_extra_ssh_keys: <% $.pubkey %> container: <% $.container %> # NOTE(shadower): We need to clear keys from a previous deployment unset_validation_key_parameter: action: tripleo.parameters.update input: parameters: node_admin_extra_ssh_keys: "" container: <% $.container %> copy_ssh_key: input: # FIXME: we should stop using heat-admin as e.g. split-stack # environments (where Nova didn't create overcloud nodes) don't # have it present - overcloud_admin: heat-admin - queue_name: tripleo tags: - tripleo-common-managed tasks: get_servers: action: nova.servers_list on-success: get_pubkey publish: servers: <% task().result._info %> get_pubkey: action: tripleo.validations.get_pubkey on-success: deploy_ssh_key publish: pubkey: <% task().result %> deploy_ssh_key: workflow: tripleo.deployment.v1.deploy_on_server with-items: server in <% $.servers %> input: server_name: <% $.server.name %> server_uuid: <% $.server.id %> config: | #!/bin/bash if ! grep "<% $.pubkey %>" /home/<% $.overcloud_admin %>/.ssh/authorized_keys; then echo "<% $.pubkey %>" >> /home/<% $.overcloud_admin %>/.ssh/authorized_keys fi config_name: copy_ssh_key group: script queue_name: <% $.queue_name %>