--- # Copyright 2019 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: Deploy Deployment Plan 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: container: overcloud run_validations: false timeout_mins: 240 skip_deploy_identifier: false pre_tasks: - name: Set ansible_home for for local connection set_fact: ansible_home: "{{ lookup('env', 'HOME') }}" run_once: true when: - (tripleo_target_host is defined) | ternary('ssh', 'local') == 'local' tasks: - name: Check if validation enabled command: > hiera tripleo_validations_enabled register: validations_enabled become: true - name: Run Validations # 1. tripleo-validations does not work with clouds.yaml # 2. Ignore errors as certain validations in 'pre-deployment' # group i.e tls-everywhere-pre-deployment.yaml would fail. shell: | source "{{ ansible_home }}/stackrc" openstack tripleo validator run --group "pre-deployment" when: - validations_enabled.stdout | bool ignore_errors: true - name: Prepare Container images and update plan tripleo_image_params_prepare: container: "{{ container }}" with_roledata: true - name: Get backup tempurl for GET tripleo_swift_tempurl: container: "{{container + 'swift-rings' }}" object: "swift-rings.tar.gz" method: GET register: backup_get_tempurl - name: Get backup tempurl for POST tripleo_swift_tempurl: container: "{{container + 'swift-rings' }}" object: "swift-rings.tar.gz" method: PUT register: backup_put_tempurl - name: Update plan with backup tempurl parameters tripleo_plan_parameters_update: container: "{{ container }}" parameters: SwiftRingGetTempurl: "{{ backup_get_tempurl.tempurl }}" SwiftRingPutTempurl: "{{ backup_put_tempurl.tempurl }}" parameter_key: parameter_defaults validate: true - name: Deploy Plan tripleo_plan_deploy: container: "{{ container }}" skip_deploy_identifier: "{{ skip_deploy_identifier }}" timeout_mins: "{{ timeout_mins|int }}" - name: Wait for stack status command: | openstack --os-cloud undercloud stack show "{{ container }}" -c stack_status register: check_status until: "'IN_PROGRESS' not in check_status.stdout" retries: "{{ (timeout_mins|int * 60 / 15)|int }}" delay: 15