FFU: Introduce post FFU steps and use them for qeens switch
In last step of FFU we need to swich repos before running upgrade. We do so by introducing post FFU steps and running the switch in them. We also update heat agents and os-collect-config on nodes. Change-Id: I649afc6fa384ae21edc5bc917f8bb586350e5d47
This commit is contained in:
parent
d04bb9bdd9
commit
26c55d15cd
@ -76,8 +76,8 @@ parameters:
|
||||
default: []
|
||||
FastForwardUpgradeReleases:
|
||||
type: comma_delimited_list
|
||||
default: ['ocata', 'pike']
|
||||
description: List of releases to fast forward through during upgrade.
|
||||
default: ['ocata', 'pike', 'queens']
|
||||
description: List of releases to fast forward through during upgrade. Last release in list is used for post steps.
|
||||
|
||||
conditions:
|
||||
{% for step in range(1, deploy_steps_max) %}
|
||||
@ -565,10 +565,20 @@ outputs:
|
||||
- hosts: overcloud
|
||||
become: true
|
||||
tasks:
|
||||
- set_fact:
|
||||
releases: {get_param: [FastForwardUpgradeReleases]}
|
||||
{% raw %}
|
||||
- set_fact:
|
||||
ffu_releases: "{{ releases | difference( releases | last )}}"
|
||||
- include_tasks: fast_forward_upgrade_release_tasks.yaml
|
||||
loop_control:
|
||||
loop_var: release
|
||||
with_items: {get_param: [FastForwardUpgradeReleases]}
|
||||
with_items: '{{ ffu_releases }}'
|
||||
- set_fact:
|
||||
release: "{{ releases | last }}"
|
||||
ffu_packages_apply: True
|
||||
{% endraw %}
|
||||
- include_tasks: fast_forward_upgrade_post_role_tasks.yaml
|
||||
fast_forward_upgrade_release_tasks: |
|
||||
- include_tasks: fast_forward_upgrade_prep_tasks.yaml
|
||||
- include_tasks: fast_forward_upgrade_bootstrap_tasks.yaml
|
||||
@ -593,9 +603,11 @@ outputs:
|
||||
tags: common
|
||||
command: hiera -c /etc/puppet/hiera.yaml bootstrap_nodeid
|
||||
register: bootstrap_node
|
||||
- name: set is_bootstrap_node fact
|
||||
- name: set is_bootstrap_node ffu_packages_bootstrap_only facts
|
||||
tags: common
|
||||
set_fact: is_bootstrap_node={{bootstrap_node.stdout|lower == ansible_hostname|lower}}
|
||||
set_fact:
|
||||
is_bootstrap_node={{bootstrap_node.stdout|lower == ansible_hostname|lower}}
|
||||
ffu_packages_apply={{bootstrap_node.stdout|lower == ansible_hostname|lower}}
|
||||
{% endraw %}
|
||||
- name: Create /var/lib/docker-puppet
|
||||
file: path=/var/lib/docker-puppet state=directory setype=svirt_sandbox_file_t selevel=s0 recurse=true
|
||||
@ -605,6 +617,17 @@ outputs:
|
||||
with_sequence: start=0 end={{fast_forward_upgrade_prep_steps_max}}
|
||||
loop_control:
|
||||
loop_var: step
|
||||
fast_forward_upgrade_post_role_tasks: |
|
||||
{%- for role in roles %}
|
||||
- include_tasks: {{role.name}}/fast_forward_post_upgrade_tasks.yaml
|
||||
when: role_name == '{{role.name}}'
|
||||
{%- endfor %}
|
||||
- name: Openstack Heat Agents package update
|
||||
yum: name=openstack-heat-agents state=latest
|
||||
- name: Update os-collect-config
|
||||
yum: name=os-collect-config state=latest
|
||||
- name: Start os-collect-config back up
|
||||
service: name=os-collect-config state=started enabled=yes
|
||||
fast_forward_upgrade_prep_role_tasks: |
|
||||
{%- for role in roles %}
|
||||
- include_tasks: {{role.name}}/fast_forward_upgrade_tasks.yaml
|
||||
|
@ -253,6 +253,15 @@ resources:
|
||||
expression: coalesce($.data, []).where($ != null).select($.get('fast_forward_upgrade_tasks')).where($ != null).flatten().distinct()
|
||||
data: {get_attr: [ServiceChain, role_data]}
|
||||
|
||||
FastForwardPostUpgradeTasks:
|
||||
type: OS::Heat::Value
|
||||
properties:
|
||||
type: comma_delimited_list
|
||||
value:
|
||||
yaql:
|
||||
expression: coalesce($.data, []).where($ != null).select($.get('fast_forward_post_upgrade_tasks')).where($ != null).flatten().distinct()
|
||||
data: {get_attr: [ServiceChain, role_data]}
|
||||
|
||||
UpgradeTasks:
|
||||
type: OS::Heat::Value
|
||||
properties:
|
||||
@ -356,6 +365,7 @@ outputs:
|
||||
external_deploy_tasks: {get_attr: [ExternalDeployTasks, value]}
|
||||
external_post_deploy_tasks: {get_attr: [ExternalPostDeployTasks, value]}
|
||||
fast_forward_upgrade_tasks: {get_attr: [FastForwardUpgradeTasks, value]}
|
||||
fast_forward_post_upgrade_tasks: {get_attr: [FastForwardPostUpgradeTasks, value]}
|
||||
upgrade_tasks: {get_attr: [UpgradeTasks, value]}
|
||||
post_upgrade_tasks: {get_attr: [PostUpgradeTasks, value]}
|
||||
update_tasks: {get_attr: [UpdateTasks, value]}
|
||||
|
@ -38,7 +38,7 @@ parameters:
|
||||
default: 'tripleo-repos'
|
||||
type: string
|
||||
FastForwardRepoArgs:
|
||||
default: {'tripleo_repos': {'ocata': '-b ocata current', 'pike': '-b pike current'}}
|
||||
default: {'tripleo_repos': {'ocata': '-b ocata current', 'pike': '-b pike current', 'queens': '-b queens current'}}
|
||||
type: json
|
||||
|
||||
outputs:
|
||||
@ -117,5 +117,26 @@ outputs:
|
||||
command: "tripleo-repos {{ fast_forward_repo_args.tripleo_repos[release] }}"
|
||||
when:
|
||||
- step|int == 3
|
||||
- is_bootstrap_node|bool
|
||||
- ffu_packages_apply|bool
|
||||
- fast_forward_repo_type == 'tripleo-repos'
|
||||
fast_forward_post_upgrade_tasks:
|
||||
- name: Register repo type and args
|
||||
set_fact:
|
||||
fast_forward_repo_type: {get_param: FastForwardRepoType}
|
||||
fast_forward_repo_args: {get_param: FastForwardRepoArgs}
|
||||
- debug:
|
||||
msg: "fast_forward_repo_type: {{ fast_forward_repo_type }} fast_forward_repo_args: {{ fast_forward_repo_args }}"
|
||||
- block:
|
||||
- name: clone tripleo-repos
|
||||
git:
|
||||
repo: https://github.com/openstack/tripleo-repos.git
|
||||
dest: /home/stack/tripleo-repos/
|
||||
- name: install tripleo-repos
|
||||
command: python setup.py install
|
||||
args:
|
||||
chdir: /home/stack/tripleo-repos/
|
||||
- name: Enable tripleo-repos
|
||||
command: "tripleo-repos {{ fast_forward_repo_args.tripleo_repos[release] }}"
|
||||
when:
|
||||
- ffu_packages_apply|bool
|
||||
- fast_forward_repo_type == 'tripleo-repos'
|
||||
|
@ -45,6 +45,7 @@ REQUIRED_DOCKER_SECTIONS = ['service_name', 'docker_config', 'puppet_config',
|
||||
'config_settings']
|
||||
OPTIONAL_DOCKER_SECTIONS = ['docker_puppet_tasks', 'upgrade_tasks',
|
||||
'fast_forward_upgrade_tasks',
|
||||
'fast_forward_post_upgrade_tasks',
|
||||
'post_upgrade_tasks', 'update_tasks',
|
||||
'post_update_tasks', 'service_config_settings',
|
||||
'host_prep_tasks', 'metadata_settings',
|
||||
@ -524,6 +525,11 @@ def validate_docker_service(filename, tpl):
|
||||
print('ERROR: fast_forward_upgrade_tasks validation failed')
|
||||
return 1
|
||||
|
||||
if 'fast_forward_post_upgrade_tasks' in role_data and role_data['fast_forward_post_upgrade_tasks']:
|
||||
if validate_upgrade_tasks(role_data['fast_forward_post_upgrade_tasks']):
|
||||
print('ERROR: fast_forward_post_upgrade_tasks validation failed')
|
||||
return 1
|
||||
|
||||
if 'parameters' in tpl:
|
||||
for param in required_params:
|
||||
if param not in tpl['parameters']:
|
||||
@ -581,6 +587,11 @@ def validate_service(filename, tpl):
|
||||
print('ERROR: fast_forward_upgrade_tasks validation failed')
|
||||
return 1
|
||||
|
||||
if 'fast_forward_post_upgrade_tasks' in role_data and role_data['fast_forward_post_upgrade_tasks']:
|
||||
if validate_upgrade_tasks(role_data['fast_forward_post_upgrade_tasks']):
|
||||
print('ERROR: fast_forward_post_upgrade_tasks validation failed')
|
||||
return 1
|
||||
|
||||
if 'parameters' in tpl:
|
||||
for param in required_params:
|
||||
if param not in tpl['parameters']:
|
||||
|
Loading…
Reference in New Issue
Block a user