tripleo-heat-templates/deployment/ceph-ansible/ceph-mon.yaml

141 lines
4.7 KiB
YAML

heat_template_version: rocky
description: >
Ceph Monitor service.
parameters:
ServiceData:
default: {}
description: Dictionary packing service data
type: json
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
CephValidationRetries:
type: number
default: 40
description: Number of retry attempts for Ceph validation
CephValidationDelay:
type: number
default: 30
description: Interval (in seconds) in between validation checks
CephEnableDashboard:
type: boolean
default: false
description: Parameter used to trigger the dashboard deployment.
CephClusterName:
type: string
default: ceph
description: The Ceph cluster name.
constraints:
- allowed_pattern: "[a-zA-Z0-9]+"
description: >
The Ceph cluster name must be at least 1 character and contain only
letters and numbers.
conditions:
dashboard_enabled: {equals: [{get_param: CephEnableDashboard}, true]}
resources:
CephBase:
type: ./ceph-base.yaml
properties:
ServiceData: {get_param: ServiceData}
ServiceNetMap: {get_param: ServiceNetMap}
DefaultPasswords: {get_param: DefaultPasswords}
EndpointMap: {get_param: EndpointMap}
RoleName: {get_param: RoleName}
RoleParameters: {get_param: RoleParameters}
CephMonAnsibleVars:
type: OS::Heat::Value
properties:
type: json
value:
vars: {}
outputs:
role_data:
description: Role data for the Ceph Monitor service.
value:
service_name: ceph_mon
firewall_rules:
'110 ceph_mon':
dport:
list_concat:
- - 6789
- - 3300
- if:
- dashboard_enabled
- - '9100'
- []
service_config_settings:
collectd:
tripleo.collectd.plugins.ceph_osd:
- ceph
collectd::plugin::ceph::daemons: []
upgrade_tasks: {get_attr: [CephBase, role_data, upgrade_tasks]}
post_upgrade_tasks: {get_attr: [CephBase, role_data, post_upgrade_tasks]}
puppet_config:
config_image: ''
config_volume: ''
step_config: ''
docker_config: {}
external_deploy_tasks:
list_concat:
- {get_attr: [CephBase, role_data, external_deploy_tasks]}
- - name: ceph_mon_external_deploy_init
when: step|int == 1
tags:
- ceph
- ceph_fstobs
- ceph_systemd
block:
- name: set ceph-ansible group vars mons
set_fact:
ceph_ansible_group_vars_mons: {get_attr: [CephMonAnsibleVars, value, vars]}
- name: generate ceph-ansible group vars mons
copy:
dest: "{{playbook_dir}}/ceph-ansible/group_vars/mons.yml"
content: "{{ceph_ansible_group_vars_mons|to_nice_yaml}}"
- - name: ceph_base_external_deploy_finish
# NOTE(gfidente): enforce minimum client version to mimic to use RBD clone v2 with Cinder
when: step|int == 3
become: true
tags:
- ceph
block:
- name: Get ceph-mon container ID
# Supposed to work with cephadm and ceph-ansible formats
# ceph-4b5c8c0a-ff60-454b-a1b4-9747aa737d19-mon.standalone.localdomain
# ceph-mon-standalone
command: "{{ container_cli }} ps -q -f 'name=ceph-?(.*)-mon.*'"
register: ceph_mon_id
delegate_to: "{{ groups['ceph_mon'][0] }}"
- name: Enforce minimum Ceph clients version to Mimic
command: "{{ container_cli }} exec {{ ceph_mon_id.stdout_lines[0] }} ceph --cluster {{ cluster }} osd set-require-min-compat-client mimic"
delegate_to: "{{ groups['ceph_mon'][0] }}"
vars:
cluster: {get_param: CephClusterName}
external_update_tasks: {get_attr: [CephBase, role_data, external_update_tasks]}
external_upgrade_tasks: {get_attr: [CephBase, role_data, external_upgrade_tasks]}