1 heat_template_version: 2015-10-15
4 OpenStack hypervisor node configured via Puppet.
8 description: The password for the keystone admin account, used for monitoring, querying neutron etc.
11 CeilometerComputeAgent:
12 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
16 - allowed_values: ['', Present]
17 CeilometerMeteringSecret:
18 description: Secret shared by the ceilometer services.
22 description: The password for the ceilometer service account.
25 CinderEnableNfsBackend:
27 description: Whether to enable or not the NFS backend for Cinder
29 CinderEnableRbdBackend:
31 description: Whether to enable or not the Rbd backend for Cinder
35 description: Set to True to enable debugging on all services.
40 Additional hiera configuration to inject into the cluster. Note
41 that NovaComputeExtraConfig takes precedence over ExtraConfig.
44 description: Flavor for the nova compute node
47 - custom_constraint: nova.flavor
50 default: '' # Has to be here because of the ignored empty value bug
53 default: overcloud-compute
55 - custom_constraint: glance.image
57 default: 'REBUILD_PRESERVE_EPHEMERAL'
58 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
61 description: Name of an existing Nova key pair to enable SSH access to the instances
65 - custom_constraint: nova.keypair
66 KeystoneAdminApiVirtualIP:
69 KeystonePublicApiVirtualIP:
72 NeutronBridgeMappings:
74 The OVS logical->physical bridge mappings to use. See the Neutron
75 documentation for details. Defaults to mapping br-ex - the external
76 bridge on hosts - to a physical name 'datacentre' which can be used
77 to create provider networks (and we use this for the default floating
78 network) - if changing this either use different post-install network
79 scripts or be sure to keep 'datacentre' as a mapping network name.
80 type: comma_delimited_list
81 default: "datacentre:br-ex"
82 NeutronEnableTunnelling:
88 Enable/disable the L2 population feature in the Neutron agents.
91 type: comma_delimited_list
94 If set, flat networks to configure in neutron plugins.
97 default: '' # Has to be here because of the ignored empty value bug
99 type: comma_delimited_list
100 description: The tenant network type for Neutron.
102 NeutronNetworkVLANRanges:
103 default: 'datacentre:1:1000'
105 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
106 Neutron documentation for permitted values. Defaults to permitting any
107 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
108 type: comma_delimited_list
110 description: The password for the neutron service account, used by neutron agents.
113 NeutronPhysicalBridge:
115 description: An OVS bridge to create for accessing external networks.
117 NeutronPublicInterface:
119 description: A port to add to the NeutronPhysicalBridge.
123 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
124 be at least 50 bytes smaller than the MTU on the physical network. This
125 value will be used to set the MTU on the virtual Ethernet device.
126 This number is related to the value of NeutronDnsmasqOptions, since that
127 will determine the MTU that is assigned to the VM host through DHCP.
131 type: comma_delimited_list
133 The tunnel types for the Neutron tenant network.
135 NeutronTunnelIdRanges:
137 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
138 of GRE tunnel IDs that are available for tenant network allocation
139 default: ["1:4094", ]
140 type: comma_delimited_list
143 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
144 of VXLAN VNI IDs that are available for tenant network allocation
145 default: ["1:4094", ]
146 type: comma_delimited_list
147 NeutronMetadataProxySharedSecret:
148 description: Shared secret to prevent spoofing
154 The core plugin for Neutron. The value should be the entrypoint to be loaded
155 from neutron.core_plugins namespace.
157 NeutronServicePlugins:
158 default: "router,qos"
160 Comma-separated list of service plugin entrypoints to be loaded from the
161 neutron.service_plugins namespace.
162 type: comma_delimited_list
164 default: "vxlan,vlan,flat,gre"
166 Comma-separated list of network type driver entrypoints to be loaded.
167 type: comma_delimited_list
168 NeutronMechanismDrivers:
169 default: 'openvswitch'
171 The mechanism drivers for the Neutron tenant network.
172 type: comma_delimited_list
173 NeutronAgentExtensions:
176 Comma-separated list of extensions enabled for the Neutron agents.
177 type: comma_delimited_list
178 # Not relevant for Computes, should be removed
179 NeutronAllowL3AgentFailover:
181 description: Allow automatic l3-agent failover
183 # Not relevant for Computes, should be removed
186 description: Whether to enable l3-agent HA
193 default: '' # Has to be here because of the ignored empty value bug
196 default: libvirt.LibvirtDriver
197 NovaComputeExtraConfig:
200 NovaCompute specific configuration to inject into the cluster. Same
201 structure as ExtraConfig.
206 NovaComputeLibvirtType:
209 NovaComputeLibvirtVifDriver:
211 description: Libvirt VIF driver configuration for the network
213 NovaEnableRbdBackend:
215 description: Whether to enable or not the Rbd backend for Nova
219 description: Enable IPv6 features in Nova
222 description: The password for the nova service account, used by nova-api.
227 default: '' # Has to be here because of the ignored empty value bug
230 description: Name of integration bridge used by Open vSwitch
232 NovaSecurityGroupAPI:
234 description: The full class name of the security API class
238 default: '' # Has to be here because of the ignored empty value bug
240 description: The password for RabbitMQ
245 description: The username for RabbitMQ
250 Rabbit client subscriber parameter to specify
251 an SSL connection to the RabbitMQ host.
255 description: Set rabbit subscriber port, change this if using SSL
257 UpgradeLevelNovaCompute:
259 description: Nova Compute upgrade level
261 EnablePackageInstall:
263 description: Set to true to enable package installation via Puppet
267 description: Mapping of service_name -> network name. Typically set
268 via parameter_defaults in the resource registry.
272 description: Mapping of service endpoint -> protocol. Typically set
273 via parameter_defaults in the resource registry.
277 description: The timezone to be set on compute nodes.
283 Setting to a previously unused value during stack-update will trigger
284 package update on all nodes
287 default: '' # Defaults to Heat created hostname
291 description: Optional mapping to override hostnames
292 NetworkDeploymentActions:
293 type: comma_delimited_list
295 Heat action when to apply network configuration changes
297 SoftwareConfigTransport:
298 default: POLL_SERVER_CFN
300 How the server should receive the metadata required for software configuration.
303 - allowed_values: [POLL_SERVER_CFN, POLL_SERVER_HEAT, POLL_TEMP_URL, ZAQAR_MESSAGE]
308 The DNS domain used for the hosts. This should match the dhcp_domain
309 configured in the Undercloud neutron. Defaults to localdomain.
313 Extra properties or metadata passed to Nova for the created nodes in
314 the overcloud. It's accessible via the Nova metadata API.
318 description: Optional scheduler hints to pass to nova
320 ServiceConfigSettings:
327 type: OS::Nova::Server
332 get_param: ImageUpdatePolicy
333 flavor: {get_param: Flavor}
334 key_name: {get_param: KeyName}
337 user_data_format: SOFTWARE_CONFIG
338 user_data: {get_resource: UserData}
341 template: {get_param: Hostname}
342 params: {get_param: HostnameMap}
343 software_config_transport: {get_param: SoftwareConfigTransport}
344 metadata: {get_param: ServerMetadata}
345 scheduler_hints: {get_param: SchedulerHints}
347 # Combine the NodeAdminUserData and NodeUserData mime archives
349 type: OS::Heat::MultipartMime
352 - config: {get_resource: NodeAdminUserData}
354 - config: {get_resource: NodeUserData}
357 # Creates the "heat-admin" user if configured via the environment
358 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
360 type: OS::TripleO::NodeAdminUserData
362 # For optional operator additional userdata
363 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
365 type: OS::TripleO::NodeUserData
368 type: OS::TripleO::Compute::Ports::ExternalPort
370 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
371 IPPool: {get_param: NovaComputeIPs}
372 NodeIndex: {get_param: NodeIndex}
375 type: OS::TripleO::Compute::Ports::InternalApiPort
377 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
378 IPPool: {get_param: NovaComputeIPs}
379 NodeIndex: {get_param: NodeIndex}
382 type: OS::TripleO::Compute::Ports::StoragePort
384 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
385 IPPool: {get_param: NovaComputeIPs}
386 NodeIndex: {get_param: NodeIndex}
389 type: OS::TripleO::Compute::Ports::StorageMgmtPort
391 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
392 IPPool: {get_param: NovaComputeIPs}
393 NodeIndex: {get_param: NodeIndex}
396 type: OS::TripleO::Compute::Ports::TenantPort
398 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
399 IPPool: {get_param: NovaComputeIPs}
400 NodeIndex: {get_param: NodeIndex}
403 type: OS::TripleO::Compute::Ports::ManagementPort
405 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
406 IPPool: {get_param: NovaComputeIPs}
407 NodeIndex: {get_param: NodeIndex}
410 type: OS::TripleO::Network::Ports::NetIpMap
412 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
413 ExternalIp: {get_attr: [ExternalPort, ip_address]}
414 ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
415 ExternalIpUri: {get_attr: [ExternalPort, ip_address_uri]}
416 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
417 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
418 InternalApiIpUri: {get_attr: [InternalApiPort, ip_address_uri]}
419 StorageIp: {get_attr: [StoragePort, ip_address]}
420 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
421 StorageIpUri: {get_attr: [StoragePort, ip_address_uri]}
422 StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]}
423 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
424 StorageMgmtIpUri: {get_attr: [StorageMgmtPort, ip_address_uri]}
425 TenantIp: {get_attr: [TenantPort, ip_address]}
426 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
427 TenantIpUri: {get_attr: [TenantPort, ip_address_uri]}
428 ManagementIp: {get_attr: [ManagementPort, ip_address]}
429 ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]}
430 ManagementIpUri: {get_attr: [ManagementPort, ip_address_uri]}
433 type: OS::TripleO::Compute::Net::SoftwareConfig
435 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
436 ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
437 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
438 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
439 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
440 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
441 ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]}
444 type: OS::TripleO::SoftwareDeployment
446 name: NetworkDeployment
447 config: {get_resource: NetworkConfig}
448 server: {get_resource: NovaCompute}
449 actions: {get_param: NetworkDeploymentActions}
451 bridge_name: {get_param: NeutronPhysicalBridge}
452 interface_name: {get_param: NeutronPublicInterface}
455 type: OS::Heat::StructuredConfig
457 group: os-apply-config
462 - heat_config_%{::deploy_config_name}
463 - compute_extraconfig
467 - ceph_cluster # provided by CephClusterConfig
469 - all_nodes # provided by allNodesConfig
473 - neutron_bigswitch_data # Optionally provided by ComputeExtraConfigPre
474 - cisco_n1kv_data # Optionally provided by ComputeExtraConfigPre
475 - nova_nuage_data # Optionally provided by ComputeExtraConfigPre
476 - midonet_data # Optionally provided by AllNodesExtraConfig
477 - neutron_opencontrail_data # Optionally provided by ComputeExtraConfigPre
478 merge_behavior: deeper
481 mapped_data: {get_param: ServiceConfigSettings}
483 mapped_data: {get_param: NovaComputeExtraConfig}
485 mapped_data: {get_param: ExtraConfig}
487 raw_data: {get_file: hieradata/common.yaml}
490 net_ip_map: {get_attr: [NetIpMap, net_ip_map]}
491 net_ip_subnet_map: {get_attr: [NetIpMap, net_ip_subnet_map]}
492 net_ip_uri_map: {get_attr: [NetIpMap, net_ip_uri_map]}
494 raw_data: {get_file: hieradata/ceph.yaml}
496 raw_data: {get_file: hieradata/compute.yaml}
498 cinder_enable_nfs_backend: {get_input: cinder_enable_nfs_backend}
499 nova::use_ipv6: {get_input: nova_ipv6}
500 nova::debug: {get_input: debug}
501 nova::rabbit_userid: {get_input: rabbit_username}
502 nova::rabbit_password: {get_input: rabbit_password}
503 nova::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
504 nova::rabbit_port: {get_input: rabbit_client_port}
505 nova::upgrade_level_compute: {get_input: upgrade_level_nova_compute}
506 nova_compute_driver: {get_input: nova_compute_driver}
507 nova::compute::libvirt::libvirt_virt_type: {get_input: nova_compute_libvirt_type}
508 nova::compute::neutron::libvirt_vif_driver: {get_input: nova_compute_libvirt_vif_driver}
509 nova_api_host: {get_input: nova_api_host}
510 nova::compute::vncproxy_host: {get_input: nova_public_ip}
511 nova::compute::rbd::ephemeral_storage: {get_input: nova_enable_rbd_backend}
512 # TUNNELLED mode provides a security enhancement when using shared storage but is not
513 # supported when not using shared storage.
514 # See https://bugzilla.redhat.com/show_bug.cgi?id=1301986#c12
515 # In future versions of QEMU (2.6, mostly), Dan's native encryption
516 # work will obsolete the need to use TUNNELLED transport mode.
517 nova::migration::live_migration_tunnelled: {get_input: nova_enable_rbd_backend}
518 rbd_persistent_storage: {get_input: cinder_enable_rbd_backend}
519 nova_password: {get_input: nova_password}
520 nova::compute::network_device_mtu: {get_input: neutron_tenant_mtu}
521 nova::compute::vncserver_proxyclient_address: {get_input: nova_vnc_proxyclient_address}
522 nova::vncproxy::common::vncproxy_protocol: {get_input: nova_vncproxy_protocol}
523 nova::vncproxy::common::vncproxy_host: {get_input: nova_vncproxy_host}
524 nova::vncproxy::common::vncproxy_port: {get_input: nova_vncproxy_port}
525 nova::network::neutron::neutron_ovs_bridge: {get_input: nova_ovs_bridge}
526 nova::network::neutron::security_group_api: {get_input: nova_security_group_api}
527 ceilometer::debug: {get_input: debug}
528 ceilometer::rabbit_userid: {get_input: rabbit_username}
529 ceilometer::rabbit_password: {get_input: rabbit_password}
530 ceilometer::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
531 ceilometer::rabbit_port: {get_input: rabbit_client_port}
532 ceilometer::telemetry_secret: {get_input: ceilometer_metering_secret}
533 ceilometer::agent::auth::auth_password: {get_input: ceilometer_password}
534 ceilometer::agent::auth::auth_url: {get_input: ceilometer_agent_auth_url}
535 ceilometer_compute_agent: {get_input: ceilometer_compute_agent}
536 nova::glance_api_servers: {get_input: glance_api_servers}
537 neutron::debug: {get_input: debug}
538 neutron::rabbit_password: {get_input: rabbit_password}
539 neutron::rabbit_user: {get_input: rabbit_username}
540 neutron::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
541 neutron::rabbit_port: {get_input: rabbit_client_port}
542 neutron::plugins::ml2::flat_networks: {get_input: neutron_flat_networks}
543 neutron_host: {get_input: neutron_host}
544 neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
546 neutron::network_device_mtu: {get_input: neutron_tenant_mtu}
547 neutron::plugins::ml2::tenant_network_types: {get_input: neutron_tenant_network_types}
548 neutron::agents::ml2::ovs::tunnel_types: {get_input: neutron_tunnel_types}
549 neutron::agents::ml2::ovs::extensions: {get_input: neutron_agent_extensions}
550 neutron::plugins::ml2::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
551 neutron::plugins::ml2::tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
552 neutron::plugins::ml2::vni_ranges: {get_input: neutron_vni_ranges}
553 neutron::agents::ml2::ovs::bridge_mappings: {get_input: neutron_bridge_mappings}
554 neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
555 neutron::agents::ml2::ovs::l2_population: {get_input: neutron_enable_l2pop}
556 neutron_physical_bridge: {get_input: neutron_physical_bridge}
557 neutron_public_interface: {get_input: neutron_public_interface}
558 nova::network::neutron::neutron_password: {get_input: neutron_password}
559 nova::network::neutron::neutron_url: {get_input: neutron_internal_url}
560 nova::network::neutron::neutron_auth_url: {get_input: neutron_auth_url}
561 neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
562 neutron::core_plugin: {get_input: neutron_core_plugin}
563 neutron::service_plugins: {get_input: neutron_service_plugins}
564 neutron::plugins::ml2::type_drivers: {get_input: neutron_type_drivers}
565 neutron::plugins::ml2::mechanism_drivers: {get_input: neutron_mechanism_drivers}
566 keystone_public_api_virtual_ip: {get_input: keystone_vip}
567 admin_password: {get_input: admin_password}
568 timezone::timezone: {get_input: timezone}
569 tripleo::packages::enable_install: {get_input: enable_package_install}
570 tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
572 NovaComputeDeployment:
573 type: OS::TripleO::SoftwareDeployment
574 depends_on: NetworkDeployment
576 name: NovaComputeDeployment
577 config: {get_resource: NovaComputeConfig}
578 server: {get_resource: NovaCompute}
580 cinder_enable_nfs_backend: {get_param: CinderEnableNfsBackend}
581 debug: {get_param: Debug}
582 nova_compute_driver: {get_param: NovaComputeDriver}
583 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
584 nova_compute_libvirt_vif_driver: {get_param: NovaComputeLibvirtVifDriver}
585 nova_public_ip: {get_param: NovaPublicIP}
586 nova_api_host: {get_param: NovaApiHost}
587 nova_password: {get_param: NovaPassword}
588 nova_enable_rbd_backend: {get_param: NovaEnableRbdBackend}
589 nova_ipv6: {get_param: NovaIPv6}
590 cinder_enable_rbd_backend: {get_param: CinderEnableRbdBackend}
591 nova_vnc_proxyclient_address: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaVncProxyNetwork]}]}
592 nova_vncproxy_protocol: {get_param: [EndpointMap, NovaVNCProxyPublic, protocol]}
593 # Remove brackets that may come if the IP address is IPv6.
594 # For DNS names and IPv4, this will just get the NovaVNCProxyPublic value
597 template: {get_param: [EndpointMap, NovaVNCProxyPublic, host]}
601 nova_vncproxy_port: {get_param: [EndpointMap, NovaVNCProxyPublic, port]}
602 nova_ovs_bridge: {get_param: NovaOVSBridge}
603 nova_security_group_api: {get_param: NovaSecurityGroupAPI}
604 upgrade_level_nova_compute: {get_param: UpgradeLevelNovaCompute}
605 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
606 ceilometer_password: {get_param: CeilometerPassword}
607 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
608 ceilometer_agent_auth_url: {get_param: [EndpointMap, KeystoneInternal, uri]}
609 glance_api_servers: {get_param: [EndpointMap, GlanceInternal, uri]}
610 neutron_flat_networks:
614 NETWORKS: {get_param: NeutronFlatNetworks}
615 neutron_host: {get_param: NeutronHost}
616 neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronTenantNetwork]}]}
617 neutron_tunnel_id_ranges:
621 RANGES: {get_param: NeutronTunnelIdRanges}
626 RANGES: {get_param: NeutronVniRanges}
627 neutron_tenant_network_types:
631 TYPES: {get_param: NeutronNetworkType}
632 neutron_tunnel_types:
636 TYPES: {get_param: NeutronTunnelTypes}
637 neutron_network_vlan_ranges:
641 RANGES: {get_param: NeutronNetworkVLANRanges}
642 neutron_bridge_mappings:
646 MAPPINGS: {get_param: NeutronBridgeMappings}
647 neutron_tenant_mtu: {get_param: NeutronTenantMtu}
648 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
649 neutron_enable_l2pop: {get_param: NeutronEnableL2Pop}
650 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
651 neutron_public_interface: {get_param: NeutronPublicInterface}
652 neutron_password: {get_param: NeutronPassword}
653 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
654 neutron_core_plugin: {get_param: NeutronCorePlugin}
655 neutron_service_plugins:
659 PLUGINS: {get_param: NeutronServicePlugins}
660 neutron_type_drivers:
664 DRIVERS: {get_param: NeutronTypeDrivers}
665 neutron_mechanism_drivers:
669 MECHANISMS: {get_param: NeutronMechanismDrivers}
670 neutron_agent_extensions:
672 template: AGENT_EXTENSIONS
674 AGENT_EXTENSIONS: {get_param: NeutronAgentExtensions}
675 neutron_internal_url: {get_param: [EndpointMap, NeutronInternal, uri]}
676 neutron_auth_url: {get_param: [EndpointMap, KeystoneV3Admin, uri]}
677 keystone_vip: {get_param: KeystonePublicApiVirtualIP}
678 admin_password: {get_param: AdminPassword}
679 rabbit_username: {get_param: RabbitUserName}
680 rabbit_password: {get_param: RabbitPassword}
681 rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
682 rabbit_client_port: {get_param: RabbitClientPort}
683 timezone: {get_param: TimeZone}
684 enable_package_install: {get_param: EnablePackageInstall}
685 enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
687 # Resource for site-specific injection of root certificate
689 depends_on: NovaComputeDeployment
690 type: OS::TripleO::NodeTLSCAData
692 server: {get_resource: NovaCompute}
694 # Hook for site-specific additional pre-deployment config, e.g extra hieradata
695 ComputeExtraConfigPre:
696 depends_on: NovaComputeDeployment
697 type: OS::TripleO::ComputeExtraConfigPre
699 server: {get_resource: NovaCompute}
701 # Hook for site-specific additional pre-deployment config,
702 # applying to all nodes, e.g node registration/unregistration
704 depends_on: [ComputeExtraConfigPre, NodeTLSCAData]
705 type: OS::TripleO::NodeExtraConfig
707 server: {get_resource: NovaCompute}
710 type: OS::TripleO::Tasks::PackageUpdate
713 type: OS::Heat::SoftwareDeployment
715 name: UpdateDeployment
716 config: {get_resource: UpdateConfig}
717 server: {get_resource: NovaCompute}
720 get_param: UpdateIdentifier
724 description: IP address of the server in the ctlplane network
725 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
727 description: IP address of the server in the external network
728 value: {get_attr: [ExternalPort, ip_address]}
729 internal_api_ip_address:
730 description: IP address of the server in the internal_api network
731 value: {get_attr: [InternalApiPort, ip_address]}
733 description: IP address of the server in the storage network
734 value: {get_attr: [StoragePort, ip_address]}
735 storage_mgmt_ip_address:
736 description: IP address of the server in the storage_mgmt network
737 value: {get_attr: [StorageMgmtPort, ip_address]}
739 description: IP address of the server in the tenant network
740 value: {get_attr: [TenantPort, ip_address]}
741 management_ip_address:
742 description: IP address of the server in the management network
743 value: {get_attr: [ManagementPort, ip_address]}
745 description: Hostname of the server
746 value: {get_attr: [NovaCompute, name]}
749 Server's IP address and hostname in the /etc/hosts format
753 PRIMARYIP PRIMARYHOST.DOMAIN PRIMARYHOST
754 EXTERNALIP EXTERNALHOST.DOMAIN EXTERNALHOST
755 INTERNAL_APIIP INTERNAL_APIHOST.DOMAIN INTERNAL_APIHOST
756 STORAGEIP STORAGEHOST.DOMAIN STORAGEHOST
757 STORAGE_MGMTIP STORAGE_MGMTHOST.DOMAIN STORAGE_MGMTHOST
758 TENANTIP TENANTHOST.DOMAIN TENANTHOST
759 MANAGEMENTIP MANAGEMENTHOST.DOMAIN MANAGEMENTHOST
761 PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ComputeHostnameResolveNetwork]}]}
762 DOMAIN: {get_param: CloudDomain}
763 PRIMARYHOST: {get_attr: [NovaCompute, name]}
764 EXTERNALIP: {get_attr: [ExternalPort, ip_address]}
768 - - {get_attr: [NovaCompute, name]}
770 INTERNAL_APIIP: {get_attr: [InternalApiPort, ip_address]}
774 - - {get_attr: [NovaCompute, name]}
776 STORAGEIP: {get_attr: [StoragePort, ip_address]}
780 - - {get_attr: [NovaCompute, name]}
782 STORAGE_MGMTIP: {get_attr: [StorageMgmtPort, ip_address]}
786 - - {get_attr: [NovaCompute, name]}
788 TENANTIP: {get_attr: [TenantPort, ip_address]}
792 - - {get_attr: [NovaCompute, name]}
794 MANAGEMENTIP: {get_attr: [ManagementPort, ip_address]}
798 - - {get_attr: [NovaCompute, name]}
800 nova_server_resource:
801 description: Heat resource handle for the Nova compute server
803 {get_resource: NovaCompute}
805 description: identifier which changes if the node configuration may need re-applying
809 - - {get_attr: [NovaComputeDeployment, deploy_stdout]}
810 - {get_attr: [NodeTLSCAData, deploy_stdout]}
811 - {get_attr: [ComputeExtraConfigPre, deploy_stdout]}
812 - {get_param: UpdateIdentifier}