Add support for installing Ceph MDS via ceph-ansible
authorJohn Fulton <fulton@redhat.com>
Fri, 30 Jun 2017 22:07:46 +0000 (22:07 +0000)
committerJohn Fulton <fulton@redhat.com>
Wed, 16 Aug 2017 15:20:14 +0000 (11:20 -0400)
Based on puppet/services/ceph-mds.yaml. Nodes in the CephMds role
will already be in the Ansible inventory but this change provides
a way pass their parameters to ceph-ansible.

Co-Authored-By: Giulio Fidente <gfidente@redhat.com>
Change-Id: Ia3ef9e9a2b159dacea01e38762145ff2bcc7ba27

docker/services/ceph-ansible/ceph-base.yaml
docker/services/ceph-ansible/ceph-mds.yaml [new file with mode: 0644]
environments/ceph-ansible/ceph-mds.yaml [new file with mode: 0644]

index 52c4a65..e65c503 100644 (file)
@@ -88,6 +88,14 @@ parameters:
     description: default minimum replication for RBD copies
     type: number
     default: 3
+  ManilaCephFSNativeCephFSAuthId:
+    default: manila
+    type: string
+  CephManilaClientKey:
+    default: ''
+    description: The Ceph client key. Can be created with ceph-authtool --gen-print-key.
+    type: string
+    hidden: true
   CephIPv6:
     default: False
     type: boolean
@@ -202,6 +210,16 @@ outputs:
                  GLANCE_POOL: {get_param: GlanceRbdPoolName}
                  GNOCCHI_POOL: {get_param: GnocchiRbdPoolName}
             mode: "0644"
+          - name:
+              list_join:
+              - '.'
+              - - client
+                - {get_param: ManilaCephFSNativeCephFSAuthId}
+            key: {get_param: CephManilaClientKey}
+            mon_cap: "allow r, allow command auth del, allow command auth caps, allow command auth get, allow command auth get-or-create"
+            mds_cap: "allow *"
+            osd_cap: "allow rw"
+            mode: "0644"
           keys: *openstack_keys
           pools: []
           ceph_conf_overrides:
diff --git a/docker/services/ceph-ansible/ceph-mds.yaml b/docker/services/ceph-ansible/ceph-mds.yaml
new file mode 100644 (file)
index 0000000..4ef3a66
--- /dev/null
@@ -0,0 +1,83 @@
+heat_template_version: pike
+
+description: >
+  Ceph Metadata 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
+  CephMdsKey:
+    description: The cephx key for the MDS service. Can be created
+                 with ceph-authtool --gen-print-key.
+    type: string
+    hidden: true
+  ManilaCephFSDataPoolName:
+    default: manila_data
+    type: string
+  ManilaCephFSMetadataPoolName:
+    default: manila_metadata
+    type: string
+  ManilaCephFSNativeShareBackendName:
+    default: cephfs
+    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 Metadata service.
+    value:
+      service_name: ceph_mds
+      upgrade_tasks: []
+      step_config: ''
+      puppet_config:
+        config_image: ''
+        config_volume: ''
+        step_config: ''
+      docker_config: {}
+      service_workflow_tasks: {get_attr: [CephBase, role_data, service_workflow_tasks]}
+      config_settings:
+        map_merge:
+        - tripleo.ceph_mds.firewall_rules:
+            '112 ceph_mds':
+              dport:
+              - '6800-7300'
+        - ceph_mds_ansible_vars:
+            map_merge:
+            - {get_attr: [CephBase, role_data, config_settings, ceph_common_ansible_vars]}
+            - cephfs_data: {get_param: ManilaCephFSDataPoolName}
+              cephfs_metadata: {get_param: ManilaCephFSMetadataPoolName}
+              cephfs: {get_param: ManilaCephFSNativeShareBackendName}
diff --git a/environments/ceph-ansible/ceph-mds.yaml b/environments/ceph-ansible/ceph-mds.yaml
new file mode 100644 (file)
index 0000000..0834269
--- /dev/null
@@ -0,0 +1,2 @@
+resource_registry:
+  OS::TripleO::Services::CephMds: ../../docker/services/ceph-ansible/ceph-mds.yaml