Merge "Use the TripleO Ansible role from tripleo-upgrade to run upgrades"

This commit is contained in:
Zuul 2018-08-14 16:01:24 +00:00 committed by Gerrit Code Review
commit cddc9f82bc
34 changed files with 1 additions and 1462 deletions

View File

@ -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 }

View File

@ -1,7 +0,0 @@
---
# Upgrade a tripleo deployment already deploy and configure
- name: Upgrade Tripleo
hosts: undercloud
gather_facts: no
roles:
- overcloud-upgrade

View File

@ -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 }

View File

@ -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")),
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
------------

View File

@ -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

View File

@ -1,2 +0,0 @@
dependencies:
- extras-common

View File

@ -1,2 +0,0 @@
pbr>=1.6
ansible==2.0.0

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 }};

View File

@ -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

View File

@ -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"

View File

@ -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 %}

View File

@ -1,4 +0,0 @@
# Ignore Ceph warnings during the major controller and block storage upgrade
parameter_defaults:
IgnoreCephUpgradeWarnings: true

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 %}

View File

@ -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 %}

View File

@ -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"

View File

@ -1,2 +0,0 @@
resource_registry:
OS::TripleO::NodeExtraConfig: {{ update_heat_stack_template }}

View File

@ -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

View File

@ -1,6 +0,0 @@
#!/bin/bash
pushd /etc/yum.repos.d/
{% for item in repos_url %}
wget {{ item }}
{% endfor %}
popd

View File

@ -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

View File

@ -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'] }

View File

@ -1,2 +0,0 @@
[undercloud]
undercloud

View File

@ -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'] }