Merge "Use the TripleO Ansible role from tripleo-upgrade to run upgrades"
This commit is contained in:
commit
cddc9f82bc
|
@ -1,29 +0,0 @@
|
|||
---
|
||||
# Upgrade Undercloud and Overcloud on top of a quickstart Baremetal deployment
|
||||
- include: baremetal-full-deploy.yml
|
||||
|
||||
- name: Upgrade Tripleo
|
||||
hosts: undercloud
|
||||
gather_facts: no
|
||||
roles:
|
||||
- { role: overcloud-upgrade, deployment_type: baremetal }
|
||||
|
||||
# Execute sanity checks against the overcloud deployment
|
||||
- name: Sanity check the overcloud services
|
||||
hosts: undercloud
|
||||
tags:
|
||||
- overcloud-validate
|
||||
gather_facts: no
|
||||
roles:
|
||||
- { role: validate-sanity-checks,
|
||||
sanity_checks_log: validate_sanity_checks_upgraded.log,
|
||||
when: run_sanity_checks|default(false)|bool }
|
||||
|
||||
# Validate the deployment
|
||||
- name: validate the overcloud
|
||||
hosts: undercloud
|
||||
tags:
|
||||
- overcloud-validate
|
||||
gather_facts: no
|
||||
roles:
|
||||
- { role: validate-simple, when: test_ping|bool }
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
# Upgrade a tripleo deployment already deploy and configure
|
||||
- name: Upgrade Tripleo
|
||||
hosts: undercloud
|
||||
gather_facts: no
|
||||
roles:
|
||||
- overcloud-upgrade
|
|
@ -1,18 +0,0 @@
|
|||
---
|
||||
# Upgrade Undercloud and Overcloud on top of a quickstart deployment
|
||||
- include: quickstart-extras.yml
|
||||
|
||||
- name: Upgrade Tripleo
|
||||
hosts: undercloud
|
||||
gather_facts: no
|
||||
roles:
|
||||
- overcloud-upgrade
|
||||
|
||||
# Validate the deployment
|
||||
- name: validate the overcloud
|
||||
hosts: undercloud
|
||||
tags:
|
||||
- overcloud-validate
|
||||
gather_facts: no
|
||||
roles:
|
||||
- { role: validate-simple, when: test_ping|bool }
|
|
@ -108,9 +108,7 @@ SCHEME = (
|
|||
'pingtest={pingtest},'
|
||||
'tempest_run={tempest_run},'
|
||||
'undercloud_reinstall={undercloud_reinstall},'
|
||||
'overcloud_delete={overcloud_delete},'
|
||||
'undercloud_upgrade={undercloud_upgrade},'
|
||||
'overcloud_upgrade={overcloud_upgrade} '
|
||||
'overcloud_delete={overcloud_delete} '
|
||||
'{timestamp}'
|
||||
)
|
||||
|
||||
|
@ -146,8 +144,6 @@ DATA = {
|
|||
"validate-undercloud : Reinstall the undercloud to check idempotency"],
|
||||
'overcloud_delete': [
|
||||
"overcloud-delete : check for delete command to complete or fail"],
|
||||
'overcloud_upgrade': ["overcloud-upgrade : Upgrade the overcloud"],
|
||||
'undercloud_upgrade': ["overcloud-upgrade : Upgrade the undercloud"],
|
||||
'timestamp': int(datetime.datetime.utcnow().strftime("%s")),
|
||||
}
|
||||
|
||||
|
|
|
@ -1,146 +0,0 @@
|
|||
overcloud-upgrade
|
||||
=================
|
||||
|
||||
This role aim to upgrade an existing Tripleo deployment, Undercloud and
|
||||
Overcloud from the deployed version to the next version, major or minor version.
|
||||
It supports upgrade for:
|
||||
Liberty (major and minor)
|
||||
Mitaka (major and minor)
|
||||
Newton (major only)
|
||||
|
||||
It provides a set of tools and scripts to upgrade, the undercloud or the
|
||||
overcloud or both.
|
||||
Both upgrade workflow are supported, the legacy upgrade workflow and the
|
||||
composable upgrade workflow.
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
This role can be used on top of an existing Overcloud deployment.
|
||||
You just need to provide the required inventory file (see tests/ for more
|
||||
details).
|
||||
|
||||
Composable Upgrade
|
||||
------------------
|
||||
|
||||
The composable upgrade workflow has been implemented on Ocata release, for doing
|
||||
major upgrade from Newton to Ocata.
|
||||
This workflow aims to be more flexible than the previous one and decrease the
|
||||
number of steps to be applied by the operator.
|
||||
Also, it's using Ansible tasks to upgrade the services on the Overcloud nodes.
|
||||
|
||||
The workflow provides two possible methods for upgrading the Overcloud:
|
||||
* all-in-one step (mostly made for CI)
|
||||
* main upgrade steps and a converge step.
|
||||
The goal of the second method is to give the option to the operator to not
|
||||
upgrade all nodes in one shot. Then, it is possible to not stop the cloud and to
|
||||
migrate the workload from one compute to another.
|
||||
|
||||
The upgrade step is done in major-upgrade-overcloud.sh.j2
|
||||
(see lines below "execute overcloud upgrade"). This step allows
|
||||
the user to provide custom environment files for the heat stack update.
|
||||
The main point is that you can provide a custom file with only the
|
||||
services that you want to deploy and upgrade
|
||||
(see: tripleo-quickstart/config/general_config/composable_upgrade.yml)
|
||||
For example, if you want to test the upgrade with only Neutron and Keystone
|
||||
services, you just have to provide the extra file to your Ansible command
|
||||
with this yaml:
|
||||
|
||||
overcloud_services:
|
||||
- name: 'ControllerServices:'
|
||||
services:
|
||||
- OS::TripleO::Services::CACerts
|
||||
- OS::TripleO::Services::Core
|
||||
- OS::TripleO::Services::Kernel
|
||||
- OS::TripleO::Services::Keystone
|
||||
- OS::TripleO::Services::NeutronDhcpAgent
|
||||
- OS::TripleO::Services::NeutronL3Agent
|
||||
- OS::TripleO::Services::NeutronMetadataAgent
|
||||
- OS::TripleO::Services::NeutronServer
|
||||
- OS::TripleO::Services::NeutronCorePlugin
|
||||
- OS::TripleO::Services::NeutronOvsAgent
|
||||
- OS::TripleO::Services::MySQL
|
||||
- OS::TripleO::Services::RabbitMQ
|
||||
- OS::TripleO::Services::HAproxy
|
||||
- OS::TripleO::Services::Keepalived
|
||||
- OS::TripleO::Services::Memcached
|
||||
- OS::TripleO::Services::Ntp
|
||||
- OS::TripleO::Services::Timezone
|
||||
- OS::TripleO::Services::TripleoPackages
|
||||
- OS::TripleO::Services::TripleoFirewall
|
||||
|
||||
Legacy Upgrade Workflow
|
||||
-----------------------
|
||||
|
||||
The legacy workflow supports Liberty to Mitaka, and Mitaka to Newton, upgrade.
|
||||
It is composed of three main steps:
|
||||
1. script delivery
|
||||
2. controller upgrade
|
||||
3. converge step
|
||||
|
||||
and few extras steps for upgrading Block Storage, Compute and Ceph nodes.
|
||||
|
||||
From Liberty to Mitaka, we need to apply two pre-upgrade steps to migrate Aodh
|
||||
and Keystone. (see major-upgrade-overcloud.sh.j2 - lines following "execute aodh upgrade")
|
||||
|
||||
From mitaka to Newton, we need to apply one pre-upgrade step to migrate
|
||||
Ceilometer Alarm: major-upgrade-ceilometer-wsgi-mitaka-newton.yaml
|
||||
(see major-upgrade-overcloud.sh.j2- lines following "execute ceilometer migration")
|
||||
|
||||
The Block Storage should be upgraded before the Controller step, and the
|
||||
Compute and Ceph nodes should be upgraded after the Controller step and before
|
||||
the converge step.
|
||||
|
||||
|
||||
Role Variables
|
||||
--------------
|
||||
|
||||
Below are the default parameters for the overcloud upgrade role:
|
||||
|
||||
```
|
||||
# pre upgrade settings:
|
||||
oc_dns_server: 192.168.122.1
|
||||
# set-repo settings:
|
||||
target_upgrade_version: master
|
||||
delorean_hash: current-passed-ci
|
||||
repos:
|
||||
- delorean.repo
|
||||
- delorean-deps.repo
|
||||
yum_repo_path: /etc/yum.repos.d/
|
||||
# Url of the delorean repos:
|
||||
repos_url:
|
||||
- https://trunk.rdoproject.org/centos7-{{ target_upgrade_version }}/{{ delorean_hash | default('current-passed-ci')}}/delorean.repo
|
||||
- https://trunk.rdoproject.org/centos7-{{ target_upgrade_version }}/delorean-deps.repo
|
||||
```
|
||||
|
||||
Dependencies
|
||||
------------
|
||||
|
||||
Depends on:
|
||||
Tripleo-quickstart:
|
||||
https://github.com/redhat-openstack/tripleo-quickstart.git
|
||||
Ansible-role-tripleo-overcloud:
|
||||
https://github.com/redhat-openstack/ansible-role-tripleo-overcloud.git
|
||||
|
||||
|
||||
Example Playbook
|
||||
----------------
|
||||
|
||||
```
|
||||
- name: Upgrade overcloud
|
||||
hosts: undercloud
|
||||
gather_facts: no
|
||||
become: yes
|
||||
roles:
|
||||
- ansible-role-tripleo-overcloud-upgrade
|
||||
```
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
Apache
|
||||
|
||||
Author Information
|
||||
------------------
|
||||
|
||||
mbultel@redhat.com
|
|
@ -1,14 +0,0 @@
|
|||
[defaults]
|
||||
gathering = smart
|
||||
command_warnings = False
|
||||
retry_files_enabled = False
|
||||
callback_whitelist = profile_tasks
|
||||
|
||||
# Attempt to load custom modules whether it's installed system-wide or from a virtual environment
|
||||
test_plugins = /usr/lib/python2.7/site-packages/tripleo-quickstart/playbooks/test_plugins:$VIRTUAL_ENV/usr/local/share/tripleo-quickstart/playbooks/test_plugins:playbooks/test_plugins
|
||||
library = /usr/lib/python2.7/site-packages/tripleo-quickstart/playbooks/library:$VIRTUAL_ENV/usr/local/share/tripleo-quickstart/playbooks/library:playbooks/library
|
||||
roles_path = playbooks/roles:$VIRTUAL_ENV/usr/local/share/tripleo-quickstart/playbooks/roles:$VIRTUAL_ENV/usr/local/share/
|
||||
|
||||
|
||||
[ssh_connection]
|
||||
control_path = %(directory)s/%%h-%%r
|
|
@ -1,91 +0,0 @@
|
|||
---
|
||||
network_isolation: true
|
||||
# pre upgrade settings:
|
||||
upgrade_overcloud_dns_server: 8.8.8.8
|
||||
# this settings should be override by the network isolation settings
|
||||
# that it was previously passed.
|
||||
# it correspond to the cidr of the vlan on the UC
|
||||
network_isolation_ipv4_cidr: "10.0.0.1/24"
|
||||
network_isolation_vlan_tag: 10
|
||||
network_isolation_vlan: "vlan{{ network_isolation_vlan_tag }}"
|
||||
# set-repo settings:
|
||||
target_upgrade_version: master
|
||||
upgrade_delorean_hash: current-passed-ci
|
||||
repos:
|
||||
- delorean.repo
|
||||
- delorean-deps.repo
|
||||
yum_repo_path: /etc/yum.repos.d/
|
||||
# Url of the delorean repos:
|
||||
repos_url:
|
||||
- https://trunk.rdoproject.org/centos7-{{ target_upgrade_version }}/{{ upgrade_delorean_hash | default('current-passed-ci')}}/delorean.repo
|
||||
- https://trunk.rdoproject.org/centos7-{{ target_upgrade_version }}/delorean-deps.repo
|
||||
# upgrade settings:
|
||||
upgrade_working_dir: "{{ working_dir|default('/home/stack') }}"
|
||||
tht_dir: tripleo-heat-templates
|
||||
tripleo_common_dir: /usr/share/openstack-tripleo-common
|
||||
# containerized upgrade settings
|
||||
containerized_overcloud_upgrade_pull_images: true
|
||||
# scripts
|
||||
undercloud_upgrade_script: upgrade-undercloud.sh.j2
|
||||
upgrade_undercloud_repo_script: upgrade-repo.sh.j2
|
||||
upgrade_overcloud_repo_script: upgrade-repo.sh.j2
|
||||
major_upgrade_script: major-upgrade-overcloud.sh.j2
|
||||
minor_upgrade_script: minor-upgrade-overcloud.sh.j2
|
||||
upgrade_non_controller_script: /bin/upgrade-non-controller.sh
|
||||
upgrade_overcloud_repo_template: overcloud-repo.yaml.j2
|
||||
# Workaround for:
|
||||
# https://bugs.launchpad.net/tripleo/+bug/1610258
|
||||
ceph_default_template: ceph-default.yaml.j2
|
||||
# logs:
|
||||
upgrade_log: overcloud_upgrade_console.log
|
||||
undercloud_upgrade_log: undercloud_upgrade_console.log
|
||||
# user:
|
||||
undercloud_upgrade_user: stack
|
||||
# Deployment type could:
|
||||
# - virtual
|
||||
# - baremetal
|
||||
deployment_type: virtual
|
||||
scenario_args: ""
|
||||
# override those lists with your templates that your env needs for upgrade
|
||||
# example:
|
||||
# upgrade_custom_templates_script_delivery:
|
||||
# - custom.yaml
|
||||
# - custom2.yaml
|
||||
upgrade_custom_templates_script_delivery:
|
||||
- overcloud-repo.yaml
|
||||
upgrade_custom_templates_controller: {}
|
||||
upgrade_custom_templates_converge: {}
|
||||
upgrade_custom_templates: {}
|
||||
update_custom_templates: {}
|
||||
# custom templates:
|
||||
# example:
|
||||
#upgrade_templates: {}
|
||||
# custom:
|
||||
# name: custom.yaml
|
||||
# src: /home/mbu/ovb_templates/qwba6-mbu-rmgr-rh-pud-env.yaml
|
||||
upgrade_templates:
|
||||
overcloud-repo:
|
||||
name: overcloud-repo.yaml
|
||||
src: "{{ upgrade_overcloud_repo_template }}"
|
||||
# upgrade steps:
|
||||
step_pre_overcloud_upgrade: true
|
||||
step_pre_undercloud_upgrade: true
|
||||
step_upgrade_undercloud: true
|
||||
step_upgrade_overcloud: true
|
||||
# mode: (major or minor)
|
||||
# minor : False
|
||||
# major : True
|
||||
# default is major
|
||||
major_upgrade: true
|
||||
mixed_upgrade: false
|
||||
enable_ceph: false
|
||||
enable_pacemaker: true
|
||||
# heat workers:
|
||||
set_heat_workers: false
|
||||
# Set external route for the controller
|
||||
allow_external_traffic: false
|
||||
# Update:
|
||||
update_heat_stack_template: update-dnsserver.yaml
|
||||
# TBR:
|
||||
libvirt_uri: qemu:///session
|
||||
undercloud_workers: 6
|
|
@ -1,160 +0,0 @@
|
|||
Tripleo - Upgrades
|
||||
===================
|
||||
|
||||
This document describe how to handle the Upgrade role with Ansible.
|
||||
The source of the Ansible role are located here:
|
||||
|
||||
https://github.com/redhat-openstack/ansible-role-tripleo-overcloud-upgrade.git
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
In order to use the Upgrade role, you need to have:
|
||||
- a working Tripleo environment (undercloud and overcloud successful deployed)
|
||||
- a Ansible hosts file populated with the right access to the undercloud
|
||||
|
||||
Playbook
|
||||
--------
|
||||
|
||||
The call of the role in the playbook should like this:
|
||||
|
||||
---
|
||||
- name: Upgrade Tripleo
|
||||
hosts: undercloud
|
||||
gather_facts: no
|
||||
roles:
|
||||
- { role: ansible-role-tripleo-overcloud-upgrade }
|
||||
|
||||
You can specified which step you want to run or not. With this example you won't
|
||||
execute the pre tasks for undercloud and overcloud.
|
||||
|
||||
---
|
||||
- name: Upgrade Tripleo
|
||||
hosts: undercloud
|
||||
gather_facts: no
|
||||
roles:
|
||||
- { role: ansible-role-tripleo-overcloud-upgrade,
|
||||
step_pre_undercloud_upgrade: false,
|
||||
step_pre_overcloud_upgrade: false}
|
||||
|
||||
Parameters
|
||||
----------
|
||||
|
||||
The upgrade role takes several parameters as input -- defaults are located
|
||||
in default/main.yml. All of these values can be overriden.
|
||||
With the default values, you can upgrade a basic TripleO environment from Liberty
|
||||
to Mitaka.
|
||||
|
||||
Common Parameters
|
||||
`````````````````
|
||||
|
||||
The common parameter that you will probably have to override is:
|
||||
|
||||
Network settings :
|
||||
By default the network isolation is enabled.
|
||||
|
||||
network_isolation: true
|
||||
# pre upgrade settings:
|
||||
upgrade_overcloud_dns_server: 8.8.8.8
|
||||
# this settings should be override by the network isolation settings
|
||||
# that it was previously passed.
|
||||
# it correspond to the cidr of the vlan on the UC
|
||||
network_isolation_ipv4_cidr: "10.0.0.1/24"
|
||||
|
||||
Repo settings:
|
||||
The target_upgrade_version is the release where you want to upgrade your env
|
||||
The delorean_hash is the pinned version of the delorean repo.
|
||||
|
||||
# set-repo settings:
|
||||
target_upgrade_version: mitaka
|
||||
upgrade_delorean_hash: current-passed-ci
|
||||
repos:
|
||||
- delorean.repo
|
||||
- delorean-deps.repo
|
||||
yum_repo_path: /etc/yum.repos.d/
|
||||
# Url of the delorean repos:
|
||||
repos_url:
|
||||
- https://trunk.rdoproject.org/centos7-{{ target_upgrade_version }}/{{ upgrade_delorean_hash | default('current-passed-ci')}}/delorean.repo
|
||||
- https://trunk.rdoproject.org/centos7-{{ target_upgrade_version }}/delorean-deps.repo
|
||||
|
||||
.. Note:: If you don't use the delorean repo, you don't have to take care of
|
||||
this values. If you override the upgrade_undercloud_repo_script and upgrade_overcloud_repo_script
|
||||
script, those values will be useless
|
||||
|
||||
Templates and log files:
|
||||
Those values could be overriden by your own script.
|
||||
For example you can change the:
|
||||
|
||||
upgrade_undercloud_repo_script: upgrade-repo.sh.j2
|
||||
|
||||
By:
|
||||
|
||||
upgrade_undercloud_repo_script: script/upgrade/my_script
|
||||
|
||||
.. Note:: The relative path would be from your playbook directory.
|
||||
|
||||
All of those script and log files could be change by override those values:
|
||||
|
||||
# scripts
|
||||
upgrade_undercloud_repo_script: upgrade-repo.sh.j2
|
||||
upgrade_overcloud_repo_script: upgrade-repo.sh.j2
|
||||
upgrade_script: upgrade-overcloud.sh.j2
|
||||
upgrade_non_controller_script: /bin/upgrade-non-controller.sh
|
||||
upgrade_overcloud_repo_template: overcloud-repo.yaml.j2
|
||||
# logs:
|
||||
upgrade_log: upgrade_console.log
|
||||
|
||||
Specific Parameters
|
||||
```````````````````
|
||||
The other parameters gives you the opportunity to add your own heat templates
|
||||
to the upgrade command. The upgrade command is composed of three steps, so you
|
||||
can add the template of your choice in each 3 steps.
|
||||
You can use it like this:
|
||||
|
||||
upgrade_custom_templates_script_delivery:
|
||||
- overcloud-repo.yaml
|
||||
- my-custom-heat-template-1.yaml
|
||||
upgrade_custom_templates_controller:
|
||||
- overcloud-repo.yaml
|
||||
- my-custom-heat-template-for-controller.yaml
|
||||
upgrade_custom_templates_converge:
|
||||
- overcloud-repo.yaml
|
||||
upgrade_templates:
|
||||
overcloud-repo:
|
||||
name: overcloud-repo.yaml
|
||||
src: "{{ upgrade_overcloud_repo_template }}"
|
||||
my-custom-1:
|
||||
name: my-custom-heat-template-1.yaml
|
||||
src: heat-templates/my-custom-heat-template-1.yaml.j2
|
||||
my-custom-controller:
|
||||
name: my-custom-heat-template-for-controller.yaml
|
||||
src: heat-templates/my-custom-heat-template-for-controller.yaml.j2
|
||||
|
||||
.. Note:: Note that, each custom templates provided are jinja2 template file. So
|
||||
you can add variables / condition or loop into, depending of your need, or
|
||||
non predictable values on your env.
|
||||
|
||||
.. Note:: An important thing to notice is that the overcloud repositories are set
|
||||
through a heat template and given to the upgrade command. The role assume that
|
||||
your env and especially the controller are well configured, meaning the yum
|
||||
repositories should reachable by the nodes and the dns server are able to
|
||||
resolv the names.
|
||||
|
||||
Jinja templates
|
||||
---------------
|
||||
|
||||
The upgrade role provide three jinja templates:
|
||||
|
||||
templates/
|
||||
├── overcloud-repo.yaml.j2
|
||||
├── upgrade-overcloud.sh.j2
|
||||
└── upgrade-repo.sh.j2
|
||||
|
||||
The overcloud-repo.yaml.j2 is the heat template for set up the overcloud yum repositories
|
||||
The upgrade-overcloud.sh.j2 is the bash script for upgrade the overcloud, with the 3 steps.
|
||||
The upgrade-repo.sh.j2 is the script for set up the upstream undercloud yum repositories.
|
||||
This script should be overriden for downstream for example.
|
||||
|
||||
Known issues
|
||||
------------
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
---
|
||||
# handlers file for upgrade
|
||||
- name: restart openstack services
|
||||
service: name={{item}} state=restarted
|
||||
become: yes
|
||||
with_items:
|
||||
- openstack-heat-api
|
||||
- openstack-heat-engine
|
||||
- openstack-nova-api
|
||||
|
||||
- name: create vlan if doesn't exist
|
||||
ignore_errors: yes
|
||||
become: yes
|
||||
shell: >
|
||||
ifconfig {{ network_isolation_vlan }};
|
||||
if [[ $? != 0 ]]; then \
|
||||
ovs-vsctl add-port br-ctlplane {{ network_isolation_vlan }} tag={{ network_isolation_vlan_tag }} \
|
||||
-- set interface {{ network_isolation_vlan }} type=internal;
|
||||
fi
|
||||
when: network_isolation|bool
|
||||
|
||||
- name: set vlan up
|
||||
ignore_errors: yes
|
||||
become: yes
|
||||
shell: >
|
||||
ip l set dev {{ network_isolation_vlan }} up; ip addr add {{ network_isolation_ipv4_cidr }} dev {{ network_isolation_vlan }};
|
||||
when: network_isolation|bool
|
||||
|
||||
- name: allow traffic for the controller
|
||||
become: yes
|
||||
shell: >
|
||||
sudo iptables -A BOOTSTACK_MASQ -s {{ network_isolation_ipv4_cidr }} ! \
|
||||
-d {{ network_isolation_ipv4_cidr }} -j MASQUERADE -t nat
|
||||
when: network_isolation|bool
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
dependencies:
|
||||
- extras-common
|
|
@ -1,2 +0,0 @@
|
|||
pbr>=1.6
|
||||
ansible==2.0.0
|
|
@ -1,39 +0,0 @@
|
|||
---
|
||||
- name: Create upgrade repo script for undercloud
|
||||
template:
|
||||
src: "{{ upgrade_undercloud_repo_script }}"
|
||||
dest: "{{ upgrade_working_dir }}/upgrade-undercloud-repo.sh"
|
||||
mode: 0744
|
||||
|
||||
- name: Copy custom heat templates files if provided
|
||||
template:
|
||||
src: "{{ item.value.src }}"
|
||||
dest: "{{ upgrade_working_dir }}/{{ item.value.name }}"
|
||||
with_dict: "{{ upgrade_templates }}"
|
||||
|
||||
# Need to set fact here because tht_dir is used in the templated script
|
||||
# in "Create major overcloud upgrade script" task
|
||||
- name: set fact for tht_dir
|
||||
when: target_upgrade_version in ['ocata']
|
||||
set_fact:
|
||||
tht_dir: "/usr/share/openstack-tripleo-heat-templates"
|
||||
|
||||
- name: set the scenario args for composable roles
|
||||
set_fact:
|
||||
scenario_args: >-
|
||||
-e {{ tht_dir }}/ci/environments/{{ upgrade_composable_scenario }}
|
||||
when: not upgrade_composable_scenario|trim == ''
|
||||
|
||||
- name: Create major overcloud upgrade script
|
||||
when: major_upgrade|bool
|
||||
template:
|
||||
src: "{{ major_upgrade_script }}"
|
||||
dest: "{{ upgrade_working_dir }}/overcloud-upgrade.sh"
|
||||
mode: 0755
|
||||
|
||||
- name: Create minor overcloud upgrade script
|
||||
when: not major_upgrade|bool
|
||||
template:
|
||||
src: "{{ minor_upgrade_script }}"
|
||||
dest: "{{ upgrade_working_dir }}/overcloud-upgrade.sh"
|
||||
mode: 0755
|
|
@ -1,28 +0,0 @@
|
|||
---
|
||||
- include: create-scripts.yml
|
||||
tags:
|
||||
- overcloud-upgrade-scripts
|
||||
|
||||
- include: pre-undercloud.yml
|
||||
when: step_pre_undercloud_upgrade|bool
|
||||
tags:
|
||||
- pre-upgrade-undercloud
|
||||
|
||||
- include: upgrade-undercloud.yml
|
||||
when: step_upgrade_undercloud|bool
|
||||
tags:
|
||||
- upgrade-undercloud
|
||||
|
||||
- include: pre-overcloud.yml
|
||||
when: step_pre_overcloud_upgrade|bool
|
||||
tags:
|
||||
- pre-upgrade-overcloud
|
||||
|
||||
- include: upgrade-overcloud.yml
|
||||
when: step_upgrade_overcloud|bool
|
||||
tags:
|
||||
- upgrade-overcloud
|
||||
|
||||
- include: post-upgrade.yml
|
||||
tags:
|
||||
- upgrade-post-tasks
|
|
@ -1,60 +0,0 @@
|
|||
---
|
||||
- name: Copy custom heat templates files if provided
|
||||
template:
|
||||
src: "{{ item.value.src }}"
|
||||
dest: "{{ upgrade_working_dir }}/{{ item.value.name }}"
|
||||
with_dict: "{{ upgrade_templates }}"
|
||||
|
||||
- name: Copy ignore warnings template file for ceph upgrade
|
||||
template:
|
||||
src: "ceph-upgrade.yaml.J2"
|
||||
dest: "{{ upgrade_working_dir }}/ceph-upgrade.yaml"
|
||||
when: enable_ceph|bool
|
||||
|
||||
- name: Make sure no Tht repo is present
|
||||
when: not mixed_upgrade|bool
|
||||
file: path={{ upgrade_working_dir }}/{{ tht_dir }} state=absent
|
||||
|
||||
- name: Copy new Tht directory to the upgrade working dir
|
||||
when: not mixed_upgrade|bool
|
||||
shell: >
|
||||
cp -R /usr/share/openstack-tripleo-heat-templates \
|
||||
{{ upgrade_working_dir }}/{{ tht_dir }};
|
||||
|
||||
- name: Add the no ssh finger print checking into upgrade-non-controller.sh
|
||||
become: yes
|
||||
shell: >
|
||||
sed -i 's/ssh/ssh -o StrictHostKeyChecking=no/' \
|
||||
{{ upgrade_non_controller_script }}
|
||||
|
||||
- name: allow traffic for the controller
|
||||
become: yes
|
||||
shell: >
|
||||
sudo iptables -A BOOTSTACK_MASQ -s {{ network_isolation_ipv4_cidr }} ! \
|
||||
-d {{ network_isolation_ipv4_cidr }} -j MASQUERADE -t nat;
|
||||
sudo iptables-save > /etc/sysconfig/iptables;
|
||||
when: network_isolation|bool and deployment_type == "virtual"
|
||||
|
||||
- name: get the number of core
|
||||
when: set_heat_workers
|
||||
register: core
|
||||
shell: >
|
||||
cat /proc/cpuinfo | grep processor | wc -l
|
||||
|
||||
- name: set the number of workers for heat engine before runnning OC upgrade
|
||||
when: set_heat_workers
|
||||
set_fact:
|
||||
heat_workers: "{{ core.stdout|int / 2 }}"
|
||||
|
||||
# Hardcode the number of heat workers, to try to avoid the badstatusline in
|
||||
# centos ci:
|
||||
# 1 / append after the commented line
|
||||
# 2 / make sure all heat engine workers are set to 6
|
||||
# TODO: remove this with a smarter fix
|
||||
- name: Set the num of heat workers
|
||||
when: set_heat_workers
|
||||
become: yes
|
||||
shell: >
|
||||
sed -i "/#num_engine_workers/a num_engine_workers = 6" /etc/heat/heat.conf;
|
||||
sed -i "s/num_engine_workers.*$/num_engine_workers = 6/" /etc/heat/heat.conf;
|
||||
systemctl restart openstack-heat-engine
|
|
@ -1,39 +0,0 @@
|
|||
---
|
||||
- name: Clean up the repos
|
||||
become: yes
|
||||
file: path=/etc/yum.repos.d/{{ item }} state=absent
|
||||
with_items: "{{ repos }}"
|
||||
when: step_pre_undercloud_upgrade|bool
|
||||
|
||||
- name: Execute upgrade repo script
|
||||
become: yes
|
||||
shell: >
|
||||
set -o pipefail &&
|
||||
{{ upgrade_working_dir }}/upgrade-undercloud-repo.sh 2>&1 {{ timestamper_cmd }} >
|
||||
upgrade-undercloud-repo.sh.log
|
||||
when: step_pre_undercloud_upgrade|bool
|
||||
|
||||
- name: Clean yum cache
|
||||
become: yes
|
||||
shell: yum clean all
|
||||
|
||||
- name: Push hieradata override file for workers
|
||||
template:
|
||||
src: "quickstart-hieradata-overrides.yaml.j2"
|
||||
dest: "{{ upgrade_working_dir }}/quickstart-hieradata-overrides.yaml"
|
||||
|
||||
- name: Create undercloud upgrade script
|
||||
template:
|
||||
src: "{{ undercloud_upgrade_script }}"
|
||||
dest: "{{ upgrade_working_dir }}/undercloud-upgrade.sh"
|
||||
mode: 0755
|
||||
|
||||
- name: Make sure no Tht repo is present
|
||||
when: mixed_upgrade|bool
|
||||
file: path={{ upgrade_working_dir }}/{{ tht_dir }} state=absent
|
||||
|
||||
- name: Copy current Tht directory to the upgrade working dir
|
||||
when: mixed_upgrade|bool
|
||||
shell: >
|
||||
cp -R /usr/share/openstack-tripleo-heat-templates \
|
||||
{{ upgrade_working_dir }}/{{ tht_dir }};
|
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Upgrade the overcloud
|
||||
shell: >
|
||||
set -o pipefail &&
|
||||
{{ upgrade_working_dir }}/overcloud-upgrade.sh 2>&1 {{ timestamper_cmd }} >
|
||||
{{ upgrade_log }}
|
||||
when: step_upgrade_overcloud|bool
|
|
@ -1,27 +0,0 @@
|
|||
---
|
||||
- name: Upgrade the undercloud
|
||||
shell: >
|
||||
set -o pipefail &&
|
||||
{{ upgrade_working_dir }}/undercloud-upgrade.sh 2>&1 {{ timestamper_cmd }} >
|
||||
{{ undercloud_upgrade_log }}
|
||||
when: step_upgrade_undercloud
|
||||
notify:
|
||||
- restart openstack services
|
||||
|
||||
- name: create vlan if doesn't exist
|
||||
ignore_errors: yes
|
||||
become: yes
|
||||
shell: >
|
||||
ifconfig {{ network_isolation_vlan }};
|
||||
if [[ $? != 0 ]]; then \
|
||||
ovs-vsctl add-port br-ctlplane {{ network_isolation_vlan }} tag={{ network_isolation_vlan_tag }} \
|
||||
-- set interface {{ network_isolation_vlan }} type=internal;
|
||||
fi
|
||||
when: network_isolation|bool and deployment_type == "virtual"
|
||||
|
||||
- name: set vlan up
|
||||
ignore_errors: yes
|
||||
become: yes
|
||||
shell: >
|
||||
ip l set dev {{ network_isolation_vlan }} up; ip addr add {{ network_isolation_ipv4_cidr }} dev {{ network_isolation_vlan }};
|
||||
when: network_isolation|bool and deployment_type == "virtual"
|
|
@ -1,9 +0,0 @@
|
|||
{% if enable_ceph == false and target_upgrade_version == 'mitaka' %}
|
||||
# Workaround due to backward compatibility:
|
||||
# https://bugs.launchpad.net/tripleo/+bug/1610258
|
||||
parameter_defaults:
|
||||
CephClusterFSID: ''
|
||||
CephMonKey: ''
|
||||
CephAdminKey: ''
|
||||
CephClientKey: ''
|
||||
{% endif %}
|
|
@ -1,4 +0,0 @@
|
|||
# Ignore Ceph warnings during the major controller and block storage upgrade
|
||||
|
||||
parameter_defaults:
|
||||
IgnoreCephUpgradeWarnings: true
|
|
@ -1,94 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -ux
|
||||
|
||||
onerror(){
|
||||
echo "Command failed"
|
||||
# get the failures list
|
||||
openstack stack resource list overcloud >> failed_upgrade_list.log || true
|
||||
openstack stack failures list --long overcloud >> failed_upgrade.log
|
||||
# NOTE(emilien) "openstack overcloud failures" was introduced in Rocky
|
||||
openstack overcloud failures >> failed_upgrade.log || true
|
||||
exit 1
|
||||
}
|
||||
trap onerror ERR
|
||||
|
||||
source {{ upgrade_working_dir }}/stackrc
|
||||
|
||||
{% if containerized_overcloud_upgrade_pull_images|bool %}
|
||||
# pull latest containers to the registry
|
||||
openstack overcloud container image prepare \
|
||||
--output-images-file {{ upgrade_working_dir }}/overcloud_upgrade_containers.yaml \
|
||||
--output-env-file ~/containers-default-parameters.yaml \
|
||||
-e {{ tht_dir }}/environments/docker.yaml \
|
||||
{{ scenario_args }} \
|
||||
{% for item in upgrade_custom_templates %}
|
||||
-e {{ item }} \
|
||||
{% endfor %}
|
||||
--namespace {{ docker_registry_host }}/{{ docker_registry_namespace }} \
|
||||
--tag {{ docker_image_tag }} \
|
||||
--push-destination {{ local_docker_registry_host }}:8787
|
||||
|
||||
openstack overcloud container image upload --verbose --config-file {{ working_dir }}/overcloud_upgrade_containers.yaml
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% if target_upgrade_version in ['pike'] %}
|
||||
|
||||
# generate container image parameters to pull from local registry
|
||||
openstack overcloud container image prepare \
|
||||
--output-env-file ~/containers-default-parameters.yaml \
|
||||
-e {{ tht_dir }}/environments/docker.yaml \
|
||||
{{ scenario_args }} \
|
||||
{% for item in upgrade_custom_templates %}
|
||||
-e {{ item }} \
|
||||
{% endfor %}
|
||||
--namespace {{ local_docker_registry_host }}:8787/{{ docker_registry_namespace }} \
|
||||
--tag {{ docker_image_tag }}
|
||||
|
||||
echo "execute overcloud upgrade"
|
||||
openstack overcloud deploy --templates {{ tht_dir }} \
|
||||
{{ deploy_args_used }} \
|
||||
-e {{ tht_dir }}/environments/docker.yaml \
|
||||
{{ scenario_args }} \
|
||||
-e {{ tht_dir }}/environments/major-upgrade-composable-steps-docker.yaml \
|
||||
-e ~/containers-default-parameters.yaml \
|
||||
-e ~/overcloud-repo.yaml \
|
||||
{% for item in upgrade_custom_templates %}
|
||||
-e {{ item }} \
|
||||
{% endfor %}
|
||||
|
||||
if openstack stack show overcloud | grep "stack_status " | egrep "(CREATE|UPDATE)_COMPLETE"; then
|
||||
openstack overcloud deploy --templates {{ tht_dir }} \
|
||||
{{ deploy_args_used }} \
|
||||
-e {{ tht_dir }}/environments/docker.yaml \
|
||||
{{ scenario_args }} \
|
||||
-e {{ tht_dir }}/environments/major-upgrade-converge-docker.yaml \
|
||||
-e ~/containers-default-parameters.yaml \
|
||||
{% for item in upgrade_custom_templates %}
|
||||
-e {{ item }} \
|
||||
{% endfor %}
|
||||
|
||||
fi
|
||||
|
||||
{% else %}
|
||||
|
||||
echo "execute overcloud upgrade"
|
||||
openstack overcloud upgrade --init-update --templates \
|
||||
--container-registry-file {{ working_dir }}/containers-default-parameters.yaml \
|
||||
-e ~/overcloud-repo.yaml
|
||||
|
||||
# TODO add per rolename
|
||||
openstack overcloud upgrade --nodes Controller --playbook upgrade_steps_playbook.yaml
|
||||
openstack overcloud upgrade --nodes Controller --playbook deploy_steps_playbook.yaml
|
||||
openstack overcloud upgrade --nodes Controller --playbook post_upgrade_steps_playbook.yaml
|
||||
|
||||
# featureset has no compute yet... # openstack overcloud upgrade --nodes Compute
|
||||
openstack overcloud upgrade --converge
|
||||
|
||||
{% endif %}
|
||||
|
||||
if openstack stack show overcloud | grep "stack_status " | egrep "(CREATE|UPDATE)_COMPLETE"; then
|
||||
echo "Update successful"
|
||||
else
|
||||
exit 1
|
||||
fi
|
|
@ -1,211 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -ux
|
||||
|
||||
onerror(){
|
||||
echo "Command failed"
|
||||
# get the failures list
|
||||
heat resource-list overcloud >> failed_upgrade_list.log || true
|
||||
for failed in $(heat resource-list \
|
||||
--nested-depth 5 overcloud | grep FAIL |
|
||||
grep 'StructuredDeployment ' | cut -d '|' -f3)
|
||||
do echo -n "heat deployment-show output for deployment: $failed" >> failed_upgrade.log
|
||||
echo -n "######################################################" >> failed_upgrade.log
|
||||
heat deployment-show $failed >> failed_upgrade.log
|
||||
echo -n "######################################################" >> failed_upgrade.log
|
||||
echo "puppet standard error for deployment: $failed" >> failed_upgrade.log
|
||||
echo -n "######################################################" >> failed_upgrade.log
|
||||
echo -e $(heat deployment-show $failed | jq .output_values.deploy_stderr) >> failed_upgrade.log
|
||||
echo -n "######################################################" >> failed_upgrade.log
|
||||
done
|
||||
exit 1
|
||||
}
|
||||
trap onerror ERR
|
||||
|
||||
### --start_docs
|
||||
## Upgrade the overcloud
|
||||
## ==========================================
|
||||
|
||||
## Prepare Your Environment
|
||||
## ------------------------
|
||||
|
||||
## * Source in the undercloud credentials.
|
||||
## ::
|
||||
source {{ upgrade_working_dir }}/stackrc
|
||||
|
||||
{% if target_upgrade_version in ['mitaka', 'newton'] %}
|
||||
{% if target_upgrade_version == 'mitaka' %}
|
||||
if heat stack-show overcloud | grep "stack_status " | egrep "(CREATE|UPDATE)_COMPLETE"; then
|
||||
echo "execute aodh upgrade"
|
||||
openstack overcloud deploy --templates {{ tht_dir }} \
|
||||
-e tripleo-heat-templates/overcloud-resource-registry-puppet.yaml \
|
||||
{% if network_isolation|bool %}
|
||||
-e {{ tht_dir }}/environments/network-isolation.yaml \
|
||||
-e {{ tht_dir }}/environments/net-single-nic-with-vlans.yaml \
|
||||
-e ~/network-environment.yaml \
|
||||
{% endif %}
|
||||
-e {{ tht_dir }}/environments/puppet-pacemaker.yaml \
|
||||
{% for item in upgrade_custom_templates_controller %}
|
||||
-e {{ item }} \
|
||||
{% endfor %}
|
||||
-e {{ tht_dir }}/environments/major-upgrade-aodh.yaml
|
||||
fi
|
||||
|
||||
if heat stack-show overcloud | grep "stack_status " | egrep "(CREATE|UPDATE)_COMPLETE"; then
|
||||
echo "execute keystone upgrade"
|
||||
openstack overcloud deploy --templates {{ tht_dir }} \
|
||||
-e tripleo-heat-templates/overcloud-resource-registry-puppet.yaml \
|
||||
{% if network_isolation|bool %}
|
||||
-e {{ tht_dir }}/environments/network-isolation.yaml \
|
||||
-e {{ tht_dir }}/environments/net-single-nic-with-vlans.yaml \
|
||||
-e ~/network-environment.yaml \
|
||||
{% endif %}
|
||||
-e {{ tht_dir }}/environments/puppet-pacemaker.yaml \
|
||||
{% for item in upgrade_custom_templates_controller %}
|
||||
-e {{ item }} \
|
||||
{% endfor %}
|
||||
-e {{ tht_dir }}/environments/major-upgrade-keystone-liberty-mitaka.yaml
|
||||
fi
|
||||
{% endif %}
|
||||
|
||||
{% if target_upgrade_version == 'newton' %}
|
||||
if heat stack-show overcloud | grep "stack_status " | egrep "(CREATE|UPDATE)_COMPLETE"; then
|
||||
echo "execute ceilometer migration"
|
||||
openstack overcloud deploy --templates {{ tht_dir }} \
|
||||
-e tripleo-heat-templates/overcloud-resource-registry-puppet.yaml \
|
||||
{% if network_isolation|bool %}
|
||||
-e {{ tht_dir }}/environments/network-isolation.yaml \
|
||||
-e {{ tht_dir }}/environments/net-single-nic-with-vlans.yaml \
|
||||
-e ~/network-environment.yaml \
|
||||
{% endif %}
|
||||
-e {{ tht_dir }}/environments/puppet-pacemaker.yaml \
|
||||
{% for item in upgrade_custom_templates_controller %}
|
||||
-e {{ item }} \
|
||||
{% endfor %}
|
||||
-e {{ tht_dir }}/environments/major-upgrade-ceilometer-wsgi-mitaka-newton.yaml
|
||||
fi
|
||||
{% endif %}
|
||||
|
||||
|
||||
if heat stack-show overcloud | grep "stack_status " | egrep "(CREATE|UPDATE)_COMPLETE"; then
|
||||
echo "execute script delivery"
|
||||
openstack overcloud deploy --templates {{ tht_dir }} \
|
||||
-e tripleo-heat-templates/overcloud-resource-registry-puppet.yaml \
|
||||
{% if network_isolation|bool %}
|
||||
-e {{ tht_dir }}/environments/network-isolation.yaml \
|
||||
-e {{ tht_dir }}/environments/net-single-nic-with-vlans.yaml \
|
||||
-e ~/network-environment.yaml \
|
||||
{% endif %}
|
||||
-e {{ tht_dir }}/environments/puppet-pacemaker.yaml \
|
||||
-e {{ tht_dir }}/environments/major-upgrade-pacemaker-init.yaml \
|
||||
{% for item in upgrade_custom_templates_script_delivery %}
|
||||
-e {{ item }} \
|
||||
{% endfor %}
|
||||
#required blank line because of previous backslash
|
||||
|
||||
fi
|
||||
|
||||
if heat stack-show overcloud | grep "stack_status " | egrep "(CREATE|UPDATE)_COMPLETE"; then
|
||||
echo "get ceph uuid and update swift"
|
||||
for swift in $(nova list | grep swift | awk '{ print $2; }'); do
|
||||
echo "Run upgrade on $swift"
|
||||
{{ upgrade_non_controller_script }} --upgrade $swift
|
||||
done
|
||||
fi
|
||||
|
||||
if heat stack-show overcloud | grep "stack_status " | egrep "(CREATE|UPDATE)_COMPLETE"; then
|
||||
echo "execute major upgrade controller"
|
||||
openstack overcloud deploy --templates {{ tht_dir }} \
|
||||
-e tripleo-heat-templates/overcloud-resource-registry-puppet.yaml \
|
||||
{% if network_isolation|bool %}
|
||||
-e {{ tht_dir }}/environments/network-isolation.yaml \
|
||||
-e {{ tht_dir }}/environments/net-single-nic-with-vlans.yaml \
|
||||
-e ~/network-environment.yaml \
|
||||
{% endif %}
|
||||
-e {{ tht_dir }}/environments/puppet-pacemaker.yaml \
|
||||
{% for item in upgrade_custom_templates_controller %}
|
||||
-e {{ item }} \
|
||||
{% endfor %}
|
||||
{% if enable_ceph|bool %}
|
||||
-e ceph-upgrade.yaml \
|
||||
{% endif %}
|
||||
-e {{ tht_dir }}/environments/major-upgrade-pacemaker.yaml
|
||||
fi
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% if target_upgrade_version in ['ocata', 'master'] %}
|
||||
## * Upgrade the controlplane.
|
||||
## This step, set the Overcloud yum repository to the next release,
|
||||
## then upgrade the control plane.
|
||||
## ::
|
||||
|
||||
if openstack stack show -c stack_status overcloud -f value | egrep "(CREATE|UPDATE)_COMPLETE"; then
|
||||
echo "execute overcloud upgrade"
|
||||
openstack overcloud deploy --templates {{ tht_dir }} \
|
||||
-e {{ tht_dir }}/overcloud-resource-registry-puppet.yaml \
|
||||
{% if network_isolation|bool == true %}
|
||||
-e {{ tht_dir }}/environments/network-isolation.yaml \
|
||||
-e {{ tht_dir }}/environments/net-single-nic-with-vlans.yaml \
|
||||
-e ~/network-environment.yaml \
|
||||
{% endif %}
|
||||
{% if enable_pacemaker|bool %}
|
||||
-e {{ tht_dir }}/environments/puppet-pacemaker.yaml \
|
||||
{% endif %}
|
||||
{{ scenario_args }} \
|
||||
-e {{ tht_dir }}/environments/major-upgrade-composable-steps.yaml \
|
||||
{% for item in upgrade_custom_templates_script_delivery %}
|
||||
-e {{ item }} \
|
||||
{% endfor %}
|
||||
{% for item in upgrade_custom_templates %}
|
||||
-e {{ item }} \
|
||||
{% endfor %}
|
||||
|
||||
fi
|
||||
{% endif %}
|
||||
|
||||
if heat stack-show overcloud | grep "stack_status " | egrep "(CREATE|UPDATE)_COMPLETE"; then
|
||||
## * Upgrade the non controller nodes.
|
||||
## This step upgrade the non controller nodes to the next release and run
|
||||
## the puppet converge step on nodes.
|
||||
## ::
|
||||
echo "get compute uuid and update compute"
|
||||
for compute in $(nova list | grep compute | awk '{ print $2; }'); do
|
||||
echo "Run upgrade on $compute"
|
||||
{{ upgrade_non_controller_script }} --upgrade $compute
|
||||
done
|
||||
fi
|
||||
|
||||
if heat stack-show overcloud | grep "stack_status " | egrep "(CREATE|UPDATE)_COMPLETE"; then
|
||||
|
||||
echo "get ceph uuid and update ceph"
|
||||
for ceph in $(nova list | grep cephstorage | awk '{ print $2; }'); do
|
||||
echo "Run upgrade on $ceph"
|
||||
{{ upgrade_non_controller_script }} --upgrade $ceph
|
||||
done
|
||||
fi
|
||||
### --stop_docs
|
||||
{% if target_upgrade_version not in ['ocata', 'master'] %}
|
||||
|
||||
if heat stack-show overcloud | grep "stack_status " | egrep "(CREATE|UPDATE)_COMPLETE"; then
|
||||
echo "execute converge"
|
||||
openstack overcloud deploy --templates {{ tht_dir }} \
|
||||
-e tripleo-heat-templates/overcloud-resource-registry-puppet.yaml \
|
||||
-e tripleo-heat-templates/environments/puppet-pacemaker.yaml \
|
||||
-e tripleo-heat-templates/environments/major-upgrade-pacemaker-converge.yaml \
|
||||
{% for item in upgrade_custom_templates_converge %}
|
||||
-e {{ item }} \
|
||||
{% endfor %}
|
||||
{% if network_isolation|bool %}
|
||||
-e {{ tht_dir }}/environments/network-isolation.yaml \
|
||||
-e {{ tht_dir }}/environments/net-single-nic-with-vlans.yaml \
|
||||
-e ~/network-environment.yaml
|
||||
{% endif %}
|
||||
fi
|
||||
|
||||
{% endif %}
|
||||
|
||||
if heat stack-show overcloud | grep "stack_status " | egrep "(CREATE|UPDATE)_COMPLETE"; then
|
||||
echo "Update successful"
|
||||
else
|
||||
exit 1
|
||||
fi
|
|
@ -1,17 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -eux
|
||||
source {{ upgrade_working_dir }}/stackrc
|
||||
|
||||
openstack overcloud deploy --templates {{ tht_dir }} \
|
||||
-e {{ tht_dir }}/overcloud-resource-registry-puppet.yaml \
|
||||
{% if network_isolation == true %}
|
||||
-e {{ tht_dir }}/environments/network-isolation.yaml \
|
||||
-e {{ tht_dir }}/environments/net-single-nic-with-vlans.yaml \
|
||||
-e ~/network-environment.yaml \
|
||||
{% endif %}
|
||||
{% for item in update_custom_templates %}
|
||||
-e {{ item }} \
|
||||
{% endfor %}
|
||||
|
||||
echo "check upgrade status"
|
||||
heat stack-list | grep -i COMPLETE
|
|
@ -1,116 +0,0 @@
|
|||
parameter_defaults:
|
||||
UpgradeInitCommand: |
|
||||
set -e
|
||||
pushd /etc/yum.repos.d/
|
||||
rm -rf delorean*
|
||||
sudo yum clean all;
|
||||
sudo yum-config-manager --disable "*"
|
||||
sudo rm -rf /etc/yum.repos.d/delorean*;
|
||||
sudo rm -rf /etc/yum.repos.d/*.rpmsave;
|
||||
if [ -e /etc/ci/mirror_info.sh ]; then
|
||||
source /etc/ci/mirror_info.sh
|
||||
else
|
||||
# Otherwise, fallback to official mirrors provided by CentOS.
|
||||
export NODEPOOL_CENTOS_MIRROR=http://mirror.centos.org/centos
|
||||
export NODEPOOL_BUILDLOGS_CENTOS_PROXY=https://buildlogs.centos.org
|
||||
export NODEPOOL_RDO_PROXY=https://trunk.rdoproject.org
|
||||
fi
|
||||
rdo_dlrn=`curl --silent ${NODEPOOL_RDO_PROXY}/centos7-{{ target_upgrade_version }}/current/delorean.repo | grep baseurl | cut -d= -f2`
|
||||
tripleo_dlrn=`curl --silent ${NODEPOOL_RDO_PROXY}/centos7-{{ target_upgrade_version }}/current-tripleo/delorean.repo | grep baseurl | cut -d= -f2`
|
||||
if [[ -z "$rdo_dlrn" || -z "$tripleo_dlrn" ]]; then
|
||||
echo "Failed to parse dlrn hash"
|
||||
exit 1
|
||||
fi
|
||||
export RDO_DLRN_REPO=${rdo_dlrn/https:\/\/trunk.rdoproject.org/$NODEPOOL_RDO_PROXY}
|
||||
export TRIPLEO_DLRN_REPO=${tripleo_dlrn/https:\/\/trunk.rdoproject.org/$NODEPOOL_RDO_PROXY}
|
||||
|
||||
cat<<EOF >delorean.repo
|
||||
[delorean]
|
||||
name=delorean
|
||||
baseurl=$TRIPLEO_DLRN_REPO
|
||||
priority=20
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
EOF
|
||||
|
||||
cat<<EOF >delorean-current.repo
|
||||
[delorean-current]
|
||||
name=delorean-current
|
||||
baseurl=$RDO_DLRN_REPO
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
priority=10
|
||||
includepkgs=diskimage-builder,instack,instack-undercloud,os-apply-config,os-collect-config,os-net-config,os-refresh-config,python-tripleoclient,openstack-puppet-modules,openstack-tripleo-*,puppet-*
|
||||
EOF
|
||||
|
||||
cat<<EOF >delorean-{{ target_upgrade_version }}-testing.repo
|
||||
[delorean-{{ target_upgrade_version }}-testing]
|
||||
name=delorean-{{ target_upgrade_version }}-testing
|
||||
{% if target_upgrade_version in [ 'newton', 'ocata', 'pike' ] %}
|
||||
baseurl=${NODEPOOL_BUILDLOGS_CENTOS_PROXY}/centos/7/cloud/x86_64/openstack-{{ target_upgrade_version }}/
|
||||
{% else %}
|
||||
baseurl=${NODEPOOL_RDO_PROXY}/centos7-{{ target_upgrade_version }}/deps/latest/
|
||||
{% endif %}
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
priority=30
|
||||
EOF
|
||||
|
||||
cat<<EOF >quickstart-centos-base.repo
|
||||
[quickstart-centos-base]
|
||||
name=quickstart-centos-base
|
||||
baseurl=${NODEPOOL_CENTOS_MIRROR}/7/os/x86_64/
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
EOF
|
||||
|
||||
cat<<EOF >quickstart-centos-updates.repo
|
||||
[quickstart-centos-updates]
|
||||
name=quickstart-centos-updates
|
||||
baseurl=${NODEPOOL_CENTOS_MIRROR}/7/updates/x86_64/
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
EOF
|
||||
|
||||
cat<<EOF >quickstart-centos-extras.repo
|
||||
[quickstart-centos-extras]
|
||||
name=quickstart-centos-extras
|
||||
baseurl=${NODEPOOL_CENTOS_MIRROR}/7/extras/x86_64/
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
EOF
|
||||
|
||||
cat<<EOF >quickstart-centos-qemu.repo
|
||||
[quickstart-centos-qemu]
|
||||
name=quickstart-centos-qemu
|
||||
baseurl=${NODEPOOL_CENTOS_MIRROR}/7/virt/x86_64/kvm-common/
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
EOF
|
||||
|
||||
cat<<EOF >quickstart-centos-ceph-jewel.repo
|
||||
[quickstart-centos-ceph-jewel]
|
||||
name=quickstart-centos-ceph-jewel
|
||||
baseurl=${NODEPOOL_CENTOS_MIRROR}/7/storage/x86_64/ceph-jewel/
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
EOF
|
||||
|
||||
cat<<EOF >quickstart-centos-opstools.repo
|
||||
[quickstart-centos-opstools]
|
||||
name=quickstart-centos-opstools
|
||||
baseurl=${NODEPOOL_CENTOS_MIRROR}/7/opstools/x86_64/
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
EOF
|
||||
|
||||
sudo yum install -y yum-plugin-priorities;
|
||||
sudo yum-config-manager --save --setopt quickstart-centos-opstools.enabled=0;
|
||||
sudo yum-config-manager --disable rdo-qemu-ev;
|
||||
sudo rpm -e epel-release || true;
|
||||
sudo yum remove -y rdo-release centos-release-openstack-* || true;
|
||||
sudo rm -rf /etc/yum.repos.d/CentOS-OpenStack-*.repo /etc/yum.repos.d/CentOS-QEMU-EV.repo;
|
||||
sudo rm -rf /etc/yum.repos.d/*.rpmsave;
|
||||
sudo yum repolist;
|
||||
popd
|
||||
yum clean all
|
|
@ -1,29 +0,0 @@
|
|||
parameter_defaults:
|
||||
UpgradeInitCommand: |
|
||||
set -e
|
||||
pushd /etc/yum.repos.d/
|
||||
rm -rf delorean*
|
||||
|
||||
{% if target_upgrade_version == 'master' %}
|
||||
curl -O -L https://trunk.rdoproject.org/centos7/current/delorean.repo
|
||||
curl -O -L https://trunk.rdoproject.org/centos7/delorean-deps.repo
|
||||
{% else %}
|
||||
{% if upgrade_delorean_hash == 'current-passed-ci' %}
|
||||
curl -O -L https://trunk.rdoproject.org/centos7-{{ target_upgrade_version }}/current-passed-ci/delorean.repo
|
||||
{% else %}
|
||||
curl -O -L https://trunk.rdoproject.org/centos7-{{ target_upgrade_version }}/current/delorean.repo
|
||||
{% endif %}
|
||||
curl -O -L https://trunk.rdoproject.org/centos7-{{ target_upgrade_version }}/delorean-deps.repo
|
||||
{% endif %}
|
||||
|
||||
popd
|
||||
yum clean all
|
||||
{% if target_upgrade_version != 'newton' %}
|
||||
yum install -y python-heat-agent-*
|
||||
yum install -y ansible-pacemaker
|
||||
yum update -y ansible
|
||||
# update ansible.cfg
|
||||
# FIXME: Workaround for bigswitch vendor pluging
|
||||
# we need to remove those package which is broken with Ocata neutron python code
|
||||
yum remove -y python-UcsSdk openstack-neutron-bigswitch-agent python-networking-bigswitch openstack-neutron-bigswitch-lldp python-networking-odl
|
||||
{% endif %}
|
|
@ -1,66 +0,0 @@
|
|||
# Ironic defaults to using `qemu:///system`. When running libvirtd
|
||||
# unprivileged we need to use `qemu:///session`. This allows us to pass
|
||||
# the value of libvirt_uri into /etc/ironic/ironic.conf.
|
||||
ironic::drivers::ssh::libvirt_uri: '{{libvirt_uri}}'
|
||||
|
||||
# The following are configurations for the different workers for the undercloud
|
||||
# services.
|
||||
{% if undercloud_workers is defined %}
|
||||
undercloud_workers: {{undercloud_workers}}
|
||||
{% endif %}
|
||||
|
||||
{% if undercloud_glance_workers is defined %}
|
||||
glance::api::workers: {{undercloud_glance_workers}}
|
||||
glance::registry::workers: {{undercloud_glance_workers}}
|
||||
{% elif undercloud_workers is defined %}
|
||||
glance::api::workers: "%{hiera('undercloud_workers')}"
|
||||
glance::registry::workers: "%{hiera('undercloud_workers')}"
|
||||
{% endif %}
|
||||
|
||||
{% if undercloud_heat_workers is defined %}
|
||||
heat::api::workers: {{undercloud_heat_workers}}
|
||||
heat::api_cfn::workers: {{undercloud_heat_workers}}
|
||||
heat::engine::num_engine_workers: {{undercloud_heat_workers}}
|
||||
{% elif undercloud_workers is defined %}
|
||||
heat::api::workers: "%{hiera('undercloud_workers')}"
|
||||
heat::api_cfn::workers: "%{hiera('undercloud_workers')}"
|
||||
heat::engine::num_engine_workers: "%{hiera('undercloud_workers')}"
|
||||
{% endif %}
|
||||
|
||||
{% if undercloud_ironic_workers is defined %}
|
||||
ironic::api::workers: {{undercloud_ironic_workers}}
|
||||
ironic::wsgi::apache::workers: {{undercloud_ironic_workers}}
|
||||
{% elif undercloud_workers is defined %}
|
||||
ironic::api::workers: "%{hiera('undercloud_workers')}"
|
||||
ironic::wsgi::apache::workers: "%{hiera('undercloud_workers')}"
|
||||
{% endif %}
|
||||
|
||||
{% if undercloud_keystone_workers is defined %}
|
||||
keystone::wsgi::apache::workers: {{undercloud_keystone_workers}}
|
||||
{% elif undercloud_workers is defined %}
|
||||
keystone::wsgi::apache::workers: "%{hiera('undercloud_workers')}"
|
||||
{% endif %}
|
||||
|
||||
{% if undercloud_neutron_workers is defined %}
|
||||
neutron::agents::metadata::metadata_workers: {{undercloud_neutron_workers}}
|
||||
neutron::server::api_workers: {{undercloud_neutron_workers}}
|
||||
{% elif undercloud_workers is defined %}
|
||||
neutron::agents::metadata::metadata_workers: "%{hiera('undercloud_workers')}"
|
||||
neutron::server::api_workers: "%{hiera('undercloud_workers')}"
|
||||
{% endif %}
|
||||
|
||||
{% if undercloud_nova_workers is defined %}
|
||||
nova::api::metadata_workers: {{undercloud_nova_workers}}
|
||||
nova::api::osapi_compute_workers: {{undercloud_nova_workers}}
|
||||
nova::conductor::workers: {{undercloud_nova_workers}}
|
||||
{% elif undercloud_workers is defined %}
|
||||
nova::api::metadata_workers: "%{hiera('undercloud_workers')}"
|
||||
nova::api::osapi_compute_workers: "%{hiera('undercloud_workers')}"
|
||||
nova::conductor::workers: "%{hiera('undercloud_workers')}"
|
||||
{% endif %}
|
||||
|
||||
{% if undercloud_swift_workers is defined %}
|
||||
swift::proxy::workers: {{undercloud_swift_workers}}
|
||||
{% elif undercloud_workers is defined %}
|
||||
swift::proxy::workers: "%{hiera('undercloud_workers')}"
|
||||
{% endif %}
|
|
@ -1,26 +0,0 @@
|
|||
heat_template_version: 2014-10-16
|
||||
description: 'Update resolv.conf'
|
||||
parameters:
|
||||
server:
|
||||
type: string
|
||||
|
||||
resources:
|
||||
|
||||
NameServerConfig:
|
||||
type: OS::Heat::SoftwareConfig
|
||||
properties:
|
||||
group: script
|
||||
config: |
|
||||
#!/bin/sh
|
||||
echo "nameserver {{ upgrade_overcloud_dns_server }}" >> /etc/resolv.conf
|
||||
|
||||
NameServerDeployment:
|
||||
type: OS::Heat::SoftwareDeployment
|
||||
properties:
|
||||
name: NameServerDeployment
|
||||
config: {get_resource: NameServerConfig}
|
||||
server: {get_param: server}
|
||||
|
||||
outputs:
|
||||
deploy_stdout:
|
||||
value: "None"
|
|
@ -1,2 +0,0 @@
|
|||
resource_registry:
|
||||
OS::TripleO::NodeExtraConfig: {{ update_heat_stack_template }}
|
|
@ -1,113 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
pushd /etc/yum.repos.d/
|
||||
rm -rf delorean*
|
||||
{% if target_upgrade_version == 'master' %}
|
||||
|
||||
sudo yum clean all;
|
||||
sudo yum-config-manager --disable "*"
|
||||
sudo rm -rf /etc/yum.repos.d/delorean*;
|
||||
sudo rm -rf /etc/yum.repos.d/*.rpmsave;
|
||||
if [ -e /etc/ci/mirror_info.sh ]; then
|
||||
source /etc/ci/mirror_info.sh
|
||||
else
|
||||
# Otherwise, fallback to official mirrors provided by CentOS.
|
||||
export NODEPOOL_CENTOS_MIRROR=http://mirror.centos.org/centos
|
||||
export NODEPOOL_BUILDLOGS_CENTOS_PROXY=https://buildlogs.centos.org
|
||||
export NODEPOOL_RDO_PROXY=https://trunk.rdoproject.org
|
||||
fi
|
||||
rdo_dlrn=`curl --silent ${NODEPOOL_RDO_PROXY}/centos7/current/delorean.repo | grep baseurl | cut -d= -f2`
|
||||
tripleo_dlrn=`curl --silent ${NODEPOOL_RDO_PROXY}/centos7/current-tripleo/delorean.repo | grep baseurl | cut -d= -f2`
|
||||
if [[ -z "$rdo_dlrn" || -z "$tripleo_dlrn" ]]; then
|
||||
echo "Failed to parse dlrn hash"
|
||||
exit 1
|
||||
fi
|
||||
export RDO_DLRN_REPO=${rdo_dlrn/https:\/\/trunk.rdoproject.org/$NODEPOOL_RDO_PROXY}
|
||||
export TRIPLEO_DLRN_REPO=${tripleo_dlrn/https:\/\/trunk.rdoproject.org/$NODEPOOL_RDO_PROXY}
|
||||
|
||||
cat<<EOF >delorean.repo
|
||||
[delorean]
|
||||
name=delorean
|
||||
baseurl=$TRIPLEO_DLRN_REPO
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
EOF
|
||||
|
||||
cat<<EOF >delorean-current.repo
|
||||
[delorean-current]
|
||||
name=delorean-current
|
||||
baseurl=$RDO_DLRN_REPO
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
priority=10
|
||||
includepkgs=diskimage-builder,instack,instack-undercloud,os-apply-config,os-collect-config,os-net-config,os-refresh-config,python-tripleoclient,openstack-tripleo-common*,openstack-tripleo-heat-templates,openstack-tripleo-image-elements,openstack-tripleo,openstack-tripleo-puppet-elements,openstack-puppet-modules,openstack-tripleo-ui,puppet-*
|
||||
EOF
|
||||
|
||||
cat<<EOF >delorean-pike-testing.repo
|
||||
[delorean-pike-testing]
|
||||
name=delorean-pike-testing
|
||||
baseurl=${NODEPOOL_BUILDLOGS_CENTOS_PROXY}/centos/7/cloud/x86_64/openstack-pike/
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
priority=30
|
||||
EOF
|
||||
|
||||
cat<<EOF >quickstart-centos-base.repo
|
||||
[quickstart-centos-base]
|
||||
name=quickstart-centos-base
|
||||
baseurl=${NODEPOOL_CENTOS_MIRROR}/7/os/x86_64/
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
EOF
|
||||
|
||||
cat<<EOF >quickstart-centos-updates.repo
|
||||
[quickstart-centos-updates]
|
||||
name=quickstart-centos-updates
|
||||
baseurl=${NODEPOOL_CENTOS_MIRROR}/7/updates/x86_64/
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
EOF
|
||||
|
||||
cat<<EOF >quickstart-centos-extras.repo
|
||||
[quickstart-centos-extras]
|
||||
name=quickstart-centos-extras
|
||||
baseurl=${NODEPOOL_CENTOS_MIRROR}/7/extras/x86_64/
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
EOF
|
||||
|
||||
cat<<EOF >quickstart-centos-qemu.repo
|
||||
[quickstart-centos-qemu]
|
||||
name=quickstart-centos-qemu
|
||||
baseurl=${NODEPOOL_CENTOS_MIRROR}/7/virt/x86_64/kvm-common/
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
EOF
|
||||
|
||||
cat<<EOF >quickstart-centos-ceph-jewel.repo
|
||||
[quickstart-centos-ceph-jewel]
|
||||
name=quickstart-centos-ceph-jewel
|
||||
baseurl=${NODEPOOL_CENTOS_MIRROR}/7/storage/x86_64/ceph-jewel/
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
EOF
|
||||
|
||||
cat<<EOF >quickstart-centos-opstools.repo
|
||||
[quickstart-centos-opstools]
|
||||
name=quickstart-centos-opstools
|
||||
baseurl=${NODEPOOL_CENTOS_MIRROR}/7/opstools/x86_64/
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
EOF
|
||||
|
||||
sudo yum install -y yum-plugin-priorities;
|
||||
sudo yum-config-manager --save --setopt quickstart-centos-opstools.enabled=0;
|
||||
sudo yum-config-manager --disable rdo-qemu-ev;
|
||||
sudo rpm -e epel-release || true;
|
||||
sudo yum remove -y rdo-release centos-release-openstack-* || true;
|
||||
sudo rm -rf /etc/yum.repos.d/CentOS-OpenStack-*.repo /etc/yum.repos.d/CentOS-QEMU-EV.repo;
|
||||
sudo rm -rf /etc/yum.repos.d/*.rpmsave;
|
||||
sudo yum repolist;
|
||||
{% endif %}
|
||||
popd
|
||||
yum clean all
|
|
@ -1,6 +0,0 @@
|
|||
#!/bin/bash
|
||||
pushd /etc/yum.repos.d/
|
||||
{% for item in repos_url %}
|
||||
wget {{ item }}
|
||||
{% endfor %}
|
||||
popd
|
|
@ -1,21 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -eux
|
||||
# Undercloud upgrade script.
|
||||
{% if target_upgrade_version in ['newton', 'ocata'] %}
|
||||
# These steps have been added in Pike as a pre-upgrade entry point
|
||||
# in instack, so they will be executed in 'openstack undercloud upgrade':
|
||||
|
||||
sudo systemctl stop 'openstack-*'
|
||||
sudo systemctl stop 'neutron-*'
|
||||
sudo systemctl stop httpd
|
||||
|
||||
# update instack-undercloud and friends before running the upgrade
|
||||
sudo yum -y update instack-undercloud openstack-puppet-modules openstack-tripleo-common
|
||||
|
||||
{% endif %}
|
||||
|
||||
sudo yum -y update python-tripleoclient
|
||||
|
||||
echo "Upgrade the undercloud"
|
||||
openstack undercloud upgrade
|
|
@ -1,6 +0,0 @@
|
|||
- name: Set undercloud repo
|
||||
hosts: undercloud
|
||||
gather_facts: no
|
||||
become: yes
|
||||
roles:
|
||||
- { role: ansible-role-tripleo-overcloud-upgrade, tags: ['upgrade-repo'] }
|
|
@ -1,2 +0,0 @@
|
|||
[undercloud]
|
||||
undercloud
|
|
@ -1,31 +0,0 @@
|
|||
- name: Execute pre-task for upgrade
|
||||
hosts: overcloud
|
||||
gather_facts: no
|
||||
become: yes
|
||||
roles:
|
||||
- { role: ansible-role-tripleo-overcloud-upgrade, tags: ['upgrade-pre-tasks'] }
|
||||
|
||||
- name: Set undercloud repo
|
||||
hosts: undercloud
|
||||
gather_facts: no
|
||||
become: yes
|
||||
roles:
|
||||
- { role: ansible-role-tripleo-overcloud-upgrade, tags: ['upgrade-repo'] }
|
||||
|
||||
- name: Upgrade the undercloud
|
||||
hosts: undercloud
|
||||
gather_facts: no
|
||||
roles:
|
||||
- { role: ansible-role-tripleo-overcloud-upgrade, tags: ['upgrade-undercloud'] }
|
||||
|
||||
- name: Upgrade the overcloud
|
||||
hosts: undercloud
|
||||
gather_facts: no
|
||||
roles:
|
||||
- { role: ansible-role-tripleo-overcloud-upgrade, tags: ['upgrade-overcloud'] }
|
||||
|
||||
- name: Execute post upgrade tasks
|
||||
hosts: undercloud
|
||||
gather_facts: no
|
||||
roles:
|
||||
- { role: ansible-role-tripleo-overcloud-upgrade, tags: ['upgrade-post-tasks'] }
|
Loading…
Reference in New Issue