tripleo-ansible/tripleo_ansible/playbooks/cli-derive-parameters.yaml

81 lines
2.9 KiB
YAML

---
# Copyright 2020 Red Hat, Inc.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
- name: Derive parameters
connection: "{{ (tripleo_target_host is defined) | ternary('ssh', 'local') }}"
hosts: "{{ tripleo_target_host | default('localhost') }}"
remote_user: "{{ tripleo_target_user | default(lookup('env', 'USER')) }}"
gather_facts: "{{ (tripleo_target_host is defined) | ternary(true, false) }}"
any_errors_fatal: true
vars:
plan: overcloud
pre_tasks:
- name: Set local connection user facts
set_fact:
ansible_home: "{{ lookup('env', 'HOME') }}"
ansible_user: "{{ lookup('env', 'USER') }}"
run_once: true
when:
- (tripleo_target_host is defined) | ternary('ssh', 'local') == 'local'
tasks:
- name: Get flatten params
tripleo_get_flatten_stack:
container: "{{ plan }}"
register: tripleo_get_flatten_params
when:
- tripleo_get_flatten_params is undefined
- name: Get role list
tripleo_get_role_list:
container: "{{ plan }}"
valid: false
register: tripleo_role_list
when:
- tripleo_role_list is undefined
- name: Fail if stack_data has not been extracted
when:
- tripleo_get_flatten_params.stack_data is not defined
fail:
msg: "{{ plan }} is mising stack_data"
- name: Derive params for each role
include_role:
name: tripleo_derived_parameters
vars:
tripleo_plan_name: "{{ plan }}"
tripleo_role_name: "{{ outer_item }}"
tripleo_environment_parameters: "{{ tripleo_get_flatten_params.stack_data.environment_parameters }}"
tripleo_heat_resource_tree: "{{ tripleo_get_flatten_params.stack_data.heat_resource_tree }}"
loop: "{{ tripleo_role_list.roles }}"
loop_control:
loop_var: outer_item
- name: Write environment to {{ derived_environment_path }}
block:
- name: create derived params dictionary
set_fact:
derived_params_env: "{{ {'parameter_defaults': derived_parameters_result['derived_parameters'] | default({})} }}"
- name: Write environment
copy:
dest: "{{ derived_environment_path }}"
content: "{{ dervied_params_env | to_nice_yaml(indent=2) }}"
when:
- derived_environment_path is defined
- derived_parameters_result is defined