1 heat_template_version: 2016-04-08
4 Deploy an OpenStack environment, consisting of several node types (roles),
5 Controller, Compute, BlockStorage, SwiftStorage and CephStorage. The Storage
6 roles enable independent scaling of the storage components, but the minimal
7 deployment is one Controller and one Compute node.
10 # TODO(shadower): we should probably use the parameter groups to put
14 # Common parameters (not specific to a role)
16 description: The password for the keystone admin account, used for monitoring, querying neutron etc.
20 description: The password for the aodh services.
25 description: The ceilometer backend type.
27 CeilometerMeteringSecret:
28 description: Secret shared by the ceilometer services.
32 description: The password for the ceilometer service account.
35 CeilometerMeterDispatcher:
37 description: Dispatcher to process meter data
40 - allowed_values: ['gnocchi', 'database']
41 CinderEnableNfsBackend:
43 description: Whether to enable or not the NFS backend for Cinder
45 CinderEnableRbdBackend:
47 description: Whether to enable or not the Rbd backend for Cinder
51 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
55 description: Should be used for arbitrary ips.
59 description: Enable IPv6 in Corosync
63 description: Set to True to enable debugging on all services.
67 description: Syslog address where HAproxy will send its log
71 description: A list of IP/Hostname allowed to connect to horizon
72 type: comma_delimited_list
74 default: 'REBUILD_PRESERVE_EPHEMERAL'
75 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
77 InternalApiVirtualFixedIPs:
80 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
81 [{'ip_address':'1.2.3.4'}]
85 description: Name of an existing Nova key pair to enable SSH access to the instances
88 - custom_constraint: nova.keypair
91 description: Enable IPv6 features in Memcached.
93 NeutronBridgeMappings:
95 The OVS logical->physical bridge mappings to use. See the Neutron
96 documentation for details. Defaults to mapping br-ex - the external
97 bridge on hosts - to a physical name 'datacentre' which can be used
98 to create provider networks (and we use this for the default floating
99 network) - if changing this either use different post-install network
100 scripts or be sure to keep 'datacentre' as a mapping network name.
101 type: comma_delimited_list
102 default: "datacentre:br-ex"
103 NeutronControlPlaneID:
106 description: Neutron ID or name for ctlplane network.
107 NeutronEnableTunnelling:
113 Enable/disable the L2 population feature in the Neutron agents.
116 type: comma_delimited_list
117 default: 'datacentre'
119 If set, flat networks to configure in neutron plugins. Defaults to
120 'datacentre' to permit external network creation.
123 description: The tenant network type for Neutron.
124 type: comma_delimited_list
126 description: The password for the neutron service account, used by neutron agents.
129 NeutronPublicInterface:
131 description: What interface to bridge onto br-ex for network nodes.
133 NeutronMetadataProxySharedSecret:
134 description: Shared secret to prevent spoofing
139 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
140 be at least 50 bytes smaller than the MTU on the physical network. This
141 value will be used to set the MTU on the virtual Ethernet device.
142 This value will be used to construct the NeutronDnsmasqOptions, since that
143 will determine the MTU that is assigned to the VM host through DHCP.
149 The tunnel types for the Neutron tenant network.
150 type: comma_delimited_list
151 type: comma_delimited_list
155 The core plugin for Neutron. The value should be the entrypoint to be loaded
156 from neutron.core_plugins namespace.
158 NeutronServicePlugins:
159 default: "router,qos"
161 Comma-separated list of service plugin entrypoints to be loaded from the
162 neutron.service_plugins namespace.
163 type: comma_delimited_list
165 default: "vxlan,vlan,flat,gre"
167 Comma-separated list of network type driver entrypoints to be loaded.
168 type: comma_delimited_list
169 NeutronMechanismDrivers:
170 default: 'openvswitch'
172 The mechanism drivers for the Neutron tenant network.
173 type: comma_delimited_list
174 type: comma_delimited_list
175 NeutronAgentExtensions:
178 Comma-separated list of extensions enabled for the Neutron agents.
179 type: comma_delimited_list
180 NeutronAllowL3AgentFailover:
182 description: Allow automatic l3-agent failover
186 description: Whether to enable l3-agent HA
190 description: Enable IPv6 features in Nova
193 description: The password for the nova service account, used by nova-api.
196 PublicVirtualFixedIPs:
199 Control the IP allocation for the PublicVirtualInterface port. E.g.
200 [{'ip_address':'1.2.3.4'}]
205 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
208 description: The username for RabbitMQ
211 description: The password for RabbitMQ
217 Rabbit client subscriber parameter to specify
218 an SSL connection to the RabbitMQ host.
222 description: Set rabbit subscriber port, change this if using SSL
225 description: The password for Redis
228 StorageVirtualFixedIPs:
231 Control the IP allocation for the StorageVirtualInterface port. E.g.
232 [{'ip_address':'1.2.3.4'}]
234 StorageMgmtVirtualFixedIPs:
237 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
238 [{'ip_address':'1.2.3.4'}]
241 default: 'localdomain'
244 The DNS domain used for the hosts. This should match the dhcp_domain
245 configured in the Undercloud neutron. Defaults to localdomain.
249 Extra properties or metadata passed to Nova for the created nodes in
250 the overcloud. It's accessible via the Nova metadata API.
253 # Controller-specific params
259 controllerExtraConfig:
262 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
266 default: overcloud-full
268 - custom_constraint: glance.image
269 OvercloudControlFlavor:
270 description: Flavor for control nodes to request when deploying.
274 - custom_constraint: nova.flavor
275 ControlVirtualInterface:
277 description: Interface where virtual ip will be assigned.
281 description: Whether to enable fencing in Pacemaker or not.
285 description: Whether to use Galera instead of regular MariaDB.
287 ControllerSchedulerHints:
289 description: Optional scheduler hints to pass to nova
294 Additional configuration to inject into the cluster. The format required
295 may be implementation specific, e.g puppet hieradata. Any role specific
296 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
301 Pacemaker fencing configuration. The JSON should have
302 the following structure:
306 "agent": "AGENT_NAME",
307 "host_mac": "HOST_MAC_ADDRESS",
308 "params": {"PARAM_NAME": "PARAM_VALUE"}
316 "agent": "fence_xvm",
317 "host_mac": "52:54:00:aa:bb:cc",
319 "multicast_address": "225.0.0.12",
320 "port": "baremetal_0",
322 "manage_key_file": true,
323 "key_file": "/etc/fence_xvm.key",
324 "key_file_password": "abcdef"
332 description: The short name of the Gnocchi backend to use. Should be one
333 of swift, rbd or file
336 - allowed_values: ['swift', 'file', 'rbd']
337 GnocchiIndexerBackend:
339 description: The short name of the Gnocchi indexer backend to use.
342 description: The password for the gnocchi service account.
345 InstanceNameTemplate:
346 default: 'instance-%08x'
347 description: Template string to be used to generate instance names
351 description: Whether to manage IPtables rules.
355 description: Whether IPtables rules should be purged before setting up the ones.
357 MysqlInnodbBufferPoolSize:
359 Specifies the size of the buffer pool in megabytes. Setting to
360 zero should be interpreted as "no value" and will defer to the
365 description: Configures MySQL max_connections config setting
368 PublicVirtualInterface:
371 Specifies the interface where the public-facing virtual ip will be assigned.
372 This should be int_public when a VLAN is being used.
375 description: A random string to be used as a salt when hashing to determine mappings in the ring.
381 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
384 description: Partition Power to use when building Swift rings
389 description: How many replicas to use in the swift rings.
391 # Compute-specific params
392 CeilometerComputeAgent:
393 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
397 - allowed_values: ['', Present]
401 HypervisorNeutronPhysicalBridge:
404 An OVS bridge to create on each hypervisor. This defaults to br-ex the
405 same as the control plane nodes, as we have a uniform configuration of
406 the openvswitch agent. Typically should not need to be changed.
408 HypervisorNeutronPublicInterface:
410 description: What interface to add to the HypervisorNeutronPhysicalBridge.
412 NeutronNetworkVLANRanges:
413 default: 'datacentre:1:1000'
415 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
416 Neutron documentation for permitted values. Defaults to permitting any
417 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
418 type: comma_delimited_list
421 default: libvirt.LibvirtDriver
422 NovaComputeExtraConfig:
425 NovaCompute specific configuration to inject into the cluster. Same
426 structure as ExtraConfig.
428 NovaComputeLibvirtType:
431 NovaComputeLibvirtVifDriver:
433 description: Libvirt VIF driver configuration for the network
435 NovaComputeSchedulerHints:
437 description: Optional scheduler hints to pass to nova
439 NovaEnableRbdBackend:
441 description: Whether to enable or not the Rbd backend for Nova
445 default: overcloud-full
447 - custom_constraint: glance.image
450 description: Name of integration bridge used by Open vSwitch
452 NovaSecurityGroupAPI:
454 description: The full class name of the security API class
456 OvercloudComputeFlavor:
457 description: Use this flavor
461 - custom_constraint: nova.flavor
464 NeutronTenantNetwork: tenant
465 CeilometerApiNetwork: internal_api
466 AodhApiNetwork: internal_api
467 GnocchiApiNetwork: internal_api
468 MongoDbNetwork: internal_api
469 CinderApiNetwork: internal_api
470 CinderIscsiNetwork: storage
471 GlanceApiNetwork: storage
472 GlanceRegistryNetwork: internal_api
473 IronicApiNetwork: internal_api
474 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
475 KeystonePublicApiNetwork: internal_api
476 NeutronApiNetwork: internal_api
477 HeatApiNetwork: internal_api
478 NovaApiNetwork: internal_api
479 NovaMetadataNetwork: internal_api
480 NovaVncProxyNetwork: internal_api
481 SwiftMgmtNetwork: storage_mgmt
482 SwiftProxyNetwork: storage
483 SaharaApiNetwork: internal_api
484 HorizonNetwork: internal_api
485 MemcachedNetwork: internal_api
486 RabbitMqNetwork: internal_api
487 RedisNetwork: internal_api
488 MysqlNetwork: internal_api
489 CephClusterNetwork: storage_mgmt
490 CephPublicNetwork: storage
491 ControllerHostnameResolveNetwork: internal_api
492 ComputeHostnameResolveNetwork: internal_api
493 BlockStorageHostnameResolveNetwork: internal_api
494 ObjectStorageHostnameResolveNetwork: internal_api
495 CephStorageHostnameResolveNetwork: storage
496 description: Mapping of service_name -> network name. Typically set
497 via parameter_defaults in the resource registry.
502 - OS::TripleO::Services::CephMon
503 - OS::TripleO::Services::CephExternal
504 - OS::TripleO::Services::CinderApi
505 - OS::TripleO::Services::CinderScheduler
506 - OS::TripleO::Services::CinderVolume
507 - OS::TripleO::Services::Kernel
508 - OS::TripleO::Services::Keystone
509 - OS::TripleO::Services::GlanceApi
510 - OS::TripleO::Services::GlanceRegistry
511 - OS::TripleO::Services::HeatApi
512 - OS::TripleO::Services::HeatApiCfn
513 - OS::TripleO::Services::HeatApiCloudwatch
514 - OS::TripleO::Services::HeatEngine
515 - OS::TripleO::Services::NeutronDhcpAgent
516 - OS::TripleO::Services::NeutronL3Agent
517 - OS::TripleO::Services::NeutronMetadataAgent
518 - OS::TripleO::Services::NeutronServer
519 - OS::TripleO::Services::NeutronCorePlugin
520 - OS::TripleO::Services::NeutronOvsAgent
521 - OS::TripleO::Services::RabbitMQ
522 - OS::TripleO::Services::HAproxy
523 - OS::TripleO::Services::Keepalived
524 - OS::TripleO::Services::Memcached
525 - OS::TripleO::Services::Redis
526 - OS::TripleO::Services::NovaConductor
527 - OS::TripleO::Services::MongoDb
528 - OS::TripleO::Services::NovaApi
529 - OS::TripleO::Services::NovaScheduler
530 - OS::TripleO::Services::NovaConsoleauth
531 - OS::TripleO::Services::NovaVncproxy
532 - OS::TripleO::Services::Ntp
533 - OS::TripleO::Services::SwiftProxy
534 - OS::TripleO::Services::SwiftStorage
535 - OS::TripleO::Services::Snmp
536 - OS::TripleO::Services::Timezone
537 description: A list of service resources (configured in the Heat
538 resource_registry) which represent nested stacks
539 for each service that should get installed on the Controllers.
540 type: comma_delimited_list
544 - OS::TripleO::Services::CephClient
545 - OS::TripleO::Services::CephExternal
546 - OS::TripleO::Services::Timezone
547 - OS::TripleO::Services::Ntp
548 - OS::TripleO::Services::Snmp
549 - OS::TripleO::Services::NovaCompute
550 - OS::TripleO::Services::NovaLibvirt
551 - OS::TripleO::Services::Kernel
552 description: A list of service resources (configured in the Heat
553 resource_registry) which represent nested stacks
554 for each service that should get installed on the Compute Nodes.
555 type: comma_delimited_list
557 # Block storage specific parameters
562 default: overcloud-full
564 OvercloudBlockStorageFlavor:
565 description: Flavor for block storage nodes to request when deploying.
569 - custom_constraint: nova.flavor
570 BlockStorageExtraConfig:
573 BlockStorage specific configuration to inject into the cluster. Same
574 structure as ExtraConfig.
576 BlockStorageSchedulerHints:
578 description: Optional scheduler hints to pass to nova
580 BlockStorageServices:
582 - OS::TripleO::Services::CinderVolume
583 - OS::TripleO::Services::Kernel
584 - OS::TripleO::Services::Ntp
585 - OS::TripleO::Services::Timezone
586 - OS::TripleO::Services::Snmp
587 description: A list of service resources (configured in the Heat
588 resource_registry) which represent nested stacks
589 for each service that should get installed on the BlockStorage nodes.
590 type: comma_delimited_list
592 # Object storage specific parameters
596 OvercloudSwiftStorageFlavor:
597 description: Flavor for Swift storage nodes to request when deploying.
601 - custom_constraint: nova.flavor
603 default: overcloud-full
605 ObjectStorageExtraConfig:
608 ObjectStorage specific configuration to inject into the cluster. Same
609 structure as ExtraConfig.
611 ObjectStorageSchedulerHints:
613 description: Optional scheduler hints to pass to nova
615 ObjectStorageServices:
617 - OS::TripleO::Services::Kernel
618 - OS::TripleO::Services::Ntp
619 - OS::TripleO::Services::SwiftStorage
620 - OS::TripleO::Services::Snmp
621 - OS::TripleO::Services::Timezone
622 description: A list of service resources (configured in the Heat
623 resource_registry) which represent nested stacks
624 for each service that should get installed on the ObjectStorage nodes.
625 Note this role currently only supports steps 2, 3 and 4 configuration.
626 type: comma_delimited_list
629 # Ceph storage specific parameters
634 default: overcloud-full
636 OvercloudCephStorageFlavor:
638 description: Flavor for Ceph storage nodes to request when deploying.
641 - custom_constraint: nova.flavor
642 CephStorageExtraConfig:
645 CephStorage specific configuration to inject into the cluster. Same
646 structure as ExtraConfig.
648 CephStorageSchedulerHints:
650 description: Optional scheduler hints to pass to nova
654 - OS::TripleO::Services::CephOSD
655 - OS::TripleO::Services::Kernel
656 - OS::TripleO::Services::Ntp
657 - OS::TripleO::Services::Timezone
658 description: A list of service resources (configured in the Heat
659 resource_registry) which represent nested stacks
660 for each service that should get installed on the CephStorage nodes.
661 type: comma_delimited_list
663 # Hostname format for each role
664 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
665 # and %stackname% is replaced with OS::stack_name in the template below.
666 # If you want to use the heat generated names, pass '' (empty string).
667 ControllerHostnameFormat:
669 description: Format for Controller node hostnames
670 default: '%stackname%-controller-%index%'
671 ComputeHostnameFormat:
673 description: Format for Compute node hostnames
674 default: '%stackname%-novacompute-%index%'
675 BlockStorageHostnameFormat:
677 description: Format for BlockStorage node hostnames
678 default: '%stackname%-blockstorage-%index%'
679 ObjectStorageHostnameFormat:
681 description: Format for SwiftStorage node hostnames
682 default: '%stackname%-objectstorage-%index%'
683 CephStorageHostnameFormat:
685 description: Format for CephStorage node hostnames
686 default: '%stackname%-cephstorage-%index%'
688 # Identifiers to trigger tasks on nodes
693 Setting to a previously unused value during stack-update will trigger
694 package update on all nodes
699 Setting this to a unique value will re-run any deployment tasks which
700 perform configuration on a Heat stack-update.
702 # If you want to remove a specific node from a resource group, you can pass
703 # the node name or id as a <Group>RemovalPolicies parameter, for example:
704 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
705 ControllerRemovalPolicies:
709 List of resources to be removed from ControllerResourceGroup when
710 doing an update which requires removal of specific resources.
711 ComputeRemovalPolicies:
715 List of resources to be removed from ComputeResourceGroup when
716 doing an update which requires removal of specific resources.
717 BlockStorageRemovalPolicies:
721 List of resources to be removed from BlockStorageResourceGroup when
722 doing an update which requires removal of specific resources.
723 ObjectStorageRemovalPolicies:
727 List of resources to be removed from ObjectStorageResourceGroup when
728 doing an update which requires removal of specific resources.
729 CephStorageRemovalPolicies:
733 List of resources to be removed from CephStorageResourceGroup when
734 doing an update which requires removal of specific resources.
738 description: Do not use deprecated params, they will be removed.
740 - controllerExtraConfig
745 HeatAuthEncryptionKey:
746 type: OS::Heat::RandomString
749 type: OS::Heat::RandomString
754 type: OS::Heat::RandomString
759 type: OS::TripleO::EndpointMap
761 CloudName: {get_param: CloudName}
762 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
763 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
764 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
765 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
766 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
767 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
768 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
769 IronicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
770 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
771 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
772 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
773 MysqlNoBracketsVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
774 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
775 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
776 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
777 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
778 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
780 ControllerServiceChain:
781 type: OS::TripleO::Services
783 Services: {get_param: ControllerServices}
784 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
787 type: OS::Heat::ResourceGroup
790 count: {get_param: ControllerCount}
791 removal_policies: {get_param: ControllerRemovalPolicies}
793 type: OS::TripleO::Controller
795 AdminPassword: {get_param: AdminPassword}
796 AodhPassword: {get_param: AodhPassword}
797 CeilometerBackend: {get_param: CeilometerBackend}
798 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
799 CeilometerPassword: {get_param: CeilometerPassword}
800 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
801 CloudDomain: {get_param: CloudDomain}
802 ControlVirtualInterface: {get_param: ControlVirtualInterface}
803 controllerExtraConfig: {get_param: controllerExtraConfig}
804 CorosyncIPv6: {get_param: CorosyncIPv6}
805 Debug: {get_param: Debug}
806 EnableFencing: {get_param: EnableFencing}
807 ManageFirewall: {get_param: ManageFirewall}
808 PurgeFirewallRules: {get_param: PurgeFirewallRules}
809 EnableGalera: {get_param: EnableGalera}
810 ExtraConfig: {get_param: ExtraConfig}
811 FencingConfig: {get_param: FencingConfig}
812 Flavor: {get_param: OvercloudControlFlavor}
813 GnocchiPassword: {get_param: GnocchiPassword}
814 GnocchiBackend: {get_param: GnocchiBackend}
815 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
816 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
817 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
818 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
819 HorizonSecret: {get_resource: HorizonSecret}
820 Image: {get_param: controllerImage}
821 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
822 InstanceNameTemplate: {get_param: InstanceNameTemplate}
823 KeyName: {get_param: KeyName}
824 MemcachedIPv6: {get_param: MemcachedIPv6}
825 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
826 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
827 MysqlMaxConnections: {get_param: MysqlMaxConnections}
828 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
829 NeutronTenantMtu: {get_param: NeutronTenantMtu}
830 NeutronPublicInterface: {get_param: NeutronPublicInterface}
831 NeutronPassword: {get_param: NeutronPassword}
832 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
833 NovaIPv6: {get_param: NovaIPv6}
834 NovaPassword: {get_param: NovaPassword}
835 PcsdPassword: {get_resource: PcsdPassword}
836 PublicVirtualInterface: {get_param: PublicVirtualInterface}
837 RabbitPassword: {get_param: RabbitPassword}
838 RabbitUserName: {get_param: RabbitUserName}
839 RabbitCookie: {get_attr: [RabbitCookie, value]}
840 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
841 RabbitClientPort: {get_param: RabbitClientPort}
842 RedisPassword: {get_param: RedisPassword}
843 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
844 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
845 SwiftHashSuffix: {get_param: SwiftHashSuffix}
846 SwiftMinPartHours: {get_param: SwiftMinPartHours}
847 SwiftPartPower: {get_param: SwiftPartPower}
848 SwiftReplicas: { get_param: SwiftReplicas}
849 ServiceNetMap: {get_param: ServiceNetMap}
850 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
851 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
852 UpdateIdentifier: {get_param: UpdateIdentifier}
855 template: {get_param: ControllerHostnameFormat}
857 '%stackname%': {get_param: 'OS::stack_name'}
859 ServerMetadata: {get_param: ServerMetadata}
860 SchedulerHints: {get_param: ControllerSchedulerHints}
861 ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
865 type: OS::TripleO::Services
867 Services: {get_param: ComputeServices}
868 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
871 type: OS::Heat::ResourceGroup
874 count: {get_param: ComputeCount}
875 removal_policies: {get_param: ComputeRemovalPolicies}
877 type: OS::TripleO::Compute
879 AdminPassword: {get_param: AdminPassword}
880 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
881 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
882 CeilometerPassword: {get_param: CeilometerPassword}
883 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
884 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
885 Debug: {get_param: Debug}
886 ExtraConfig: {get_param: ExtraConfig}
887 Flavor: {get_param: OvercloudComputeFlavor}
888 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
889 Image: {get_param: NovaImage}
890 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
891 KeyName: {get_param: KeyName}
892 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
893 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
894 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
895 NeutronTenantMtu: {get_param: NeutronTenantMtu}
896 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
897 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
898 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
899 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
900 NeutronNetworkType: {get_param: NeutronNetworkType}
901 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
902 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
903 NeutronPassword: {get_param: NeutronPassword}
904 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
905 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
906 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
907 NeutronCorePlugin: {get_param: NeutronCorePlugin}
908 NeutronServicePlugins: {get_param: NeutronServicePlugins}
909 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
910 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
911 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
912 # L3 HA and Failover is not relevant for Computes, should be removed
913 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
914 NeutronL3HA: {get_param: NeutronL3HA}
915 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
916 NovaComputeDriver: {get_param: NovaComputeDriver}
917 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
918 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
919 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
920 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
921 NovaIPv6: {get_param: NovaIPv6}
922 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
923 NovaPassword: {get_param: NovaPassword}
924 NovaOVSBridge: {get_param: NovaOVSBridge}
925 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
926 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
927 RabbitPassword: {get_param: RabbitPassword}
928 RabbitUserName: {get_param: RabbitUserName}
929 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
930 RabbitClientPort: {get_param: RabbitClientPort}
931 ServiceNetMap: {get_param: ServiceNetMap}
932 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
933 UpdateIdentifier: {get_param: UpdateIdentifier}
936 template: {get_param: ComputeHostnameFormat}
938 '%stackname%': {get_param: 'OS::stack_name'}
939 CloudDomain: {get_param: CloudDomain}
940 ServerMetadata: {get_param: ServerMetadata}
941 SchedulerHints: {get_param: NovaComputeSchedulerHints}
943 ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
945 BlockStorageServiceChain:
946 type: OS::TripleO::Services
948 Services: {get_param: BlockStorageServices}
949 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
952 type: OS::Heat::ResourceGroup
955 count: {get_param: BlockStorageCount}
956 removal_policies: {get_param: BlockStorageRemovalPolicies}
958 type: OS::TripleO::BlockStorage
960 Image: {get_param: BlockStorageImage}
961 KeyName: {get_param: KeyName}
962 Flavor: {get_param: OvercloudBlockStorageFlavor}
963 UpdateIdentifier: {get_param: UpdateIdentifier}
966 template: {get_param: BlockStorageHostnameFormat}
968 '%stackname%': {get_param: 'OS::stack_name'}
969 ServiceNetMap: {get_param: ServiceNetMap}
970 ExtraConfig: {get_param: ExtraConfig}
971 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
972 CloudDomain: {get_param: CloudDomain}
973 ServerMetadata: {get_param: ServerMetadata}
974 SchedulerHints: {get_param: BlockStorageSchedulerHints}
976 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
978 ObjectStorageServiceChain:
979 type: OS::TripleO::Services
981 Services: {get_param: ObjectStorageServices}
982 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
985 type: OS::Heat::ResourceGroup
988 count: {get_param: ObjectStorageCount}
989 removal_policies: {get_param: ObjectStorageRemovalPolicies}
991 type: OS::TripleO::ObjectStorage
993 KeyName: {get_param: KeyName}
994 Flavor: {get_param: OvercloudSwiftStorageFlavor}
995 HashSuffix: {get_param: SwiftHashSuffix}
996 MinPartHours: {get_param: SwiftMinPartHours}
997 PartPower: {get_param: SwiftPartPower}
998 Image: {get_param: SwiftStorageImage}
999 Replicas: { get_param: SwiftReplicas}
1000 UpdateIdentifier: {get_param: UpdateIdentifier}
1001 ServiceNetMap: {get_param: ServiceNetMap}
1004 template: {get_param: ObjectStorageHostnameFormat}
1006 '%stackname%': {get_param: 'OS::stack_name'}
1007 ExtraConfig: {get_param: ExtraConfig}
1008 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1009 CloudDomain: {get_param: CloudDomain}
1010 ServerMetadata: {get_param: ServerMetadata}
1011 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1012 NodeIndex: '%index%'
1013 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
1015 CephStorageServiceChain:
1016 type: OS::TripleO::Services
1018 Services: {get_param: CephStorageServices}
1019 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1022 type: OS::Heat::ResourceGroup
1023 depends_on: Networks
1025 count: {get_param: CephStorageCount}
1026 removal_policies: {get_param: CephStorageRemovalPolicies}
1028 type: OS::TripleO::CephStorage
1030 Image: {get_param: CephStorageImage}
1031 KeyName: {get_param: KeyName}
1032 Flavor: {get_param: OvercloudCephStorageFlavor}
1033 ServiceNetMap: {get_param: ServiceNetMap}
1034 UpdateIdentifier: {get_param: UpdateIdentifier}
1037 template: {get_param: CephStorageHostnameFormat}
1039 '%stackname%': {get_param: 'OS::stack_name'}
1040 ExtraConfig: {get_param: ExtraConfig}
1041 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1042 CloudDomain: {get_param: CloudDomain}
1043 ServerMetadata: {get_param: ServerMetadata}
1044 SchedulerHints: {get_param: CephStorageSchedulerHints}
1045 NodeIndex: '%index%'
1046 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
1048 ControllerIpListMap:
1049 type: OS::TripleO::Network::Ports::NetIpListMap
1051 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1052 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1053 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1054 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1055 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1056 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1057 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1060 type: OS::TripleO::AllNodes::SoftwareConfig
1062 compute_hosts: {get_attr: [Compute, hosts_entry]}
1063 controller_hosts: {get_attr: [Controller, hosts_entry]}
1064 controller_ips: {get_attr: [Controller, ip_address]}
1065 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1066 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1067 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1068 controller_names: {get_attr: [Controller, hostname]}
1069 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1070 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1071 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1072 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1073 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1074 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1075 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1076 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1077 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1078 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1079 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1080 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1081 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1082 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1083 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1084 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1085 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1086 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1087 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1088 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1089 ironic_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1090 ceph_mon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1091 ceph_mon_node_names: {get_attr: [Controller, hostname]}
1092 DeployIdentifier: {get_param: DeployIdentifier}
1093 UpdateIdentifier: {get_param: UpdateIdentifier}
1096 type: OS::Heat::RandomString
1100 MysqlClusterUniquePart:
1101 type: OS::Heat::RandomString
1106 type: OS::Heat::RandomString
1109 salt: {get_param: RabbitCookieSalt}
1111 # creates the network architecture
1113 type: OS::TripleO::Network
1116 type: OS::Neutron::Port
1117 depends_on: Networks
1119 name: control_virtual_ip
1120 network: {get_param: NeutronControlPlaneID}
1121 fixed_ips: {get_param: ControlFixedIPs}
1122 replacement_policy: AUTO
1125 depends_on: Networks
1126 type: OS::TripleO::Network::Ports::RedisVipPort
1128 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1129 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1130 PortName: redis_virtual_ip
1131 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1134 # The public VIP is on the External net, falls back to ctlplane
1136 depends_on: Networks
1137 type: OS::TripleO::Network::Ports::ExternalVipPort
1139 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1140 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1141 PortName: public_virtual_ip
1142 FixedIPs: {get_param: PublicVirtualFixedIPs}
1144 InternalApiVirtualIP:
1145 depends_on: Networks
1146 type: OS::TripleO::Network::Ports::InternalApiVipPort
1148 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1149 PortName: internal_api_virtual_ip
1150 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1153 depends_on: Networks
1154 type: OS::TripleO::Network::Ports::StorageVipPort
1156 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1157 PortName: storage_virtual_ip
1158 FixedIPs: {get_param: StorageVirtualFixedIPs}
1160 StorageMgmtVirtualIP:
1161 depends_on: Networks
1162 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1164 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1165 PortName: storage_management_virtual_ip
1166 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1169 type: OS::TripleO::Network::Ports::NetVipMap
1171 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1172 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1173 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1174 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1175 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1176 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1177 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1178 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1179 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1180 # No tenant or management VIP required
1183 type: OS::TripleO::VipConfig
1186 type: OS::Heat::StructuredDeployments
1189 config: {get_resource: VipConfig}
1190 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1192 # service VIP mappings
1193 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1194 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1195 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1196 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1197 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1198 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1199 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1200 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1201 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1202 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1203 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1204 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1205 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1206 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1207 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1208 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1209 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1210 # direct configuration of Virtual IPs for each network
1211 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1212 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1213 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1214 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1215 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1216 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1217 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1219 ControllerBootstrapNodeConfig:
1220 type: OS::TripleO::BootstrapNode::SoftwareConfig
1222 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1223 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1225 ControllerBootstrapNodeDeployment:
1226 type: OS::Heat::StructuredDeployments
1228 name: ControllerBootstrapNodeDeployment
1229 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1230 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1232 ControllerSwiftDeployment:
1233 type: OS::Heat::StructuredDeployments
1235 name: ControllerSwiftDeployment
1236 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1237 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1239 ObjectStorageSwiftDeployment:
1240 type: OS::Heat::StructuredDeployments
1242 name: ObjectStorageSwiftDeployment
1243 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1244 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1246 SwiftDevicesAndProxyConfig:
1247 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1249 controller_swift_devices: {get_attr: [Controller, swift_device]}
1250 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1251 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1253 ComputeCephDeployment:
1254 type: OS::Heat::StructuredDeployments
1256 name: ComputeCephDeployment
1257 config: {get_attr: [CephClusterConfig, config_id]}
1258 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1260 ControllerCephDeployment:
1261 type: OS::Heat::StructuredDeployments
1263 name: ControllerCephDeployment
1264 config: {get_attr: [CephClusterConfig, config_id]}
1265 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1267 CephStorageCephDeployment:
1268 type: OS::Heat::StructuredDeployments
1270 name: CephStorageCephDeployment
1271 config: {get_attr: [CephClusterConfig, config_id]}
1272 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1275 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1277 ControllerAllNodesDeployment:
1278 type: OS::Heat::StructuredDeployments
1280 name: ControllerAllNodesDeployment
1281 config: {get_attr: [allNodesConfig, config_id]}
1282 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1284 ComputeAllNodesDeployment:
1285 type: OS::Heat::StructuredDeployments
1287 name: ComputeAllNodesDeployment
1288 config: {get_attr: [allNodesConfig, config_id]}
1289 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1291 BlockStorageAllNodesDeployment:
1292 type: OS::Heat::StructuredDeployments
1294 name: BlockStorageAllNodesDeployment
1295 config: {get_attr: [allNodesConfig, config_id]}
1296 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1298 ObjectStorageAllNodesDeployment:
1299 type: OS::Heat::StructuredDeployments
1301 name: ObjectStorageAllNodesDeployment
1302 config: {get_attr: [allNodesConfig, config_id]}
1303 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1305 CephStorageAllNodesDeployment:
1306 type: OS::Heat::StructuredDeployments
1308 name: CephStorageAllNodesDeployment
1309 config: {get_attr: [allNodesConfig, config_id]}
1310 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1312 # All Nodes Validations
1313 AllNodesValidationConfig:
1314 type: OS::TripleO::AllNodes::Validation
1319 - - {get_attr: [Controller, resource.0.external_ip_address]}
1320 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1321 - {get_attr: [Controller, resource.0.storage_ip_address]}
1322 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1323 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1325 ControllerAllNodesValidationDeployment:
1326 type: OS::Heat::StructuredDeployments
1327 depends_on: ControllerAllNodesDeployment
1329 name: ControllerAllNodesValidationDeployment
1330 config: {get_resource: AllNodesValidationConfig}
1331 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1333 ComputeAllNodesValidationDeployment:
1334 type: OS::Heat::StructuredDeployments
1335 depends_on: ComputeAllNodesDeployment
1337 name: ComputeAllNodesValidationDeployment
1338 config: {get_resource: AllNodesValidationConfig}
1339 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1341 BlockStorageAllNodesValidationDeployment:
1342 type: OS::Heat::StructuredDeployments
1343 depends_on: BlockStorageAllNodesDeployment
1345 name: BlockStorageAllNodesValidationDeployment
1346 config: {get_resource: AllNodesValidationConfig}
1347 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1349 ObjectStorageAllNodesValidationDeployment:
1350 type: OS::Heat::StructuredDeployments
1351 depends_on: ObjectStorageAllNodesDeployment
1353 name: ObjectStorageAllNodesValidationDeployment
1354 config: {get_resource: AllNodesValidationConfig}
1355 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1357 CephStorageAllNodesValidationDeployment:
1358 type: OS::Heat::StructuredDeployments
1359 depends_on: CephStorageAllNodesDeployment
1361 name: CephStorageAllNodesValidationDeployment
1362 config: {get_resource: AllNodesValidationConfig}
1363 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1366 type: OS::TripleO::Tasks::UpdateWorkflow
1368 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1369 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1370 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1371 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1372 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1374 deploy_identifier: {get_param: DeployIdentifier}
1375 update_identifier: {get_param: UpdateIdentifier}
1377 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1378 # the nested template may configure each role differently (or not at all)
1379 AllNodesExtraConfig:
1380 type: OS::TripleO::AllNodesExtraConfig
1383 - ComputeAllNodesValidationDeployment
1384 - BlockStorageAllNodesValidationDeployment
1385 - ObjectStorageAllNodesValidationDeployment
1386 - CephStorageAllNodesValidationDeployment
1387 - ControllerAllNodesValidationDeployment
1389 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1390 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1391 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1392 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1393 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1395 # Nested stack deployment runs after all other controller deployments
1396 ControllerNodesPostDeployment:
1397 type: OS::TripleO::ControllerPostDeployment
1398 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1400 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1401 RoleData: {get_attr: [ControllerServiceChain, role_data]}
1403 ComputeNodesPostDeployment:
1404 type: OS::TripleO::ComputePostDeployment
1405 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1407 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1408 RoleData: {get_attr: [ComputeServiceChain, role_data]}
1410 ObjectStorageNodesPostDeployment:
1411 type: OS::TripleO::ObjectStoragePostDeployment
1412 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1414 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1415 RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
1417 BlockStorageNodesPostDeployment:
1418 type: OS::TripleO::BlockStoragePostDeployment
1419 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1421 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1422 RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
1424 CephStorageNodesPostDeployment:
1425 type: OS::TripleO::CephStoragePostDeployment
1426 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1428 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1429 RoleData: {get_attr: [CephStorageServiceChain, role_data]}
1433 description: URL for the Overcloud Keystone service
1434 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1436 description: Keystone Admin VIP endpoint
1437 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1439 description: Controller VIP for public API endpoints
1440 value: {get_attr: [VipMap, net_ip_map, external]}
1442 description: VIP for Aodh API internal endpoint
1443 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1444 CeilometerInternalVip:
1445 description: VIP for Ceilometer API internal endpoint
1446 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1448 description: VIP for Cinder API internal endpoint
1449 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1451 description: VIP for Glance API internal endpoint
1452 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1454 description: VIP for Gnocchi API internal endpoint
1455 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1457 description: VIP for Heat API internal endpoint
1458 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1460 description: VIP for Ironic API internal endpoint
1461 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1462 KeystoneInternalVip:
1463 description: VIP for Keystone API internal endpoint
1464 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1466 description: VIP for Neutron API internal endpoint
1467 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1469 description: VIP for Nova API internal endpoint
1470 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1472 description: VIP for Sahara API internal endpoint
1473 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1475 description: VIP for Swift Proxy internal endpoint
1476 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1479 Mapping of the resources with the needed info for their endpoints.
1480 This includes the protocol used, the IP, port and also a full
1481 representation of the URI.
1482 value: {get_attr: [EndpointMap, endpoint_map]}
1485 The content that should be appended to your /etc/hosts if you want to get
1486 hostname-based access to the deployed nodes (useful for testing without
1488 value: {get_attr: [allNodesConfig, hosts_entries]}