Files
tripleo-heat-templates/puppet/services/pacemaker/cinder-volume.yaml
Alan Bishop c4e3bbe039 Handle upgrading cinder-volume under pacemaker
Add upgrade tasks for cinder-volume when it's controlled by pacemaker:

o Stop the service before the entire pacemaker cluster is stopped.
  This ensures the service is stopped before infrastructure services
  (e.g. rabbitmq) go away.
o Migrate the cinder DB prior to restarting the service. This covers
  the situation when puppet-cinder (who otherwise would handle the db
  sync) isn't managing the service.
o Start the service after the rest of the pacemaker cluster has been
  started.

Closes-Bug: #1691851
Change-Id: I5874ab862964fadb68320d5c4de39b20f53dc25c
2017-05-26 08:26:49 -04:00

72 lines
2.3 KiB
YAML

heat_template_version: pike
description: >
OpenStack Cinder Volume service with Pacemaker configured with Puppet
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
RoleName:
default: ''
description: Role name on which the service is applied
type: string
RoleParameters:
default: {}
description: Parameters specific to the role
type: json
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
resources:
CinderVolumeBase:
type: ../cinder-volume.yaml
properties:
ServiceNetMap: {get_param: ServiceNetMap}
DefaultPasswords: {get_param: DefaultPasswords}
EndpointMap: {get_param: EndpointMap}
RoleName: {get_param: RoleName}
RoleParameters: {get_param: RoleParameters}
outputs:
role_data:
description: Role data for the Cinder Volume role.
value:
service_name: cinder_volume
monitoring_subscription: {get_attr: [CinderVolumeBase, role_data, monitoring_subscription]}
logging_source: {get_attr: [CinderVolumeBase, role_data, logging_source]}
logging_groups: {get_attr: [CinderVolumeBase, role_data, logging_groups]}
config_settings:
map_merge:
- get_attr: [CinderVolumeBase, role_data, config_settings]
- cinder::volume::manage_service: false
cinder::volume::enabled: false
cinder::host: hostgroup
step_config:
include ::tripleo::profile::pacemaker::cinder::volume
upgrade_tasks:
- name: Stop cinder_volume service (pacemaker)
tags: step1
pacemaker_resource:
resource: openstack-cinder-volume
state: disable
wait_for_resource: true
- name: Sync cinder DB
tags: step5
command: cinder-manage db sync
- name: Start cinder_volume service (pacemaker)
tags: step5
pacemaker_resource:
resource: openstack-cinder-volume
state: enable