--- # 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: Validations block when: - run_validations | bool block: - name: Check if validation enabled set_fact: validations_enabled: "{{ lookup('hiera', 'tripleo_validations_enabled') }}" run_once: true become: true # Pre-deployment validation # NOTE(cloudnull): The stackrc file is sourced because validations are not # 100% compatible with clouds.yaml at this time. - name: Run Validations shell: |- source "{{ ansible_home }}/stackrc" openstack --os-cloud undercloud tripleo validator run --group "pre-deployment" when: - validations_enabled | bool - name: Fail if validations are disabled fail: msg: >- Run validations were enabled but via hiera information disabled. Check the configuration and try again. when: - not (validations_enabled | bool) - 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 --no-resolve-outputs "{{ container }}" -c stack_status register: check_status until: "'IN_PROGRESS' not in check_status.stdout" retries: "{{ (timeout_mins|int * 60 / 10)|int }}" delay: 10