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"],
30 ControlVirtualInterface:
32 description: Interface where virtual ip will be assigned.
36 description: Enable IPv6 in Corosync
40 description: Set to True to enable debugging on all services.
44 description: Whether to enable fencing in Pacemaker or not.
48 description: Whether to deploy a LoadBalancer on the Controller
53 Additional hieradata to inject into the cluster, note that
54 ControllerExtraConfig takes precedence over ExtraConfig.
59 Pacemaker fencing configuration. The JSON should have
60 the following structure:
64 "agent": "AGENT_NAME",
65 "host_mac": "HOST_MAC_ADDRESS",
66 "params": {"PARAM_NAME": "PARAM_VALUE"}
75 "host_mac": "52:54:00:aa:bb:cc",
77 "multicast_address": "225.0.0.12",
78 "port": "baremetal_0",
80 "manage_key_file": true,
81 "key_file": "/etc/fence_xvm.key",
82 "key_file_password": "abcdef"
88 OvercloudControlFlavor:
89 description: Flavor for control nodes to request when deploying.
93 - custom_constraint: nova.flavor
95 description: Password for HAProxy stats endpoint
98 description: User for HAProxy stats endpoint
101 HAProxySyslogAddress:
103 description: Syslog address where HAproxy will send its log
105 HeatAuthEncryptionKey:
106 description: Auth encryption key for heat-engine
110 description: Secret key for Django
115 default: overcloud-full
117 - custom_constraint: glance.image
119 default: 'REBUILD_PRESERVE_EPHEMERAL'
120 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
122 InstanceNameTemplate:
123 default: 'instance-%08x'
124 description: Template string to be used to generate instance names
128 description: Name of an existing Nova key pair to enable SSH access to the instances
131 - custom_constraint: nova.keypair
134 description: Whether to manage IPtables rules.
138 description: Enable IPv6 features in Memcached.
142 description: Whether IPtables rules should be purged before setting up the new ones.
144 NeutronMetadataProxySharedSecret:
145 description: Shared secret to prevent spoofing
149 description: The password for the neutron service and db account, used by neutron agents.
152 NeutronPublicInterface:
154 description: What interface to bridge onto br-ex for network nodes.
159 Whether to create cron job for purging soft deleted rows in Nova database.
163 description: Enable IPv6 features in Nova
166 description: The password for the nova service and db account, used by nova-api.
171 description: The password for the 'pcsd' user.
173 PublicVirtualInterface:
176 Specifies the interface where the public-facing virtual ip will be assigned.
177 This should be int_public when a VLAN is being used.
180 description: The password for Redis
185 default: '' # Has to be here because of the ignored empty value bug
188 default: '' # Has to be here because of the ignored empty value bug
189 description: An IP address which is wrapped in brackets in case of IPv6
191 description: A random string to be used as a salt when hashing to determine mappings
195 UpgradeLevelNovaCompute:
197 description: Nova Compute upgrade level
201 description: Mapping of service_name -> network name. Typically set
202 via parameter_defaults in the resource registry.
206 description: Mapping of service endpoint -> protocol. Typically set
207 via parameter_defaults in the resource registry.
213 Setting to a previously unused value during stack-update will trigger
214 package update on all nodes
217 default: '' # Defaults to Heat created hostname
221 description: Optional mapping to override hostnames
222 NetworkDeploymentActions:
223 type: comma_delimited_list
225 Heat action when to apply network configuration changes
230 SoftwareConfigTransport:
231 default: POLL_SERVER_CFN
233 How the server should receive the metadata required for software configuration.
236 - allowed_values: [POLL_SERVER_CFN, POLL_SERVER_HEAT, POLL_TEMP_URL, ZAQAR_MESSAGE]
240 The DNS domain used for the hosts. This should match the dhcp_domain
241 configured in the Undercloud neutron. Defaults to localdomain.
245 Extra properties or metadata passed to Nova for the created nodes in
246 the overcloud. It's accessible via the Nova metadata API.
248 ControllerSchedulerHints:
250 description: Optional scheduler hints to pass to nova
252 ServiceConfigSettings:
256 type: comma_delimited_list
260 description: Command which will be run whenever configuration data changes
261 default: os-refresh-config --timeout 14400
265 description: Do not use deprecated params, they will be removed.
267 - controllerExtraConfig
272 type: OS::TripleO::Server
275 command: {get_param: ConfigCommand}
277 image: {get_param: controllerImage}
278 image_update_policy: {get_param: ImageUpdatePolicy}
279 flavor: {get_param: OvercloudControlFlavor}
280 key_name: {get_param: KeyName}
283 user_data_format: SOFTWARE_CONFIG
284 user_data: {get_resource: UserData}
287 template: {get_param: Hostname}
288 params: {get_param: HostnameMap}
289 software_config_transport: {get_param: SoftwareConfigTransport}
290 metadata: {get_param: ServerMetadata}
291 scheduler_hints: {get_param: ControllerSchedulerHints}
293 # Combine the NodeAdminUserData and NodeUserData mime archives
295 type: OS::Heat::MultipartMime
298 - config: {get_resource: NodeAdminUserData}
300 - config: {get_resource: NodeUserData}
303 # Creates the "heat-admin" user if configured via the environment
304 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
306 type: OS::TripleO::NodeAdminUserData
308 # For optional operator additional userdata
309 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
311 type: OS::TripleO::NodeUserData
314 type: OS::TripleO::Controller::Ports::ExternalPort
316 IPPool: {get_param: ControllerIPs}
317 NodeIndex: {get_param: NodeIndex}
318 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
321 type: OS::TripleO::Controller::Ports::InternalApiPort
323 IPPool: {get_param: ControllerIPs}
324 NodeIndex: {get_param: NodeIndex}
325 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
328 type: OS::TripleO::Controller::Ports::StoragePort
330 IPPool: {get_param: ControllerIPs}
331 NodeIndex: {get_param: NodeIndex}
332 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
335 type: OS::TripleO::Controller::Ports::StorageMgmtPort
337 IPPool: {get_param: ControllerIPs}
338 NodeIndex: {get_param: NodeIndex}
339 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
342 type: OS::TripleO::Controller::Ports::TenantPort
344 IPPool: {get_param: ControllerIPs}
345 NodeIndex: {get_param: NodeIndex}
346 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
349 type: OS::TripleO::Controller::Ports::ManagementPort
351 IPPool: {get_param: ControllerIPs}
352 NodeIndex: {get_param: NodeIndex}
353 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
356 type: OS::TripleO::Network::Ports::NetIpMap
358 ControlPlaneIp: {get_attr: [Controller, networks, ctlplane, 0]}
359 ExternalIp: {get_attr: [ExternalPort, ip_address]}
360 ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
361 ExternalIpUri: {get_attr: [ExternalPort, ip_address_uri]}
362 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
363 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
364 InternalApiIpUri: {get_attr: [InternalApiPort, ip_address_uri]}
365 StorageIp: {get_attr: [StoragePort, ip_address]}
366 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
367 StorageIpUri: {get_attr: [StoragePort, ip_address_uri]}
368 StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]}
369 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
370 StorageMgmtIpUri: {get_attr: [StorageMgmtPort, ip_address_uri]}
371 TenantIp: {get_attr: [TenantPort, ip_address]}
372 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
373 TenantIpUri: {get_attr: [TenantPort, ip_address_uri]}
374 ManagementIp: {get_attr: [ManagementPort, ip_address]}
375 ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]}
376 ManagementIpUri: {get_attr: [ManagementPort, ip_address_uri]}
379 type: OS::TripleO::Controller::Net::SoftwareConfig
381 ControlPlaneIp: {get_attr: [Controller, networks, ctlplane, 0]}
382 ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
383 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
384 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
385 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
386 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
387 ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]}
390 type: OS::TripleO::SoftwareDeployment
392 name: NetworkDeployment
393 config: {get_resource: NetworkConfig}
394 server: {get_resource: Controller}
395 actions: {get_param: NetworkDeploymentActions}
398 interface_name: {get_param: NeutronPublicInterface}
400 # Resource for site-specific injection of root certificate
402 depends_on: NetworkDeployment
403 type: OS::TripleO::NodeTLSCAData
405 server: {get_resource: Controller}
407 # Resource for site-specific passing of private keys/certificates
409 depends_on: NodeTLSCAData
410 type: OS::TripleO::NodeTLSData
412 server: {get_resource: Controller}
413 NodeIndex: {get_param: NodeIndex}
416 ControllerDeployment:
417 type: OS::TripleO::SoftwareDeployment
418 depends_on: NetworkDeployment
420 name: ControllerDeployment
421 config: {get_resource: ControllerConfig}
422 server: {get_resource: Controller}
424 bootstack_nodeid: {get_attr: [Controller, name]}
425 haproxy_log_address: {get_param: HAProxySyslogAddress}
426 haproxy_stats_password: {get_param: HAProxyStatsPassword}
427 haproxy_stats_user: {get_param: HAProxyStatsUser}
428 heat_auth_encryption_key: {get_param: HeatAuthEncryptionKey}
429 horizon_secret: {get_param: HorizonSecret}
430 debug: {get_param: Debug}
431 keystone_identity_uri: { get_param: [EndpointMap, KeystoneAdmin, uri_no_suffix] }
432 keystone_auth_uri: {get_param: [EndpointMap, KeystoneInternal, uri] }
433 keystone_ec2_uri: { get_param: [EndpointMap, KeystoneEC2, uri] }
434 enable_fencing: {get_param: EnableFencing}
435 enable_load_balancer: {get_param: EnableLoadBalancer}
436 manage_firewall: {get_param: ManageFirewall}
437 purge_firewall_rules: {get_param: PurgeFirewallRules}
438 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
439 aodh_internal_url: { get_param: [ EndpointMap, AodhInternal, uri ] }
440 aodh_public_url: { get_param: [ EndpointMap, AodhPublic, uri ] }
441 aodh_admin_url: { get_param: [ EndpointMap, AodhAdmin, uri ] }
442 ceilometer_coordination_url:
446 - {get_param: RedisPassword}
448 - {get_param: RedisVirtualIPUri}
450 nova_enable_db_purge: {get_param: NovaEnableDBPurge}
451 nova_ipv6: {get_param: NovaIPv6}
452 corosync_ipv6: {get_param: CorosyncIPv6}
453 memcached_ipv6: {get_param: MemcachedIPv6}
454 nova_password: {get_param: NovaPassword}
455 upgrade_level_nova_compute: {get_param: UpgradeLevelNovaCompute}
456 instance_name_template: {get_param: InstanceNameTemplate}
457 fencing_config: {get_param: FencingConfig}
458 pcsd_password: {get_param: PcsdPassword}
459 control_virtual_interface: {get_param: ControlVirtualInterface}
460 public_virtual_interface: {get_param: PublicVirtualInterface}
461 swift_hash_suffix: {get_param: SwiftHashSuffix}
462 enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
463 swift_proxy_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
464 swift_management_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, SwiftMgmtNetwork]}]}
465 glance_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
466 glance_registry_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
467 glance_api_servers: { get_param: [EndpointMap, GlanceInternal, uri]}
468 heat_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
469 keystone_public_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
470 keystone_admin_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
471 manila_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ManilaApiNetwork]}]}
472 mongo_db_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, MongodbNetwork]}]}
473 neutron_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
474 neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronTenantNetwork]}]}
475 ceilometer_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
476 aodh_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
477 gnocchi_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
478 nova_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
479 nova_metadata_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
480 horizon_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
483 template: "['SUBNET']"
490 template: "NETWORK_subnet"
492 NETWORK: {get_param: [ServiceNetMap, HorizonNetwork]}
493 redis_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
494 redis_vip: {get_param: RedisVirtualIP}
495 sahara_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
496 memcached_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
497 ceph_cluster_network:
502 template: "NETWORK_subnet"
504 NETWORK: {get_param: [ServiceNetMap, CephClusterNetwork]}
510 template: "NETWORK_subnet"
512 NETWORK: {get_param: [ServiceNetMap, CephPublicNetwork]}
513 ceph_public_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
514 ironic_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
516 # Map heat metadata into hiera datafiles
518 type: OS::Heat::StructuredConfig
520 group: os-apply-config
525 - heat_config_%{::deploy_config_name}
526 - controller_extraconfig
531 - swift_devices_and_proxy # provided by SwiftDevicesAndProxyConfig
532 - ceph_cluster # provided by CephClusterConfig
534 - bootstrap_node # provided by BootstrapNodeConfig
535 - all_nodes # provided by allNodesConfig
536 - vip_data # provided by vip-config
538 - cinder_dellsc_data # Optionally provided by ControllerExtraConfigPre
539 - cinder_netapp_data # Optionally provided by ControllerExtraConfigPre
540 - cinder_eqlx_data # Optionally provided by ControllerExtraConfigPre
541 - neutron_bigswitch_data # Optionally provided by ControllerExtraConfigPre
542 - neutron_cisco_data # Optionally provided by ControllerExtraConfigPre
543 - cisco_n1kv_data # Optionally provided by ControllerExtraConfigPre
544 - midonet_data #Optionally provided by AllNodesExtraConfig
545 merge_behavior: deeper
549 service_names: {get_param: ServiceNames}
553 - {get_param: ServiceConfigSettings}
554 - values: {get_attr: [NetIpMap, net_ip_map]}
555 controller_extraconfig:
558 - {get_param: controllerExtraConfig}
559 - {get_param: ControllerExtraConfig}
561 mapped_data: {get_param: ExtraConfig}
564 ceph::profile::params::cluster_network: {get_input: ceph_cluster_network}
565 ceph::profile::params::public_network: {get_input: ceph_public_network}
566 ceph::profile::params::public_addr: {get_input: ceph_public_ip}
568 mapped_data: # data supplied directly to this deployment configuration, etc
569 bootstack_nodeid: {get_input: bootstack_nodeid}
572 enable_fencing: {get_input: enable_fencing}
573 enable_load_balancer: {get_input: enable_load_balancer}
574 hacluster_pwd: {get_input: pcsd_password}
575 corosync_ipv6: {get_input: corosync_ipv6}
576 tripleo::fencing::config: {get_input: fencing_config}
579 # FIXME: need to move proxy_local_net_ip into swift-proxy.yaml
580 swift::proxy::proxy_local_net_ip: {get_input: swift_proxy_network}
581 swift::storage::all::storage_local_net_ip: {get_input: swift_management_network}
582 swift::swift_hash_path_suffix: {get_input: swift_hash_suffix}
585 glance::api::bind_host: {get_input: glance_api_network}
586 glance::registry::bind_host: {get_input: glance_registry_network}
589 heat::api::bind_host: {get_input: heat_api_network}
590 heat::api_cloudwatch::bind_host: {get_input: heat_api_network}
591 heat::api_cfn::bind_host: {get_input: heat_api_network}
592 heat::engine::auth_encryption_key: {get_input: heat_auth_encryption_key}
595 keystone::admin_bind_host: {get_input: keystone_admin_api_network}
596 keystone::public_bind_host: {get_input: keystone_public_api_network}
597 keystone::wsgi::apache::bind_host: {get_input: keystone_public_api_network}
598 keystone::wsgi::apache::admin_bind_host: {get_input: keystone_admin_api_network}
601 manila::api::bind_host: {get_input: manila_api_network}
604 mongodb::server::bind_ip: {get_input: mongo_db_network}
607 neutron::bind_host: {get_input: neutron_api_network}
608 neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
609 neutron::agents::metadata::metadata_ip: {get_input: neutron_api_network}
612 aodh::api::host: {get_input: aodh_api_network}
613 aodh::wsgi::apache::bind_host: {get_input: aodh_api_network}
616 ceilometer::api::host: {get_input: ceilometer_api_network}
617 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
618 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
621 gnocchi::wsgi::apache::bind_host: {get_input: gnocchi_api_network}
622 gnocchi::api::host: {get_input: gnocchi_api_network}
623 gnocchi::api::keystone_auth_uri: {get_input: keystone_auth_uri}
624 gnocchi::api::keystone_identity_uri: {get_input: keystone_identity_uri}
625 gnocchi::storage::swift::swift_authurl: {get_input: keystone_auth_uri}
628 nova::upgrade_level_compute: {get_input: upgrade_level_nova_compute}
629 nova::use_ipv6: {get_input: nova_ipv6}
630 nova::api::auth_uri: {get_input: keystone_auth_uri}
631 nova::api::identity_uri: {get_input: keystone_identity_uri}
632 nova::api::api_bind_address: {get_input: nova_api_network}
633 nova::api::metadata_listen: {get_input: nova_metadata_network}
634 nova::api::admin_password: {get_input: nova_password}
635 nova::glance_api_servers: {get_input: glance_api_servers}
636 nova::api::neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
637 nova::api::instance_name_template: {get_input: instance_name_template}
638 nova::vncproxy::host: {get_input: nova_api_network}
639 nova_enable_db_purge: {get_input: nova_enable_db_purge}
642 apache::mod::remoteip::proxy_ips: {get_input: horizon_subnet}
643 apache::ip: {get_input: horizon_network}
644 horizon::django_debug: {get_input: debug}
645 horizon::secret_key: {get_input: horizon_secret}
646 horizon::bind_address: {get_input: horizon_network}
647 horizon::keystone_url: {get_input: keystone_auth_uri}
650 sahara::host: {get_input: sahara_api_network}
653 redis::bind: {get_input: redis_network}
654 redis_vip: {get_input: redis_vip}
656 tripleo::firewall::manage_firewall: {get_input: manage_firewall}
657 tripleo::firewall::purge_firewall_rules: {get_input: purge_firewall_rules}
659 memcached_ipv6: {get_input: memcached_ipv6}
660 memcached::listen_ip: {get_input: memcached_network}
661 control_virtual_interface: {get_input: control_virtual_interface}
662 public_virtual_interface: {get_input: public_virtual_interface}
663 tripleo::keepalived::control_virtual_interface: {get_input: control_virtual_interface}
664 tripleo::keepalived::public_virtual_interface: {get_input: public_virtual_interface}
665 tripleo::haproxy::control_virtual_interface: {get_input: control_virtual_interface}
666 tripleo::haproxy::public_virtual_interface: {get_input: public_virtual_interface}
667 tripleo::haproxy::haproxy_log_address: {get_input: haproxy_log_address}
668 tripleo::haproxy::service_certificate: {get_attr: [NodeTLSData, deployed_ssl_certificate_path]}
669 tripleo::haproxy::haproxy_stats_user: {get_input: haproxy_stats_user}
670 tripleo::haproxy::haproxy_stats_password: {get_input: haproxy_stats_password}
671 tripleo::haproxy::redis_password: {get_input: redis_password}
672 tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
674 # Hook for site-specific additional pre-deployment config, e.g extra hieradata
675 ControllerExtraConfigPre:
676 depends_on: ControllerDeployment
677 type: OS::TripleO::ControllerExtraConfigPre
679 server: {get_resource: Controller}
681 # Hook for site-specific additional pre-deployment config,
682 # applying to all nodes, e.g node registration/unregistration
684 depends_on: [ControllerExtraConfigPre, NodeTLSData]
685 type: OS::TripleO::NodeExtraConfig
687 server: {get_resource: Controller}
690 type: OS::TripleO::Tasks::PackageUpdate
693 type: OS::Heat::SoftwareDeployment
695 name: UpdateDeployment
696 config: {get_resource: UpdateConfig}
697 server: {get_resource: Controller}
700 get_param: UpdateIdentifier
704 description: IP address of the server in the ctlplane network
705 value: {get_attr: [Controller, networks, ctlplane, 0]}
707 description: IP address of the server in the external network
708 value: {get_attr: [ExternalPort, ip_address]}
709 internal_api_ip_address:
710 description: IP address of the server in the internal_api network
711 value: {get_attr: [InternalApiPort, ip_address]}
713 description: IP address of the server in the storage network
714 value: {get_attr: [StoragePort, ip_address]}
715 storage_mgmt_ip_address:
716 description: IP address of the server in the storage_mgmt network
717 value: {get_attr: [StorageMgmtPort, ip_address]}
719 description: IP address of the server in the tenant network
720 value: {get_attr: [TenantPort, ip_address]}
721 management_ip_address:
722 description: IP address of the server in the management network
723 value: {get_attr: [ManagementPort, ip_address]}
725 description: Hostname of the server
726 value: {get_attr: [Controller, name]}
729 Server's IP address and hostname in the /etc/hosts format
733 PRIMARYIP PRIMARYHOST.DOMAIN PRIMARYHOST
734 EXTERNALIP EXTERNALHOST.DOMAIN EXTERNALHOST
735 INTERNAL_APIIP INTERNAL_APIHOST.DOMAIN INTERNAL_APIHOST
736 STORAGEIP STORAGEHOST.DOMAIN STORAGEHOST
737 STORAGE_MGMTIP STORAGE_MGMTHOST.DOMAIN STORAGE_MGMTHOST
738 TENANTIP TENANTHOST.DOMAIN TENANTHOST
739 MANAGEMENTIP MANAGEMENTHOST.DOMAIN MANAGEMENTHOST
741 PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ControllerHostnameResolveNetwork]}]}
742 DOMAIN: {get_param: CloudDomain}
743 PRIMARYHOST: {get_attr: [Controller, name]}
744 EXTERNALIP: {get_attr: [ExternalPort, ip_address]}
748 - - {get_attr: [Controller, name]}
750 INTERNAL_APIIP: {get_attr: [InternalApiPort, ip_address]}
754 - - {get_attr: [Controller, name]}
756 STORAGEIP: {get_attr: [StoragePort, ip_address]}
760 - - {get_attr: [Controller, name]}
762 STORAGE_MGMTIP: {get_attr: [StorageMgmtPort, ip_address]}
766 - - {get_attr: [Controller, name]}
768 TENANTIP: {get_attr: [TenantPort, ip_address]}
772 - - {get_attr: [Controller, name]}
774 MANAGEMENTIP: {get_attr: [ManagementPort, ip_address]}
778 - - {get_attr: [Controller, name]}
780 nova_server_resource:
781 description: Heat resource handle for the Nova compute server
783 {get_resource: Controller}
785 description: Swift device formatted for swift-ring-builder
788 template: 'r1z1-IP:%PORT%/d1'
795 template: "NETWORK_uri"
797 NETWORK: {get_param: [ServiceNetMap, SwiftMgmtNetwork]}
798 swift_proxy_memcache:
799 description: Swift proxy-memcache value
809 template: "NETWORK_uri"
811 NETWORK: {get_param: [ServiceNetMap, MemcachedNetwork]}
813 description: MD5 checksum of the TLS Key Modulus
814 value: {get_attr: [NodeTLSData, key_modulus_md5]}
815 tls_cert_modulus_md5:
816 description: MD5 checksum of the TLS Certificate Modulus
817 value: {get_attr: [NodeTLSData, cert_modulus_md5]}