diff --git a/docker/services/ceph-ansible/ceph-rbdmirror.yaml b/docker/services/ceph-ansible/ceph-rbdmirror.yaml new file mode 100644 index 0000000000..2c4dceb622 --- /dev/null +++ b/docker/services/ceph-ansible/ceph-rbdmirror.yaml @@ -0,0 +1,93 @@ +heat_template_version: queens + +description: > + Ceph RBD Mirror 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 + CephRbdMirrorCopyAdminKey: + default: false + description: Some admins like to copy the admin key everywhere + type: boolean + CephRbdMirrorConfigure: + default: true + description: Perform mirror configuration between local and remote pool + type: boolean + CephRbdMirrorPool: + default: '' + description: Name of the local pool to mirror to remote cluster + type: string + CephRbdMirrorRemoteCluster: + default: 'not-ceph' + description: The name given to the remote Ceph cluster from the local cluster. + keys will reside in the /etc/ceph directory + type: string + CephRbdMirrorRemoteUser: + default: '' + description: The rbd-mirror daemon needs a user to authenticate with the + remote cluster. By default, this key should be available under + /etc/ceph/.client..keyring + type: string + +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 RBD Mirror service. + value: + service_name: ceph_rbdmirror + upgrade_tasks: [] + puppet_config: + config_image: '' + config_volume: '' + step_config: '' + docker_config: {} + workflow_tasks: {get_attr: [CephBase, role_data, workflow_tasks]} + config_settings: + map_merge: + - tripleo.ceph_rbdmirror.firewall_rules: + '114 ceph_rbdmirror': + dport: + - '6800-7300' + - ceph_rbdmirror_ansible_vars: + map_merge: + - {get_attr: [CephBase, role_data, config_settings, ceph_common_ansible_vars]} + - copy_admin_key: {get_param: CephRbdMirrorCopyAdminKey} + ceph_rbd_mirror_configure: {get_param: CephRbdMirrorConfigure} + ceph_rbd_mirror_pool: {get_param: CephRbdMirrorPool} + ceph_rbd_mirror_remote_cluster: {get_param: CephRbdMirrorRemoteCluster} + ceph_rbd_mirror_remote_user: {get_param: CephRbdMirrorRemoteUser} diff --git a/environments/ceph-ansible/ceph-rbdmirror.yaml b/environments/ceph-ansible/ceph-rbdmirror.yaml new file mode 100644 index 0000000000..41f01496b0 --- /dev/null +++ b/environments/ceph-ansible/ceph-rbdmirror.yaml @@ -0,0 +1,2 @@ +resource_registry: + OS::TripleO::Services::CephRbdMirror: ../../docker/services/ceph-ansible/ceph-rbdmirror.yaml