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 SnmpdReadonlyUserName:
258 default: ro_snmp_user
259 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
261 SnmpdReadonlyUserPassword:
262 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
265 UpgradeLevelNovaCompute:
267 description: Nova Compute upgrade level
269 EnablePackageInstall:
271 description: Set to true to enable package installation via Puppet
275 description: Mapping of service_name -> network name. Typically set
276 via parameter_defaults in the resource registry.
280 description: Mapping of service endpoint -> protocol. Typically set
281 via parameter_defaults in the resource registry.
285 description: The timezone to be set on compute nodes.
291 Setting to a previously unused value during stack-update will trigger
292 package update on all nodes
295 default: '' # Defaults to Heat created hostname
299 description: Optional mapping to override hostnames
300 NetworkDeploymentActions:
301 type: comma_delimited_list
303 Heat action when to apply network configuration changes
305 SoftwareConfigTransport:
306 default: POLL_SERVER_CFN
308 How the server should receive the metadata required for software configuration.
311 - allowed_values: [POLL_SERVER_CFN, POLL_SERVER_HEAT, POLL_TEMP_URL, ZAQAR_MESSAGE]
316 The DNS domain used for the hosts. This should match the dhcp_domain
317 configured in the Undercloud neutron. Defaults to localdomain.
321 Extra properties or metadata passed to Nova for the created nodes in
322 the overcloud. It's accessible via the Nova metadata API.
326 description: Optional scheduler hints to pass to nova
328 ServiceConfigSettings:
335 type: OS::Nova::Server
340 get_param: ImageUpdatePolicy
341 flavor: {get_param: Flavor}
342 key_name: {get_param: KeyName}
345 user_data_format: SOFTWARE_CONFIG
346 user_data: {get_resource: UserData}
349 template: {get_param: Hostname}
350 params: {get_param: HostnameMap}
351 software_config_transport: {get_param: SoftwareConfigTransport}
352 metadata: {get_param: ServerMetadata}
353 scheduler_hints: {get_param: SchedulerHints}
355 # Combine the NodeAdminUserData and NodeUserData mime archives
357 type: OS::Heat::MultipartMime
360 - config: {get_resource: NodeAdminUserData}
362 - config: {get_resource: NodeUserData}
365 # Creates the "heat-admin" user if configured via the environment
366 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
368 type: OS::TripleO::NodeAdminUserData
370 # For optional operator additional userdata
371 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
373 type: OS::TripleO::NodeUserData
376 type: OS::TripleO::Compute::Ports::ExternalPort
378 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
379 IPPool: {get_param: NovaComputeIPs}
380 NodeIndex: {get_param: NodeIndex}
383 type: OS::TripleO::Compute::Ports::InternalApiPort
385 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
386 IPPool: {get_param: NovaComputeIPs}
387 NodeIndex: {get_param: NodeIndex}
390 type: OS::TripleO::Compute::Ports::StoragePort
392 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
393 IPPool: {get_param: NovaComputeIPs}
394 NodeIndex: {get_param: NodeIndex}
397 type: OS::TripleO::Compute::Ports::StorageMgmtPort
399 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
400 IPPool: {get_param: NovaComputeIPs}
401 NodeIndex: {get_param: NodeIndex}
404 type: OS::TripleO::Compute::Ports::TenantPort
406 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
407 IPPool: {get_param: NovaComputeIPs}
408 NodeIndex: {get_param: NodeIndex}
411 type: OS::TripleO::Compute::Ports::ManagementPort
413 ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
414 IPPool: {get_param: NovaComputeIPs}
415 NodeIndex: {get_param: NodeIndex}
418 type: OS::TripleO::Network::Ports::NetIpMap
420 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
421 ExternalIp: {get_attr: [ExternalPort, ip_address]}
422 ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
423 ExternalIpUri: {get_attr: [ExternalPort, ip_address_uri]}
424 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
425 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
426 InternalApiIpUri: {get_attr: [InternalApiPort, ip_address_uri]}
427 StorageIp: {get_attr: [StoragePort, ip_address]}
428 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
429 StorageIpUri: {get_attr: [StoragePort, ip_address_uri]}
430 StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]}
431 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
432 StorageMgmtIpUri: {get_attr: [StorageMgmtPort, ip_address_uri]}
433 TenantIp: {get_attr: [TenantPort, ip_address]}
434 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
435 TenantIpUri: {get_attr: [TenantPort, ip_address_uri]}
436 ManagementIp: {get_attr: [ManagementPort, ip_address]}
437 ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]}
438 ManagementIpUri: {get_attr: [ManagementPort, ip_address_uri]}
441 type: OS::TripleO::Compute::Net::SoftwareConfig
443 ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
444 ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
445 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
446 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
447 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
448 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
449 ManagementIpSubnet: {get_attr: [ManagementPort, ip_subnet]}
452 type: OS::TripleO::SoftwareDeployment
454 name: NetworkDeployment
455 config: {get_resource: NetworkConfig}
456 server: {get_resource: NovaCompute}
457 actions: {get_param: NetworkDeploymentActions}
459 bridge_name: {get_param: NeutronPhysicalBridge}
460 interface_name: {get_param: NeutronPublicInterface}
463 type: OS::Heat::StructuredConfig
465 group: os-apply-config
470 - heat_config_%{::deploy_config_name}
471 - compute_extraconfig
475 - ceph_cluster # provided by CephClusterConfig
477 - all_nodes # provided by allNodesConfig
481 - neutron_bigswitch_data # Optionally provided by ComputeExtraConfigPre
482 - cisco_n1kv_data # Optionally provided by ComputeExtraConfigPre
483 - nova_nuage_data # Optionally provided by ComputeExtraConfigPre
484 - midonet_data # Optionally provided by AllNodesExtraConfig
485 - neutron_opencontrail_data # Optionally provided by ComputeExtraConfigPre
486 merge_behavior: deeper
489 mapped_data: {get_param: ServiceConfigSettings}
491 mapped_data: {get_param: NovaComputeExtraConfig}
493 mapped_data: {get_param: ExtraConfig}
495 raw_data: {get_file: hieradata/common.yaml}
498 net_ip_map: {get_attr: [NetIpMap, net_ip_map]}
499 net_ip_subnet_map: {get_attr: [NetIpMap, net_ip_subnet_map]}
500 net_ip_uri_map: {get_attr: [NetIpMap, net_ip_uri_map]}
502 raw_data: {get_file: hieradata/ceph.yaml}
504 raw_data: {get_file: hieradata/compute.yaml}
506 cinder_enable_nfs_backend: {get_input: cinder_enable_nfs_backend}
507 nova::use_ipv6: {get_input: nova_ipv6}
508 nova::debug: {get_input: debug}
509 nova::rabbit_userid: {get_input: rabbit_username}
510 nova::rabbit_password: {get_input: rabbit_password}
511 nova::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
512 nova::rabbit_port: {get_input: rabbit_client_port}
513 nova::upgrade_level_compute: {get_input: upgrade_level_nova_compute}
514 nova_compute_driver: {get_input: nova_compute_driver}
515 nova::compute::libvirt::libvirt_virt_type: {get_input: nova_compute_libvirt_type}
516 nova::compute::neutron::libvirt_vif_driver: {get_input: nova_compute_libvirt_vif_driver}
517 nova_api_host: {get_input: nova_api_host}
518 nova::compute::vncproxy_host: {get_input: nova_public_ip}
519 nova::compute::rbd::ephemeral_storage: {get_input: nova_enable_rbd_backend}
520 # TUNNELLED mode provides a security enhancement when using shared storage but is not
521 # supported when not using shared storage.
522 # See https://bugzilla.redhat.com/show_bug.cgi?id=1301986#c12
523 # In future versions of QEMU (2.6, mostly), Dan's native encryption
524 # work will obsolete the need to use TUNNELLED transport mode.
525 nova::migration::live_migration_tunnelled: {get_input: nova_enable_rbd_backend}
526 rbd_persistent_storage: {get_input: cinder_enable_rbd_backend}
527 nova_password: {get_input: nova_password}
528 nova::compute::network_device_mtu: {get_input: neutron_tenant_mtu}
529 nova::compute::vncserver_proxyclient_address: {get_input: nova_vnc_proxyclient_address}
530 nova::vncproxy::common::vncproxy_protocol: {get_input: nova_vncproxy_protocol}
531 nova::vncproxy::common::vncproxy_host: {get_input: nova_vncproxy_host}
532 nova::vncproxy::common::vncproxy_port: {get_input: nova_vncproxy_port}
533 nova::network::neutron::neutron_ovs_bridge: {get_input: nova_ovs_bridge}
534 nova::network::neutron::security_group_api: {get_input: nova_security_group_api}
535 ceilometer::debug: {get_input: debug}
536 ceilometer::rabbit_userid: {get_input: rabbit_username}
537 ceilometer::rabbit_password: {get_input: rabbit_password}
538 ceilometer::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
539 ceilometer::rabbit_port: {get_input: rabbit_client_port}
540 ceilometer::telemetry_secret: {get_input: ceilometer_metering_secret}
541 ceilometer::agent::auth::auth_password: {get_input: ceilometer_password}
542 ceilometer::agent::auth::auth_url: {get_input: ceilometer_agent_auth_url}
543 ceilometer_compute_agent: {get_input: ceilometer_compute_agent}
544 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
545 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
546 nova::glance_api_servers: {get_input: glance_api_servers}
547 neutron::debug: {get_input: debug}
548 neutron::rabbit_password: {get_input: rabbit_password}
549 neutron::rabbit_user: {get_input: rabbit_username}
550 neutron::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
551 neutron::rabbit_port: {get_input: rabbit_client_port}
552 neutron::plugins::ml2::flat_networks: {get_input: neutron_flat_networks}
553 neutron_host: {get_input: neutron_host}
554 neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
556 neutron::network_device_mtu: {get_input: neutron_tenant_mtu}
557 neutron::plugins::ml2::tenant_network_types: {get_input: neutron_tenant_network_types}
558 neutron::agents::ml2::ovs::tunnel_types: {get_input: neutron_tunnel_types}
559 neutron::agents::ml2::ovs::extensions: {get_input: neutron_agent_extensions}
560 neutron::plugins::ml2::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
561 neutron::plugins::ml2::tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
562 neutron::plugins::ml2::vni_ranges: {get_input: neutron_vni_ranges}
563 neutron::agents::ml2::ovs::bridge_mappings: {get_input: neutron_bridge_mappings}
564 neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
565 neutron::agents::ml2::ovs::l2_population: {get_input: neutron_enable_l2pop}
566 neutron_physical_bridge: {get_input: neutron_physical_bridge}
567 neutron_public_interface: {get_input: neutron_public_interface}
568 nova::network::neutron::neutron_password: {get_input: neutron_password}
569 nova::network::neutron::neutron_url: {get_input: neutron_internal_url}
570 nova::network::neutron::neutron_auth_url: {get_input: neutron_auth_url}
571 neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
572 neutron::core_plugin: {get_input: neutron_core_plugin}
573 neutron::service_plugins: {get_input: neutron_service_plugins}
574 neutron::plugins::ml2::type_drivers: {get_input: neutron_type_drivers}
575 neutron::plugins::ml2::mechanism_drivers: {get_input: neutron_mechanism_drivers}
576 keystone_public_api_virtual_ip: {get_input: keystone_vip}
577 admin_password: {get_input: admin_password}
578 timezone::timezone: {get_input: timezone}
579 tripleo::packages::enable_install: {get_input: enable_package_install}
580 tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
582 NovaComputeDeployment:
583 type: OS::TripleO::SoftwareDeployment
584 depends_on: NetworkDeployment
586 name: NovaComputeDeployment
587 config: {get_resource: NovaComputeConfig}
588 server: {get_resource: NovaCompute}
590 cinder_enable_nfs_backend: {get_param: CinderEnableNfsBackend}
591 debug: {get_param: Debug}
592 nova_compute_driver: {get_param: NovaComputeDriver}
593 nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
594 nova_compute_libvirt_vif_driver: {get_param: NovaComputeLibvirtVifDriver}
595 nova_public_ip: {get_param: NovaPublicIP}
596 nova_api_host: {get_param: NovaApiHost}
597 nova_password: {get_param: NovaPassword}
598 nova_enable_rbd_backend: {get_param: NovaEnableRbdBackend}
599 nova_ipv6: {get_param: NovaIPv6}
600 cinder_enable_rbd_backend: {get_param: CinderEnableRbdBackend}
601 nova_vnc_proxyclient_address: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaVncProxyNetwork]}]}
602 nova_vncproxy_protocol: {get_param: [EndpointMap, NovaVNCProxyPublic, protocol]}
603 # Remove brackets that may come if the IP address is IPv6.
604 # For DNS names and IPv4, this will just get the NovaVNCProxyPublic value
607 template: {get_param: [EndpointMap, NovaVNCProxyPublic, host]}
611 nova_vncproxy_port: {get_param: [EndpointMap, NovaVNCProxyPublic, port]}
612 nova_ovs_bridge: {get_param: NovaOVSBridge}
613 nova_security_group_api: {get_param: NovaSecurityGroupAPI}
614 upgrade_level_nova_compute: {get_param: UpgradeLevelNovaCompute}
615 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
616 ceilometer_password: {get_param: CeilometerPassword}
617 ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
618 ceilometer_agent_auth_url: {get_param: [EndpointMap, KeystoneInternal, uri]}
619 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
620 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
621 glance_api_servers: {get_param: [EndpointMap, GlanceInternal, uri]}
622 neutron_flat_networks:
626 NETWORKS: {get_param: NeutronFlatNetworks}
627 neutron_host: {get_param: NeutronHost}
628 neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronTenantNetwork]}]}
629 neutron_tunnel_id_ranges:
633 RANGES: {get_param: NeutronTunnelIdRanges}
638 RANGES: {get_param: NeutronVniRanges}
639 neutron_tenant_network_types:
643 TYPES: {get_param: NeutronNetworkType}
644 neutron_tunnel_types:
648 TYPES: {get_param: NeutronTunnelTypes}
649 neutron_network_vlan_ranges:
653 RANGES: {get_param: NeutronNetworkVLANRanges}
654 neutron_bridge_mappings:
658 MAPPINGS: {get_param: NeutronBridgeMappings}
659 neutron_tenant_mtu: {get_param: NeutronTenantMtu}
660 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
661 neutron_enable_l2pop: {get_param: NeutronEnableL2Pop}
662 neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
663 neutron_public_interface: {get_param: NeutronPublicInterface}
664 neutron_password: {get_param: NeutronPassword}
665 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
666 neutron_core_plugin: {get_param: NeutronCorePlugin}
667 neutron_service_plugins:
671 PLUGINS: {get_param: NeutronServicePlugins}
672 neutron_type_drivers:
676 DRIVERS: {get_param: NeutronTypeDrivers}
677 neutron_mechanism_drivers:
681 MECHANISMS: {get_param: NeutronMechanismDrivers}
682 neutron_agent_extensions:
684 template: AGENT_EXTENSIONS
686 AGENT_EXTENSIONS: {get_param: NeutronAgentExtensions}
687 neutron_internal_url: {get_param: [EndpointMap, NeutronInternal, uri]}
688 neutron_auth_url: {get_param: [EndpointMap, KeystoneV3Admin, uri]}
689 keystone_vip: {get_param: KeystonePublicApiVirtualIP}
690 admin_password: {get_param: AdminPassword}
691 rabbit_username: {get_param: RabbitUserName}
692 rabbit_password: {get_param: RabbitPassword}
693 rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
694 rabbit_client_port: {get_param: RabbitClientPort}
695 timezone: {get_param: TimeZone}
696 enable_package_install: {get_param: EnablePackageInstall}
697 enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
699 # Resource for site-specific injection of root certificate
701 depends_on: NovaComputeDeployment
702 type: OS::TripleO::NodeTLSCAData
704 server: {get_resource: NovaCompute}
706 # Hook for site-specific additional pre-deployment config, e.g extra hieradata
707 ComputeExtraConfigPre:
708 depends_on: NovaComputeDeployment
709 type: OS::TripleO::ComputeExtraConfigPre
711 server: {get_resource: NovaCompute}
713 # Hook for site-specific additional pre-deployment config,
714 # applying to all nodes, e.g node registration/unregistration
716 depends_on: [ComputeExtraConfigPre, NodeTLSCAData]
717 type: OS::TripleO::NodeExtraConfig
719 server: {get_resource: NovaCompute}
722 type: OS::TripleO::Tasks::PackageUpdate
725 type: OS::Heat::SoftwareDeployment
727 name: UpdateDeployment
728 config: {get_resource: UpdateConfig}
729 server: {get_resource: NovaCompute}
732 get_param: UpdateIdentifier
736 description: IP address of the server in the ctlplane network
737 value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
739 description: IP address of the server in the external network
740 value: {get_attr: [ExternalPort, ip_address]}
741 internal_api_ip_address:
742 description: IP address of the server in the internal_api network
743 value: {get_attr: [InternalApiPort, ip_address]}
745 description: IP address of the server in the storage network
746 value: {get_attr: [StoragePort, ip_address]}
747 storage_mgmt_ip_address:
748 description: IP address of the server in the storage_mgmt network
749 value: {get_attr: [StorageMgmtPort, ip_address]}
751 description: IP address of the server in the tenant network
752 value: {get_attr: [TenantPort, ip_address]}
753 management_ip_address:
754 description: IP address of the server in the management network
755 value: {get_attr: [ManagementPort, ip_address]}
757 description: Hostname of the server
758 value: {get_attr: [NovaCompute, name]}
761 Server's IP address and hostname in the /etc/hosts format
765 PRIMARYIP PRIMARYHOST.DOMAIN PRIMARYHOST
766 EXTERNALIP EXTERNALHOST.DOMAIN EXTERNALHOST
767 INTERNAL_APIIP INTERNAL_APIHOST.DOMAIN INTERNAL_APIHOST
768 STORAGEIP STORAGEHOST.DOMAIN STORAGEHOST
769 STORAGE_MGMTIP STORAGE_MGMTHOST.DOMAIN STORAGE_MGMTHOST
770 TENANTIP TENANTHOST.DOMAIN TENANTHOST
771 MANAGEMENTIP MANAGEMENTHOST.DOMAIN MANAGEMENTHOST
773 PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ComputeHostnameResolveNetwork]}]}
774 DOMAIN: {get_param: CloudDomain}
775 PRIMARYHOST: {get_attr: [NovaCompute, name]}
776 EXTERNALIP: {get_attr: [ExternalPort, ip_address]}
780 - - {get_attr: [NovaCompute, name]}
782 INTERNAL_APIIP: {get_attr: [InternalApiPort, ip_address]}
786 - - {get_attr: [NovaCompute, name]}
788 STORAGEIP: {get_attr: [StoragePort, ip_address]}
792 - - {get_attr: [NovaCompute, name]}
794 STORAGE_MGMTIP: {get_attr: [StorageMgmtPort, ip_address]}
798 - - {get_attr: [NovaCompute, name]}
800 TENANTIP: {get_attr: [TenantPort, ip_address]}
804 - - {get_attr: [NovaCompute, name]}
806 MANAGEMENTIP: {get_attr: [ManagementPort, ip_address]}
810 - - {get_attr: [NovaCompute, name]}
812 nova_server_resource:
813 description: Heat resource handle for the Nova compute server
815 {get_resource: NovaCompute}
817 description: identifier which changes if the node configuration may need re-applying
821 - - {get_attr: [NovaComputeDeployment, deploy_stdout]}
822 - {get_attr: [NodeTLSCAData, deploy_stdout]}
823 - {get_attr: [ComputeExtraConfigPre, deploy_stdout]}
824 - {get_param: UpdateIdentifier}