aboutsummaryrefslogtreecommitdiffstats
path: root/os-apply-config/ceph-storage.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'os-apply-config/ceph-storage.yaml')
-rw-r--r--os-apply-config/ceph-storage.yaml170
1 files changed, 170 insertions, 0 deletions
diff --git a/os-apply-config/ceph-storage.yaml b/os-apply-config/ceph-storage.yaml
new file mode 100644
index 00000000..0dbcd3e7
--- /dev/null
+++ b/os-apply-config/ceph-storage.yaml
@@ -0,0 +1,170 @@
+heat_template_version: 2015-04-30
+description: 'Common Ceph Storage Configuration'
+parameters:
+ Image:
+ type: string
+ default: overcloud-ceph-storage
+ KeyName:
+ default: default
+ description: Name of an existing EC2 KeyPair to enable SSH access to the instances
+ type: string
+ Flavor:
+ default: baremetal
+ description: Flavor for block storage nodes to request when deploying.
+ type: string
+ CephClusterFSID:
+ default: ''
+ type: string
+ description: The Ceph cluster FSID. Must be a UUID.
+ CephMonKey:
+ default: ''
+ description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
+ type: string
+ CephAdminKey:
+ default: ''
+ description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
+ type: string
+ CephMonitors:
+ default: ''
+ description: The list of ip/names to use as Ceph monitors
+ type: json
+ ServiceNetMap:
+ default: {}
+ description: Mapping of service_name -> network name. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
+ UpdateIdentifier:
+ default: ''
+ type: string
+ description: >
+ Setting to a previously unused value during stack-update will trigger
+ package update on all nodes
+ Hostname:
+ type: string
+ default: '' # Defaults to Heat created hostname
+ ExtraConfig:
+ default: {}
+ description: |
+ Additional configuration to inject into the cluster. Note
+ that CephStorageExtraConfig takes precedence over ExtraConfig.
+ type: json
+ CephStorageExtraConfig:
+ default: {}
+ description: |
+ Role specific additional configuration to inject into the cluster.
+ type: json
+
+
+resources:
+ CephStorage:
+ type: OS::Nova::Server
+ properties:
+ image:
+ {get_param: Image}
+ flavor: {get_param: OvercloudCephStorageFlavor}
+ key_name: {get_param: KeyName}
+ networks:
+ - network: ctlplane
+ user_data_format: SOFTWARE_CONFIG
+ user_data: {get_resource: NodeUserData}
+ name: {get_param: Hostname}
+
+ 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:
+ ControlPlaneIp: {get_attr: [CephStorage, networks, ctlplane, 0]}
+ 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:
+ server: {get_resource: CephStorage}
+ config: {get_resource: CephStorageConfig}
+ signal_transport: NO_SIGNAL
+ CephStorageConfig:
+ type: OS::Heat::StructuredConfig
+ properties:
+ group: os-apply-config
+ config:
+ ceph:
+ fsid: {get_param: CephClusterFSID}
+ keyrings:
+ admin:
+ key: {get_param: CephAdminKey}
+ mon_nodes: {get_param: CephMonitors}
+ ControllerCephDeployment:
+ type: OS::Heat::StructuredDeployment
+ properties:
+ server: {get_resource: Controller}
+ config: {get_resource: ControllerCephConfig}
+ signal_transport: NO_SIGNAL
+ ControllerCephConfig:
+ type: OS::Heat::StructuredConfig
+ properties:
+ group: os-apply-config
+ config:
+ cinder:
+ include_ceph_backend: true
+ ceph:
+ fsid: {get_param: CephClusterFSID}
+ keyrings:
+ mon:
+ key: {get_param: CephMonKey}
+ admin:
+ key: {get_param: CephAdminKey}
+ mon_nodes: {get_param: CephMonitors}
+ NovaComputeCephDeployment:
+ depends_on: [ControllerCephDeployment]
+ type: OS::Heat::StructuredDeployment
+ properties:
+ server: {get_resource: NovaCompute}
+ config: {get_resource: NovaComputeCephConfig}
+ signal_transport: NO_SIGNAL
+ NovaComputeCephConfig:
+ type: OS::Heat::StructuredConfig
+ properties:
+ group: os-apply-config
+ config:
+ ceph:
+ fsid: {get_param: CephClusterFSID}
+ keyrings:
+ admin:
+ key: {get_param: CephAdminKey}
+ mon_nodes: {get_param: CephMonitors}
+outputs:
+ hosts_entry:
+ value:
+ str_replace:
+ template: "IP HOST"
+ params:
+ IP: {get_attr: [CephStorage, networks, ctlplane, 0]}
+ HOST: {get_attr: [CephStorage, name]}
+ 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]}
+ config_identifier:
+ description: identifier which changes if the node configuration may need re-applying
+ value: "None - NO_SIGNAL"