1 heat_template_version: 2016-10-14
4 OpenStack controller node configured by Puppet.
8 description: The password for the aodh services.
11 controllerExtraConfig:
14 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
16 ControllerExtraConfig:
19 Controller specific hiera configuration data to inject into the cluster.
24 A network mapped list of IPs to assign to Controllers in the following form:
26 "internal_api": ["a.b.c.d", "e.f.g.h"],
32 description: Enable IPv6 in Corosync
36 description: Set to True to enable debugging on all services.
40 description: Whether to enable fencing in Pacemaker or not.
44 description: Whether to deploy a LoadBalancer on the Controller
49 Additional hieradata to inject into the cluster, note that
50 ControllerExtraConfig takes precedence over ExtraConfig.
55 Pacemaker fencing configuration. The JSON should have
56 the following structure:
60 "agent": "AGENT_NAME",
61 "host_mac": "HOST_MAC_ADDRESS",
62 "params": {"PARAM_NAME": "PARAM_VALUE"}
71 "host_mac": "52:54:00:aa:bb:cc",
73 "multicast_address": "225.0.0.12",
74 "port": "baremetal_0",
76 "manage_key_file": true,
77 "key_file": "/etc/fence_xvm.key",
78 "key_file_password": "abcdef"
84 OvercloudControlFlavor:
85 description: Flavor for control nodes to request when deploying.
89 - custom_constraint: nova.flavor
90 HeatAuthEncryptionKey:
91 description: Auth encryption key for heat-engine
95 description: Secret key for Django
100 default: overcloud-full
102 - custom_constraint: glance.image
104 default: 'REBUILD_PRESERVE_EPHEMERAL'
105 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
107 InstanceNameTemplate:
108 default: 'instance-%08x'
109 description: Template string to be used to generate instance names
113 description: Name of an existing Nova key pair to enable SSH access to the instances
116 - custom_constraint: nova.keypair
119 description: Whether to manage IPtables rules.
123 description: Enable IPv6 features in Memcached.
127 description: Whether IPtables rules should be purged before setting up the new ones.
129 NeutronMetadataProxySharedSecret:
130 description: Shared secret to prevent spoofing
134 description: The password for the neutron service and db account, used by neutron agents.
137 NeutronPublicInterface:
139 description: What interface to bridge onto br-ex for network nodes.
144 Whether to create cron job for purging soft deleted rows in Nova database.
148 description: Enable IPv6 features in Nova
151 description: The password for the nova service and db account, used by nova-api.
156 description: The password for the 'pcsd' user.
159 description: The password for Redis
164 default: '' # Has to be here because of the ignored empty value bug
167 default: '' # Has to be here because of the ignored empty value bug
168 description: An IP address which is wrapped in brackets in case of IPv6
170 description: A random string to be used as a salt when hashing to determine mappings
176 description: 'A hash of additional raw devices to use as Swift backend (eg. {sdb: {}})'
178 UpgradeLevelNovaCompute:
180 description: Nova Compute upgrade level
184 description: Mapping of service_name -> network name. Typically set
185 via parameter_defaults in the resource registry.
189 description: Mapping of service endpoint -> protocol. Typically set
190 via parameter_defaults in the resource registry.
196 Setting to a previously unused value during stack-update will trigger
197 package update on all nodes
200 default: '' # Defaults to Heat created hostname
204 description: Optional mapping to override hostnames
205 NetworkDeploymentActions:
206 type: comma_delimited_list
208 Heat action when to apply network configuration changes
213 SoftwareConfigTransport:
214 default: POLL_SERVER_CFN
216 How the server should receive the metadata required for software configuration.
219 - allowed_values: [POLL_SERVER_CFN, POLL_SERVER_HEAT, POLL_TEMP_URL, ZAQAR_MESSAGE]
223 The DNS domain used for the hosts. This should match the dhcp_domain
224 configured in the Undercloud neutron. Defaults to localdomain.
228 Extra properties or metadata passed to Nova for the created nodes in
229 the overcloud. It's accessible via the Nova metadata API.
231 ControllerSchedulerHints:
233 description: Optional scheduler hints to pass to nova
235 ServiceConfigSettings:
239 type: comma_delimited_list
243 description: Command which will be run whenever configuration data changes
244 default: os-refresh-config --timeout 14400
248 description: Do not use deprecated params, they will be removed.
250 - controllerExtraConfig
255 type: OS::TripleO::Server
258 command: {get_param: ConfigCommand}
260 image: {get_param: controllerImage}
261 image_update_policy: {get_param: ImageUpdatePolicy}
262 flavor: {get_param: OvercloudControlFlavor}
263 key_name: {get_param: KeyName}
266 user_data_format: SOFTWARE_CONFIG
267 user_data: {get_resource: UserData}
270 template: {get_param: Hostname}
271 params: {get_param: HostnameMap}
272 software_config_transport: {get_param: SoftwareConfigTransport}
273 metadata: {get_param: ServerMetadata}
274 scheduler_hints: {get_param: ControllerSchedulerHints}
276 # Combine the NodeAdminUserData and NodeUserData mime archives
278 type: OS::Heat::MultipartMime
281 - config: {get_resource: NodeAdminUserData}
283 - config: {get_resource: NodeUserData}
286 # Creates the "heat-admin" user if configured via the environment
287 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
289 type: OS::TripleO::NodeAdminUserData
291 # For optional operator additional userdata
292 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
294 type: OS::TripleO::NodeUserData
297 type: OS::TripleO::Controller::Ports::ExternalPort
299 IPPool: {get_param: ControllerIPs}
300 NodeIndex: {get_param: NodeIndex}
301 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
304 type: OS::TripleO::Controller::Ports::InternalApiPort
306 IPPool: {get_param: ControllerIPs}
307 NodeIndex: {get_param: NodeIndex}
308 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
311 type: OS::TripleO::Controller::Ports::StoragePort
313 IPPool: {get_param: ControllerIPs}
314 NodeIndex: {get_param: NodeIndex}
315 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
318 type: OS::TripleO::Controller::Ports::StorageMgmtPort
320 IPPool: {get_param: ControllerIPs}
321 NodeIndex: {get_param: NodeIndex}
322 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
325 type: OS::TripleO::Controller::Ports::TenantPort
327 IPPool: {get_param: ControllerIPs}
328 NodeIndex: {get_param: NodeIndex}
329 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
332 type: OS::TripleO::Controller::Ports::ManagementPort
334 IPPool: {get_param: ControllerIPs}
335 NodeIndex: {get_param: NodeIndex}
336 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
339 type: OS::TripleO::Network::Ports::NetIpMap
341 ControlPlaneIp: {get_attr: [Controller, networks, ctlplane, 0]}
342 ExternalIp: {get_attr: [ExternalPort, ip_address]}
343 ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
344 ExternalIpUri: {get_attr: [ExternalPort, ip_address_uri]}
345 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
346 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
347 InternalApiIpUri: {get_attr: [InternalApiPort, ip_address_uri]}
348 StorageIp: {get_attr: [StoragePort, ip_address]}
349 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
350 StorageIpUri: {get_attr: [StoragePort, ip_address_uri]}
351 StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]}
352 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
353 StorageMgmtIpUri: {get_attr: [StorageMgmtPort, ip_address_uri]}
354 TenantIp: {get_attr: [TenantPort, ip_address]}
355 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
356 TenantIpUri: {get_attr: [TenantPort, ip_address_uri]}
357 ManagementIp: {get_attr: [ManagementPort, ip_address]}
358 ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]}
359 ManagementIpUri: {get_attr: [ManagementPort, ip_address_uri]}
362 type: OS::TripleO::Controller::Net::SoftwareConfig
364 ControlPlaneIp: {get_attr: [Controller, networks, ctlplane, 0]}
365 ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
366 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
367 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
368 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
369 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
370 ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]}
373 type: OS::TripleO::SoftwareDeployment
375 name: NetworkDeployment
376 config: {get_resource: NetworkConfig}
377 server: {get_resource: Controller}
378 actions: {get_param: NetworkDeploymentActions}
381 interface_name: {get_param: NeutronPublicInterface}
383 # Resource for site-specific injection of root certificate
385 depends_on: NetworkDeployment
386 type: OS::TripleO::NodeTLSCAData
388 server: {get_resource: Controller}
390 # Resource for site-specific passing of private keys/certificates
392 depends_on: NodeTLSCAData
393 type: OS::TripleO::NodeTLSData
395 server: {get_resource: Controller}
396 NodeIndex: {get_param: NodeIndex}
399 ControllerDeployment:
400 type: OS::TripleO::SoftwareDeployment
401 depends_on: NetworkDeployment
403 name: ControllerDeployment
404 config: {get_resource: ControllerConfig}
405 server: {get_resource: Controller}
407 bootstack_nodeid: {get_attr: [Controller, name]}
408 heat_auth_encryption_key: {get_param: HeatAuthEncryptionKey}
409 horizon_secret: {get_param: HorizonSecret}
410 debug: {get_param: Debug}
411 keystone_identity_uri: { get_param: [EndpointMap, KeystoneAdmin, uri_no_suffix] }
412 keystone_auth_uri: {get_param: [EndpointMap, KeystoneInternal, uri] }
413 keystone_ec2_uri: { get_param: [EndpointMap, KeystoneEC2, uri] }
414 enable_fencing: {get_param: EnableFencing}
415 enable_load_balancer: {get_param: EnableLoadBalancer}
416 manage_firewall: {get_param: ManageFirewall}
417 purge_firewall_rules: {get_param: PurgeFirewallRules}
418 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
419 aodh_internal_url: { get_param: [ EndpointMap, AodhInternal, uri ] }
420 aodh_public_url: { get_param: [ EndpointMap, AodhPublic, uri ] }
421 aodh_admin_url: { get_param: [ EndpointMap, AodhAdmin, uri ] }
422 ceilometer_coordination_url:
426 - {get_param: RedisPassword}
428 - {get_param: RedisVirtualIPUri}
430 nova_enable_db_purge: {get_param: NovaEnableDBPurge}
431 nova_ipv6: {get_param: NovaIPv6}
432 corosync_ipv6: {get_param: CorosyncIPv6}
433 memcached_ipv6: {get_param: MemcachedIPv6}
434 nova_password: {get_param: NovaPassword}
435 upgrade_level_nova_compute: {get_param: UpgradeLevelNovaCompute}
436 instance_name_template: {get_param: InstanceNameTemplate}
437 fencing_config: {get_param: FencingConfig}
438 pcsd_password: {get_param: PcsdPassword}
439 swift_hash_suffix: {get_param: SwiftHashSuffix}
440 enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
441 swift_proxy_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
442 swift_management_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, SwiftMgmtNetwork]}]}
443 glance_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
444 glance_registry_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
445 glance_api_servers: { get_param: [EndpointMap, GlanceInternal, uri]}
446 heat_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
447 keystone_public_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
448 keystone_admin_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
449 manila_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ManilaApiNetwork]}]}
450 mongo_db_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, MongodbNetwork]}]}
451 neutron_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
452 neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronTenantNetwork]}]}
453 ceilometer_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
454 aodh_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
455 gnocchi_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
456 nova_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
457 nova_metadata_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
458 horizon_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
461 template: "['SUBNET']"
468 template: "NETWORK_subnet"
470 NETWORK: {get_param: [ServiceNetMap, HorizonNetwork]}
471 redis_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
472 redis_vip: {get_param: RedisVirtualIP}
473 sahara_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
474 memcached_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
475 ceph_cluster_network:
480 template: "NETWORK_subnet"
482 NETWORK: {get_param: [ServiceNetMap, CephClusterNetwork]}
488 template: "NETWORK_subnet"
490 NETWORK: {get_param: [ServiceNetMap, CephPublicNetwork]}
491 ceph_public_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
492 ironic_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
494 # Map heat metadata into hiera datafiles
496 type: OS::Heat::StructuredConfig
498 group: os-apply-config
503 - heat_config_%{::deploy_config_name}
504 - controller_extraconfig
509 - swift_devices_and_proxy # provided by SwiftDevicesAndProxyConfig
510 - ceph_cluster # provided by CephClusterConfig
512 - bootstrap_node # provided by BootstrapNodeConfig
513 - all_nodes # provided by allNodesConfig
514 - vip_data # provided by vip-config
516 - cinder_dellsc_data # Optionally provided by ControllerExtraConfigPre
517 - cinder_netapp_data # Optionally provided by ControllerExtraConfigPre
518 - cinder_eqlx_data # Optionally provided by ControllerExtraConfigPre
519 - neutron_bigswitch_data # Optionally provided by ControllerExtraConfigPre
520 - neutron_cisco_data # Optionally provided by ControllerExtraConfigPre
521 - cisco_n1kv_data # Optionally provided by ControllerExtraConfigPre
522 - midonet_data #Optionally provided by AllNodesExtraConfig
523 merge_behavior: deeper
527 service_names: {get_param: ServiceNames}
531 - {get_param: ServiceConfigSettings}
532 - values: {get_attr: [NetIpMap, net_ip_map]}
533 controller_extraconfig:
536 - {get_param: controllerExtraConfig}
537 - {get_param: ControllerExtraConfig}
539 mapped_data: {get_param: ExtraConfig}
542 ceph::profile::params::cluster_network: {get_input: ceph_cluster_network}
543 ceph::profile::params::public_network: {get_input: ceph_public_network}
544 ceph::profile::params::public_addr: {get_input: ceph_public_ip}
546 mapped_data: # data supplied directly to this deployment configuration, etc
547 bootstack_nodeid: {get_input: bootstack_nodeid}
550 enable_fencing: {get_input: enable_fencing}
551 enable_load_balancer: {get_input: enable_load_balancer}
552 hacluster_pwd: {get_input: pcsd_password}
553 corosync_ipv6: {get_input: corosync_ipv6}
554 tripleo::fencing::config: {get_input: fencing_config}
557 # FIXME: need to move proxy_local_net_ip into swift-proxy.yaml
558 swift::proxy::proxy_local_net_ip: {get_input: swift_proxy_network}
559 swift::storage::all::storage_local_net_ip: {get_input: swift_management_network}
560 swift::swift_hash_path_suffix: {get_input: swift_hash_suffix}
563 glance::api::bind_host: {get_input: glance_api_network}
564 glance::registry::bind_host: {get_input: glance_registry_network}
567 heat::api::bind_host: {get_input: heat_api_network}
568 heat::api_cloudwatch::bind_host: {get_input: heat_api_network}
569 heat::api_cfn::bind_host: {get_input: heat_api_network}
570 heat::engine::auth_encryption_key: {get_input: heat_auth_encryption_key}
573 keystone::admin_bind_host: {get_input: keystone_admin_api_network}
574 keystone::public_bind_host: {get_input: keystone_public_api_network}
575 keystone::wsgi::apache::bind_host: {get_input: keystone_public_api_network}
576 keystone::wsgi::apache::admin_bind_host: {get_input: keystone_admin_api_network}
579 manila::api::bind_host: {get_input: manila_api_network}
582 mongodb::server::bind_ip: {get_input: mongo_db_network}
585 neutron::bind_host: {get_input: neutron_api_network}
586 neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
587 neutron::agents::metadata::metadata_ip: {get_input: neutron_api_network}
590 aodh::api::host: {get_input: aodh_api_network}
591 aodh::wsgi::apache::bind_host: {get_input: aodh_api_network}
594 ceilometer::api::host: {get_input: ceilometer_api_network}
595 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
596 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
599 gnocchi::wsgi::apache::bind_host: {get_input: gnocchi_api_network}
600 gnocchi::api::host: {get_input: gnocchi_api_network}
601 gnocchi::api::keystone_auth_uri: {get_input: keystone_auth_uri}
602 gnocchi::api::keystone_identity_uri: {get_input: keystone_identity_uri}
603 gnocchi::storage::swift::swift_authurl: {get_input: keystone_auth_uri}
606 nova::upgrade_level_compute: {get_input: upgrade_level_nova_compute}
607 nova::use_ipv6: {get_input: nova_ipv6}
608 nova::api::auth_uri: {get_input: keystone_auth_uri}
609 nova::api::identity_uri: {get_input: keystone_identity_uri}
610 nova::api::api_bind_address: {get_input: nova_api_network}
611 nova::api::metadata_listen: {get_input: nova_metadata_network}
612 nova::api::admin_password: {get_input: nova_password}
613 nova::glance_api_servers: {get_input: glance_api_servers}
614 nova::api::neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
615 nova::api::instance_name_template: {get_input: instance_name_template}
616 nova::vncproxy::host: {get_input: nova_api_network}
617 nova_enable_db_purge: {get_input: nova_enable_db_purge}
620 apache::mod::remoteip::proxy_ips: {get_input: horizon_subnet}
621 apache::ip: {get_input: horizon_network}
622 horizon::django_debug: {get_input: debug}
623 horizon::secret_key: {get_input: horizon_secret}
624 horizon::bind_address: {get_input: horizon_network}
625 horizon::keystone_url: {get_input: keystone_auth_uri}
628 sahara::host: {get_input: sahara_api_network}
631 redis::bind: {get_input: redis_network}
632 redis_vip: {get_input: redis_vip}
634 tripleo::firewall::manage_firewall: {get_input: manage_firewall}
635 tripleo::firewall::purge_firewall_rules: {get_input: purge_firewall_rules}
637 memcached_ipv6: {get_input: memcached_ipv6}
638 memcached::listen_ip: {get_input: memcached_network}
639 tripleo::haproxy::service_certificate: {get_attr: [NodeTLSData, deployed_ssl_certificate_path]}
640 tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
642 # Hook for site-specific additional pre-deployment config, e.g extra hieradata
643 ControllerExtraConfigPre:
644 depends_on: ControllerDeployment
645 type: OS::TripleO::ControllerExtraConfigPre
647 server: {get_resource: Controller}
649 # Hook for site-specific additional pre-deployment config,
650 # applying to all nodes, e.g node registration/unregistration
652 depends_on: [ControllerExtraConfigPre, NodeTLSData]
653 type: OS::TripleO::NodeExtraConfig
655 server: {get_resource: Controller}
658 type: OS::TripleO::Tasks::PackageUpdate
661 type: OS::Heat::SoftwareDeployment
663 name: UpdateDeployment
664 config: {get_resource: UpdateConfig}
665 server: {get_resource: Controller}
668 get_param: UpdateIdentifier
672 description: IP address of the server in the ctlplane network
673 value: {get_attr: [Controller, networks, ctlplane, 0]}
675 description: IP address of the server in the external network
676 value: {get_attr: [ExternalPort, ip_address]}
677 internal_api_ip_address:
678 description: IP address of the server in the internal_api network
679 value: {get_attr: [InternalApiPort, ip_address]}
681 description: IP address of the server in the storage network
682 value: {get_attr: [StoragePort, ip_address]}
683 storage_mgmt_ip_address:
684 description: IP address of the server in the storage_mgmt network
685 value: {get_attr: [StorageMgmtPort, ip_address]}
687 description: IP address of the server in the tenant network
688 value: {get_attr: [TenantPort, ip_address]}
689 management_ip_address:
690 description: IP address of the server in the management network
691 value: {get_attr: [ManagementPort, ip_address]}
693 description: Hostname of the server
694 value: {get_attr: [Controller, name]}
697 Server's IP address and hostname in the /etc/hosts format
701 PRIMARYIP PRIMARYHOST.DOMAIN PRIMARYHOST
702 EXTERNALIP EXTERNALHOST.DOMAIN EXTERNALHOST
703 INTERNAL_APIIP INTERNAL_APIHOST.DOMAIN INTERNAL_APIHOST
704 STORAGEIP STORAGEHOST.DOMAIN STORAGEHOST
705 STORAGE_MGMTIP STORAGE_MGMTHOST.DOMAIN STORAGE_MGMTHOST
706 TENANTIP TENANTHOST.DOMAIN TENANTHOST
707 MANAGEMENTIP MANAGEMENTHOST.DOMAIN MANAGEMENTHOST
709 PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ControllerHostnameResolveNetwork]}]}
710 DOMAIN: {get_param: CloudDomain}
711 PRIMARYHOST: {get_attr: [Controller, name]}
712 EXTERNALIP: {get_attr: [ExternalPort, ip_address]}
716 - - {get_attr: [Controller, name]}
718 INTERNAL_APIIP: {get_attr: [InternalApiPort, ip_address]}
722 - - {get_attr: [Controller, name]}
724 STORAGEIP: {get_attr: [StoragePort, ip_address]}
728 - - {get_attr: [Controller, name]}
730 STORAGE_MGMTIP: {get_attr: [StorageMgmtPort, ip_address]}
734 - - {get_attr: [Controller, name]}
736 TENANTIP: {get_attr: [TenantPort, ip_address]}
740 - - {get_attr: [Controller, name]}
742 MANAGEMENTIP: {get_attr: [ManagementPort, ip_address]}
746 - - {get_attr: [Controller, name]}
748 nova_server_resource:
749 description: Heat resource handle for the Nova compute server
751 {get_resource: Controller}
753 description: Swift device formatted for swift-ring-builder
759 - ['r1z1-IP:%PORT%/d1']
761 template: 'r1z1-IP:%PORT%/DEVICE'
763 DEVICE: {get_param: SwiftRawDisks}
770 template: "NETWORK_uri"
772 NETWORK: {get_param: [ServiceNetMap, SwiftMgmtNetwork]}
773 swift_proxy_memcache:
774 description: Swift proxy-memcache value
784 template: "NETWORK_uri"
786 NETWORK: {get_param: [ServiceNetMap, MemcachedNetwork]}
788 description: MD5 checksum of the TLS Key Modulus
789 value: {get_attr: [NodeTLSData, key_modulus_md5]}
790 tls_cert_modulus_md5:
791 description: MD5 checksum of the TLS Certificate Modulus
792 value: {get_attr: [NodeTLSData, cert_modulus_md5]}