Validate that there should not be XFS volumes with ftype=0

If  we have XFS partitions formatted with ftype=0,
the upgrades will fail because ftype=0 is incompatible
with the docker overlayfs driver.

Related-Bug: 1765121
Change-Id: I895fc83d148523c283664080b7b1bf75d53d9edb
This commit is contained in:
Carlos Camacho 2018-04-18 15:41:58 +02:00
parent 70ba8b5cb6
commit a5e63ee725
2 changed files with 47 additions and 0 deletions

View File

@ -0,0 +1,13 @@
---
upgrade:
- |
Validate that there are no volumes formatted with XFS
and ftype=0.
Deployments from OpenStack Kilo or Liberty have XFS
partitions formatted with ftype=0, which is incompatible
with the docker overlayfs driver.
From OpenStack Newton, we have support for XFS ftype=1
by default.
This check will make fail the pre-upgrade validations
if there are deployments coming back from Kilo or Liberty
and have XFS partitions with ftype=0.

View File

@ -0,0 +1,34 @@
---
- hosts: undercloud, overcloud
vars:
metadata:
name: XFS ftype check
description: >
Check if there is at least 1 XFS volume
with ftype=0 in any deployed node.
groups:
- pre-upgrade
tasks:
- name: Check if there are XFS volumes with ftype=0
become: true
shell: |
for dev in $(df -h | grep '/dev/' | grep -v 'tmp' | cut -d' ' -f1)
do
parseftype=$(xfs_info $dev | grep ftype=0);
if [[ ! -z "$parseftype" ]]; then
ftype="ftype=0";
break;
fi
done
echo $ftype;
register: ftype
changed_when: false
- name: Check ftype
fail:
msg: >
XFS volumes formatted using ftype=0 are incompatible
with the docker overlayfs driver.
Run xfs_info in {{ ansible_fqdn }} and fix those volumes
before proceeding with the upgrade.
when:
- ftype.stdout == 'ftype=0'