tripleo-heat-templates/puppet/services/ceph-osd.yaml
Steven Hardy 9f908e9832 Add upgrade support for ceph OSD service
This takes a subset of the logic from major_upgrade_ceph_storage.sh
and ports it into ansible tasks, which will be applied in a rolling
upgrade after the mon services are upgraded (in the step0 batch).

Change-Id: I6e87969add301e78bb665d7748e5f0df8eeae819
Partially-Implements: blueprint overcloud-upgrades-per-service
2017-01-25 21:03:01 +00:00

89 lines
2.8 KiB
YAML

heat_template_version: ocata
description: >
Ceph OSD service.
parameters:
ServiceNetMap:
default: {}
description: Mapping of service_name -> network name. Typically set
via parameter_defaults in the resource registry. This
mapping overrides those in ServiceNetMapDefaults.
type: json
DefaultPasswords:
default: {}
type: json
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
MonitoringSubscriptionCephOsd:
default: 'overcloud-ceph-osd'
type: string
resources:
CephBase:
type: ./ceph-base.yaml
properties:
ServiceNetMap: {get_param: ServiceNetMap}
DefaultPasswords: {get_param: DefaultPasswords}
EndpointMap: {get_param: EndpointMap}
outputs:
role_data:
description: Role data for the Cinder OSD service.
value:
service_name: ceph_osd
monitoring_subscription: {get_param: MonitoringSubscriptionCephOsd}
config_settings:
map_merge:
- get_attr: [CephBase, role_data, config_settings]
- tripleo.ceph_osd.firewall_rules:
'111 ceph_osd':
dport:
- '6800-7300'
step_config: |
include ::tripleo::profile::base::ceph::osd
upgrade_batch_tasks:
- name: Get OSD IDs
tags: step1
shell: ls /var/lib/ceph/osd | awk 'BEGIN { FS = "-" } ; { print $2 }'
register: osd_ids
# "so that mirrors aren't rebalanced as if the OSD died" - gfidente / leseb
- name: ceph osd set noout
tags: step1
command: ceph osd set noout
- name: ceph osd set norebalance
tags: step1
command: ceph osd set norebalance
- name: ceph osd set nodeep-scrub
tags: step1
command: ceph osd set nodeep-scrub
- name: ceph osd set noscrub
tags: step1
command: ceph osd set noscrub
- name: Stop Ceph OSD
tags: step1
service: name=ceph-osd@$item state=stopped
with_items: "{{osd_ids.stdout.strip().split()}}"
- name: Update ceph OSD packages
tags: step1
yum: name=ceph-osd state=latest
- name: Start ceph-osd service
tags: step1
service: name=ceph-osd@$item state=started
with_items: "{{osd_ids.stdout.strip().split()}}"
- name: ceph osd unset noout
tags: step1
command: ceph osd unset noout
- name: ceph osd unset norebalance
tags: step1
command: ceph osd unset norebalance
- name: ceph osd unset nodeep-scrub
tags: step1
command: ceph osd unset nodeep-scrub
- name: ceph osd unset noscrub
tags: step1
command: ceph osd unset noscrub