Add Ceph upgrade tasks

Ceph upgrade is done with dedicated command.
This change adds tasks to create ceph upgrade scripts and
perform actual ceph upgrade.
Ceph upgrade would be run just in case ceph_osd service is present
in the list stack's enabled services

Change-Id: I67ade3ffc06ea839cf05ce42c4421d2a850570a3
This commit is contained in:
Yurii Prokulevych 2018-04-26 11:57:33 +02:00
parent 9d764062f5
commit 23ee103057
6 changed files with 56 additions and 0 deletions

View File

@ -210,3 +210,6 @@ overcloud_update_playbooks: ['update_steps_playbook.yaml', 'deploy_steps_playboo
# Post upgrade/update nova actions tests
nova_actions_check: false
# Ceph OSD service present in overcloud
ceph_osd_enabled: false

View File

@ -19,3 +19,13 @@
set_fact:
roles_data: "{{ (roles_data_file.stdout|length > 0) | ternary(roles_data, default_roles_data)}}"
custom_roles_used: "{{ (roles_data_file.stdout|length > 0) | ternary(true, false)}}"
- name: assert CephOSD is enabled
shell: |
source {{ undercloud_rc }}
openstack stack output show -f yaml {{ overcloud_stack_name }} EnabledServices | awk '/\s+- ceph_osd/'
register: ceph_osd_service
- name: set ceph_osd_enabled fact
set_fact:
ceph_osd_enabled: "{{ (ceph_osd_service.stdout|length > 0) | ternary(true, false) }}"

View File

@ -0,0 +1,15 @@
---
- name: run Ceph upgrade
shell: |
{{ working_dir }}/ceph-upgrade-run.sh 2>&1 | tee {{ working_dir }}/ceph-upgrade-run.log
ignore_errors: true
register: ceph_upg_status
- block:
- name: print Ceph upgrade failures
command: tail {{ working_dir }}/ceph-upgrade-run.log
- name: fail Ceph upgrade
fail:
msg: Ceph Upgrade Failed
when: ceph_upg_status|failed

View File

@ -91,5 +91,12 @@
mode: 0775
force: true
- name: create ceph upgrade script
template:
src: "ceph-upgrade-run.sh.j2"
dest: "{{ working_dir }}/ceph-upgrade-run.sh"
mode: 0755
force: true
- include: ../common/ssh_config_skip_host.yml

View File

@ -72,6 +72,10 @@
when: upgrade_workarounds
tags: overcloud_upgrade_converge
- name: upgrade Ceph
include: ceph_upgrade_run.yml
when: ceph_osd_enabled|bool
- name: run controller post upgrade steps
include: controller_post_upgrade.yml
tags: controller_post_upgrade

View File

@ -0,0 +1,17 @@
#!/bin/env bash
source {{ undercloud_rc }}
echo "[$(date)] Started CEPH upgrade"
openstack overcloud ceph-upgrade run \
--templates {{ tht_directory }} \
{% if initial_env_file is defined and initial_env_file.stdout_lines|length > 0 %}
{% for _env in initial_env_file.stdout_lines %}
-e {{ _env }} \
{% endfor %}
{% endif %}
--container-registry-file {{ working_dir }}/{{ container_registry_file }} \
--roles-file {{ roles_data }} 2>&1
echo "[$(date)] Finished CEPH upgrade"