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.
23 CinderEnableNfsBackend:
25 description: Whether to enable or not the NFS backend for Cinder
27 CinderEnableRbdBackend:
29 description: Whether to enable or not the Rbd backend for Cinder
33 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
37 description: Should be used for arbitrary ips.
41 description: Enable IPv6 in Corosync
45 description: Set to True to enable debugging on all services.
49 description: Syslog address where HAproxy will send its log
53 description: A list of IP/Hostname allowed to connect to horizon
54 type: comma_delimited_list
56 default: 'REBUILD_PRESERVE_EPHEMERAL'
57 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
59 InternalApiVirtualFixedIPs:
62 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
63 [{'ip_address':'1.2.3.4'}]
67 description: Name of an existing Nova key pair to enable SSH access to the instances
70 - custom_constraint: nova.keypair
73 description: Enable IPv6 features in Memcached.
75 NeutronBridgeMappings:
77 The OVS logical->physical bridge mappings to use. See the Neutron
78 documentation for details. Defaults to mapping br-ex - the external
79 bridge on hosts - to a physical name 'datacentre' which can be used
80 to create provider networks (and we use this for the default floating
81 network) - if changing this either use different post-install network
82 scripts or be sure to keep 'datacentre' as a mapping network name.
83 type: comma_delimited_list
84 default: "datacentre:br-ex"
85 NeutronControlPlaneID:
88 description: Neutron ID or name for ctlplane network.
89 NeutronEnableTunnelling:
95 Enable/disable the L2 population feature in the Neutron agents.
98 type: comma_delimited_list
101 If set, flat networks to configure in neutron plugins. Defaults to
102 'datacentre' to permit external network creation.
105 description: The tenant network type for Neutron.
106 type: comma_delimited_list
108 description: The password for the neutron service account, used by neutron agents.
111 NeutronPublicInterface:
113 description: What interface to bridge onto br-ex for network nodes.
115 NeutronMetadataProxySharedSecret:
116 description: Shared secret to prevent spoofing
121 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
122 be at least 50 bytes smaller than the MTU on the physical network. This
123 value will be used to set the MTU on the virtual Ethernet device.
124 This value will be used to construct the NeutronDnsmasqOptions, since that
125 will determine the MTU that is assigned to the VM host through DHCP.
131 The tunnel types for the Neutron tenant network.
132 type: comma_delimited_list
133 type: comma_delimited_list
137 The core plugin for Neutron. The value should be the entrypoint to be loaded
138 from neutron.core_plugins namespace.
140 NeutronServicePlugins:
141 default: "router,qos"
143 Comma-separated list of service plugin entrypoints to be loaded from the
144 neutron.service_plugins namespace.
145 type: comma_delimited_list
147 default: "vxlan,vlan,flat,gre"
149 Comma-separated list of network type driver entrypoints to be loaded.
150 type: comma_delimited_list
151 NeutronMechanismDrivers:
152 default: 'openvswitch'
154 The mechanism drivers for the Neutron tenant network.
155 type: comma_delimited_list
156 type: comma_delimited_list
157 NeutronAgentExtensions:
160 Comma-separated list of extensions enabled for the Neutron agents.
161 type: comma_delimited_list
162 NeutronAllowL3AgentFailover:
164 description: Allow automatic l3-agent failover
168 description: Whether to enable l3-agent HA
172 description: Enable IPv6 features in Nova
175 description: The password for the nova service account, used by nova-api.
178 PublicVirtualFixedIPs:
181 Control the IP allocation for the PublicVirtualInterface port. E.g.
182 [{'ip_address':'1.2.3.4'}]
187 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
190 description: The username for RabbitMQ
193 description: The password for RabbitMQ
199 Rabbit client subscriber parameter to specify
200 an SSL connection to the RabbitMQ host.
204 description: Set rabbit subscriber port, change this if using SSL
207 description: The password for Redis
210 StorageVirtualFixedIPs:
213 Control the IP allocation for the StorageVirtualInterface port. E.g.
214 [{'ip_address':'1.2.3.4'}]
216 StorageMgmtVirtualFixedIPs:
219 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
220 [{'ip_address':'1.2.3.4'}]
223 default: 'localdomain'
226 The DNS domain used for the hosts. This should match the dhcp_domain
227 configured in the Undercloud neutron. Defaults to localdomain.
231 Extra properties or metadata passed to Nova for the created nodes in
232 the overcloud. It's accessible via the Nova metadata API.
235 # Controller-specific params
241 controllerExtraConfig:
244 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
248 default: overcloud-full
250 - custom_constraint: glance.image
251 OvercloudControlFlavor:
252 description: Flavor for control nodes to request when deploying.
256 - custom_constraint: nova.flavor
257 ControlVirtualInterface:
259 description: Interface where virtual ip will be assigned.
263 description: Whether to enable fencing in Pacemaker or not.
267 description: Whether to use Galera instead of regular MariaDB.
269 ControllerSchedulerHints:
271 description: Optional scheduler hints to pass to nova
276 Additional configuration to inject into the cluster. The format required
277 may be implementation specific, e.g puppet hieradata. Any role specific
278 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
283 Pacemaker fencing configuration. The JSON should have
284 the following structure:
288 "agent": "AGENT_NAME",
289 "host_mac": "HOST_MAC_ADDRESS",
290 "params": {"PARAM_NAME": "PARAM_VALUE"}
298 "agent": "fence_xvm",
299 "host_mac": "52:54:00:aa:bb:cc",
301 "multicast_address": "225.0.0.12",
302 "port": "baremetal_0",
304 "manage_key_file": true,
305 "key_file": "/etc/fence_xvm.key",
306 "key_file_password": "abcdef"
314 description: The short name of the Gnocchi backend to use. Should be one
315 of swift, rbd or file
318 - allowed_values: ['swift', 'file', 'rbd']
319 GnocchiIndexerBackend:
321 description: The short name of the Gnocchi indexer backend to use.
324 description: The password for the gnocchi service account.
327 InstanceNameTemplate:
328 default: 'instance-%08x'
329 description: Template string to be used to generate instance names
333 description: Whether to manage IPtables rules.
337 description: Whether IPtables rules should be purged before setting up the ones.
339 MysqlInnodbBufferPoolSize:
341 Specifies the size of the buffer pool in megabytes. Setting to
342 zero should be interpreted as "no value" and will defer to the
347 description: Configures MySQL max_connections config setting
350 PublicVirtualInterface:
353 Specifies the interface where the public-facing virtual ip will be assigned.
354 This should be int_public when a VLAN is being used.
357 description: A random string to be used as a salt when hashing to determine mappings in the ring.
363 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
366 description: Partition Power to use when building Swift rings
371 description: How many replicas to use in the swift rings.
373 # Compute-specific params
374 CeilometerComputeAgent:
375 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
379 - allowed_values: ['', Present]
383 HypervisorNeutronPhysicalBridge:
386 An OVS bridge to create on each hypervisor. This defaults to br-ex the
387 same as the control plane nodes, as we have a uniform configuration of
388 the openvswitch agent. Typically should not need to be changed.
390 HypervisorNeutronPublicInterface:
392 description: What interface to add to the HypervisorNeutronPhysicalBridge.
394 NeutronNetworkVLANRanges:
395 default: 'datacentre:1:1000'
397 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
398 Neutron documentation for permitted values. Defaults to permitting any
399 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
400 type: comma_delimited_list
403 default: libvirt.LibvirtDriver
404 NovaComputeExtraConfig:
407 NovaCompute specific configuration to inject into the cluster. Same
408 structure as ExtraConfig.
410 NovaComputeLibvirtType:
413 NovaComputeLibvirtVifDriver:
415 description: Libvirt VIF driver configuration for the network
417 NovaComputeSchedulerHints:
419 description: Optional scheduler hints to pass to nova
421 NovaEnableRbdBackend:
423 description: Whether to enable or not the Rbd backend for Nova
427 default: overcloud-full
429 - custom_constraint: glance.image
432 description: Name of integration bridge used by Open vSwitch
434 NovaSecurityGroupAPI:
436 description: The full class name of the security API class
438 OvercloudComputeFlavor:
439 description: Use this flavor
443 - custom_constraint: nova.flavor
446 NeutronTenantNetwork: tenant
447 CeilometerApiNetwork: internal_api
448 AodhApiNetwork: internal_api
449 GnocchiApiNetwork: internal_api
450 MongoDbNetwork: internal_api
451 CinderApiNetwork: internal_api
452 CinderIscsiNetwork: storage
453 GlanceApiNetwork: storage
454 GlanceRegistryNetwork: internal_api
455 IronicApiNetwork: internal_api
456 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
457 KeystonePublicApiNetwork: internal_api
458 NeutronApiNetwork: internal_api
459 HeatApiNetwork: internal_api
460 NovaApiNetwork: internal_api
461 NovaMetadataNetwork: internal_api
462 NovaVncProxyNetwork: internal_api
463 SwiftMgmtNetwork: storage_mgmt
464 SwiftProxyNetwork: storage
465 SaharaApiNetwork: internal_api
466 HorizonNetwork: internal_api
467 MemcachedNetwork: internal_api
468 RabbitMqNetwork: internal_api
469 RedisNetwork: internal_api
470 MysqlNetwork: internal_api
471 CephClusterNetwork: storage_mgmt
472 CephPublicNetwork: storage
473 ControllerHostnameResolveNetwork: internal_api
474 ComputeHostnameResolveNetwork: internal_api
475 BlockStorageHostnameResolveNetwork: internal_api
476 ObjectStorageHostnameResolveNetwork: internal_api
477 CephStorageHostnameResolveNetwork: storage
478 description: Mapping of service_name -> network name. Typically set
479 via parameter_defaults in the resource registry.
484 - OS::TripleO::Services::CephMon
485 - OS::TripleO::Services::CephExternal
486 - OS::TripleO::Services::CinderApi
487 - OS::TripleO::Services::CinderScheduler
488 - OS::TripleO::Services::CinderVolume
489 - OS::TripleO::Services::Kernel
490 - OS::TripleO::Services::Keystone
491 - OS::TripleO::Services::GlanceApi
492 - OS::TripleO::Services::GlanceRegistry
493 - OS::TripleO::Services::HeatApi
494 - OS::TripleO::Services::HeatApiCfn
495 - OS::TripleO::Services::HeatApiCloudwatch
496 - OS::TripleO::Services::HeatEngine
497 - OS::TripleO::Services::NeutronDhcpAgent
498 - OS::TripleO::Services::NeutronL3Agent
499 - OS::TripleO::Services::NeutronMetadataAgent
500 - OS::TripleO::Services::NeutronServer
501 - OS::TripleO::Services::NeutronCorePlugin
502 - OS::TripleO::Services::NeutronOvsAgent
503 - OS::TripleO::Services::RabbitMQ
504 - OS::TripleO::Services::HAproxy
505 - OS::TripleO::Services::Keepalived
506 - OS::TripleO::Services::Memcached
507 - OS::TripleO::Services::Redis
508 - OS::TripleO::Services::NovaConductor
509 - OS::TripleO::Services::MongoDb
510 - OS::TripleO::Services::NovaApi
511 - OS::TripleO::Services::NovaScheduler
512 - OS::TripleO::Services::NovaConsoleauth
513 - OS::TripleO::Services::NovaVncproxy
514 - OS::TripleO::Services::Ntp
515 - OS::TripleO::Services::SwiftProxy
516 - OS::TripleO::Services::SwiftStorage
517 - OS::TripleO::Services::Snmp
518 - OS::TripleO::Services::Timezone
519 - OS::TripleO::Services::CeilometerApi
520 - OS::TripleO::Services::CeilometerCollector
521 - OS::TripleO::Services::CeilometerExpirer
522 - OS::TripleO::Services::CeilometerAgentCentral
523 - OS::TripleO::Services::CeilometerAgentNotification
524 description: A list of service resources (configured in the Heat
525 resource_registry) which represent nested stacks
526 for each service that should get installed on the Controllers.
527 type: comma_delimited_list
531 - OS::TripleO::Services::CephClient
532 - OS::TripleO::Services::CephExternal
533 - OS::TripleO::Services::Timezone
534 - OS::TripleO::Services::Ntp
535 - OS::TripleO::Services::Snmp
536 - OS::TripleO::Services::NovaCompute
537 - OS::TripleO::Services::NovaLibvirt
538 - OS::TripleO::Services::Kernel
539 description: A list of service resources (configured in the Heat
540 resource_registry) which represent nested stacks
541 for each service that should get installed on the Compute Nodes.
542 type: comma_delimited_list
544 # Block storage specific parameters
549 default: overcloud-full
551 OvercloudBlockStorageFlavor:
552 description: Flavor for block storage nodes to request when deploying.
556 - custom_constraint: nova.flavor
557 BlockStorageExtraConfig:
560 BlockStorage specific configuration to inject into the cluster. Same
561 structure as ExtraConfig.
563 BlockStorageSchedulerHints:
565 description: Optional scheduler hints to pass to nova
567 BlockStorageServices:
569 - OS::TripleO::Services::CinderVolume
570 - OS::TripleO::Services::Kernel
571 - OS::TripleO::Services::Ntp
572 - OS::TripleO::Services::Timezone
573 - OS::TripleO::Services::Snmp
574 description: A list of service resources (configured in the Heat
575 resource_registry) which represent nested stacks
576 for each service that should get installed on the BlockStorage nodes.
577 type: comma_delimited_list
579 # Object storage specific parameters
583 OvercloudSwiftStorageFlavor:
584 description: Flavor for Swift storage nodes to request when deploying.
588 - custom_constraint: nova.flavor
590 default: overcloud-full
592 ObjectStorageExtraConfig:
595 ObjectStorage specific configuration to inject into the cluster. Same
596 structure as ExtraConfig.
598 ObjectStorageSchedulerHints:
600 description: Optional scheduler hints to pass to nova
602 ObjectStorageServices:
604 - OS::TripleO::Services::Kernel
605 - OS::TripleO::Services::Ntp
606 - OS::TripleO::Services::SwiftStorage
607 - OS::TripleO::Services::Snmp
608 - OS::TripleO::Services::Timezone
609 description: A list of service resources (configured in the Heat
610 resource_registry) which represent nested stacks
611 for each service that should get installed on the ObjectStorage nodes.
612 Note this role currently only supports steps 2, 3 and 4 configuration.
613 type: comma_delimited_list
616 # Ceph storage specific parameters
621 default: overcloud-full
623 OvercloudCephStorageFlavor:
625 description: Flavor for Ceph storage nodes to request when deploying.
628 - custom_constraint: nova.flavor
629 CephStorageExtraConfig:
632 CephStorage specific configuration to inject into the cluster. Same
633 structure as ExtraConfig.
635 CephStorageSchedulerHints:
637 description: Optional scheduler hints to pass to nova
641 - OS::TripleO::Services::CephOSD
642 - OS::TripleO::Services::Kernel
643 - OS::TripleO::Services::Ntp
644 - OS::TripleO::Services::Timezone
645 description: A list of service resources (configured in the Heat
646 resource_registry) which represent nested stacks
647 for each service that should get installed on the CephStorage nodes.
648 type: comma_delimited_list
650 # Hostname format for each role
651 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
652 # and %stackname% is replaced with OS::stack_name in the template below.
653 # If you want to use the heat generated names, pass '' (empty string).
654 ControllerHostnameFormat:
656 description: Format for Controller node hostnames
657 default: '%stackname%-controller-%index%'
658 ComputeHostnameFormat:
660 description: Format for Compute node hostnames
661 default: '%stackname%-novacompute-%index%'
662 BlockStorageHostnameFormat:
664 description: Format for BlockStorage node hostnames
665 default: '%stackname%-blockstorage-%index%'
666 ObjectStorageHostnameFormat:
668 description: Format for SwiftStorage node hostnames
669 default: '%stackname%-objectstorage-%index%'
670 CephStorageHostnameFormat:
672 description: Format for CephStorage node hostnames
673 default: '%stackname%-cephstorage-%index%'
675 # Identifiers to trigger tasks on nodes
680 Setting to a previously unused value during stack-update will trigger
681 package update on all nodes
686 Setting this to a unique value will re-run any deployment tasks which
687 perform configuration on a Heat stack-update.
689 # If you want to remove a specific node from a resource group, you can pass
690 # the node name or id as a <Group>RemovalPolicies parameter, for example:
691 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
692 ControllerRemovalPolicies:
696 List of resources to be removed from ControllerResourceGroup when
697 doing an update which requires removal of specific resources.
698 ComputeRemovalPolicies:
702 List of resources to be removed from ComputeResourceGroup when
703 doing an update which requires removal of specific resources.
704 BlockStorageRemovalPolicies:
708 List of resources to be removed from BlockStorageResourceGroup when
709 doing an update which requires removal of specific resources.
710 ObjectStorageRemovalPolicies:
714 List of resources to be removed from ObjectStorageResourceGroup when
715 doing an update which requires removal of specific resources.
716 CephStorageRemovalPolicies:
720 List of resources to be removed from CephStorageResourceGroup when
721 doing an update which requires removal of specific resources.
725 description: Do not use deprecated params, they will be removed.
727 - controllerExtraConfig
732 HeatAuthEncryptionKey:
733 type: OS::Heat::RandomString
736 type: OS::Heat::RandomString
741 type: OS::Heat::RandomString
746 type: OS::TripleO::EndpointMap
748 CloudName: {get_param: CloudName}
749 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
750 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
751 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
752 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
753 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
754 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
755 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
756 IronicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
757 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
758 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
759 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
760 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
761 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
762 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
763 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
764 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
766 ControllerServiceChain:
767 type: OS::TripleO::Services
769 Services: {get_param: ControllerServices}
770 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
773 type: OS::Heat::ResourceGroup
776 count: {get_param: ControllerCount}
777 removal_policies: {get_param: ControllerRemovalPolicies}
779 type: OS::TripleO::Controller
781 AdminPassword: {get_param: AdminPassword}
782 AodhPassword: {get_param: AodhPassword}
783 CloudDomain: {get_param: CloudDomain}
784 ControlVirtualInterface: {get_param: ControlVirtualInterface}
785 controllerExtraConfig: {get_param: controllerExtraConfig}
786 CorosyncIPv6: {get_param: CorosyncIPv6}
787 Debug: {get_param: Debug}
788 EnableFencing: {get_param: EnableFencing}
789 ManageFirewall: {get_param: ManageFirewall}
790 PurgeFirewallRules: {get_param: PurgeFirewallRules}
791 EnableGalera: {get_param: EnableGalera}
792 ExtraConfig: {get_param: ExtraConfig}
793 FencingConfig: {get_param: FencingConfig}
794 Flavor: {get_param: OvercloudControlFlavor}
795 GnocchiPassword: {get_param: GnocchiPassword}
796 GnocchiBackend: {get_param: GnocchiBackend}
797 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
798 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
799 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
800 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
801 HorizonSecret: {get_resource: HorizonSecret}
802 Image: {get_param: controllerImage}
803 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
804 InstanceNameTemplate: {get_param: InstanceNameTemplate}
805 KeyName: {get_param: KeyName}
806 MemcachedIPv6: {get_param: MemcachedIPv6}
807 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
808 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
809 MysqlMaxConnections: {get_param: MysqlMaxConnections}
810 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
811 NeutronTenantMtu: {get_param: NeutronTenantMtu}
812 NeutronPublicInterface: {get_param: NeutronPublicInterface}
813 NeutronPassword: {get_param: NeutronPassword}
814 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
815 NovaIPv6: {get_param: NovaIPv6}
816 NovaPassword: {get_param: NovaPassword}
817 PcsdPassword: {get_resource: PcsdPassword}
818 PublicVirtualInterface: {get_param: PublicVirtualInterface}
819 RabbitPassword: {get_param: RabbitPassword}
820 RabbitUserName: {get_param: RabbitUserName}
821 RabbitCookie: {get_attr: [RabbitCookie, value]}
822 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
823 RabbitClientPort: {get_param: RabbitClientPort}
824 RedisPassword: {get_param: RedisPassword}
825 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
826 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
827 SwiftHashSuffix: {get_param: SwiftHashSuffix}
828 SwiftMinPartHours: {get_param: SwiftMinPartHours}
829 SwiftPartPower: {get_param: SwiftPartPower}
830 SwiftReplicas: { get_param: SwiftReplicas}
831 ServiceNetMap: {get_param: ServiceNetMap}
832 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
833 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
834 UpdateIdentifier: {get_param: UpdateIdentifier}
837 template: {get_param: ControllerHostnameFormat}
839 '%stackname%': {get_param: 'OS::stack_name'}
841 ServerMetadata: {get_param: ServerMetadata}
842 SchedulerHints: {get_param: ControllerSchedulerHints}
843 ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
847 type: OS::TripleO::Services
849 Services: {get_param: ComputeServices}
850 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
853 type: OS::Heat::ResourceGroup
856 count: {get_param: ComputeCount}
857 removal_policies: {get_param: ComputeRemovalPolicies}
859 type: OS::TripleO::Compute
861 AdminPassword: {get_param: AdminPassword}
862 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
863 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
864 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
865 Debug: {get_param: Debug}
866 ExtraConfig: {get_param: ExtraConfig}
867 Flavor: {get_param: OvercloudComputeFlavor}
868 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
869 Image: {get_param: NovaImage}
870 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
871 KeyName: {get_param: KeyName}
872 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
873 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
874 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
875 NeutronTenantMtu: {get_param: NeutronTenantMtu}
876 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
877 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
878 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
879 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
880 NeutronNetworkType: {get_param: NeutronNetworkType}
881 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
882 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
883 NeutronPassword: {get_param: NeutronPassword}
884 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
885 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
886 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
887 NeutronCorePlugin: {get_param: NeutronCorePlugin}
888 NeutronServicePlugins: {get_param: NeutronServicePlugins}
889 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
890 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
891 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
892 # L3 HA and Failover is not relevant for Computes, should be removed
893 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
894 NeutronL3HA: {get_param: NeutronL3HA}
895 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
896 NovaComputeDriver: {get_param: NovaComputeDriver}
897 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
898 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
899 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
900 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
901 NovaIPv6: {get_param: NovaIPv6}
902 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
903 NovaPassword: {get_param: NovaPassword}
904 NovaOVSBridge: {get_param: NovaOVSBridge}
905 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
906 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
907 RabbitPassword: {get_param: RabbitPassword}
908 RabbitUserName: {get_param: RabbitUserName}
909 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
910 RabbitClientPort: {get_param: RabbitClientPort}
911 ServiceNetMap: {get_param: ServiceNetMap}
912 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
913 UpdateIdentifier: {get_param: UpdateIdentifier}
916 template: {get_param: ComputeHostnameFormat}
918 '%stackname%': {get_param: 'OS::stack_name'}
919 CloudDomain: {get_param: CloudDomain}
920 ServerMetadata: {get_param: ServerMetadata}
921 SchedulerHints: {get_param: NovaComputeSchedulerHints}
923 ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
925 BlockStorageServiceChain:
926 type: OS::TripleO::Services
928 Services: {get_param: BlockStorageServices}
929 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
932 type: OS::Heat::ResourceGroup
935 count: {get_param: BlockStorageCount}
936 removal_policies: {get_param: BlockStorageRemovalPolicies}
938 type: OS::TripleO::BlockStorage
940 Image: {get_param: BlockStorageImage}
941 KeyName: {get_param: KeyName}
942 Flavor: {get_param: OvercloudBlockStorageFlavor}
943 UpdateIdentifier: {get_param: UpdateIdentifier}
946 template: {get_param: BlockStorageHostnameFormat}
948 '%stackname%': {get_param: 'OS::stack_name'}
949 ServiceNetMap: {get_param: ServiceNetMap}
950 ExtraConfig: {get_param: ExtraConfig}
951 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
952 CloudDomain: {get_param: CloudDomain}
953 ServerMetadata: {get_param: ServerMetadata}
954 SchedulerHints: {get_param: BlockStorageSchedulerHints}
956 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
958 ObjectStorageServiceChain:
959 type: OS::TripleO::Services
961 Services: {get_param: ObjectStorageServices}
962 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
965 type: OS::Heat::ResourceGroup
968 count: {get_param: ObjectStorageCount}
969 removal_policies: {get_param: ObjectStorageRemovalPolicies}
971 type: OS::TripleO::ObjectStorage
973 KeyName: {get_param: KeyName}
974 Flavor: {get_param: OvercloudSwiftStorageFlavor}
975 HashSuffix: {get_param: SwiftHashSuffix}
976 MinPartHours: {get_param: SwiftMinPartHours}
977 PartPower: {get_param: SwiftPartPower}
978 Image: {get_param: SwiftStorageImage}
979 Replicas: { get_param: SwiftReplicas}
980 UpdateIdentifier: {get_param: UpdateIdentifier}
981 ServiceNetMap: {get_param: ServiceNetMap}
984 template: {get_param: ObjectStorageHostnameFormat}
986 '%stackname%': {get_param: 'OS::stack_name'}
987 ExtraConfig: {get_param: ExtraConfig}
988 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
989 CloudDomain: {get_param: CloudDomain}
990 ServerMetadata: {get_param: ServerMetadata}
991 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
993 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
995 CephStorageServiceChain:
996 type: OS::TripleO::Services
998 Services: {get_param: CephStorageServices}
999 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1002 type: OS::Heat::ResourceGroup
1003 depends_on: Networks
1005 count: {get_param: CephStorageCount}
1006 removal_policies: {get_param: CephStorageRemovalPolicies}
1008 type: OS::TripleO::CephStorage
1010 Image: {get_param: CephStorageImage}
1011 KeyName: {get_param: KeyName}
1012 Flavor: {get_param: OvercloudCephStorageFlavor}
1013 ServiceNetMap: {get_param: ServiceNetMap}
1014 UpdateIdentifier: {get_param: UpdateIdentifier}
1017 template: {get_param: CephStorageHostnameFormat}
1019 '%stackname%': {get_param: 'OS::stack_name'}
1020 ExtraConfig: {get_param: ExtraConfig}
1021 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1022 CloudDomain: {get_param: CloudDomain}
1023 ServerMetadata: {get_param: ServerMetadata}
1024 SchedulerHints: {get_param: CephStorageSchedulerHints}
1025 NodeIndex: '%index%'
1026 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
1028 ControllerIpListMap:
1029 type: OS::TripleO::Network::Ports::NetIpListMap
1031 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1032 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1033 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1034 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1035 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1036 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1037 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1040 type: OS::TripleO::AllNodes::SoftwareConfig
1042 compute_hosts: {get_attr: [Compute, hosts_entry]}
1043 controller_hosts: {get_attr: [Controller, hosts_entry]}
1044 controller_ips: {get_attr: [Controller, ip_address]}
1045 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1046 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1047 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1048 controller_names: {get_attr: [Controller, hostname]}
1049 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1050 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1051 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1052 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1053 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1054 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1055 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1056 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1057 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1058 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1059 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1060 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1061 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1062 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1063 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1064 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1065 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1066 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1067 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1068 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1069 ironic_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1070 ceph_mon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1071 ceph_mon_node_names: {get_attr: [Controller, hostname]}
1072 DeployIdentifier: {get_param: DeployIdentifier}
1073 UpdateIdentifier: {get_param: UpdateIdentifier}
1076 type: OS::Heat::RandomString
1080 MysqlClusterUniquePart:
1081 type: OS::Heat::RandomString
1086 type: OS::Heat::RandomString
1089 salt: {get_param: RabbitCookieSalt}
1091 # creates the network architecture
1093 type: OS::TripleO::Network
1096 type: OS::Neutron::Port
1097 depends_on: Networks
1099 name: control_virtual_ip
1100 network: {get_param: NeutronControlPlaneID}
1101 fixed_ips: {get_param: ControlFixedIPs}
1102 replacement_policy: AUTO
1105 depends_on: Networks
1106 type: OS::TripleO::Network::Ports::RedisVipPort
1108 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1109 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1110 PortName: redis_virtual_ip
1111 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1114 # The public VIP is on the External net, falls back to ctlplane
1116 depends_on: Networks
1117 type: OS::TripleO::Network::Ports::ExternalVipPort
1119 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1120 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1121 PortName: public_virtual_ip
1122 FixedIPs: {get_param: PublicVirtualFixedIPs}
1124 InternalApiVirtualIP:
1125 depends_on: Networks
1126 type: OS::TripleO::Network::Ports::InternalApiVipPort
1128 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1129 PortName: internal_api_virtual_ip
1130 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1133 depends_on: Networks
1134 type: OS::TripleO::Network::Ports::StorageVipPort
1136 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1137 PortName: storage_virtual_ip
1138 FixedIPs: {get_param: StorageVirtualFixedIPs}
1140 StorageMgmtVirtualIP:
1141 depends_on: Networks
1142 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1144 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1145 PortName: storage_management_virtual_ip
1146 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1149 type: OS::TripleO::Network::Ports::NetVipMap
1151 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1152 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1153 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1154 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1155 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1156 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1157 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1158 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1159 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1160 # No tenant or management VIP required
1163 type: OS::TripleO::VipConfig
1166 type: OS::Heat::StructuredDeployments
1169 config: {get_resource: VipConfig}
1170 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1172 # service VIP mappings
1173 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1174 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1175 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1176 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1177 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1178 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1179 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1180 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1181 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1182 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1183 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1184 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1185 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1186 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1187 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1188 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1189 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1190 # direct configuration of Virtual IPs for each network
1191 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1192 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1193 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1194 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1195 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1196 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1197 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1199 ControllerBootstrapNodeConfig:
1200 type: OS::TripleO::BootstrapNode::SoftwareConfig
1202 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1203 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1205 ControllerBootstrapNodeDeployment:
1206 type: OS::Heat::StructuredDeployments
1208 name: ControllerBootstrapNodeDeployment
1209 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1210 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1212 ControllerSwiftDeployment:
1213 type: OS::Heat::StructuredDeployments
1215 name: ControllerSwiftDeployment
1216 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1217 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1219 ObjectStorageSwiftDeployment:
1220 type: OS::Heat::StructuredDeployments
1222 name: ObjectStorageSwiftDeployment
1223 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1224 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1226 SwiftDevicesAndProxyConfig:
1227 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1229 controller_swift_devices: {get_attr: [Controller, swift_device]}
1230 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1231 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1233 ComputeCephDeployment:
1234 type: OS::Heat::StructuredDeployments
1236 name: ComputeCephDeployment
1237 config: {get_attr: [CephClusterConfig, config_id]}
1238 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1240 ControllerCephDeployment:
1241 type: OS::Heat::StructuredDeployments
1243 name: ControllerCephDeployment
1244 config: {get_attr: [CephClusterConfig, config_id]}
1245 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1247 CephStorageCephDeployment:
1248 type: OS::Heat::StructuredDeployments
1250 name: CephStorageCephDeployment
1251 config: {get_attr: [CephClusterConfig, config_id]}
1252 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1255 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1257 ControllerAllNodesDeployment:
1258 type: OS::Heat::StructuredDeployments
1260 name: ControllerAllNodesDeployment
1261 config: {get_attr: [allNodesConfig, config_id]}
1262 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1264 ComputeAllNodesDeployment:
1265 type: OS::Heat::StructuredDeployments
1267 name: ComputeAllNodesDeployment
1268 config: {get_attr: [allNodesConfig, config_id]}
1269 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1271 BlockStorageAllNodesDeployment:
1272 type: OS::Heat::StructuredDeployments
1274 name: BlockStorageAllNodesDeployment
1275 config: {get_attr: [allNodesConfig, config_id]}
1276 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1278 ObjectStorageAllNodesDeployment:
1279 type: OS::Heat::StructuredDeployments
1281 name: ObjectStorageAllNodesDeployment
1282 config: {get_attr: [allNodesConfig, config_id]}
1283 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1285 CephStorageAllNodesDeployment:
1286 type: OS::Heat::StructuredDeployments
1288 name: CephStorageAllNodesDeployment
1289 config: {get_attr: [allNodesConfig, config_id]}
1290 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1292 # All Nodes Validations
1293 AllNodesValidationConfig:
1294 type: OS::TripleO::AllNodes::Validation
1299 - - {get_attr: [Controller, resource.0.external_ip_address]}
1300 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1301 - {get_attr: [Controller, resource.0.storage_ip_address]}
1302 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1303 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1305 ControllerAllNodesValidationDeployment:
1306 type: OS::Heat::StructuredDeployments
1307 depends_on: ControllerAllNodesDeployment
1309 name: ControllerAllNodesValidationDeployment
1310 config: {get_resource: AllNodesValidationConfig}
1311 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1313 ComputeAllNodesValidationDeployment:
1314 type: OS::Heat::StructuredDeployments
1315 depends_on: ComputeAllNodesDeployment
1317 name: ComputeAllNodesValidationDeployment
1318 config: {get_resource: AllNodesValidationConfig}
1319 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1321 BlockStorageAllNodesValidationDeployment:
1322 type: OS::Heat::StructuredDeployments
1323 depends_on: BlockStorageAllNodesDeployment
1325 name: BlockStorageAllNodesValidationDeployment
1326 config: {get_resource: AllNodesValidationConfig}
1327 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1329 ObjectStorageAllNodesValidationDeployment:
1330 type: OS::Heat::StructuredDeployments
1331 depends_on: ObjectStorageAllNodesDeployment
1333 name: ObjectStorageAllNodesValidationDeployment
1334 config: {get_resource: AllNodesValidationConfig}
1335 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1337 CephStorageAllNodesValidationDeployment:
1338 type: OS::Heat::StructuredDeployments
1339 depends_on: CephStorageAllNodesDeployment
1341 name: CephStorageAllNodesValidationDeployment
1342 config: {get_resource: AllNodesValidationConfig}
1343 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1346 type: OS::TripleO::Tasks::UpdateWorkflow
1348 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1349 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1350 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1351 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1352 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1354 deploy_identifier: {get_param: DeployIdentifier}
1355 update_identifier: {get_param: UpdateIdentifier}
1357 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1358 # the nested template may configure each role differently (or not at all)
1359 AllNodesExtraConfig:
1360 type: OS::TripleO::AllNodesExtraConfig
1363 - ComputeAllNodesValidationDeployment
1364 - BlockStorageAllNodesValidationDeployment
1365 - ObjectStorageAllNodesValidationDeployment
1366 - CephStorageAllNodesValidationDeployment
1367 - ControllerAllNodesValidationDeployment
1369 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1370 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1371 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1372 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1373 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1375 # Nested stack deployment runs after all other controller deployments
1376 ControllerNodesPostDeployment:
1377 type: OS::TripleO::ControllerPostDeployment
1378 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1380 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1381 RoleData: {get_attr: [ControllerServiceChain, role_data]}
1383 ComputeNodesPostDeployment:
1384 type: OS::TripleO::ComputePostDeployment
1385 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1387 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1388 RoleData: {get_attr: [ComputeServiceChain, role_data]}
1390 ObjectStorageNodesPostDeployment:
1391 type: OS::TripleO::ObjectStoragePostDeployment
1392 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1394 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1395 RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
1397 BlockStorageNodesPostDeployment:
1398 type: OS::TripleO::BlockStoragePostDeployment
1399 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1401 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1402 RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
1404 CephStorageNodesPostDeployment:
1405 type: OS::TripleO::CephStoragePostDeployment
1406 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1408 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1409 RoleData: {get_attr: [CephStorageServiceChain, role_data]}
1413 description: URL for the Overcloud Keystone service
1414 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1416 description: Keystone Admin VIP endpoint
1417 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1419 description: Controller VIP for public API endpoints
1420 value: {get_attr: [VipMap, net_ip_map, external]}
1422 description: VIP for Aodh API internal endpoint
1423 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1424 CeilometerInternalVip:
1425 description: VIP for Ceilometer API internal endpoint
1426 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1428 description: VIP for Cinder API internal endpoint
1429 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1431 description: VIP for Glance API internal endpoint
1432 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1434 description: VIP for Gnocchi API internal endpoint
1435 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1437 description: VIP for Heat API internal endpoint
1438 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1440 description: VIP for Ironic API internal endpoint
1441 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1442 KeystoneInternalVip:
1443 description: VIP for Keystone API internal endpoint
1444 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1446 description: VIP for Neutron API internal endpoint
1447 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1449 description: VIP for Nova API internal endpoint
1450 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1452 description: VIP for Sahara API internal endpoint
1453 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1455 description: VIP for Swift Proxy internal endpoint
1456 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1459 Mapping of the resources with the needed info for their endpoints.
1460 This includes the protocol used, the IP, port and also a full
1461 representation of the URI.
1462 value: {get_attr: [EndpointMap, endpoint_map]}
1465 The content that should be appended to your /etc/hosts if you want to get
1466 hostname-based access to the deployed nodes (useful for testing without
1468 value: {get_attr: [allNodesConfig, hosts_entries]}