6fb4eecbab
Initial support for a rolling upgrade of ceph-mon services which happens before the OpenStack services are upgraded. Change-Id: Ifaebbe2ae884bd899cdc6f1c288274e5838792a6 Partially-Implements: blueprint overcloud-upgrades-per-service
137 lines
4.6 KiB
YAML
137 lines
4.6 KiB
YAML
heat_template_version: ocata
|
|
|
|
description: >
|
|
Ceph Monitor 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
|
|
CephIPv6:
|
|
default: False
|
|
type: boolean
|
|
CephMonKey:
|
|
description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
|
|
type: string
|
|
hidden: true
|
|
CinderRbdPoolName:
|
|
default: volumes
|
|
type: string
|
|
ManilaCephFSDataPoolName:
|
|
default: manila_data
|
|
type: string
|
|
ManilaCephFSMetadataPoolName:
|
|
default: manila_metadata
|
|
type: string
|
|
CinderBackupRbdPoolName:
|
|
default: backups
|
|
type: string
|
|
GlanceRbdPoolName:
|
|
default: images
|
|
type: string
|
|
GnocchiRbdPoolName:
|
|
default: metrics
|
|
type: string
|
|
NovaRbdPoolName:
|
|
default: vms
|
|
type: string
|
|
CephPools:
|
|
description: >
|
|
It can be used to override settings for one of the predefined pools, or to create
|
|
additional ones. Example:
|
|
{
|
|
"volumes": {
|
|
"size": 5,
|
|
"pg_num": 128,
|
|
"pgp_num": 128
|
|
}
|
|
}
|
|
default: {}
|
|
type: json
|
|
MonitoringSubscriptionCephMon:
|
|
default: 'overcloud-ceph-mon'
|
|
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 Ceph Monitor service.
|
|
value:
|
|
service_name: ceph_mon
|
|
monitoring_subscription: {get_param: MonitoringSubscriptionCephMon}
|
|
config_settings:
|
|
map_merge:
|
|
- get_attr: [CephBase, role_data, config_settings]
|
|
- ceph::profile::params::ms_bind_ipv6: {get_param: CephIPv6}
|
|
ceph::profile::params::mon_key: {get_param: CephMonKey}
|
|
ceph::profile::params::osd_pool_default_pg_num: 32
|
|
ceph::profile::params::osd_pool_default_pgp_num: 32
|
|
ceph::profile::params::osd_pool_default_size: 3
|
|
# repeat returns items in a list, so we need to map_merge twice
|
|
tripleo::profile::base::ceph::mon::ceph_pools:
|
|
map_merge:
|
|
- map_merge:
|
|
repeat:
|
|
for_each:
|
|
<%pool%>:
|
|
- {get_param: CinderRbdPoolName}
|
|
- {get_param: ManilaCephFSDataPoolName}
|
|
- {get_param: ManilaCephFSMetadataPoolName}
|
|
- {get_param: CinderBackupRbdPoolName}
|
|
- {get_param: NovaRbdPoolName}
|
|
- {get_param: GlanceRbdPoolName}
|
|
- {get_param: GnocchiRbdPoolName}
|
|
template:
|
|
<%pool%>:
|
|
pg_num: "%{hiera('ceph::profile::params::osd_pool_default_pg_num')}"
|
|
pgp_num: "%{hiera('ceph::profile::params::osd_pool_default_pgp_num')}"
|
|
size: "%{hiera('ceph::profile::params::osd_pool_default_size')}"
|
|
- {get_param: CephPools}
|
|
tripleo.ceph_mon.firewall_rules:
|
|
'110 ceph_mon':
|
|
dport:
|
|
- 6789
|
|
service_config_settings:
|
|
get_attr: [CephBase, role_data, service_config_settings]
|
|
step_config: |
|
|
include ::tripleo::profile::base::ceph::mon
|
|
upgrade_batch_tasks:
|
|
# Note we perform these tasks in list order, but they are all step0 so
|
|
# we can perform a rolling upgrade of all mon nodes in step0, then a
|
|
# rolling upgrade of all osd nodes in step1
|
|
# FIXME(shardy) I suspect we can use heat or ansible facts here instead?
|
|
- name: Get hostname
|
|
tags: step0
|
|
shell: hostname -s
|
|
register: mon_id
|
|
- name: Stop Ceph Mon
|
|
tags: step0
|
|
service: name=ceph-mon@{{mon_id.stdout}} pattern=ceph-mon state=stopped
|
|
- name: Update ceph packages
|
|
tags: step0
|
|
yum: name=ceph-mon,ceph state=latest
|
|
- name: Start ceph-mon service
|
|
tags: step0
|
|
service: name=ceph-mon@{{mon_id.stdout}} state=started
|
|
- name: ceph osd crush tunables default
|
|
tags: step0
|
|
shell: ceph osd crush tunables default
|