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
174 UpgradeLevelNovaCompute:
176 description: Nova Compute upgrade level
180 description: Mapping of service_name -> network name. Typically set
181 via parameter_defaults in the resource registry.
185 description: Mapping of service endpoint -> protocol. Typically set
186 via parameter_defaults in the resource registry.
192 Setting to a previously unused value during stack-update will trigger
193 package update on all nodes
196 default: '' # Defaults to Heat created hostname
200 description: Optional mapping to override hostnames
201 NetworkDeploymentActions:
202 type: comma_delimited_list
204 Heat action when to apply network configuration changes
209 SoftwareConfigTransport:
210 default: POLL_SERVER_CFN
212 How the server should receive the metadata required for software configuration.
215 - allowed_values: [POLL_SERVER_CFN, POLL_SERVER_HEAT, POLL_TEMP_URL, ZAQAR_MESSAGE]
219 The DNS domain used for the hosts. This should match the dhcp_domain
220 configured in the Undercloud neutron. Defaults to localdomain.
224 Extra properties or metadata passed to Nova for the created nodes in
225 the overcloud. It's accessible via the Nova metadata API.
227 ControllerSchedulerHints:
229 description: Optional scheduler hints to pass to nova
231 ServiceConfigSettings:
235 type: comma_delimited_list
239 description: Command which will be run whenever configuration data changes
240 default: os-refresh-config --timeout 14400
244 description: Do not use deprecated params, they will be removed.
246 - controllerExtraConfig
251 type: OS::TripleO::Server
254 command: {get_param: ConfigCommand}
256 image: {get_param: controllerImage}
257 image_update_policy: {get_param: ImageUpdatePolicy}
258 flavor: {get_param: OvercloudControlFlavor}
259 key_name: {get_param: KeyName}
262 user_data_format: SOFTWARE_CONFIG
263 user_data: {get_resource: UserData}
266 template: {get_param: Hostname}
267 params: {get_param: HostnameMap}
268 software_config_transport: {get_param: SoftwareConfigTransport}
269 metadata: {get_param: ServerMetadata}
270 scheduler_hints: {get_param: ControllerSchedulerHints}
272 # Combine the NodeAdminUserData and NodeUserData mime archives
274 type: OS::Heat::MultipartMime
277 - config: {get_resource: NodeAdminUserData}
279 - config: {get_resource: NodeUserData}
282 # Creates the "heat-admin" user if configured via the environment
283 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
285 type: OS::TripleO::NodeAdminUserData
287 # For optional operator additional userdata
288 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
290 type: OS::TripleO::NodeUserData
293 type: OS::TripleO::Controller::Ports::ExternalPort
295 IPPool: {get_param: ControllerIPs}
296 NodeIndex: {get_param: NodeIndex}
297 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
300 type: OS::TripleO::Controller::Ports::InternalApiPort
302 IPPool: {get_param: ControllerIPs}
303 NodeIndex: {get_param: NodeIndex}
304 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
307 type: OS::TripleO::Controller::Ports::StoragePort
309 IPPool: {get_param: ControllerIPs}
310 NodeIndex: {get_param: NodeIndex}
311 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
314 type: OS::TripleO::Controller::Ports::StorageMgmtPort
316 IPPool: {get_param: ControllerIPs}
317 NodeIndex: {get_param: NodeIndex}
318 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
321 type: OS::TripleO::Controller::Ports::TenantPort
323 IPPool: {get_param: ControllerIPs}
324 NodeIndex: {get_param: NodeIndex}
325 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
328 type: OS::TripleO::Controller::Ports::ManagementPort
330 IPPool: {get_param: ControllerIPs}
331 NodeIndex: {get_param: NodeIndex}
332 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
335 type: OS::TripleO::Network::Ports::NetIpMap
337 ControlPlaneIp: {get_attr: [Controller, networks, ctlplane, 0]}
338 ExternalIp: {get_attr: [ExternalPort, ip_address]}
339 ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
340 ExternalIpUri: {get_attr: [ExternalPort, ip_address_uri]}
341 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
342 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
343 InternalApiIpUri: {get_attr: [InternalApiPort, ip_address_uri]}
344 StorageIp: {get_attr: [StoragePort, ip_address]}
345 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
346 StorageIpUri: {get_attr: [StoragePort, ip_address_uri]}
347 StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]}
348 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
349 StorageMgmtIpUri: {get_attr: [StorageMgmtPort, ip_address_uri]}
350 TenantIp: {get_attr: [TenantPort, ip_address]}
351 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
352 TenantIpUri: {get_attr: [TenantPort, ip_address_uri]}
353 ManagementIp: {get_attr: [ManagementPort, ip_address]}
354 ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]}
355 ManagementIpUri: {get_attr: [ManagementPort, ip_address_uri]}
358 type: OS::TripleO::Controller::Net::SoftwareConfig
360 ControlPlaneIp: {get_attr: [Controller, networks, ctlplane, 0]}
361 ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
362 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
363 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
364 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
365 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
366 ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]}
369 type: OS::TripleO::SoftwareDeployment
371 name: NetworkDeployment
372 config: {get_resource: NetworkConfig}
373 server: {get_resource: Controller}
374 actions: {get_param: NetworkDeploymentActions}
377 interface_name: {get_param: NeutronPublicInterface}
379 # Resource for site-specific injection of root certificate
381 depends_on: NetworkDeployment
382 type: OS::TripleO::NodeTLSCAData
384 server: {get_resource: Controller}
386 # Resource for site-specific passing of private keys/certificates
388 depends_on: NodeTLSCAData
389 type: OS::TripleO::NodeTLSData
391 server: {get_resource: Controller}
392 NodeIndex: {get_param: NodeIndex}
395 ControllerDeployment:
396 type: OS::TripleO::SoftwareDeployment
397 depends_on: NetworkDeployment
399 name: ControllerDeployment
400 config: {get_resource: ControllerConfig}
401 server: {get_resource: Controller}
403 bootstack_nodeid: {get_attr: [Controller, name]}
404 heat_auth_encryption_key: {get_param: HeatAuthEncryptionKey}
405 horizon_secret: {get_param: HorizonSecret}
406 debug: {get_param: Debug}
407 keystone_identity_uri: { get_param: [EndpointMap, KeystoneAdmin, uri_no_suffix] }
408 keystone_auth_uri: {get_param: [EndpointMap, KeystoneInternal, uri] }
409 keystone_ec2_uri: { get_param: [EndpointMap, KeystoneEC2, uri] }
410 enable_fencing: {get_param: EnableFencing}
411 enable_load_balancer: {get_param: EnableLoadBalancer}
412 manage_firewall: {get_param: ManageFirewall}
413 purge_firewall_rules: {get_param: PurgeFirewallRules}
414 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
415 aodh_internal_url: { get_param: [ EndpointMap, AodhInternal, uri ] }
416 aodh_public_url: { get_param: [ EndpointMap, AodhPublic, uri ] }
417 aodh_admin_url: { get_param: [ EndpointMap, AodhAdmin, uri ] }
418 ceilometer_coordination_url:
422 - {get_param: RedisPassword}
424 - {get_param: RedisVirtualIPUri}
426 nova_enable_db_purge: {get_param: NovaEnableDBPurge}
427 nova_ipv6: {get_param: NovaIPv6}
428 corosync_ipv6: {get_param: CorosyncIPv6}
429 memcached_ipv6: {get_param: MemcachedIPv6}
430 nova_password: {get_param: NovaPassword}
431 upgrade_level_nova_compute: {get_param: UpgradeLevelNovaCompute}
432 instance_name_template: {get_param: InstanceNameTemplate}
433 fencing_config: {get_param: FencingConfig}
434 pcsd_password: {get_param: PcsdPassword}
435 swift_hash_suffix: {get_param: SwiftHashSuffix}
436 enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
437 swift_proxy_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
438 swift_management_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, SwiftMgmtNetwork]}]}
439 glance_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
440 glance_registry_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
441 glance_api_servers: { get_param: [EndpointMap, GlanceInternal, uri]}
442 heat_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
443 keystone_public_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
444 keystone_admin_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
445 manila_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ManilaApiNetwork]}]}
446 mongo_db_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, MongodbNetwork]}]}
447 neutron_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
448 neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronTenantNetwork]}]}
449 ceilometer_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
450 aodh_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
451 gnocchi_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
452 nova_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
453 nova_metadata_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
454 horizon_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
457 template: "['SUBNET']"
464 template: "NETWORK_subnet"
466 NETWORK: {get_param: [ServiceNetMap, HorizonNetwork]}
467 redis_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
468 redis_vip: {get_param: RedisVirtualIP}
469 sahara_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
470 memcached_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
471 ceph_cluster_network:
476 template: "NETWORK_subnet"
478 NETWORK: {get_param: [ServiceNetMap, CephClusterNetwork]}
484 template: "NETWORK_subnet"
486 NETWORK: {get_param: [ServiceNetMap, CephPublicNetwork]}
487 ceph_public_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
488 ironic_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
490 # Map heat metadata into hiera datafiles
492 type: OS::Heat::StructuredConfig
494 group: os-apply-config
499 - heat_config_%{::deploy_config_name}
500 - controller_extraconfig
505 - swift_devices_and_proxy # provided by SwiftDevicesAndProxyConfig
506 - ceph_cluster # provided by CephClusterConfig
508 - bootstrap_node # provided by BootstrapNodeConfig
509 - all_nodes # provided by allNodesConfig
510 - vip_data # provided by vip-config
512 - cinder_dellsc_data # Optionally provided by ControllerExtraConfigPre
513 - cinder_netapp_data # Optionally provided by ControllerExtraConfigPre
514 - cinder_eqlx_data # Optionally provided by ControllerExtraConfigPre
515 - neutron_bigswitch_data # Optionally provided by ControllerExtraConfigPre
516 - neutron_cisco_data # Optionally provided by ControllerExtraConfigPre
517 - cisco_n1kv_data # Optionally provided by ControllerExtraConfigPre
518 - midonet_data #Optionally provided by AllNodesExtraConfig
519 merge_behavior: deeper
523 service_names: {get_param: ServiceNames}
527 - {get_param: ServiceConfigSettings}
528 - values: {get_attr: [NetIpMap, net_ip_map]}
529 controller_extraconfig:
532 - {get_param: controllerExtraConfig}
533 - {get_param: ControllerExtraConfig}
535 mapped_data: {get_param: ExtraConfig}
538 ceph::profile::params::cluster_network: {get_input: ceph_cluster_network}
539 ceph::profile::params::public_network: {get_input: ceph_public_network}
540 ceph::profile::params::public_addr: {get_input: ceph_public_ip}
542 mapped_data: # data supplied directly to this deployment configuration, etc
543 bootstack_nodeid: {get_input: bootstack_nodeid}
546 enable_fencing: {get_input: enable_fencing}
547 enable_load_balancer: {get_input: enable_load_balancer}
548 hacluster_pwd: {get_input: pcsd_password}
549 corosync_ipv6: {get_input: corosync_ipv6}
550 tripleo::fencing::config: {get_input: fencing_config}
553 # FIXME: need to move proxy_local_net_ip into swift-proxy.yaml
554 swift::proxy::proxy_local_net_ip: {get_input: swift_proxy_network}
555 swift::storage::all::storage_local_net_ip: {get_input: swift_management_network}
556 swift::swift_hash_path_suffix: {get_input: swift_hash_suffix}
559 glance::api::bind_host: {get_input: glance_api_network}
560 glance::registry::bind_host: {get_input: glance_registry_network}
563 heat::api::bind_host: {get_input: heat_api_network}
564 heat::api_cloudwatch::bind_host: {get_input: heat_api_network}
565 heat::api_cfn::bind_host: {get_input: heat_api_network}
566 heat::engine::auth_encryption_key: {get_input: heat_auth_encryption_key}
569 keystone::admin_bind_host: {get_input: keystone_admin_api_network}
570 keystone::public_bind_host: {get_input: keystone_public_api_network}
571 keystone::wsgi::apache::bind_host: {get_input: keystone_public_api_network}
572 keystone::wsgi::apache::admin_bind_host: {get_input: keystone_admin_api_network}
575 manila::api::bind_host: {get_input: manila_api_network}
578 mongodb::server::bind_ip: {get_input: mongo_db_network}
581 neutron::bind_host: {get_input: neutron_api_network}
582 neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
583 neutron::agents::metadata::metadata_ip: {get_input: neutron_api_network}
586 aodh::api::host: {get_input: aodh_api_network}
587 aodh::wsgi::apache::bind_host: {get_input: aodh_api_network}
590 ceilometer::api::host: {get_input: ceilometer_api_network}
591 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
592 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
595 gnocchi::wsgi::apache::bind_host: {get_input: gnocchi_api_network}
596 gnocchi::api::host: {get_input: gnocchi_api_network}
597 gnocchi::api::keystone_auth_uri: {get_input: keystone_auth_uri}
598 gnocchi::api::keystone_identity_uri: {get_input: keystone_identity_uri}
599 gnocchi::storage::swift::swift_authurl: {get_input: keystone_auth_uri}
602 nova::upgrade_level_compute: {get_input: upgrade_level_nova_compute}
603 nova::use_ipv6: {get_input: nova_ipv6}
604 nova::api::auth_uri: {get_input: keystone_auth_uri}
605 nova::api::identity_uri: {get_input: keystone_identity_uri}
606 nova::api::api_bind_address: {get_input: nova_api_network}
607 nova::api::metadata_listen: {get_input: nova_metadata_network}
608 nova::api::admin_password: {get_input: nova_password}
609 nova::glance_api_servers: {get_input: glance_api_servers}
610 nova::api::neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
611 nova::api::instance_name_template: {get_input: instance_name_template}
612 nova::vncproxy::host: {get_input: nova_api_network}
613 nova_enable_db_purge: {get_input: nova_enable_db_purge}
616 apache::mod::remoteip::proxy_ips: {get_input: horizon_subnet}
617 apache::ip: {get_input: horizon_network}
618 horizon::django_debug: {get_input: debug}
619 horizon::secret_key: {get_input: horizon_secret}
620 horizon::bind_address: {get_input: horizon_network}
621 horizon::keystone_url: {get_input: keystone_auth_uri}
624 sahara::host: {get_input: sahara_api_network}
627 redis::bind: {get_input: redis_network}
628 redis_vip: {get_input: redis_vip}
630 tripleo::firewall::manage_firewall: {get_input: manage_firewall}
631 tripleo::firewall::purge_firewall_rules: {get_input: purge_firewall_rules}
633 memcached_ipv6: {get_input: memcached_ipv6}
634 memcached::listen_ip: {get_input: memcached_network}
635 tripleo::haproxy::service_certificate: {get_attr: [NodeTLSData, deployed_ssl_certificate_path]}
636 tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
638 # Hook for site-specific additional pre-deployment config, e.g extra hieradata
639 ControllerExtraConfigPre:
640 depends_on: ControllerDeployment
641 type: OS::TripleO::ControllerExtraConfigPre
643 server: {get_resource: Controller}
645 # Hook for site-specific additional pre-deployment config,
646 # applying to all nodes, e.g node registration/unregistration
648 depends_on: [ControllerExtraConfigPre, NodeTLSData]
649 type: OS::TripleO::NodeExtraConfig
651 server: {get_resource: Controller}
654 type: OS::TripleO::Tasks::PackageUpdate
657 type: OS::Heat::SoftwareDeployment
659 name: UpdateDeployment
660 config: {get_resource: UpdateConfig}
661 server: {get_resource: Controller}
664 get_param: UpdateIdentifier
668 description: IP address of the server in the ctlplane network
669 value: {get_attr: [Controller, networks, ctlplane, 0]}
671 description: IP address of the server in the external network
672 value: {get_attr: [ExternalPort, ip_address]}
673 internal_api_ip_address:
674 description: IP address of the server in the internal_api network
675 value: {get_attr: [InternalApiPort, ip_address]}
677 description: IP address of the server in the storage network
678 value: {get_attr: [StoragePort, ip_address]}
679 storage_mgmt_ip_address:
680 description: IP address of the server in the storage_mgmt network
681 value: {get_attr: [StorageMgmtPort, ip_address]}
683 description: IP address of the server in the tenant network
684 value: {get_attr: [TenantPort, ip_address]}
685 management_ip_address:
686 description: IP address of the server in the management network
687 value: {get_attr: [ManagementPort, ip_address]}
689 description: Hostname of the server
690 value: {get_attr: [Controller, name]}
693 Server's IP address and hostname in the /etc/hosts format
697 PRIMARYIP PRIMARYHOST.DOMAIN PRIMARYHOST
698 EXTERNALIP EXTERNALHOST.DOMAIN EXTERNALHOST
699 INTERNAL_APIIP INTERNAL_APIHOST.DOMAIN INTERNAL_APIHOST
700 STORAGEIP STORAGEHOST.DOMAIN STORAGEHOST
701 STORAGE_MGMTIP STORAGE_MGMTHOST.DOMAIN STORAGE_MGMTHOST
702 TENANTIP TENANTHOST.DOMAIN TENANTHOST
703 MANAGEMENTIP MANAGEMENTHOST.DOMAIN MANAGEMENTHOST
705 PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ControllerHostnameResolveNetwork]}]}
706 DOMAIN: {get_param: CloudDomain}
707 PRIMARYHOST: {get_attr: [Controller, name]}
708 EXTERNALIP: {get_attr: [ExternalPort, ip_address]}
712 - - {get_attr: [Controller, name]}
714 INTERNAL_APIIP: {get_attr: [InternalApiPort, ip_address]}
718 - - {get_attr: [Controller, name]}
720 STORAGEIP: {get_attr: [StoragePort, ip_address]}
724 - - {get_attr: [Controller, name]}
726 STORAGE_MGMTIP: {get_attr: [StorageMgmtPort, ip_address]}
730 - - {get_attr: [Controller, name]}
732 TENANTIP: {get_attr: [TenantPort, ip_address]}
736 - - {get_attr: [Controller, name]}
738 MANAGEMENTIP: {get_attr: [ManagementPort, ip_address]}
742 - - {get_attr: [Controller, name]}
744 nova_server_resource:
745 description: Heat resource handle for the Nova compute server
747 {get_resource: Controller}
749 description: Swift device formatted for swift-ring-builder
752 template: 'r1z1-IP:%PORT%/d1'
759 template: "NETWORK_uri"
761 NETWORK: {get_param: [ServiceNetMap, SwiftMgmtNetwork]}
762 swift_proxy_memcache:
763 description: Swift proxy-memcache value
773 template: "NETWORK_uri"
775 NETWORK: {get_param: [ServiceNetMap, MemcachedNetwork]}
777 description: MD5 checksum of the TLS Key Modulus
778 value: {get_attr: [NodeTLSData, key_modulus_md5]}
779 tls_cert_modulus_md5:
780 description: MD5 checksum of the TLS Certificate Modulus
781 value: {get_attr: [NodeTLSData, cert_modulus_md5]}