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 # This has to be an UUID so for now we generate it outside the template
45 description: The Ceph cluster FSID. Must be a UUID.
48 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
53 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
56 CinderEnableNfsBackend:
58 description: Whether to enable or not the NFS backend for Cinder
62 description: The Ceph client key. Can be created with ceph-authtool --gen-print-key. Currently only used for external Ceph deployments to create the openstack user keyring.
68 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
69 CinderEnableRbdBackend:
71 description: Whether to enable or not the Rbd backend for Cinder
75 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
79 description: Should be used for arbitrary ips.
83 description: Enable IPv6 in Corosync
87 description: Set to True to enable debugging on all services.
91 description: Syslog address where HAproxy will send its log
95 description: A list of IP/Hostname allowed to connect to horizon
96 type: comma_delimited_list
98 default: 'REBUILD_PRESERVE_EPHEMERAL'
99 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
101 InternalApiVirtualFixedIPs:
104 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
105 [{'ip_address':'1.2.3.4'}]
109 description: Name of an existing Nova key pair to enable SSH access to the instances
112 - custom_constraint: nova.keypair
115 description: Enable IPv6 features in Memcached.
117 NeutronBridgeMappings:
119 The OVS logical->physical bridge mappings to use. See the Neutron
120 documentation for details. Defaults to mapping br-ex - the external
121 bridge on hosts - to a physical name 'datacentre' which can be used
122 to create provider networks (and we use this for the default floating
123 network) - if changing this either use different post-install network
124 scripts or be sure to keep 'datacentre' as a mapping network name.
125 type: comma_delimited_list
126 default: "datacentre:br-ex"
127 NeutronControlPlaneID:
130 description: Neutron ID or name for ctlplane network.
131 NeutronEnableTunnelling:
137 Enable/disable the L2 population feature in the Neutron agents.
140 type: comma_delimited_list
141 default: 'datacentre'
143 If set, flat networks to configure in neutron plugins. Defaults to
144 'datacentre' to permit external network creation.
147 description: The tenant network type for Neutron.
148 type: comma_delimited_list
150 description: The password for the neutron service account, used by neutron agents.
153 NeutronPublicInterface:
155 description: What interface to bridge onto br-ex for network nodes.
157 NeutronMetadataProxySharedSecret:
158 description: Shared secret to prevent spoofing
163 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
164 be at least 50 bytes smaller than the MTU on the physical network. This
165 value will be used to set the MTU on the virtual Ethernet device.
166 This value will be used to construct the NeutronDnsmasqOptions, since that
167 will determine the MTU that is assigned to the VM host through DHCP.
173 The tunnel types for the Neutron tenant network.
174 type: comma_delimited_list
175 type: comma_delimited_list
179 The core plugin for Neutron. The value should be the entrypoint to be loaded
180 from neutron.core_plugins namespace.
182 NeutronServicePlugins:
183 default: "router,qos"
185 Comma-separated list of service plugin entrypoints to be loaded from the
186 neutron.service_plugins namespace.
187 type: comma_delimited_list
189 default: "vxlan,vlan,flat,gre"
191 Comma-separated list of network type driver entrypoints to be loaded.
192 type: comma_delimited_list
193 NeutronMechanismDrivers:
194 default: 'openvswitch'
196 The mechanism drivers for the Neutron tenant network.
197 type: comma_delimited_list
198 type: comma_delimited_list
199 NeutronAgentExtensions:
202 Comma-separated list of extensions enabled for the Neutron agents.
203 type: comma_delimited_list
204 NeutronAllowL3AgentFailover:
206 description: Allow automatic l3-agent failover
210 description: Whether to enable l3-agent HA
214 description: Enable IPv6 features in Nova
217 description: The password for the nova service account, used by nova-api.
220 #TODO(ccamacho): Remove after landing Ntp in all roles
223 description: Comma-separated list of ntp servers
224 type: comma_delimited_list
225 PublicVirtualFixedIPs:
228 Control the IP allocation for the PublicVirtualInterface port. E.g.
229 [{'ip_address':'1.2.3.4'}]
234 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
237 description: The username for RabbitMQ
240 description: The password for RabbitMQ
246 Rabbit client subscriber parameter to specify
247 an SSL connection to the RabbitMQ host.
251 description: Set rabbit subscriber port, change this if using SSL
254 description: The password for Redis
257 SnmpdReadonlyUserName:
258 default: ro_snmp_user
259 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
261 SnmpdReadonlyUserPassword:
262 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
265 StorageVirtualFixedIPs:
268 Control the IP allocation for the StorageVirtualInterface port. E.g.
269 [{'ip_address':'1.2.3.4'}]
271 StorageMgmtVirtualFixedIPs:
274 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
275 [{'ip_address':'1.2.3.4'}]
279 description: The timezone to be set on nodes.
282 default: 'localdomain'
285 The DNS domain used for the hosts. This should match the dhcp_domain
286 configured in the Undercloud neutron. Defaults to localdomain.
290 Extra properties or metadata passed to Nova for the created nodes in
291 the overcloud. It's accessible via the Nova metadata API.
294 # Controller-specific params
300 controllerExtraConfig:
303 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
307 default: overcloud-full
309 - custom_constraint: glance.image
310 OvercloudControlFlavor:
311 description: Flavor for control nodes to request when deploying.
315 - custom_constraint: nova.flavor
316 ControlVirtualInterface:
318 description: Interface where virtual ip will be assigned.
322 description: Whether to enable fencing in Pacemaker or not.
326 description: Whether to use Galera instead of regular MariaDB.
328 ControllerEnableCephStorage:
330 description: Whether to deploy Ceph Storage (OSD) on the Controller
332 ControllerSchedulerHints:
334 description: Optional scheduler hints to pass to nova
339 Additional configuration to inject into the cluster. The format required
340 may be implementation specific, e.g puppet hieradata. Any role specific
341 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
346 Pacemaker fencing configuration. The JSON should have
347 the following structure:
351 "agent": "AGENT_NAME",
352 "host_mac": "HOST_MAC_ADDRESS",
353 "params": {"PARAM_NAME": "PARAM_VALUE"}
361 "agent": "fence_xvm",
362 "host_mac": "52:54:00:aa:bb:cc",
364 "multicast_address": "225.0.0.12",
365 "port": "baremetal_0",
367 "manage_key_file": true,
368 "key_file": "/etc/fence_xvm.key",
369 "key_file_password": "abcdef"
377 description: The short name of the Gnocchi backend to use. Should be one
378 of swift, rbd or file
381 - allowed_values: ['swift', 'file', 'rbd']
382 GnocchiIndexerBackend:
384 description: The short name of the Gnocchi indexer backend to use.
387 description: The password for the gnocchi service account.
390 InstanceNameTemplate:
391 default: 'instance-%08x'
392 description: Template string to be used to generate instance names
396 description: Whether to manage IPtables rules.
400 description: Whether IPtables rules should be purged before setting up the ones.
402 MysqlInnodbBufferPoolSize:
404 Specifies the size of the buffer pool in megabytes. Setting to
405 zero should be interpreted as "no value" and will defer to the
410 description: Configures MySQL max_connections config setting
413 PublicVirtualInterface:
416 Specifies the interface where the public-facing virtual ip will be assigned.
417 This should be int_public when a VLAN is being used.
420 description: A random string to be used as a salt when hashing to determine mappings in the ring.
426 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
429 description: Partition Power to use when building Swift rings
434 description: How many replicas to use in the swift rings.
436 # Compute-specific params
437 CeilometerComputeAgent:
438 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
442 - allowed_values: ['', Present]
446 HypervisorNeutronPhysicalBridge:
449 An OVS bridge to create on each hypervisor. This defaults to br-ex the
450 same as the control plane nodes, as we have a uniform configuration of
451 the openvswitch agent. Typically should not need to be changed.
453 HypervisorNeutronPublicInterface:
455 description: What interface to add to the HypervisorNeutronPhysicalBridge.
457 NeutronNetworkVLANRanges:
458 default: 'datacentre:1:1000'
460 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
461 Neutron documentation for permitted values. Defaults to permitting any
462 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
463 type: comma_delimited_list
466 default: libvirt.LibvirtDriver
467 NovaComputeExtraConfig:
470 NovaCompute specific configuration to inject into the cluster. Same
471 structure as ExtraConfig.
473 NovaComputeLibvirtType:
476 NovaComputeLibvirtVifDriver:
478 description: Libvirt VIF driver configuration for the network
480 NovaComputeSchedulerHints:
482 description: Optional scheduler hints to pass to nova
484 NovaEnableRbdBackend:
486 description: Whether to enable or not the Rbd backend for Nova
490 default: overcloud-full
492 - custom_constraint: glance.image
495 description: Name of integration bridge used by Open vSwitch
497 NovaSecurityGroupAPI:
499 description: The full class name of the security API class
501 OvercloudComputeFlavor:
502 description: Use this flavor
506 - custom_constraint: nova.flavor
509 NeutronTenantNetwork: tenant
510 CeilometerApiNetwork: internal_api
511 AodhApiNetwork: internal_api
512 GnocchiApiNetwork: internal_api
513 MongoDbNetwork: internal_api
514 CinderApiNetwork: internal_api
515 CinderIscsiNetwork: storage
516 GlanceApiNetwork: storage
517 GlanceRegistryNetwork: internal_api
518 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
519 KeystonePublicApiNetwork: internal_api
520 NeutronApiNetwork: internal_api
521 HeatApiNetwork: internal_api
522 NovaApiNetwork: internal_api
523 NovaMetadataNetwork: internal_api
524 NovaVncProxyNetwork: internal_api
525 SwiftMgmtNetwork: storage_mgmt
526 SwiftProxyNetwork: storage
527 SaharaApiNetwork: internal_api
528 HorizonNetwork: internal_api
529 MemcachedNetwork: internal_api
530 RabbitMqNetwork: internal_api
531 RedisNetwork: internal_api
532 MysqlNetwork: internal_api
533 CephClusterNetwork: storage_mgmt
534 CephPublicNetwork: storage
535 ControllerHostnameResolveNetwork: internal_api
536 ComputeHostnameResolveNetwork: internal_api
537 BlockStorageHostnameResolveNetwork: internal_api
538 ObjectStorageHostnameResolveNetwork: internal_api
539 CephStorageHostnameResolveNetwork: storage
540 description: Mapping of service_name -> network name. Typically set
541 via parameter_defaults in the resource registry.
546 - OS::TripleO::Services::CinderApi
547 - OS::TripleO::Services::CinderScheduler
548 - OS::TripleO::Services::CinderVolume
549 - OS::TripleO::Services::Keystone
550 - OS::TripleO::Services::GlanceApi
551 - OS::TripleO::Services::GlanceRegistry
552 - OS::TripleO::Services::HeatApi
553 - OS::TripleO::Services::HeatApiCfn
554 - OS::TripleO::Services::HeatApiCloudwatch
555 - OS::TripleO::Services::HeatEngine
556 - OS::TripleO::Services::NeutronDhcpAgent
557 - OS::TripleO::Services::NeutronL3Agent
558 - OS::TripleO::Services::NeutronMetadataAgent
559 - OS::TripleO::Services::NeutronServer
560 - OS::TripleO::Services::NeutronCorePlugin
561 - OS::TripleO::Services::NeutronOvsAgent
562 - OS::TripleO::Services::RabbitMQ
563 - OS::TripleO::Services::HAproxy
564 - OS::TripleO::Services::Keepalived
565 - OS::TripleO::Services::Memcached
566 - OS::TripleO::Services::Redis
567 - OS::TripleO::Services::NovaConductor
568 - OS::TripleO::Services::MongoDb
569 - OS::TripleO::Services::NovaApi
570 - OS::TripleO::Services::NovaScheduler
571 - OS::TripleO::Services::NovaConsoleauth
572 - OS::TripleO::Services::NovaVncproxy
573 - OS::TripleO::Services::Ntp
574 - OS::TripleO::Services::SwiftProxy
575 - OS::TripleO::Services::SwiftStorage
576 description: A list of service resources (configured in the Heat
577 resource_registry) which represent nested stacks
578 for each service that should get installed on the Controllers.
579 type: comma_delimited_list
583 - OS::TripleO::Services::NovaCompute
584 - OS::TripleO::Services::Ntp
585 description: A list of service resources (configured in the Heat
586 resource_registry) which represent nested stacks
587 for each service that should get installed on the Compute Nodes.
588 type: comma_delimited_list
590 # Block storage specific parameters
595 default: overcloud-full
597 OvercloudBlockStorageFlavor:
598 description: Flavor for block storage nodes to request when deploying.
602 - custom_constraint: nova.flavor
603 BlockStorageExtraConfig:
606 BlockStorage specific configuration to inject into the cluster. Same
607 structure as ExtraConfig.
609 BlockStorageSchedulerHints:
611 description: Optional scheduler hints to pass to nova
613 BlockStorageServices:
615 - OS::TripleO::Services::CinderVolume
616 description: A list of service resources (configured in the Heat
617 resource_registry) which represent nested stacks
618 for each service that should get installed on the BlockStorage nodes.
619 type: comma_delimited_list
621 # Object storage specific parameters
625 OvercloudSwiftStorageFlavor:
626 description: Flavor for Swift storage nodes to request when deploying.
630 - custom_constraint: nova.flavor
632 default: overcloud-full
634 ObjectStorageExtraConfig:
637 ObjectStorage specific configuration to inject into the cluster. Same
638 structure as ExtraConfig.
640 ObjectStorageSchedulerHints:
642 description: Optional scheduler hints to pass to nova
644 ObjectStorageServices:
646 - OS::TripleO::Services::Ntp
647 - OS::TripleO::Services::SwiftStorage
648 description: A list of service resources (configured in the Heat
649 resource_registry) which represent nested stacks
650 for each service that should get installed on the ObjectStorage nodes.
651 Note this role currently only supports steps 2, 3 and 4 configuration.
652 type: comma_delimited_list
655 # Ceph storage specific parameters
660 default: overcloud-full
662 OvercloudCephStorageFlavor:
664 description: Flavor for Ceph storage nodes to request when deploying.
667 - custom_constraint: nova.flavor
668 CephStorageExtraConfig:
671 CephStorage specific configuration to inject into the cluster. Same
672 structure as ExtraConfig.
674 CephStorageSchedulerHints:
676 description: Optional scheduler hints to pass to nova
680 - OS::TripleO::Services::Ntp
681 description: A list of service resources (configured in the Heat
682 resource_registry) which represent nested stacks
683 for each service that should get installed on the CephStorage nodes.
684 type: comma_delimited_list
686 # Hostname format for each role
687 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
688 # and %stackname% is replaced with OS::stack_name in the template below.
689 # If you want to use the heat generated names, pass '' (empty string).
690 ControllerHostnameFormat:
692 description: Format for Controller node hostnames
693 default: '%stackname%-controller-%index%'
694 ComputeHostnameFormat:
696 description: Format for Compute node hostnames
697 default: '%stackname%-novacompute-%index%'
698 BlockStorageHostnameFormat:
700 description: Format for BlockStorage node hostnames
701 default: '%stackname%-blockstorage-%index%'
702 ObjectStorageHostnameFormat:
704 description: Format for SwiftStorage node hostnames
705 default: '%stackname%-objectstorage-%index%'
706 CephStorageHostnameFormat:
708 description: Format for CephStorage node hostnames
709 default: '%stackname%-cephstorage-%index%'
711 # Identifiers to trigger tasks on nodes
716 Setting to a previously unused value during stack-update will trigger
717 package update on all nodes
722 Setting this to a unique value will re-run any deployment tasks which
723 perform configuration on a Heat stack-update.
725 # If you want to remove a specific node from a resource group, you can pass
726 # the node name or id as a <Group>RemovalPolicies parameter, for example:
727 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
728 ControllerRemovalPolicies:
732 List of resources to be removed from ControllerResourceGroup when
733 doing an update which requires removal of specific resources.
734 ComputeRemovalPolicies:
738 List of resources to be removed from ComputeResourceGroup when
739 doing an update which requires removal of specific resources.
740 BlockStorageRemovalPolicies:
744 List of resources to be removed from BlockStorageResourceGroup when
745 doing an update which requires removal of specific resources.
746 ObjectStorageRemovalPolicies:
750 List of resources to be removed from ObjectStorageResourceGroup when
751 doing an update which requires removal of specific resources.
752 CephStorageRemovalPolicies:
756 List of resources to be removed from CephStorageResourceGroup when
757 doing an update which requires removal of specific resources.
761 description: Do not use deprecated params, they will be removed.
763 - controllerExtraConfig
768 HeatAuthEncryptionKey:
769 type: OS::Heat::RandomString
772 type: OS::Heat::RandomString
777 type: OS::Heat::RandomString
782 type: OS::TripleO::EndpointMap
784 CloudName: {get_param: CloudName}
785 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
786 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
787 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
788 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
789 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
790 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
791 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
792 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
793 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
794 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
795 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
796 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
797 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
798 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
799 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
801 ControllerServiceChain:
802 type: OS::TripleO::Services
805 Services: {get_param: ControllerServices}
806 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
809 type: OS::Heat::ResourceGroup
812 count: {get_param: ControllerCount}
813 removal_policies: {get_param: ControllerRemovalPolicies}
815 type: OS::TripleO::Controller
817 AdminPassword: {get_param: AdminPassword}
818 AodhPassword: {get_param: AodhPassword}
819 CeilometerBackend: {get_param: CeilometerBackend}
820 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
821 CeilometerPassword: {get_param: CeilometerPassword}
822 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
823 CloudDomain: {get_param: CloudDomain}
824 ControlVirtualInterface: {get_param: ControlVirtualInterface}
825 controllerExtraConfig: {get_param: controllerExtraConfig}
826 CorosyncIPv6: {get_param: CorosyncIPv6}
827 Debug: {get_param: Debug}
828 EnableFencing: {get_param: EnableFencing}
829 ManageFirewall: {get_param: ManageFirewall}
830 PurgeFirewallRules: {get_param: PurgeFirewallRules}
831 EnableGalera: {get_param: EnableGalera}
832 EnableCephStorage: {get_param: ControllerEnableCephStorage}
833 ExtraConfig: {get_param: ExtraConfig}
834 FencingConfig: {get_param: FencingConfig}
835 Flavor: {get_param: OvercloudControlFlavor}
836 GnocchiPassword: {get_param: GnocchiPassword}
837 GnocchiBackend: {get_param: GnocchiBackend}
838 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
839 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
840 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
841 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
842 HorizonSecret: {get_resource: HorizonSecret}
843 Image: {get_param: controllerImage}
844 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
845 InstanceNameTemplate: {get_param: InstanceNameTemplate}
846 KeyName: {get_param: KeyName}
847 MemcachedIPv6: {get_param: MemcachedIPv6}
848 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
849 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
850 MysqlMaxConnections: {get_param: MysqlMaxConnections}
851 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
852 NeutronTenantMtu: {get_param: NeutronTenantMtu}
853 NeutronPublicInterface: {get_param: NeutronPublicInterface}
854 NeutronPassword: {get_param: NeutronPassword}
855 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
856 NovaIPv6: {get_param: NovaIPv6}
857 NovaPassword: {get_param: NovaPassword}
858 PcsdPassword: {get_resource: PcsdPassword}
859 PublicVirtualInterface: {get_param: PublicVirtualInterface}
860 RabbitPassword: {get_param: RabbitPassword}
861 RabbitUserName: {get_param: RabbitUserName}
862 RabbitCookie: {get_attr: [RabbitCookie, value]}
863 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
864 RabbitClientPort: {get_param: RabbitClientPort}
865 RedisPassword: {get_param: RedisPassword}
866 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
867 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
868 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
869 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
870 SwiftHashSuffix: {get_param: SwiftHashSuffix}
871 SwiftMinPartHours: {get_param: SwiftMinPartHours}
872 SwiftPartPower: {get_param: SwiftPartPower}
873 SwiftReplicas: { get_param: SwiftReplicas}
874 TimeZone: {get_param: TimeZone}
875 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
876 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
877 ServiceNetMap: {get_param: ServiceNetMap}
878 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
879 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
880 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
881 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
882 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
883 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
884 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
885 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
886 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
887 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
888 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
889 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
890 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
891 UpdateIdentifier: {get_param: UpdateIdentifier}
894 template: {get_param: ControllerHostnameFormat}
896 '%stackname%': {get_param: 'OS::stack_name'}
898 ServerMetadata: {get_param: ServerMetadata}
899 SchedulerHints: {get_param: ControllerSchedulerHints}
900 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
903 type: OS::TripleO::Services
905 Services: {get_param: ComputeServices}
906 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
909 type: OS::Heat::ResourceGroup
912 count: {get_param: ComputeCount}
913 removal_policies: {get_param: ComputeRemovalPolicies}
915 type: OS::TripleO::Compute
917 AdminPassword: {get_param: AdminPassword}
918 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
919 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
920 CeilometerPassword: {get_param: CeilometerPassword}
921 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
922 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
923 Debug: {get_param: Debug}
924 ExtraConfig: {get_param: ExtraConfig}
925 Flavor: {get_param: OvercloudComputeFlavor}
926 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
927 Image: {get_param: NovaImage}
928 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
929 KeyName: {get_param: KeyName}
930 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
931 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
932 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
933 NeutronTenantMtu: {get_param: NeutronTenantMtu}
934 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
935 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
936 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
937 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
938 NeutronNetworkType: {get_param: NeutronNetworkType}
939 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
940 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
941 NeutronPassword: {get_param: NeutronPassword}
942 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
943 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
944 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
945 NeutronCorePlugin: {get_param: NeutronCorePlugin}
946 NeutronServicePlugins: {get_param: NeutronServicePlugins}
947 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
948 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
949 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
950 # L3 HA and Failover is not relevant for Computes, should be removed
951 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
952 NeutronL3HA: {get_param: NeutronL3HA}
953 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
954 NovaComputeDriver: {get_param: NovaComputeDriver}
955 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
956 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
957 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
958 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
959 NovaIPv6: {get_param: NovaIPv6}
960 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
961 NovaPassword: {get_param: NovaPassword}
962 NovaOVSBridge: {get_param: NovaOVSBridge}
963 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
964 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
965 RabbitPassword: {get_param: RabbitPassword}
966 RabbitUserName: {get_param: RabbitUserName}
967 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
968 RabbitClientPort: {get_param: RabbitClientPort}
969 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
970 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
971 ServiceNetMap: {get_param: ServiceNetMap}
972 TimeZone: {get_param: TimeZone}
973 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
974 UpdateIdentifier: {get_param: UpdateIdentifier}
977 template: {get_param: ComputeHostnameFormat}
979 '%stackname%': {get_param: 'OS::stack_name'}
980 CloudDomain: {get_param: CloudDomain}
981 ServerMetadata: {get_param: ServerMetadata}
982 SchedulerHints: {get_param: NovaComputeSchedulerHints}
984 ServiceConfigSettings: {get_attr: [ComputeServiceChain, config_settings]}
986 BlockStorageServiceChain:
987 type: OS::TripleO::Services
989 Services: {get_param: BlockStorageServices}
990 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
993 type: OS::Heat::ResourceGroup
996 count: {get_param: BlockStorageCount}
997 removal_policies: {get_param: BlockStorageRemovalPolicies}
999 type: OS::TripleO::BlockStorage
1001 Image: {get_param: BlockStorageImage}
1002 KeyName: {get_param: KeyName}
1003 Flavor: {get_param: OvercloudBlockStorageFlavor}
1004 TimeZone: {get_param: TimeZone}
1005 NtpServer: {get_param: NtpServer}
1006 UpdateIdentifier: {get_param: UpdateIdentifier}
1009 template: {get_param: BlockStorageHostnameFormat}
1011 '%stackname%': {get_param: 'OS::stack_name'}
1012 ServiceNetMap: {get_param: ServiceNetMap}
1013 ExtraConfig: {get_param: ExtraConfig}
1014 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1015 CloudDomain: {get_param: CloudDomain}
1016 ServerMetadata: {get_param: ServerMetadata}
1017 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1018 NodeIndex: '%index%'
1019 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, config_settings]}
1021 ObjectStorageServiceChain:
1022 type: OS::TripleO::Services
1024 Services: {get_param: ObjectStorageServices}
1025 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1028 type: OS::Heat::ResourceGroup
1029 depends_on: Networks
1031 count: {get_param: ObjectStorageCount}
1032 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1034 type: OS::TripleO::ObjectStorage
1036 KeyName: {get_param: KeyName}
1037 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1038 HashSuffix: {get_param: SwiftHashSuffix}
1039 MinPartHours: {get_param: SwiftMinPartHours}
1040 PartPower: {get_param: SwiftPartPower}
1041 Image: {get_param: SwiftStorageImage}
1042 Replicas: { get_param: SwiftReplicas}
1043 TimeZone: {get_param: TimeZone}
1044 UpdateIdentifier: {get_param: UpdateIdentifier}
1045 ServiceNetMap: {get_param: ServiceNetMap}
1048 template: {get_param: ObjectStorageHostnameFormat}
1050 '%stackname%': {get_param: 'OS::stack_name'}
1051 ExtraConfig: {get_param: ExtraConfig}
1052 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1053 CloudDomain: {get_param: CloudDomain}
1054 ServerMetadata: {get_param: ServerMetadata}
1055 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1056 NodeIndex: '%index%'
1057 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, config_settings]}
1059 CephStorageServiceChain:
1060 type: OS::TripleO::Services
1062 Services: {get_param: CephStorageServices}
1063 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1066 type: OS::Heat::ResourceGroup
1067 depends_on: Networks
1069 count: {get_param: CephStorageCount}
1070 removal_policies: {get_param: CephStorageRemovalPolicies}
1072 type: OS::TripleO::CephStorage
1074 Image: {get_param: CephStorageImage}
1075 KeyName: {get_param: KeyName}
1076 Flavor: {get_param: OvercloudCephStorageFlavor}
1077 ServiceNetMap: {get_param: ServiceNetMap}
1078 TimeZone: {get_param: TimeZone}
1079 UpdateIdentifier: {get_param: UpdateIdentifier}
1082 template: {get_param: CephStorageHostnameFormat}
1084 '%stackname%': {get_param: 'OS::stack_name'}
1085 ExtraConfig: {get_param: ExtraConfig}
1086 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1087 CloudDomain: {get_param: CloudDomain}
1088 ServerMetadata: {get_param: ServerMetadata}
1089 SchedulerHints: {get_param: CephStorageSchedulerHints}
1090 NodeIndex: '%index%'
1091 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1093 ControllerIpListMap:
1094 type: OS::TripleO::Network::Ports::NetIpListMap
1096 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1097 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1098 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1099 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1100 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1101 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1102 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1105 type: OS::TripleO::AllNodes::SoftwareConfig
1107 compute_hosts: {get_attr: [Compute, hosts_entry]}
1108 controller_hosts: {get_attr: [Controller, hosts_entry]}
1109 controller_ips: {get_attr: [Controller, ip_address]}
1110 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1111 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1112 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1113 controller_names: {get_attr: [Controller, hostname]}
1114 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1115 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1116 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1117 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1118 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1119 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1120 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1121 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1122 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1123 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1124 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1125 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1126 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1127 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1128 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1129 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1130 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1131 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1132 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1133 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1134 DeployIdentifier: {get_param: DeployIdentifier}
1135 UpdateIdentifier: {get_param: UpdateIdentifier}
1138 type: OS::Heat::RandomString
1142 MysqlClusterUniquePart:
1143 type: OS::Heat::RandomString
1148 type: OS::Heat::RandomString
1151 salt: {get_param: RabbitCookieSalt}
1153 # creates the network architecture
1155 type: OS::TripleO::Network
1158 type: OS::Neutron::Port
1159 depends_on: Networks
1161 name: control_virtual_ip
1162 network: {get_param: NeutronControlPlaneID}
1163 fixed_ips: {get_param: ControlFixedIPs}
1164 replacement_policy: AUTO
1167 depends_on: Networks
1168 type: OS::TripleO::Network::Ports::RedisVipPort
1170 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1171 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1172 PortName: redis_virtual_ip
1173 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1176 # The public VIP is on the External net, falls back to ctlplane
1178 depends_on: Networks
1179 type: OS::TripleO::Network::Ports::ExternalVipPort
1181 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1182 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1183 PortName: public_virtual_ip
1184 FixedIPs: {get_param: PublicVirtualFixedIPs}
1186 InternalApiVirtualIP:
1187 depends_on: Networks
1188 type: OS::TripleO::Network::Ports::InternalApiVipPort
1190 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1191 PortName: internal_api_virtual_ip
1192 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1195 depends_on: Networks
1196 type: OS::TripleO::Network::Ports::StorageVipPort
1198 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1199 PortName: storage_virtual_ip
1200 FixedIPs: {get_param: StorageVirtualFixedIPs}
1202 StorageMgmtVirtualIP:
1203 depends_on: Networks
1204 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1206 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1207 PortName: storage_management_virtual_ip
1208 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1211 type: OS::TripleO::Network::Ports::NetVipMap
1213 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1214 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1215 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1216 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1217 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1218 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1219 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1220 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1221 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1222 # No tenant or management VIP required
1225 type: OS::TripleO::VipConfig
1228 type: OS::Heat::StructuredDeployments
1231 config: {get_resource: VipConfig}
1232 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1234 # service VIP mappings
1235 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1236 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1237 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1238 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1239 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1240 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1241 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1242 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1243 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1244 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1245 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1246 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1247 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1248 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1249 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1250 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1251 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1252 # direct configuration of Virtual IPs for each network
1253 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1254 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1255 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1256 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1257 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1258 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1260 ControllerBootstrapNodeConfig:
1261 type: OS::TripleO::BootstrapNode::SoftwareConfig
1263 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1264 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1266 ControllerBootstrapNodeDeployment:
1267 type: OS::Heat::StructuredDeployments
1269 name: ControllerBootstrapNodeDeployment
1270 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1271 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1273 ControllerSwiftDeployment:
1274 type: OS::Heat::StructuredDeployments
1276 name: ControllerSwiftDeployment
1277 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1278 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1280 ObjectStorageSwiftDeployment:
1281 type: OS::Heat::StructuredDeployments
1283 name: ObjectStorageSwiftDeployment
1284 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1285 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1287 SwiftDevicesAndProxyConfig:
1288 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1290 controller_swift_devices: {get_attr: [Controller, swift_device]}
1291 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1292 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1294 ComputeCephDeployment:
1295 type: OS::Heat::StructuredDeployments
1297 name: ComputeCephDeployment
1298 config: {get_attr: [CephClusterConfig, config_id]}
1299 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1301 ControllerCephDeployment:
1302 type: OS::Heat::StructuredDeployments
1304 name: ControllerCephDeployment
1305 config: {get_attr: [CephClusterConfig, config_id]}
1306 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1308 CephStorageCephDeployment:
1309 type: OS::Heat::StructuredDeployments
1311 name: CephStorageCephDeployment
1312 config: {get_attr: [CephClusterConfig, config_id]}
1313 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1316 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1318 ceph_storage_count: {get_param: CephStorageCount}
1319 ceph_fsid: {get_param: CephClusterFSID}
1320 ceph_mon_key: {get_param: CephMonKey}
1321 ceph_admin_key: {get_param: CephAdminKey}
1322 ceph_client_key: {get_param: CephClientKey}
1323 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1324 ceph_mon_names: {get_attr: [Controller, hostname]}
1325 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1327 ControllerAllNodesDeployment:
1328 type: OS::Heat::StructuredDeployments
1330 name: ControllerAllNodesDeployment
1331 config: {get_attr: [allNodesConfig, config_id]}
1332 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1334 ComputeAllNodesDeployment:
1335 type: OS::Heat::StructuredDeployments
1337 name: ComputeAllNodesDeployment
1338 config: {get_attr: [allNodesConfig, config_id]}
1339 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1341 BlockStorageAllNodesDeployment:
1342 type: OS::Heat::StructuredDeployments
1344 name: BlockStorageAllNodesDeployment
1345 config: {get_attr: [allNodesConfig, config_id]}
1346 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1348 ObjectStorageAllNodesDeployment:
1349 type: OS::Heat::StructuredDeployments
1351 name: ObjectStorageAllNodesDeployment
1352 config: {get_attr: [allNodesConfig, config_id]}
1353 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1355 CephStorageAllNodesDeployment:
1356 type: OS::Heat::StructuredDeployments
1358 name: CephStorageAllNodesDeployment
1359 config: {get_attr: [allNodesConfig, config_id]}
1360 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1362 # All Nodes Validations
1363 AllNodesValidationConfig:
1364 type: OS::TripleO::AllNodes::Validation
1369 - - {get_attr: [Controller, resource.0.external_ip_address]}
1370 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1371 - {get_attr: [Controller, resource.0.storage_ip_address]}
1372 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1373 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1375 ControllerAllNodesValidationDeployment:
1376 type: OS::Heat::StructuredDeployments
1377 depends_on: ControllerAllNodesDeployment
1379 name: ControllerAllNodesValidationDeployment
1380 config: {get_resource: AllNodesValidationConfig}
1381 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1383 ComputeAllNodesValidationDeployment:
1384 type: OS::Heat::StructuredDeployments
1385 depends_on: ComputeAllNodesDeployment
1387 name: ComputeAllNodesValidationDeployment
1388 config: {get_resource: AllNodesValidationConfig}
1389 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1391 BlockStorageAllNodesValidationDeployment:
1392 type: OS::Heat::StructuredDeployments
1393 depends_on: BlockStorageAllNodesDeployment
1395 name: BlockStorageAllNodesValidationDeployment
1396 config: {get_resource: AllNodesValidationConfig}
1397 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1399 ObjectStorageAllNodesValidationDeployment:
1400 type: OS::Heat::StructuredDeployments
1401 depends_on: ObjectStorageAllNodesDeployment
1403 name: ObjectStorageAllNodesValidationDeployment
1404 config: {get_resource: AllNodesValidationConfig}
1405 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1407 CephStorageAllNodesValidationDeployment:
1408 type: OS::Heat::StructuredDeployments
1409 depends_on: CephStorageAllNodesDeployment
1411 name: CephStorageAllNodesValidationDeployment
1412 config: {get_resource: AllNodesValidationConfig}
1413 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1416 type: OS::TripleO::Tasks::UpdateWorkflow
1418 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1419 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1420 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1421 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1422 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1424 deploy_identifier: {get_param: DeployIdentifier}
1425 update_identifier: {get_param: UpdateIdentifier}
1427 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1428 # the nested template may configure each role differently (or not at all)
1429 AllNodesExtraConfig:
1430 type: OS::TripleO::AllNodesExtraConfig
1433 - ComputeAllNodesValidationDeployment
1434 - BlockStorageAllNodesValidationDeployment
1435 - ObjectStorageAllNodesValidationDeployment
1436 - CephStorageAllNodesValidationDeployment
1437 - ControllerAllNodesValidationDeployment
1439 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1440 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1441 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1442 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1443 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1445 # Nested stack deployment runs after all other controller deployments
1446 ControllerNodesPostDeployment:
1447 type: OS::TripleO::ControllerPostDeployment
1448 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1450 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1451 NodeConfigIdentifiers:
1452 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1453 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1454 deployment_identifier: {get_param: DeployIdentifier}
1455 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1457 ComputeNodesPostDeployment:
1458 type: OS::TripleO::ComputePostDeployment
1459 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1461 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1462 NodeConfigIdentifiers:
1463 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1464 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1465 deployment_identifier: {get_param: DeployIdentifier}
1466 StepConfig: {get_attr: [ComputeServiceChain, step_config]}
1468 ObjectStorageNodesPostDeployment:
1469 type: OS::TripleO::ObjectStoragePostDeployment
1470 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1472 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1473 NodeConfigIdentifiers:
1474 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1475 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1476 deployment_identifier: {get_param: DeployIdentifier}
1477 StepConfig: {get_attr: [ObjectStorageServiceChain, step_config]}
1479 BlockStorageNodesPostDeployment:
1480 type: OS::TripleO::BlockStoragePostDeployment
1481 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1483 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1484 NodeConfigIdentifiers:
1485 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1486 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1487 deployment_identifier: {get_param: DeployIdentifier}
1488 StepConfig: {get_attr: [BlockStorageServiceChain, step_config]}
1491 CephStorageNodesPostDeployment:
1492 type: OS::TripleO::CephStoragePostDeployment
1493 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1495 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1496 NodeConfigIdentifiers:
1497 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1498 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1499 deployment_identifier: {get_param: DeployIdentifier}
1500 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1504 description: URL for the Overcloud Keystone service
1505 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1507 description: Keystone Admin VIP endpoint
1508 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1510 description: Controller VIP for public API endpoints
1511 value: {get_attr: [VipMap, net_ip_map, external]}
1513 description: VIP for Aodh API internal endpoint
1514 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1515 CeilometerInternalVip:
1516 description: VIP for Ceilometer API internal endpoint
1517 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1519 description: VIP for Cinder API internal endpoint
1520 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1522 description: VIP for Glance API internal endpoint
1523 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1525 description: VIP for Gnocchi API internal endpoint
1526 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1528 description: VIP for Heat API internal endpoint
1529 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1530 KeystoneInternalVip:
1531 description: VIP for Keystone API internal endpoint
1532 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1534 description: VIP for Neutron API internal endpoint
1535 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1537 description: VIP for Nova API internal endpoint
1538 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1540 description: VIP for Sahara API internal endpoint
1541 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1543 description: VIP for Swift Proxy internal endpoint
1544 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1547 Mapping of the resources with the needed info for their endpoints.
1548 This includes the protocol used, the IP, port and also a full
1549 representation of the URI.
1550 value: {get_attr: [EndpointMap, endpoint_map]}
1553 The content that should be appended to your /etc/hosts if you want to get
1554 hostname-based access to the deployed nodes (useful for testing without
1556 value: {get_attr: [allNodesConfig, hosts_entries]}