Update the fast forward workflow to use CLI commands

This change adjusts the fast forward upgrade workflow to use the
Openstack CLI commands instead of running manual ansible commands.

Change-Id: I345500444ed47d631593d96e4a192e179e4bb326
(cherry picked from commit 26a7d90555)
This commit is contained in:
Marius Cornea 2018-04-27 12:43:50 -04:00
parent ac970f1a6d
commit 271ae11f26
18 changed files with 338 additions and 301 deletions

View File

@ -0,0 +1,98 @@
- name: register control-scale opts
shell: |
grep -oP "control-scale\ \d+" {{ overcloud_deploy_script }}
register: control_scale
ignore_errors: true
- name: remove control-scale opts from deploy command
lineinfile:
path: "{{ overcloud_deploy_script }}"
regexp: "{{ control_scale.stdout }}"
state: absent
when: control_scale|succeeded
- name: register compute-scale opts
shell: |
grep -oP "compute-scale\ \d+" {{ overcloud_deploy_script }}
register: compute_scale
ignore_errors: true
- name: remove compute-scale opts from deploy command
lineinfile:
path: "{{ overcloud_deploy_script }}"
regexp: "{{ compute_scale.stdout }}"
state: absent
when: compute_scale|succeeded
- name: register ceph-storage-scale opts
shell: |
grep -oP "ceph-storage-scale\ \d+" {{ overcloud_deploy_script }}
register: ceph_scale
ignore_errors: true
- name: remove ceph-storage-scale opts from deploy command
lineinfile:
path: "{{ overcloud_deploy_script }}"
regexp: "{{ ceph_scale.stdout }}"
state: absent
when: ceph_scale|succeeded
- name: register control-flavor opts
shell: |
grep -oP "control-flavor\ .*\ " {{ overcloud_deploy_script }}
register: control_flavor
ignore_errors: true
- name: remove control-flavor opts from deploy command
lineinfile:
path: "{{ overcloud_deploy_script }}"
regexp: "{{ control_flavor.stdout }}"
state: absent
when: control_flavor|succeeded
- name: register compute-flavor opts
shell: |
grep -oP "compute-flavor\ .*\ " {{ overcloud_deploy_script }}
register: compute_flavor
ignore_errors: true
- name: remove compute-flavor opts from deploy command
lineinfile:
path: "{{ overcloud_deploy_script }}"
regexp: "{{ compute_flavor.stdout }}"
state: absent
when: compute_flavor|succeeded
- name: register ceph-flavor opts
shell: |
grep -oP "ceph-storage-flavor\ .*\ " {{ overcloud_deploy_script }}
register: ceph_flavor
ignore_errors: true
- name: remove ceph-flavor opts from deploy command
lineinfile:
path: "{{ overcloud_deploy_script }}"
regexp: "{{ ceph_flavor.stdout }}"
state: absent
when: ceph_flavor|succeeded
- name: register ntp-server opts
shell: |
grep -oP "ntp-server\ .*\ " {{ overcloud_deploy_script }}
register: ntp_server
ignore_errors: true
- name: remove ntp-server opts from deploy command
lineinfile:
path: "{{ overcloud_deploy_script }}"
regexp: "{{ ntp_server.stdout }}"
state: absent
when: ntp_server|succeeded
- name: convert cli options into parameters
template:
src: fast-forward-upgrade/cli_opts_params.yaml.j2
dest: "{{working_dir}}/cli_opts_params.yaml"
force: no
when:
- control_scale|succeeded or compute_scale|succeeded or ceph_scale|succeeded or control_flavor|succeeded or compute_flavor|succeeded or ceph_flavor|succeeded or ntp_server|succeeded

View File

@ -19,6 +19,12 @@
- upgrade_composable_scenario != ""
- composable_scenario != ""
- name: Convert CLI options to parameters
include: ../common/convert_cli_opts_params.yaml
- name: get auxiliary facts for upgrade
include: ../common/auxilary-facts.yaml
- name: Convert Ceph parameters to ceph ansible
include: ../common/convert_ceph_params.yaml
@ -29,13 +35,11 @@
mode: 0775
with_items:
- 'post_ffu_undercloud_upgrade_workarounds'
- 'pre_ffu_update_stack_outputs_workarounds'
- 'pre_ffu_download_config_workarounds'
- 'pre_ffu_upgrade_playbook_workarounds'
- 'pre_ffu_upgrade_steps_playbook_workarounds'
- 'pre_ffu_deploy_steps_playbook_workarounds'
- 'pre_ffu_upgrade_converge_workarounds'
- 'pre_ffu_upgrade_ceph_workarounds'
- 'pre_ffu_overcloud_prepare_workarounds'
- 'pre_ffu_overcloud_run_workarounds'
- 'pre_ffu_overcloud_upgrade_workarounds'
- 'pre_ffu_overcloud_converge_workarounds'
- 'pre_ffu_overcloud_ceph_workarounds'
when: ffu_upgrade_workarounds
- name: register is_upstream variable
@ -61,41 +65,25 @@
dest: "{{working_dir}}/ffu_repos.yaml"
when: "'tripleo-repos' not in ffu_overcloud_repo_type"
- name: create ffu overcloud upgrade scripts
include: ../upgrade/step_upgrade.yml
loop_control:
loop_var: ugstage
with_items:
- step: "FFU update stack outputs"
script: "{{ working_dir }}/ffu_update_stack_outputs.sh"
environment_file:
- "{% if upstream_container_images %}{{ tht_directory }}/environments/docker.yaml{% endif %}"
- "{% if upstream_container_images and deployment_with_ha %}{{ tht_directory }}/environments/docker-ha.yaml{% endif %}"
- "{{ working_dir}}/{{ container_registry_file }}"
- "{{ tht_directory }}/environments/lifecycle/ffwd-upgrade-prepare.yaml"
- "{% if 'tripleo-repos' not in ffu_overcloud_repo_type %}{{working_dir}}/ffu_repos.yaml{% endif %}"
- "{% if deployed_server|default(false)|bool %}{{tht_directory}}/environments/updates/update-from-deployed-server-newton.yaml{% endif %}"
- name: create overcloud ffwd run script
template:
src: "fast-forward-upgrade/overcloud_upgrade_run.sh.j2"
dest: "{{working_dir}}/overcloud_upgrade_run.sh"
mode: 0775
force: no
- step: "FFU converge"
script: "{{ working_dir }}/ffu_upgrade_converge_script.sh"
environment_file:
- "{% if upstream_container_images %}{{ tht_directory }}/environments/docker.yaml{% endif %}"
- "{% if upstream_container_images and deployment_with_ha %}{{ tht_directory }}/environments/docker-ha.yaml{% endif %}"
- "{{ working_dir}}/{{ container_registry_file }}"
- "{% if deployed_server|default(false)|bool %}{{tht_directory}}/environments/updates/update-from-deployed-server-newton.yaml{% endif %}"
- "{{ tht_directory }}/environments/lifecycle/ffwd-upgrade-converge.yaml"
option:
- "update-plan-only"
- name: create overcloud converge script
template:
src: "overcloud_upgrade_converge.sh.j2"
dest: "{{ working_dir }}/overcloud_upgrade_converge.sh"
mode: 0775
force: true
- step: "FFU post deploy Ceph upgrade"
script: "{{ working_dir }}/ffu_upgrade_ceph_script.sh"
environment_file:
- "{% if upstream_container_images %}{{ tht_directory }}/environments/docker.yaml{% endif %}"
- "{% if upstream_container_images and deployment_with_ha %}{{ tht_directory }}/environments/docker-ha.yaml{% endif %}"
- "{{ working_dir}}/{{ container_registry_file }}"
- "{{ tht_directory }}/environments/updates/update-from-ceph-newton.yaml"
- "{% if ceph_ansible|succeeded %}{{ working_dir }}/ceph-ansible-env.yaml{% endif %}"
- "{% if deployed_server|default(false)|bool %}{{tht_directory}}/environments/updates/update-from-deployed-server-newton.yaml{% endif %}"
- name: create ceph upgrade script
template:
src: "ceph-upgrade-run.sh.j2"
dest: "{{ working_dir }}/ceph-upgrade-run.sh"
mode: 0755
- include: ../common/ssh_config_skip_host.yml

View File

@ -1,9 +0,0 @@
- name: overcloud config download
shell: |
source {{ undercloud_rc }}
openstack overcloud config download --name {{ overcloud_stack_name }}
register: config_download
- name: set overcloud_config_dir fact.
set_fact:
overcloud_config_dir: "{{ config_download.stdout | regex_search('(/.*tripleo.*)')}}"

View File

@ -23,109 +23,103 @@
when: ffu_undercloud_upgrade|bool
- block:
- include: "{{ item }}"
with_items:
- '../common/l3_agent_connectivity_check_start_script.yml'
- '../common/l3_agent_failover_check_pre_script.yml'
tags: ffu_update_stack_outputs
- name: apply pre ffu update stack outputs workarounds
command: "{{working_dir}}/pre_ffu_update_stack_outputs_workarounds.sh"
when: ffu_upgrade_workarounds|bool
tags: ffu_update_stack_outputs
- include: ffu_update_stack_outputs.yaml
tags: ffu_update_stack_outputs
- include: "{{ item }}"
with_items:
- '../common/l3_agent_connectivity_check_stop_script.yml'
- '../common/l3_agent_failover_check_post_script.yml'
tags: ffu_update_stack_outputs
- name: apply pre ffu download config workarounds
command: "{{working_dir}}/pre_ffu_download_config_workarounds.sh"
when: ffu_upgrade_workarounds|bool
tags: ffu_download_config
- include: ffu_download_config.yaml
tags: ffu_download_config
- name: generate overcloud ansible static yaml inventory file
shell: |
source {{ undercloud_rc }}
/usr/bin/tripleo-ansible-inventory \
--plan {{ overcloud_stack_name }} \
{% if overcloud_ssh_user != '' %} --ansible_ssh_user {{ overcloud_ssh_user }} {% endif %} \
--static-yaml-inventory {{ working_dir }}/tripleo-ansible-inventory-static.yaml
- name: Create FFU ugrade playbooks scripts
tags: ffu_upgrade_playbooks_scripts
template:
src: fast-forward-upgrade/ffu_upgrade_playbook.sh.j2
dest: "{{working_dir}}/{{ item }}.sh"
mode: 0775
with_items:
- 'ffu_upgrade_playbook_script'
- name: apply pre fast forward upgrade playbook workarounds
command: "{{working_dir}}/pre_ffu_upgrade_playbook_workarounds.sh"
when: ffu_upgrade_workarounds|bool
tags: ffu_upgrade_playbook
- name: Ensure ansible-pacemaker module is present in CI.
yum: name=ansible-pacemaker state=latest
when: tripleo_ci|default(false)|bool
tags: ffu_upgrade_playbook
become: true
- include: ../common/l3_agent_connectivity_check_start_script.yml
tags: ffu_upgrade_playbook
- include: "{{ item }}"
with_items:
- '../common/l3_agent_connectivity_check_start_script.yml'
- '../common/l3_agent_failover_check_pre_script.yml'
tags: ffu_overcloud_prepare
- name: Run FFU fast_forward_upgrade_playbook.yaml
command: "{{working_dir}}/ffu_upgrade_playbook_script.sh"
tags: ffu_upgrade_playbook
- name: apply pre ffu overcloud prepare workarounds
command: "{{working_dir}}/pre_ffu_overcloud_prepare_workarounds.sh"
when: ffu_upgrade_workarounds|bool
tags: ffu_overcloud_prepare
- name: set upgrade_prepare_extra_params for ffu prepare with default repos
set_fact:
upgrade_prepare_extra_params: ["{{working_dir}}/cli_opts_params.yaml", "{{ tht_directory }}/environments/docker.yaml", "{{ tht_directory }}/environments/docker-ha.yaml"]
when: "'tripleo-repos' in ffu_overcloud_repo_type"
- name: set upgrade_prepare_extra_params for ffu prepare with custom repos
set_fact:
upgrade_prepare_extra_params: ["{{working_dir}}/cli_opts_params.yaml", "{{working_dir}}/ffu_repos.yaml"]
when: "'tripleo-repos' not in ffu_overcloud_repo_type"
- name: set upgrade_prepare_extra_params for ffu prepare with deployed server
set_fact:
upgrade_prepare_extra_params: '{{ upgrade_prepare_extra_params + ["{{tht_directory}}/environments/updates/update-from-deployed-server-newton.yaml"] }}'
when: deployed_server|default(false)|bool
- include: ../upgrade/overcloud_upgrade_prepare.yml
tags: ffu_overcloud_prepare
- include: "{{ item }}"
with_items:
- '../common/l3_agent_connectivity_check_stop_script.yml'
- '../common/l3_agent_failover_check_post_script.yml'
tags: ffu_overcloud_prepare
- name: apply pre fast forward overcloud upgrade run workarounds
command: "{{working_dir}}/pre_ffu_overcloud_run_workarounds.sh"
when: ffu_upgrade_workarounds|bool
tags: ffu_overcloud_run
- include: ../common/l3_agent_connectivity_check_start_script.yml
tags: ffu_overcloud_run
- name: run overcloud fast forward upgrade
command: "{{working_dir}}/overcloud_upgrade_run.sh"
tags: ffu_overcloud_run
- include: ../common/l3_agent_connectivity_check_stop_script.yml
tags: ffu_upgrade_playbook
tags: ffu_overcloud_run
## we can either upgrade all overcloud nodes at one or per role/node
- name: upgrade all overcloud nodes at once
include: overcloud_bulk.yaml
tags: ffu_upgrade_overcloud_bulk
tags: ffu_overcloud_upgrade_bulk
when: ffu_bulk|bool
- name: upgrade overcloud nodes per roles
include: overcloud_role.yaml
tags: ffu_upgrade_overcloud_role
tags: ffu_overcloud_upgrade_role
when: not ffu_bulk|bool
- name: apply pre fast forward upgrade converge workarounds
command: "{{working_dir}}/pre_ffu_upgrade_converge_workarounds.sh"
when: ffu_upgrade_workarounds|bool
tags: ffu_upgrade_converge
- include: ffu_upgrade_converge.yaml
tags: ffu_upgrade_converge
- block:
- name: apply pre ffu ceph upgrade workarounds
command: "{{working_dir}}/pre_ffu_upgrade_ceph_workarounds.sh"
command: "{{working_dir}}/pre_ffu_overcloud_ceph_workarounds.sh"
when: ffu_upgrade_workarounds|bool
tags: ffu_upgrade_ceph
tags: ffu_overcloud_ceph
- name: run FFU ceph osd nodes ugrade scripts
command: "{{ working_dir }}/overcloud_upgrade_CephStorage.sh"
tags: ffu_overcloud_ceph
- include: ../common/l3_agent_connectivity_check_start_script.yml
tags: ffu_upgrade_ceph
tags: ffu_overcloud_ceph
- include: ffu_upgrade_ceph.yaml
tags: ffu_upgrade_ceph
- include: ../upgrade/ceph_upgrade_run.yml
tags: ffu_overcloud_ceph
- include: "{{ item }}"
with_items:
- '../common/l3_agent_connectivity_check_stop_script.yml'
- '../common/l3_agent_failover_check_post_script.yml'
tags: ffu_upgrade_ceph
when: ceph_ansible|succeeded
tags: ffu_overcloud_ceph
when: ceph_osd_enabled|bool
- name: apply pre ffu overcloud converge workarounds
command: "{{working_dir}}/pre_ffu_overcloud_converge_workarounds.sh"
when: ffu_upgrade_workarounds|bool
tags: ffu_overcloud_converge
- include: ../upgrade/overcloud_upgrade_converge.yml
tags: ffu_overcloud_converge
- include: ../common/nova_actions_check.yml

View File

@ -1,52 +1,27 @@
---
- name: Create FFU ugrade playbooks scripts
tags: ffu_upgrade_playbooks_scripts
- name: create FFU role ugrades scripts
template:
src: fast-forward-upgrade/ffu_upgrade_playbook.sh.j2
dest: "{{working_dir}}/{{ item }}.sh"
src: fast-forward-upgrade/overcloud_upgrade_role.sh.j2
dest: "{{ working_dir }}/overcloud_upgrade_{{ item }}.sh"
mode: 0775
tags: ffu_overcloud_upgrade
with_items:
- 'ffu_upgrade_steps_playbook_script'
- 'ffu_deploy_steps_playbook_script'
- "all"
- name: apply pre fast forward upgrade playbook workarounds
command: "{{working_dir}}/pre_ffu_upgrade_playbook_workarounds.sh"
- name: apply pre overcloud upgrade run workarounds
command: "{{working_dir}}/pre_ffu_overcloud_upgrade_workarounds.sh"
when: ffu_upgrade_workarounds|bool
tags: ffu_upgrade_playbook
tags: ffu_overcloud_upgrade
- include: ../common/l3_agent_connectivity_check_start_script.yml
tags: ffu_overcloud_upgrade
- name: Run FFU fast_forward_upgrade_playbook.yaml
command: "{{working_dir}}/ffu_upgrade_playbook_script.sh"
tags: ffu_upgrade_playbook
- include: ../common/l3_agent_connectivity_check_stop_script.yml
- name: apply pre ffu upgrade steps playbook workarounds
command: "{{working_dir}}/pre_ffu_upgrade_steps_playbook_workarounds.sh"
when: ffu_upgrade_workarounds|bool
tags: ffu_upgrade_steps_playbook
- include: ../common/l3_agent_connectivity_check_start_script.yml
- name: Run upgrade_steps_playbook.yaml
command: "{{working_dir}}/ffu_upgrade_steps_playbook_script.sh"
tags: ffu_upgrade_steps_playbook
- include: ../common/l3_agent_connectivity_check_stop_script.yml
- name: apply pre ffu deploy steps playbook workarounds
command: "{{working_dir}}/pre_ffu_deploy_steps_playbook_workarounds.sh"
when: ffu_upgrade_workarounds|bool
tags: ffu_deploy_steps_playbook
- include: ../common/l3_agent_connectivity_check_start_script.yml
- name: Run deploy_steps_playbook.yaml
command: "{{working_dir}}/ffu_deploy_steps_playbook_script.sh"
tags: ffu_deploy_steps_playbook
- name: run all roles upgrade steps
command: "{{working_dir}}//overcloud_upgrade_all.sh"
tags: ffu_overcloud_upgrade
- include: "{{ item }}"
with_items:
- '../common/l3_agent_connectivity_check_stop_script.yml'
- '../common/l3_agent_failover_check_post_script.yml'
tags: ffu_overcloud_upgrade

View File

@ -1,104 +1,90 @@
---
- name: generate overcloud ansible static yaml inventory file
shell: |
source {{ undercloud_rc }}
/usr/bin/tripleo-ansible-inventory \
--plan {{ overcloud_stack_name }} \
{% if overcloud_ssh_user != '' %} --ansible_ssh_user {{ overcloud_ssh_user }} {% endif %} \
--static-yaml-inventory {{ working_dir }}/tripleo-ansible-inventory-static.yaml
- name: register deployed roles list
shell: |
grep role_name {{ working_dir }}/tripleo-ansible-inventory-static.yaml | awk -F ': ' '{ print $2 }' 2>/dev/null
awk -F':' '/role_name/ {gsub("[[:space:][:punct:]]", "", $2); print $2}' {{ working_dir }}/tripleo-ansible-inventory-static.yaml
register: oc_roles
- name: store roles
vars:
controller_role_name: "{{ oc_roles.stdout|regex_search('[A-Za-z0-9]*[Cc]ontroller[A-Za-z0-9]*') }}"
set_fact:
oc_roles: "{{ [controller_role_name] + oc_roles.stdout_lines|difference([controller_role_name])|difference('CephStorage') }}"
oc_roles: "{{ [controller_role_name] + oc_roles.stdout_lines|difference([controller_role_name]) }}"
- name: create non-compute role FFU ugrades playbooks scripts
- name: create FFU role ugrades scripts
template:
src: fast-forward-upgrade/ffu_upgrade_playbook_non_compute_role.sh.j2
dest: "./{{ item }}_non_Compute.sh"
src: fast-forward-upgrade/overcloud_upgrade_role.sh.j2
dest: "{{ working_dir }}/overcloud_upgrade_{{ item }}.sh"
mode: 0775
tags: ffu_upgrade_roles_prepare
with_items:
- 'ffu_upgrade_steps_playbook_script'
- 'ffu_deploy_steps_playbook_script'
- name: create compute role FFU ugrades playbooks scripts
template:
src: fast-forward-upgrade/ffu_upgrade_playbook_role.sh.j2
dest: "./{{ item[1] }}_{{ item[0] }}.sh"
mode: 0775
tags: ffu_upgrade_roles_prepare
with_nested:
- "{{ oc_roles|intersect(['Compute']) }}"
- [ 'ffu_upgrade_steps_playbook_script', 'ffu_deploy_steps_playbook_script' ]
tags: ffu_overcloud_upgrade_controller
with_items: "{{ oc_roles|default([]) }}"
- include: ../common/l3_agent_connectivity_check_start_script.yml
tags: ffu_upgrade_non_compute
tags: ffu_overcloud_upgrade_controller
- name: pre non-compute role upgrade steps workarounds
command: "{{working_dir}}/pre_ffu_upgrade_steps_playbook_workarounds.sh"
- name: pre controller role upgrade steps workarounds
command: "{{working_dir}}/pre_ffu_overcloud_upgrade_workarounds.sh"
when: ffu_upgrade_workarounds|bool
tags: ffu_upgrade_non_compute
tags: ffu_overcloud_upgrade_controller
- name: run non-compute role upgrade steps
command: "{{working_dir}}//ffu_upgrade_steps_playbook_script_non_Compute.sh"
tags: ffu_upgrade_non_compute
- name: pre non-compute role deploy steps workarounds
command: "{{working_dir}}/pre_ffu_deploy_steps_playbook_workarounds.sh"
when: ffu_upgrade_workarounds|bool
tags: ffu_upgrade_non_compute
- name: run non-compute role deploy steps
command: "{{working_dir}}//ffu_deploy_steps_playbook_script_non_Compute.sh"
tags: ffu_upgrade_non_compute
- name: run FFU controller ugrade scripts
command: "{{ working_dir }}/overcloud_upgrade_{{ item }}.sh"
tags: ffu_overcloud_upgrade_controller
with_items:
- "{{ oc_roles|intersect(['Controller']) }}"
- include: "{{ item }}"
with_items:
- '../common/l3_agent_connectivity_check_stop_script.yml'
- '../common/l3_agent_failover_check_post_script.yml'
tags: ffu_upgrade_non_compute
tags: ffu_overcloud_upgrade_controller
- include: ../common/l3_agent_connectivity_check_start_script.yml
tags: ffu_upgrade_compute
tags: ffu_overcloud_upgrade_compute
- name: upgrade compute roles
command: "{{working_dir}}/{{ item[1] }}_{{ item[0] }}.sh"
tags: ffu_upgrade_compute
with_nested:
- "{{ oc_roles|intersect('Compute') }}"
- [ 'ffu_upgrade_steps_playbook_script', 'ffu_deploy_steps_playbook_script' ]
- name: run FFU compute ugrade scripts
command: "{{ working_dir }}/overcloud_upgrade_{{ item }}.sh"
tags: ffu_overcloud_upgrade_compute
with_items:
- "{{ oc_roles|intersect(['Compute','ComputeAlt']) }}"
when:
- not ffu_computes_rolling|bool
- include: ../common/l3_agent_connectivity_check_stop_script.yml
tags: ffu_upgrade_compute
tags: ffu_overcloud_upgrade_compute
- block:
- name: register compute nodes from tripleo ansible inventory
shell: |
grep compute- {{ working_dir }}/tripleo-ansible-inventory-static.yaml | grep \{\} | awk -F ':' {'print $1'} | sed s/\ //g
awk -F':' '/^compute-/ {print $1}' {{ working_dir }}/tripleo-ansible-inventory-static.yaml
register: tripleo_compute_nodes
tags: ffu_upgrade_compute
tags: ffu_overcloud_upgrade_compute
- name: Create compute nodes FFU ugrade playbooks scripts
template:
src: fast-forward-upgrade/ffu_upgrade_playbook_role.sh.j2
dest: "{{ working_dir }}/{{ item[1] }}_{{ item[0] }}.sh"
src: fast-forward-upgrade/overcloud_upgrade_nodes.sh.j2
dest: "{{ working_dir }}/overcloud_upgrade_{{ item }}.sh"
mode: 0775
tags: ffu_upgrade_compute
with_nested:
tags: ffu_overcloud_upgrade_compute
with_items:
- '{{ tripleo_compute_nodes.stdout_lines }}'
- [ 'ffu_upgrade_steps_playbook_script', 'ffu_deploy_steps_playbook_script' ]
- include: ../common/l3_agent_connectivity_check_start_script.yml
tags: ffu_upgrade_compute
tags: ffu_overcloud_upgrade_compute
- name: Rolling upgrade compute nodes
command: "{{ working_dir }}/{{ item[1] }}_{{ item[0] }}.sh"
tags: ffu_upgrade_compute
with_nested:
- "{{ tripleo_compute_nodes.stdout_lines }}"
- [ 'ffu_upgrade_steps_playbook_script', 'ffu_deploy_steps_playbook_script' ]
command: "{{ working_dir }}/overcloud_upgrade_{{ item }}.sh"
tags: ffu_overcloud_upgrade_compute
with_items:
- '{{ tripleo_compute_nodes.stdout_lines }}'
- include: ../common/l3_agent_connectivity_check_stop_script.yml
tags: ffu_upgrade_compute
tags: ffu_overcloud_upgrade_compute
when: ffu_computes_rolling|bool

View File

@ -6,7 +6,9 @@
- name: add upgrade init script to upgrade prepare params
set_fact:
upgrade_prepare_extra_params: "{{ upgrade_prepare_extra_params + [upgrade_init_command_dest] }}"
when: upgrade_init_command is string
when:
- upgrade_init_command is string
- not ffu_overcloud_upgrade|bool
# Render it now so it takes all additions in upgrade_prepare_extra_params
- name: create overcloud upgrade prepare script
@ -35,4 +37,3 @@
- name: was the overcloud upgrade preparation successful.
fail: msg="Overcloud upgrade preparation step failed... :("
when: overcloud_upgrade_prepare.rc != 0

View File

@ -3,7 +3,7 @@ set -euo pipefail
source {{ undercloud_rc }}
echo "[$(date)] Started CEPH upgrade"
echo "[$(date)] Started {% if ffu_overcloud_upgrade %} ffwd-upgrade {% else %} major {% endif %}upgrade Ceph step"
openstack overcloud ceph-upgrade run \
--templates {{ tht_directory }} \
@ -12,7 +12,12 @@ openstack overcloud ceph-upgrade run \
-e {{ _env }} \
{% endfor %}
{% endif %}
{% if ffu_overcloud_upgrade %}
-e {{working_dir}}/cli_opts_params.yaml \
-e {{working_dir}}/ceph-ansible-env.yaml \
--ceph-ansible-playbook '/usr/share/ceph-ansible/infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml,/usr/share/ceph-ansible/infrastructure-playbooks/rolling_update.yml' \
{% endif %}
--container-registry-file {{ working_dir }}/{{ container_registry_file }} \
--roles-file {{ roles_data }} 2>&1
{% if not ffu_overcloud_upgrade %}--roles-file {{ roles_data }}{% endif %} 2>&1
echo "[$(date)] Finished CEPH upgrade"

View File

@ -0,0 +1,22 @@
parameter_defaults:
{% if control_scale|succeeded %}
ControllerCount: {{ control_scale.stdout|regex_search('\d+')}}
{% endif %}
{% if compute_scale|succeeded %}
ComputeCount: {{ compute_scale.stdout|regex_search('\d+')}}
{% endif %}
{% if ceph_scale|succeeded %}
CephStorageCount: {{ ceph_scale.stdout|regex_search('\d+')}}
{% endif %}
{% if control_flavor|succeeded %}
OvercloudControlFlavor: {{ control_flavor.stdout.split()[1]}}
{% endif %}
{% if compute_flavor|succeeded %}
OvercloudComputeFlavor: {{ compute_flavor.stdout.split()[1]}}
{% endif %}
{% if ceph_flavor|succeeded %}
OvercloudCephStorageFlavor: {{ ceph_flavor.stdout.split()[1]}}
{% endif %}
{% if ntp_server|succeeded %}
NtpServer: {{ ntp_server.stdout.split()[1] }}
{% endif %}

View File

@ -1,12 +0,0 @@
#!/bin/bash
#
set -euo pipefail
source {{ undercloud_rc }}
{% if 'ffu_upgrade_playbook_script' in item %}
ansible-playbook --module-path /usr/share/ansible-modules/ -i {{ working_dir }}/tripleo-ansible-inventory-static.yaml -b {{ overcloud_config_dir }}/fast_forward_upgrade_playbook.yaml | tee {{ working_dir}}/ffu_upgrade_playbook.log
{% elif 'ffu_upgrade_steps_playbook_script' in item %}
ansible-playbook --module-path /usr/share/ansible-modules/ -i {{ working_dir }}/tripleo-ansible-inventory-static.yaml -b {{ overcloud_config_dir }}/upgrade_steps_playbook.yaml --skip-tags=validation | tee {{ working_dir}}/ffu_upgrade_steps_playbook.log
{% elif 'ffu_deploy_steps_playbook_script' in item %}
ansible-playbook --module-path /usr/share/ansible-modules/ -i {{ working_dir }}/tripleo-ansible-inventory-static.yaml -b {{ overcloud_config_dir }}/deploy_steps_playbook.yaml | tee {{ working_dir}}/ffu_deploy_steps_playbook.log
{% endif %}

View File

@ -1,11 +0,0 @@
#!/bin/bash
#
set -euo pipefail
source {{ undercloud_rc }}
{% if 'ffu_upgrade_steps_playbook_script' in item %}
ansible-playbook --module-path /usr/share/ansible-modules/ -i {{ working_dir }}/tripleo-ansible-inventory-static.yaml -b {{ overcloud_config_dir }}/upgrade_steps_playbook.yaml --skip-tags=validation --limit={% for comp in oc_roles|intersect(['Compute']) -%}\!{{ comp }}{% if not loop.last %},{% endif %}{% endfor %} | tee {{ working_dir}}/{{ item }}_non_Compute.log
{% elif 'ffu_deploy_steps_playbook_script' in item %}
ansible-playbook --module-path /usr/share/ansible-modules/ -i {{ working_dir }}/tripleo-ansible-inventory-static.yaml -b {{ overcloud_config_dir }}/deploy_steps_playbook.yaml --limit={% for comp in oc_roles|intersect(['Compute']) -%}\!{{ comp }}{% if not loop.last %},{% endif %}{% endfor %} | tee {{ working_dir}}/{{ item }}_non_Compute.log
{% endif %}

View File

@ -1,10 +0,0 @@
#!/bin/bash
#
set -euo pipefail
source {{ undercloud_rc }}
{% if 'ffu_upgrade_steps_playbook_script' in item[1] %}
ansible-playbook --module-path /usr/share/ansible-modules/ -i {{ working_dir }}/tripleo-ansible-inventory-static.yaml -b {{ overcloud_config_dir }}/upgrade_steps_playbook.yaml --skip-tags=validation --limit={{ item[0] }} | tee {{ working_dir}}/{{ item[1] }}_{{ item[0] }}.log
{% elif 'ffu_deploy_steps_playbook_script' in item[1] %}
ansible-playbook --module-path /usr/share/ansible-modules/ -i {{ working_dir }}/tripleo-ansible-inventory-static.yaml -b {{ overcloud_config_dir }}/deploy_steps_playbook.yaml --limit={{ item[0] }} | tee {{ working_dir}}/{{ item[1] }}_{{ item[0] }}.log
{% endif %}

View File

@ -0,0 +1,6 @@
#!/bin/bash
#
set -euo pipefail
source {{ undercloud_rc }}
openstack overcloud upgrade run --nodes {{ item }} --skip-tags validation | tee {{ working_dir}}/overcloud_upgrade_{{ item }}.log

View File

@ -0,0 +1,6 @@
#!/bin/bash
#
set -euo pipefail
source {{ undercloud_rc }}
openstack overcloud upgrade run --roles {{ item }} --skip-tags validation | tee {{ working_dir}}/overcloud_upgrade_{{ item }}.log

View File

@ -0,0 +1,7 @@
#!/bin/bash
#
set -euo pipefail
source {{ undercloud_rc }}
openstack overcloud ffwd-upgrade run --yes {% if overcloud_ssh_user != '' %} --ssh-user {{ overcloud_ssh_user }} {% endif %} | tee {{ working_dir}}/overcloud_upgrade_run.log

View File

@ -44,8 +44,8 @@ apply_patch {{ value.basedir }} {{ value.id }}
{% endfor %}
{% endfor %}
{% elif 'pre_ffu_update_stack_outputs_workarounds' in item %}
{% for bugs in pre_ffu_update_stack_outputs_workarounds|default([]) %}
{% elif 'pre_ffu_overcloud_prepare_workarounds' in item %}
{% for bugs in pre_ffu_overcloud_prepare_workarounds|default([]) %}
{% for key, value in bugs.items() %}
echo {{ key }}
{% if value.patch %}
@ -57,8 +57,8 @@ apply_patch {{ value.basedir }} {{ value.id }}
{% endfor %}
{% endfor %}
{% elif 'pre_ffu_download_config_workarounds' in item %}
{% for bugs in pre_ffu_download_config_workarounds|default([]) %}
{% elif 'pre_ffu_overcloud_run_workarounds' in item %}
{% for bugs in pre_ffu_overcloud_run_workarounds|default([]) %}
{% for key, value in bugs.items() %}
echo {{ key }}
{% if value.patch %}
@ -70,8 +70,8 @@ apply_patch {{ value.basedir }} {{ value.id }}
{% endfor %}
{% endfor %}
{% elif 'pre_ffu_upgrade_playbook_workarounds' in item %}
{% for bugs in pre_ffu_upgrade_playbook_workarounds|default([]) %}
{% elif 'pre_ffu_overcloud_upgrade_workaround' in item %}
{% for bugs in pre_ffu_overcloud_upgrade_workaround|default([]) %}
{% for key, value in bugs.items() %}
echo {{ key }}
{% if value.patch %}
@ -83,24 +83,8 @@ apply_patch {{ value.basedir }} {{ value.id }}
{% endfor %}
{% endfor %}
{% elif 'pre_ffu_upgrade_steps_playbook_workarounds' in item %}
{% for bugs in pre_ffu_upgrade_steps_playbook_workarounds|default([]) %}
{% for key, value in bugs.items() %}
echo {{ key }}
{% if value.patch %}
curl -4 https://review.openstack.org/changes/{{ value.id }}/revisions/current/patch?download | \
base64 -d | \
sudo patch -d {{ value.basedir }} -p1
{% else %}
{{ value.command }}
{% endif %}
{% endfor %}
{% endfor %}
{% elif 'pre_ffu_deploy_steps_playbook_workarounds' in item %}
{% for bugs in pre_ffu_deploy_steps_playbook_workarounds|default([]) %}
{% elif 'pre_ffu_overcloud_converge_workarounds' in item %}
{% for bugs in pre_ffu_overcloud_converge_workarounds|default([]) %}
{% for key, value in bugs.items() %}
echo {{ key }}
{% if value.patch %}
@ -112,21 +96,8 @@ apply_patch {{ value.basedir }} {{ value.id }}
{% endfor %}
{% endfor %}
{% elif 'pre_ffu_upgrade_ceph_workarounds' in item %}
{% for bugs in pre_ffu_upgrade_ceph_workarounds|default([]) %}
{% for key, value in bugs.items() %}
echo {{ key }}
{% if value.patch %}
apply_patch {{ value.basedir }} {{ value.id }}
{% else %}
{{ value.command }}
{% endif %}
{% endfor %}
{% endfor %}
{% elif 'pre_ffu_upgrade_converge_workarounds' in item %}
{% for bugs in pre_ffu_upgrade_converge_workarounds|default([]) %}
{% elif 'pre_ffu_overcloud_ceph_workarounds' in item %}
{% for bugs in pre_ffu_overcloud_ceph_workarounds|default([]) %}
{% for key, value in bugs.items() %}
echo {{ key }}
{% if value.patch %}

View File

@ -5,8 +5,14 @@
set -euo pipefail
source {{ undercloud_rc }}
echo "Running major upgrade converge step"
openstack overcloud upgrade converge \
echo "Running {% if ffu_overcloud_upgrade %} ffwd-upgrade {% else %} major {% endif %}upgrade converge step"
openstack overcloud {% if ffu_overcloud_upgrade %} ffwd-upgrade {% else %} upgrade {% endif %}converge \
{% if ffu_overcloud_upgrade %}
--yes \
{% endif %}
{% if overcloud_ssh_user != '' %}
--overcloud-ssh-user {{ overcloud_ssh_user }} \
{% endif %}
{% if tripleo_upgrade_debug|bool %}
--debug \
{% endif %}
@ -20,4 +26,11 @@ openstack overcloud upgrade converge \
-e {{ _env }} \
{% endfor %}
{% endif %}
--roles-file {{ roles_data }} 2>&1
{% if ffu_overcloud_upgrade %}
-e {{working_dir}}/cli_opts_params.yaml \
-e {{ working_dir }}/{{ container_registry_file }} \
{% if ceph_osd_enabled %}
-e {{working_dir}}/ceph-ansible-env.yaml \
{% endif %}
{% endif %}
{% if not ffu_overcloud_upgrade %}--roles-file {{ roles_data }}{% endif %} 2>&1

View File

@ -6,8 +6,15 @@ set -euo pipefail
source {{undercloud_rc }}
echo "Setting up HEAT's output for major upgrade"
openstack overcloud upgrade prepare --templates --stack {{ overcloud_stack_name }} \
echo "Running {% if ffu_overcloud_upgrade %} ffwd-upgrade {% else %} major {% endif %}upgrade prepare step"
openstack overcloud{% if ffu_overcloud_upgrade %} ffwd-upgrade {% else %} upgrade {% endif %}prepare --stack {{ overcloud_stack_name }} \
--templates {{ tht_directory }} \
{% if ffu_overcloud_upgrade %}
--yes \
{% endif %}
{% if overcloud_ssh_user != '' %}
--overcloud-ssh-user {{ overcloud_ssh_user }} \
{% endif %}
{% if tripleo_upgrade_debug|bool %}
--debug \
{% endif %}
@ -17,10 +24,10 @@ openstack overcloud upgrade prepare --templates --stack {{ overcloud_stack_name
--container-registry-file {{ working_dir }}/{{ container_registry_file }} \
{% if initial_env_file is defined and initial_env_file.stdout_lines|length > 0 %}
{% for _env in initial_env_file.stdout_lines %}
-e {{ _env }} \
-e {{ _env }} \
{% endfor %}
{% endif %}
{% if upgrade_prepare_extra_params %}
-e {{ upgrade_prepare_extra_params | join(' -e ') }} \
{% endif %}
--roles-file {{ roles_data }} 2>&1
{% if not ffu_overcloud_upgrade %}--roles-file {{ roles_data }}{% endif %} 2>&1