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. 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 osd set-require-min-compat-client mimic" delegate_to: "{{ groups['ceph_mon'][0] }}" external_update_tasks: {get_attr: [CephBase, role_data, external_update_tasks]} external_upgrade_tasks: {get_attr: [CephBase, role_data, external_upgrade_tasks]}