Upgrade UC and OC using tripleo-upgrade role.

Link tripleo-upgrade [0] role into oooq multinode playbook:

 - Added a containers preparation step for upgrades
 - Call tripleo-upgrade role with the specific parameters set in the
   job featureset.

[0] https://github.com/openstack/tripleo-upgrade

This keeps backward compatibility.

All the necessary bit for the docker switching repository
configuration will come in a later patch.  Here we just add the step.
The first target of this role being O->P, this isn't yet needed as
docker images are not upgrade in this scenario.

We are introducing a tech-debt here.  We have to refactor the set of
tasks introduced in the playbook to a proper role inside oooq-extra.
This should be done in a following refactor.

Related-Bug: #1749740

implements: blueprint tripleo-upgrade

Co-Authored-By: Sofer Athlan-Guyot <sathlang@redhat.com>

Change-Id: I92a1d915441686453ef0b241e4ba151c03595074
This commit is contained in:
Jose Luis Franco Arza 2018-02-07 10:06:26 +01:00
parent 966a9650a0
commit 80ba11d9d6
4 changed files with 99 additions and 18 deletions

View File

@ -33,7 +33,7 @@
- overcloud-prep-containers
roles:
- role: overcloud-prep-containers
when: containerized_overcloud|bool or containerized_overcloud_upgrade|bool
when: containerized_overcloud|bool
- name: Run tripleo-validations pre-deployment tests
hosts: undercloud

View File

@ -0,0 +1,18 @@
- name: Set up repos on subnodes for upgrading
hosts: overcloud
vars:
ib_repo_host: undercloud
roles:
- role: repo-setup
when: mixed_upgrade|default(false)|bool
- role: install-built-repo
when: hostvars['undercloud']['compressed_gating_repo'] is defined and mixed_upgrade|default(false)|bool
- name: Upgrade Tripleo
hosts: undercloud
tags:
- overcloud-upgrade
gather_facts: no
roles:
- role: overcloud-upgrade
when: containerized_overcloud_upgrade|bool

View File

@ -0,0 +1,69 @@
- name: Prepare containers for Upgrade
hosts: undercloud
gather_facts: no
tags:
- overcloud-prep-containers
roles:
- role: overcloud-prep-containers
when: containerized_overcloud_upgrade|bool
- name: Generate repo-setup script for overcloud upgrade
hosts: undercloud
tags:
- overcloud-upgrade
gather_facts: no
vars:
repo_run_live: false
repo_setup_script: "repo-setup-{{ target_upgrade_version }}.sh"
# Avoid running yum update, only set up repos
repo_setup_run_update: false
roles:
- role: repo-setup
when: containerized_overcloud_upgrade|bool
#FIXME(chem): tech-debt LP#1749740
- name: Upgrade TripleO
hosts: undercloud
gather_facts: yes
tags:
- overcloud-upgrade
vars:
update_repo_script: "{{ lookup('file', '{{ working_dir }}/repo-setup-{{ target_upgrade_version }}.sh') }}"
tripleo_upgrade_branch: "{{ 'stable/'+target_upgrade_version if target_upgrade_version!='master' else target_upgrade_version }}"
tasks:
- name: Filter ansible_br_*
setup:
filter: ansible_br_*
- name: Copy current T-H-T directory to the upgrade working dir
synchronize:
src: /usr/share/openstack-tripleo-heat-templates
dest: "{{ overcloud_templates_path }}"
- name: Check if we have a local copy of the tripleo-upgrade role
stat:
path: /opt/stack/new/tripleo-upgrade
register: tripleo_upgrade_local_role
- name: Set the pip URL when we have a local copy of the role
set_fact:
tripleo_upgrade_pip_url: "file:///opt/stack/new/tripleo-upgrade#egg=tripleo-upgrade"
when: tripleo_upgrade_local_role.stat.exists
- name: Set the pip URL when we DO NOT have a local copy of the role
set_fact:
tripleo_upgrade_pip_url: "git+https://git.openstack.org/openstack/tripleo-upgrade.git@{{ tripleo_upgrade_branch }}#egg=tripleo-upgrade"
when: tripleo_upgrade_local_role.stat.exists == False
- name: Install tripleo-upgrade role "{{ tripleo_upgrade_branch }}" branch
pip:
name: "{{ tripleo_upgrade_pip_url }}"
executable: "{{ local_working_dir }}/bin/pip"
- name: Run Tripleo-upgrade role
vars:
upgrade_init_command: "{{ update_repo_script }}"
include_role:
name: tripleo-upgrade
when: containerized_overcloud_upgrade|bool

View File

@ -1,18 +1,12 @@
- name: Set up repos on subnodes for upgrading
hosts: overcloud
vars:
ib_repo_host: undercloud
roles:
- role: repo-setup
when: mixed_upgrade|default(false)|bool
- role: install-built-repo
when: hostvars['undercloud']['compressed_gating_repo'] is defined and mixed_upgrade|default(false)|bool
# TODO: This is to keep legacy job compatibility.
# Currently used by P->Q and O->P job.
- name: Overcloud upgrade compatibility mode. Please switch to tripleo-upgrade role.
when: not use_tripleo_upgrade|default(false)|bool
include: multinode-overcloud-upgrade-legacy.yml
# TODO(chem): that glue code part should be in its own role, to keep the
# playbook clean.
- name: Overcloud tripleo-upgrade.
when: use_tripleo_upgrade|default(false)|bool
include: multinode-overcloud-upgrade-new.yml
- name: Upgrade Tripleo
hosts: undercloud
tags:
- overcloud-upgrade
gather_facts: no
roles:
- role: overcloud-upgrade
when: containerized_overcloud_upgrade|bool