The DeploymentSwiftDataMap parameter is used to set the deployment_swift_data property on the Server resoures. The parameter is a map of role names and node indexes to Swift container and object names to be used for storing deployment data. The parameter allows for using predefined Swift objects for storing deployment data instead of container/object names with generated uuid's from Heat. implements blueprint split-stack-default Depends-On: Ia07e9374a4b95bd0e74fc47fb9df4bf6ad096715 Change-Id: I471037de35e7f349d900462ec3ffb16fe2d6ebd9
661 lines
24 KiB
YAML
661 lines
24 KiB
YAML
heat_template_version: pike
|
|
description: 'OpenStack ceph storage node configured by Puppet'
|
|
parameters:
|
|
OvercloudCephStorageFlavor:
|
|
description: Flavor for the Ceph Storage node.
|
|
default: baremetal
|
|
type: string
|
|
constraints:
|
|
- custom_constraint: nova.flavor
|
|
CephStorageImage:
|
|
type: string
|
|
default: overcloud-full
|
|
constraints:
|
|
- custom_constraint: glance.image
|
|
ImageUpdatePolicy:
|
|
default: 'REBUILD_PRESERVE_EPHEMERAL'
|
|
description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
|
|
type: string
|
|
KeyName:
|
|
description: Name of an existing Nova key pair to enable SSH access to the instances
|
|
type: string
|
|
default: default
|
|
constraints:
|
|
- custom_constraint: nova.keypair
|
|
ServiceNetMap:
|
|
default: {}
|
|
description: Mapping of service_name -> network name. Typically set
|
|
via parameter_defaults in the resource registry.
|
|
type: json
|
|
EndpointMap:
|
|
default: {}
|
|
description: Mapping of service endpoint -> protocol. 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
|
|
HostnameMap:
|
|
type: json
|
|
default: {}
|
|
description: Optional mapping to override hostnames
|
|
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
|
|
CephStorageIPs:
|
|
default: {}
|
|
type: json
|
|
NetworkDeploymentActions:
|
|
type: comma_delimited_list
|
|
description: >
|
|
Heat action when to apply network configuration changes
|
|
default: ['CREATE']
|
|
SoftwareConfigTransport:
|
|
default: POLL_SERVER_CFN
|
|
description: |
|
|
How the server should receive the metadata required for software configuration.
|
|
type: string
|
|
constraints:
|
|
- allowed_values: [POLL_SERVER_CFN, POLL_SERVER_HEAT, POLL_TEMP_URL, ZAQAR_MESSAGE]
|
|
CloudDomain:
|
|
default: 'localdomain'
|
|
type: string
|
|
description: >
|
|
The DNS domain used for the hosts. This should match the dhcp_domain
|
|
configured in the Undercloud neutron. Defaults to localdomain.
|
|
CephStorageServerMetadata:
|
|
default: {}
|
|
description: >
|
|
Extra properties or metadata passed to Nova for the created nodes in
|
|
the overcloud. It's accessible via the Nova metadata API. This option is
|
|
role-specific and is merged with the values given to the ServerMetadata
|
|
parameter.
|
|
type: json
|
|
ServerMetadata:
|
|
default: {}
|
|
description: >
|
|
Extra properties or metadata passed to Nova for the created nodes in
|
|
the overcloud. It's accessible via the Nova metadata API. This applies to
|
|
all roles and is merged with a role-specific metadata parameter.
|
|
type: json
|
|
CephStorageSchedulerHints:
|
|
type: json
|
|
description: Optional scheduler hints to pass to nova
|
|
default: {}
|
|
NodeIndex:
|
|
type: number
|
|
default: 0
|
|
ServiceConfigSettings:
|
|
type: json
|
|
default: {}
|
|
ServiceNames:
|
|
type: comma_delimited_list
|
|
default: []
|
|
MonitoringSubscriptions:
|
|
type: comma_delimited_list
|
|
default: []
|
|
ServiceMetadataSettings:
|
|
type: json
|
|
default: {}
|
|
ConfigCommand:
|
|
type: string
|
|
description: Command which will be run whenever configuration data changes
|
|
default: os-refresh-config --timeout 14400
|
|
ConfigCollectSplay:
|
|
type: number
|
|
default: 30
|
|
description: |
|
|
Maximum amount of time to possibly to delay configuation collection
|
|
polling. Defaults to 30 seconds. Set to 0 to disable it which will cause
|
|
the configuration collection to occur as soon as the collection process
|
|
starts. This setting is used to prevent the configuration collection
|
|
processes from polling all at the exact same time.
|
|
UpgradeInitCommand:
|
|
type: string
|
|
description: |
|
|
Command or script snippet to run on all overcloud nodes to
|
|
initialize the upgrade process. E.g. a repository switch.
|
|
default: ''
|
|
UpgradeInitCommonCommand:
|
|
type: string
|
|
description: |
|
|
Common commands required by the upgrades process. This should not
|
|
normally be modified by the operator and is set and unset in the
|
|
major-upgrade-composable-steps.yaml and major-upgrade-converge.yaml
|
|
environment files.
|
|
default: ''
|
|
DeploymentServerBlacklistDict:
|
|
default: {}
|
|
type: json
|
|
description: >
|
|
Map of server hostnames to blacklist from any triggered
|
|
deployments. If the value is 1, the server will be blacklisted. This
|
|
parameter is generated from the parent template.
|
|
RoleParameters:
|
|
type: json
|
|
description: Role Specific Parameters
|
|
DeploymentSwiftDataMap:
|
|
type: json
|
|
description: |
|
|
Map of servers to Swift container and object for storing deployment data.
|
|
The keys are the Heat assigned hostnames, and the value is a map of the
|
|
container/object name in Swift. Example value:
|
|
overcloud-controller-0:
|
|
container: overcloud-controller
|
|
object: 0
|
|
overcloud-controller-1:
|
|
container: overcloud-controller
|
|
object: 1
|
|
overcloud-controller-2:
|
|
container: overcloud-controller
|
|
object: 2
|
|
overcloud-novacompute-0:
|
|
container: overcloud-compute
|
|
object: 0
|
|
default: {}
|
|
|
|
conditions:
|
|
server_not_blacklisted:
|
|
not:
|
|
equals:
|
|
- {get_param: [DeploymentServerBlacklistDict, {get_param: Hostname}]}
|
|
- 1
|
|
deployment_swift_data_map_unset:
|
|
equals:
|
|
- get_param:
|
|
- DeploymentSwiftDataMap
|
|
- {get_param: Hostname}
|
|
- ""
|
|
|
|
resources:
|
|
CephStorage:
|
|
type: OS::TripleO::CephStorageServer
|
|
metadata:
|
|
os-collect-config:
|
|
command: {get_param: ConfigCommand}
|
|
splay: {get_param: ConfigCollectSplay}
|
|
properties:
|
|
image: {get_param: CephStorageImage}
|
|
image_update_policy: {get_param: ImageUpdatePolicy}
|
|
flavor: {get_param: OvercloudCephStorageFlavor}
|
|
key_name: {get_param: KeyName}
|
|
networks:
|
|
- network: ctlplane
|
|
user_data_format: SOFTWARE_CONFIG
|
|
user_data: {get_resource: UserData}
|
|
name:
|
|
str_replace:
|
|
template: {get_param: Hostname}
|
|
params: {get_param: HostnameMap}
|
|
software_config_transport: {get_param: SoftwareConfigTransport}
|
|
metadata:
|
|
map_merge:
|
|
- {get_param: ServerMetadata}
|
|
- {get_param: CephStorageServerMetadata}
|
|
- {get_param: ServiceMetadataSettings}
|
|
scheduler_hints: {get_param: CephStorageSchedulerHints}
|
|
deployment_swift_data:
|
|
if:
|
|
- deployment_swift_data_map_unset
|
|
- {}
|
|
- {get_param: [DeploymentSwiftDataMap,
|
|
{get_param: Hostname}]}
|
|
|
|
# Combine the NodeAdminUserData and NodeUserData mime archives
|
|
UserData:
|
|
type: OS::Heat::MultipartMime
|
|
properties:
|
|
parts:
|
|
- config: {get_resource: NodeAdminUserData}
|
|
type: multipart
|
|
- config: {get_resource: NodeUserData}
|
|
type: multipart
|
|
- config: {get_resource: RoleUserData}
|
|
type: multipart
|
|
|
|
# Creates the "heat-admin" user if configured via the environment
|
|
# Should return a OS::Heat::MultipartMime reference via OS::stack_id
|
|
NodeAdminUserData:
|
|
type: OS::TripleO::NodeAdminUserData
|
|
|
|
# For optional operator additional userdata
|
|
# Should return a OS::Heat::MultipartMime reference via OS::stack_id
|
|
NodeUserData:
|
|
type: OS::TripleO::NodeUserData
|
|
|
|
# For optional operator role-specific userdata
|
|
# Should return a OS::Heat::MultipartMime reference via OS::stack_id
|
|
RoleUserData:
|
|
type: OS::TripleO::CephStorage::NodeUserData
|
|
|
|
ExternalPort:
|
|
type: OS::TripleO::CephStorage::Ports::ExternalPort
|
|
properties:
|
|
ControlPlaneIP: {get_attr: [CephStorage, networks, ctlplane, 0]}
|
|
IPPool: {get_param: CephStorageIPs}
|
|
NodeIndex: {get_param: NodeIndex}
|
|
|
|
InternalApiPort:
|
|
type: OS::TripleO::CephStorage::Ports::InternalApiPort
|
|
properties:
|
|
ControlPlaneIP: {get_attr: [CephStorage, networks, ctlplane, 0]}
|
|
IPPool: {get_param: CephStorageIPs}
|
|
NodeIndex: {get_param: NodeIndex}
|
|
|
|
StoragePort:
|
|
type: OS::TripleO::CephStorage::Ports::StoragePort
|
|
properties:
|
|
ControlPlaneIP: {get_attr: [CephStorage, networks, ctlplane, 0]}
|
|
IPPool: {get_param: CephStorageIPs}
|
|
NodeIndex: {get_param: NodeIndex}
|
|
|
|
StorageMgmtPort:
|
|
type: OS::TripleO::CephStorage::Ports::StorageMgmtPort
|
|
properties:
|
|
ControlPlaneIP: {get_attr: [CephStorage, networks, ctlplane, 0]}
|
|
IPPool: {get_param: CephStorageIPs}
|
|
NodeIndex: {get_param: NodeIndex}
|
|
|
|
TenantPort:
|
|
type: OS::TripleO::CephStorage::Ports::TenantPort
|
|
properties:
|
|
ControlPlaneIP: {get_attr: [CephStorage, networks, ctlplane, 0]}
|
|
IPPool: {get_param: CephStorageIPs}
|
|
NodeIndex: {get_param: NodeIndex}
|
|
|
|
ManagementPort:
|
|
type: OS::TripleO::CephStorage::Ports::ManagementPort
|
|
properties:
|
|
ControlPlaneIP: {get_attr: [CephStorage, networks, ctlplane, 0]}
|
|
IPPool: {get_param: CephStorageIPs}
|
|
NodeIndex: {get_param: NodeIndex}
|
|
|
|
NetworkConfig:
|
|
type: OS::TripleO::CephStorage::Net::SoftwareConfig
|
|
properties:
|
|
ControlPlaneIp: {get_attr: [CephStorage, networks, ctlplane, 0]}
|
|
ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
|
|
InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
|
|
StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
|
|
StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
|
|
TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
|
|
ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]}
|
|
|
|
NetIpMap:
|
|
type: OS::TripleO::Network::Ports::NetIpMap
|
|
properties:
|
|
ControlPlaneIp: {get_attr: [CephStorage, networks, ctlplane, 0]}
|
|
ExternalIp: {get_attr: [ExternalPort, ip_address]}
|
|
ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
|
|
ExternalIpUri: {get_attr: [ExternalPort, ip_address_uri]}
|
|
InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
|
|
InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
|
|
InternalApiIpUri: {get_attr: [InternalApiPort, ip_address_uri]}
|
|
StorageIp: {get_attr: [StoragePort, ip_address]}
|
|
StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
|
|
StorageIpUri: {get_attr: [StoragePort, ip_address_uri]}
|
|
StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]}
|
|
StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
|
|
StorageMgmtIpUri: {get_attr: [StorageMgmtPort, ip_address_uri]}
|
|
TenantIp: {get_attr: [TenantPort, ip_address]}
|
|
TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
|
|
TenantIpUri: {get_attr: [TenantPort, ip_address_uri]}
|
|
ManagementIp: {get_attr: [ManagementPort, ip_address]}
|
|
ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]}
|
|
ManagementIpUri: {get_attr: [ManagementPort, ip_address_uri]}
|
|
|
|
NetHostMap:
|
|
type: OS::Heat::Value
|
|
properties:
|
|
type: json
|
|
value:
|
|
external:
|
|
fqdn:
|
|
list_join:
|
|
- '.'
|
|
- - {get_attr: [CephStorage, name]}
|
|
- external
|
|
- {get_param: CloudDomain}
|
|
short:
|
|
list_join:
|
|
- '.'
|
|
- - {get_attr: [CephStorage, name]}
|
|
- external
|
|
internal_api:
|
|
fqdn:
|
|
list_join:
|
|
- '.'
|
|
- - {get_attr: [CephStorage, name]}
|
|
- internalapi
|
|
- {get_param: CloudDomain}
|
|
short:
|
|
list_join:
|
|
- '.'
|
|
- - {get_attr: [CephStorage, name]}
|
|
- internalapi
|
|
storage:
|
|
fqdn:
|
|
list_join:
|
|
- '.'
|
|
- - {get_attr: [CephStorage, name]}
|
|
- storage
|
|
- {get_param: CloudDomain}
|
|
short:
|
|
list_join:
|
|
- '.'
|
|
- - {get_attr: [CephStorage, name]}
|
|
- storage
|
|
storage_mgmt:
|
|
fqdn:
|
|
list_join:
|
|
- '.'
|
|
- - {get_attr: [CephStorage, name]}
|
|
- storagemgmt
|
|
- {get_param: CloudDomain}
|
|
short:
|
|
list_join:
|
|
- '.'
|
|
- - {get_attr: [CephStorage, name]}
|
|
- storagemgmt
|
|
tenant:
|
|
fqdn:
|
|
list_join:
|
|
- '.'
|
|
- - {get_attr: [CephStorage, name]}
|
|
- tenant
|
|
- {get_param: CloudDomain}
|
|
short:
|
|
list_join:
|
|
- '.'
|
|
- - {get_attr: [CephStorage, name]}
|
|
- tenant
|
|
management:
|
|
fqdn:
|
|
list_join:
|
|
- '.'
|
|
- - {get_attr: [CephStorage, name]}
|
|
- management
|
|
- {get_param: CloudDomain}
|
|
short:
|
|
list_join:
|
|
- '.'
|
|
- - {get_attr: [CephStorage, name]}
|
|
- management
|
|
ctlplane:
|
|
fqdn:
|
|
list_join:
|
|
- '.'
|
|
- - {get_attr: [CephStorage, name]}
|
|
- ctlplane
|
|
- {get_param: CloudDomain}
|
|
short:
|
|
list_join:
|
|
- '.'
|
|
- - {get_attr: [CephStorage, name]}
|
|
- ctlplane
|
|
|
|
PreNetworkConfig:
|
|
type: OS::TripleO::CephStorage::PreNetworkConfig
|
|
properties:
|
|
server: {get_resource: CephStorage}
|
|
RoleParameters: {get_param: RoleParameters}
|
|
|
|
NetworkDeployment:
|
|
type: OS::TripleO::SoftwareDeployment
|
|
depends_on: PreNetworkConfig
|
|
properties:
|
|
name: NetworkDeployment
|
|
config: {get_resource: NetworkConfig}
|
|
server: {get_resource: CephStorage}
|
|
actions:
|
|
if:
|
|
- server_not_blacklisted
|
|
- {get_param: NetworkDeploymentActions}
|
|
- []
|
|
|
|
CephStorageUpgradeInitConfig:
|
|
type: OS::Heat::SoftwareConfig
|
|
properties:
|
|
group: script
|
|
config:
|
|
list_join:
|
|
- ''
|
|
- - "#!/bin/bash\n\n"
|
|
- "if [[ -f /etc/resolv.conf.save ]] ; then rm /etc/resolv.conf.save; fi\n\n"
|
|
- get_param: UpgradeInitCommand
|
|
- get_param: UpgradeInitCommonCommand
|
|
|
|
# Note we may be able to make this conditional on UpgradeInitCommandNotEmpty
|
|
# but https://bugs.launchpad.net/heat/+bug/1649900 needs fixing first
|
|
CephStorageUpgradeInitDeployment:
|
|
type: OS::Heat::SoftwareDeployment
|
|
depends_on: NetworkDeployment
|
|
properties:
|
|
name: CephStorageUpgradeInitDeployment
|
|
server: {get_resource: CephStorage}
|
|
config: {get_resource: CephStorageUpgradeInitConfig}
|
|
actions:
|
|
if:
|
|
- server_not_blacklisted
|
|
- ['CREATE', 'UPDATE']
|
|
- []
|
|
|
|
CephStorageDeployment:
|
|
type: OS::Heat::StructuredDeployment
|
|
depends_on: CephStorageUpgradeInitDeployment
|
|
properties:
|
|
name: CephStorageDeployment
|
|
config: {get_resource: CephStorageConfig}
|
|
server: {get_resource: CephStorage}
|
|
input_values:
|
|
enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
|
|
actions:
|
|
if:
|
|
- server_not_blacklisted
|
|
- ['CREATE', 'UPDATE']
|
|
- []
|
|
|
|
CephStorageConfig:
|
|
type: OS::Heat::StructuredConfig
|
|
properties:
|
|
group: hiera
|
|
config:
|
|
hierarchy:
|
|
- '"%{::uuid}"'
|
|
- heat_config_%{::deploy_config_name}
|
|
- config_step
|
|
- ceph_extraconfig
|
|
- extraconfig
|
|
- service_names
|
|
- service_configs
|
|
- ceph
|
|
- bootstrap_node # provided by allNodesConfig
|
|
- all_nodes # provided by allNodesConfig
|
|
- vip_data # provided by allNodesConfig
|
|
- '"%{::osfamily}"'
|
|
merge_behavior: deeper
|
|
datafiles:
|
|
service_names:
|
|
service_names: {get_param: ServiceNames}
|
|
sensu::subscriptions: {get_param: MonitoringSubscriptions}
|
|
service_configs:
|
|
map_replace:
|
|
- {get_param: ServiceConfigSettings}
|
|
- values: {get_attr: [NetIpMap, net_ip_map]}
|
|
ceph_extraconfig: {get_param: CephStorageExtraConfig}
|
|
extraconfig: {get_param: ExtraConfig}
|
|
ceph:
|
|
tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
|
|
fqdn_internal_api: {get_attr: [NetHostMap, value, internal_api, fqdn]}
|
|
fqdn_storage: {get_attr: [NetHostMap, value, storage, fqdn]}
|
|
fqdn_storage_mgmt: {get_attr: [NetHostMap, value, storage_mgmt, fqdn]}
|
|
fqdn_tenant: {get_attr: [NetHostMap, value, tenant, fqdn]}
|
|
fqdn_management: {get_attr: [NetHostMap, value, management, fqdn]}
|
|
fqdn_ctlplane: {get_attr: [NetHostMap, value, ctlplane, fqdn]}
|
|
fqdn_external: {get_attr: [NetHostMap, value, external, fqdn]}
|
|
|
|
# Resource for site-specific injection of root certificate
|
|
NodeTLSCAData:
|
|
depends_on: CephStorageDeployment
|
|
type: OS::TripleO::NodeTLSCAData
|
|
properties:
|
|
server: {get_resource: CephStorage}
|
|
|
|
# Hook for site-specific additional pre-deployment config, e.g extra hieradata
|
|
CephStorageExtraConfigPre:
|
|
depends_on: CephStorageDeployment
|
|
type: OS::TripleO::CephStorageExtraConfigPre
|
|
properties:
|
|
server: {get_resource: CephStorage}
|
|
|
|
# Hook for site-specific additional pre-deployment config,
|
|
# applying to all nodes, e.g node registration/unregistration
|
|
NodeExtraConfig:
|
|
depends_on: [CephStorageExtraConfigPre, NodeTLSCAData]
|
|
type: OS::TripleO::NodeExtraConfig
|
|
properties:
|
|
server: {get_resource: CephStorage}
|
|
|
|
UpdateConfig:
|
|
type: OS::TripleO::Tasks::PackageUpdate
|
|
|
|
UpdateDeployment:
|
|
type: OS::Heat::SoftwareDeployment
|
|
depends_on: NetworkDeployment
|
|
properties:
|
|
config: {get_resource: UpdateConfig}
|
|
server: {get_resource: CephStorage}
|
|
input_values:
|
|
update_identifier:
|
|
get_param: UpdateIdentifier
|
|
actions:
|
|
if:
|
|
- server_not_blacklisted
|
|
- ['CREATE', 'UPDATE']
|
|
- []
|
|
|
|
SshHostPubKey:
|
|
type: OS::TripleO::Ssh::HostPubKey
|
|
depends_on: CephStorageDeployment
|
|
properties:
|
|
server: {get_resource: CephStorage}
|
|
|
|
outputs:
|
|
ip_address:
|
|
description: IP address of the server in the ctlplane network
|
|
value: {get_attr: [CephStorage, networks, ctlplane, 0]}
|
|
hostname:
|
|
description: Hostname of the server
|
|
value: {get_attr: [CephStorage, name]}
|
|
hostname_map:
|
|
description: Mapping of network names to hostnames
|
|
value:
|
|
external: {get_attr: [NetHostMap, value, external, fqdn]}
|
|
internal_api: {get_attr: [NetHostMap, value, internal_api, fqdn]}
|
|
storage: {get_attr: [NetHostMap, value, storage, fqdn]}
|
|
storage_mgmt: {get_attr: [NetHostMap, value, storage_mgmt, fqdn]}
|
|
tenant: {get_attr: [NetHostMap, value, tenant, fqdn]}
|
|
management: {get_attr: [NetHostMap, value, management, fqdn]}
|
|
ctlplane: {get_attr: [NetHostMap, value, ctlplane, fqdn]}
|
|
hosts_entry:
|
|
value:
|
|
str_replace:
|
|
template: |
|
|
PRIMARYIP PRIMARYHOST.DOMAIN PRIMARYHOST
|
|
EXTERNALIP EXTERNALHOST.DOMAIN EXTERNALHOST
|
|
INTERNAL_APIIP INTERNAL_APIHOST.DOMAIN INTERNAL_APIHOST
|
|
STORAGEIP STORAGEHOST.DOMAIN STORAGEHOST
|
|
STORAGE_MGMTIP STORAGE_MGMTHOST.DOMAIN STORAGE_MGMTHOST
|
|
TENANTIP TENANTHOST.DOMAIN TENANTHOST
|
|
MANAGEMENTIP MANAGEMENTHOST.DOMAIN MANAGEMENTHOST
|
|
CTLPLANEIP CTLPLANEHOST.DOMAIN CTLPLANEHOST
|
|
params:
|
|
PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CephStorageHostnameResolveNetwork]}]}
|
|
DOMAIN: {get_param: CloudDomain}
|
|
PRIMARYHOST: {get_attr: [CephStorage, name]}
|
|
EXTERNALIP: {get_attr: [ExternalPort, ip_address]}
|
|
EXTERNALHOST: {get_attr: [NetHostMap, value, external, short]}
|
|
INTERNAL_APIIP: {get_attr: [InternalApiPort, ip_address]}
|
|
INTERNAL_APIHOST: {get_attr: [NetHostMap, value, internal_api, short]}
|
|
STORAGEIP: {get_attr: [StoragePort, ip_address]}
|
|
STORAGEHOST: {get_attr: [NetHostMap, value, storage, short]}
|
|
STORAGE_MGMTIP: {get_attr: [StorageMgmtPort, ip_address]}
|
|
STORAGE_MGMTHOST: {get_attr: [NetHostMap, value, storage_mgmt, short]}
|
|
TENANTIP: {get_attr: [TenantPort, ip_address]}
|
|
TENANTHOST: {get_attr: [NetHostMap, value, tenant, short]}
|
|
MANAGEMENTIP: {get_attr: [ManagementPort, ip_address]}
|
|
MANAGEMENTHOST: {get_attr: [NetHostMap, value, management, short]}
|
|
CTLPLANEIP: {get_attr: [CephStorage, networks, ctlplane, 0]}
|
|
CTLPLANEHOST: {get_attr: [NetHostMap, value, ctlplane, short]}
|
|
known_hosts_entry:
|
|
description: Entry for ssh known hosts
|
|
value:
|
|
str_replace:
|
|
template: "PRIMARYIP,PRIMARYHOST.DOMAIN,PRIMARYHOST,\
|
|
EXTERNALIP,EXTERNALHOST.DOMAIN,EXTERNALHOST,\
|
|
INTERNAL_APIIP,INTERNAL_APIHOST.DOMAIN,INTERNAL_APIHOST,\
|
|
STORAGEIP,STORAGEHOST.DOMAIN,STORAGEHOST,\
|
|
STORAGE_MGMTIP,STORAGE_MGMTHOST.DOMAIN,STORAGE_MGMTHOST,\
|
|
TENANTIP,TENANTHOST.DOMAIN,TENANTHOST,\
|
|
MANAGEMENTIP,MANAGEMENTHOST.DOMAIN,MANAGEMENTHOST,\
|
|
CTLPLANEIP,CTLPLANEHOST.DOMAIN,CTLPLANEHOST HOSTSSHPUBKEY"
|
|
params:
|
|
PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CephStorageHostnameResolveNetwork]}]}
|
|
DOMAIN: {get_param: CloudDomain}
|
|
PRIMARYHOST: {get_attr: [CephStorage, name]}
|
|
EXTERNALIP: {get_attr: [ExternalPort, ip_address]}
|
|
EXTERNALHOST: {get_attr: [NetHostMap, value, external, short]}
|
|
INTERNAL_APIIP: {get_attr: [InternalApiPort, ip_address]}
|
|
INTERNAL_APIHOST: {get_attr: [NetHostMap, value, internal_api, short]}
|
|
STORAGEIP: {get_attr: [StoragePort, ip_address]}
|
|
STORAGEHOST: {get_attr: [NetHostMap, value, storage, short]}
|
|
STORAGE_MGMTIP: {get_attr: [StorageMgmtPort, ip_address]}
|
|
STORAGE_MGMTHOST: {get_attr: [NetHostMap, value, storage_mgmt, short]}
|
|
TENANTIP: {get_attr: [TenantPort, ip_address]}
|
|
TENANTHOST: {get_attr: [NetHostMap, value, tenant, short]}
|
|
MANAGEMENTIP: {get_attr: [ManagementPort, ip_address]}
|
|
MANAGEMENTHOST: {get_attr: [NetHostMap, value, management, short]}
|
|
CTLPLANEIP: {get_attr: [CephStorage, networks, ctlplane, 0]}
|
|
CTLPLANEHOST: {get_attr: [NetHostMap, value, ctlplane, short]}
|
|
HOSTSSHPUBKEY: {get_attr: [SshHostPubKey, ecdsa]}
|
|
nova_server_resource:
|
|
description: Heat resource handle for the ceph storage server
|
|
value:
|
|
{get_resource: CephStorage}
|
|
condition: server_not_blacklisted
|
|
external_ip_address:
|
|
description: IP address of the server in the external network
|
|
value: {get_attr: [ExternalPort, ip_address]}
|
|
internal_api_ip_address:
|
|
description: IP address of the server in the internal_api network
|
|
value: {get_attr: [InternalApiPort, ip_address]}
|
|
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]}
|
|
tenant_ip_address:
|
|
description: IP address of the server in the tenant network
|
|
value: {get_attr: [TenantPort, ip_address]}
|
|
management_ip_address:
|
|
description: IP address of the server in the management network
|
|
value: {get_attr: [ManagementPort, ip_address]}
|
|
os_collect_config:
|
|
description: The os-collect-config configuration associated with this server resource
|
|
value: {get_attr: [CephStorage, os_collect_config]}
|