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 hiera configuration to inject into the cluster. Note
+ that CephStorageExtraConfig takes precedence over ExtraConfig.
+ type: json
+ CephStorageExtraConfig:
+ default: {}
+ description: |
+ Role specific additional hiera configuration to inject into the cluster.
+ type: json
+
resources:
CephStorage:
- network: ctlplane
user_data_format: SOFTWARE_CONFIG
user_data: {get_resource: NodeUserData}
+ name: {get_param: Hostname}
NodeUserData:
type: OS::TripleO::NodeUserData
StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
+ NetIpMap:
+ type: OS::TripleO::Network::Ports::NetIpMap
+ properties:
+ StorageIp: {get_attr: [StoragePort, ip_address]}
+ StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]}
+
NetIpSubnetMap:
type: OS::TripleO::Network::Ports::NetIpMap
properties:
CephStorageDeployment:
type: OS::Heat::StructuredDeployment
+ depends_on: NetworkDeployment
properties:
config: {get_resource: CephStorageConfig}
server: {get_resource: CephStorage}
hiera:
hierarchy:
- heat_config_%{::deploy_config_name}
+ - ceph_extraconfig
+ - extraconfig
- ceph_cluster # provided by CephClusterConfig
- ceph
- '"%{::osfamily}"'
datafiles:
common:
raw_data: {get_file: hieradata/common.yaml}
+ ceph_extraconfig:
+ mapped_data: {get_param: CephStorageExtraConfig}
+ extraconfig:
+ mapped_data: {get_param: ExtraConfig}
ceph:
raw_data: {get_file: hieradata/ceph.yaml}
mapped_data:
ntp::servers: {get_input: ntp_servers}
- enable_package_install: {get_input: enable_package_install}
+ tripleo::packages::enable_install: {get_input: enable_package_install}
ceph::profile::params::cluster_network: {get_input: ceph_cluster_network}
ceph::profile::params::public_network: {get_input: ceph_public_network}
hosts_entry:
value:
str_replace:
- template: "IP HOST"
+ template: "IP HOST.localdomain HOST"
params:
- IP: {get_attr: [CephStorage, networks, ctlplane, 0]}
+ IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CephStorageHostnameResolveNetwork]}]}
HOST: {get_attr: [CephStorage, name]}
nova_server_resource:
description: Heat resource handle for the ceph storage server
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: {get_attr: [CephStorageDeployment, deploy_stdout]}