Add Heat as a Pacemaker resource
[apex-tripleo-heat-templates.git] / puppet / ceph-storage-puppet.yaml
index 4a78da8..00dbca0 100644 (file)
@@ -1,5 +1,5 @@
-heat_template_version: 2014-10-16
-description: 'Common Ceph Storage Configuration for Puppet'
+heat_template_version: 2015-04-30
+description: 'OpenStack ceph storage node configured by Puppet'
 parameters:
   Flavor:
     description: Flavor for the Ceph Storage node.
@@ -40,6 +40,33 @@ resources:
       networks:
         - network: ctlplane
       user_data_format: SOFTWARE_CONFIG
+      user_data: {get_resource: NodeUserData}
+
+  NodeUserData:
+    type: OS::TripleO::NodeUserData
+
+  StoragePort:
+    type: OS::TripleO::CephStorage::Ports::StoragePort
+    properties:
+      ControlPlaneIP: {get_attr: [CephStorage, networks, ctlplane, 0]}
+
+  StorageMgmtPort:
+    type: OS::TripleO::CephStorage::Ports::StorageMgmtPort
+    properties:
+      ControlPlaneIP: {get_attr: [CephStorage, networks, ctlplane, 0]}
+
+  NetworkConfig:
+    type: OS::TripleO::CephStorage::Net::SoftwareConfig
+    properties:
+      StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
+      StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
+
+  NetworkDeployment:
+    type: OS::TripleO::SoftwareDeployment
+    properties:
+      config: {get_resource: NetworkConfig}
+      server: {get_resource: CephStorage}
+
   CephStorageDeployment:
     type: OS::Heat::StructuredDeployment
     properties:
@@ -52,6 +79,7 @@ resources:
             params:
               server: {get_param: NtpServer}
         enable_package_install: {get_param: EnablePackageInstall}
+
   CephStorageConfig:
     type: OS::Heat::StructuredConfig
     properties:
@@ -63,6 +91,7 @@ resources:
             - cephstorage
             - ceph_cluster # provided by CephClusterConfig
             - ceph
+            - '"%{::osfamily}"'
             - common
           datafiles:
             common:
@@ -78,7 +107,7 @@ outputs:
   hosts_entry:
     value:
       str_replace:
-        template: "IP HOST HOST.novalocal"
+        template: "IP HOST"
         params:
           IP: {get_attr: [CephStorage, networks, ctlplane, 0]}
           HOST: {get_attr: [CephStorage, name]}
@@ -86,3 +115,9 @@ outputs:
     description: Heat resource handle for the ceph storage server
     value:
       {get_resource: CephStorage}
+  storage_ip_address:
+    description: IP address of the server in the storage network
+    value: {get_attr: [StoragePort, ip_address]}
+  storage_mgmt_ip_address:
+    description: IP address of the server in the storage_mgmt network
+    value: {get_attr: [StorageMgmtPort, ip_address]}