heat_template_version: wallaby description: > Ceph Client 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 CephExternalMultiConfig: type: json hidden: true description: | List of maps describing extra overrides which will be applied when configuring extra external Ceph clusters. If this list is non-empty, ceph-ansible will run an extra count(list) times using the same parameters as the first run except each parameter within each map will override the defaults. If the following were used, the second run would configure the overcloud to also use the ceph2 cluster with all the previous parameters except /etc/ceph/ceph2.conf would have a mon_host entry containing the value of external_cluster_mon_ips below, and not the default CephExternalMonHost. Subsequent ceph-ansible runs are restricted to just ceph clients. CephExternalMultiConfig may not be used to deploy additional internal Ceph clusters within one Heat stack. The map for each list should contain not tripleo-heat-template parameters but ceph-ansible parameters. - cluster: 'ceph2' fsid: 'e2cba068-5f14-4b0f-b047-acf375c0004a' external_cluster_mon_ips: '172.18.0.5,172.18.0.6,172.18.0.7' keys: - name: "client.openstack" caps: mgr: "allow *" mon: "profile rbd" osd: "osd: profile rbd pool=volumes, profile rbd pool=backups, profile rbd pool=vms, profile rbd pool=images" key: "AQCwmeRcAAAAABAA6SQU/bGqFjlfLro5KxrB1Q==" mode: "0600" dashboard_enabled: false default: [] CephConfigPath: type: string default: "/var/lib/tripleo-config/ceph" description: | The path where the Ceph Cluster config files are stored on the host. CephClientConfigVars: default: "{{ playbook_dir }}/cephadm/ceph_client.yml" type: string description: The undercloud path where cephadm exports the Ceph Client configuration. 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} outputs: role_data: description: Role data for the Ceph Client service. value: service_name: ceph_client 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_base_external_deploy_init when: step|int == 1 tags: - ceph block: - name: Set some tripleo-ansible facts set_fact: ceph_external_multi_config: {get_param: CephExternalMultiConfig} - name: Configure Ceph Clients when: step|int == 2 tags: - ceph block: - name: configure ceph clients include_role: name: tripleo_ceph_client vars: tripleo_ceph_client_config_home: {get_param: CephConfigPath} tripleo_ceph_client_vars: {get_param: CephClientConfigVars} - include_role: name: tripleo_ceph_client name: tripleo client role vars: tripleo_ceph_client_config_home: {get_param: CephConfigPath} multiple: "{{ item }}" loop: "{{ ceph_external_multi_config }}" when: - ceph_external_multi_config is defined external_update_tasks: [] external_upgrade_tasks: [] config_settings: {}