X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=ceph-storage.yaml;h=0dbcd3e7c83b18a0ff9e3265f18394d5b80c94dc;hb=1a336269c8b07b5d2cbf6c15cdd3a8b302421c45;hp=2f5104ba14564b9255130e6ff1d464c32287d867;hpb=874e07dee16f75c1147da535a475c4435ed8ea9a;p=apex-tripleo-heat-templates.git diff --git a/ceph-storage.yaml b/ceph-storage.yaml index 2f5104ba..0dbcd3e7 100644 --- a/ceph-storage.yaml +++ b/ceph-storage.yaml @@ -1,4 +1,4 @@ -heat_template_version: 2014-10-16 +heat_template_version: 2015-04-30 description: 'Common Ceph Storage Configuration' parameters: Image: @@ -15,19 +15,46 @@ parameters: CephClusterFSID: default: '' type: string - description: The Ceph cluster FSID. + description: The Ceph cluster FSID. Must be a UUID. CephMonKey: default: '' - description: The Ceph monitors key. + description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key. type: string CephAdminKey: default: '' - description: The Ceph admin client key. + 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 @@ -36,9 +63,38 @@ resources: {get_param: Image} flavor: {get_param: OvercloudCephStorageFlavor} key_name: {get_param: KeyName} - user_data_format: SOFTWARE_CONFIG 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: @@ -99,7 +155,16 @@ 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]} + 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"