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 CinderEnableIscsiBackend:
71 description: Whether to enable or not the Iscsi backend for Cinder
73 CinderEnableRbdBackend:
75 description: Whether to enable or not the Rbd backend for Cinder
79 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
83 description: Should be used for arbitrary ips.
87 description: Enable IPv6 in Corosync
91 description: Set to True to enable debugging on all services.
95 description: Syslog address where HAproxy will send its log
99 description: A list of IP/Hostname allowed to connect to horizon
100 type: comma_delimited_list
102 default: 'REBUILD_PRESERVE_EPHEMERAL'
103 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
105 InternalApiVirtualFixedIPs:
108 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
109 [{'ip_address':'1.2.3.4'}]
113 description: Name of an existing Nova key pair to enable SSH access to the instances
116 - custom_constraint: nova.keypair
119 description: Enable IPv6 features in Memcached.
121 NeutronBridgeMappings:
123 The OVS logical->physical bridge mappings to use. See the Neutron
124 documentation for details. Defaults to mapping br-ex - the external
125 bridge on hosts - to a physical name 'datacentre' which can be used
126 to create provider networks (and we use this for the default floating
127 network) - if changing this either use different post-install network
128 scripts or be sure to keep 'datacentre' as a mapping network name.
129 type: comma_delimited_list
130 default: "datacentre:br-ex"
131 NeutronControlPlaneID:
134 description: Neutron ID or name for ctlplane network.
135 NeutronEnableTunnelling:
141 Enable/disable the L2 population feature in the Neutron agents.
144 type: comma_delimited_list
145 default: 'datacentre'
147 If set, flat networks to configure in neutron plugins. Defaults to
148 'datacentre' to permit external network creation.
151 description: The tenant network type for Neutron.
152 type: comma_delimited_list
154 description: The password for the neutron service account, used by neutron agents.
157 NeutronPublicInterface:
159 description: What interface to bridge onto br-ex for network nodes.
161 NeutronMetadataProxySharedSecret:
162 description: Shared secret to prevent spoofing
167 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
168 be at least 50 bytes smaller than the MTU on the physical network. This
169 value will be used to set the MTU on the virtual Ethernet device.
170 This value will be used to construct the NeutronDnsmasqOptions, since that
171 will determine the MTU that is assigned to the VM host through DHCP.
177 The tunnel types for the Neutron tenant network.
178 type: comma_delimited_list
179 type: comma_delimited_list
183 The core plugin for Neutron. The value should be the entrypoint to be loaded
184 from neutron.core_plugins namespace.
186 NeutronServicePlugins:
187 default: "router,qos"
189 Comma-separated list of service plugin entrypoints to be loaded from the
190 neutron.service_plugins namespace.
191 type: comma_delimited_list
193 default: "vxlan,vlan,flat,gre"
195 Comma-separated list of network type driver entrypoints to be loaded.
196 type: comma_delimited_list
197 NeutronMechanismDrivers:
198 default: 'openvswitch'
200 The mechanism drivers for the Neutron tenant network.
201 type: comma_delimited_list
202 type: comma_delimited_list
203 NeutronAgentExtensions:
206 Comma-separated list of extensions enabled for the Neutron agents.
207 type: comma_delimited_list
208 NeutronAllowL3AgentFailover:
210 description: Allow automatic l3-agent failover
214 description: Whether to enable l3-agent HA
218 description: Enable IPv6 features in Nova
221 description: The password for the nova service account, used by nova-api.
226 description: Comma-separated list of ntp servers
227 type: comma_delimited_list
230 description: Should MongoDb journaling be disabled
234 description: Enable IPv6 if MongoDB VIP is IPv6
236 PublicVirtualFixedIPs:
239 Control the IP allocation for the PublicVirtualInterface port. E.g.
240 [{'ip_address':'1.2.3.4'}]
245 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
248 description: The username for RabbitMQ
251 description: The password for RabbitMQ
257 Rabbit client subscriber parameter to specify
258 an SSL connection to the RabbitMQ host.
262 description: Set rabbit subscriber port, change this if using SSL
265 description: The password for Redis
268 SnmpdReadonlyUserName:
269 default: ro_snmp_user
270 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
272 SnmpdReadonlyUserPassword:
273 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
276 StorageVirtualFixedIPs:
279 Control the IP allocation for the StorageVirtualInterface port. E.g.
280 [{'ip_address':'1.2.3.4'}]
282 StorageMgmtVirtualFixedIPs:
285 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
286 [{'ip_address':'1.2.3.4'}]
290 description: The timezone to be set on nodes.
293 default: 'localdomain'
296 The DNS domain used for the hosts. This should match the dhcp_domain
297 configured in the Undercloud neutron. Defaults to localdomain.
301 Extra properties or metadata passed to Nova for the created nodes in
302 the overcloud. It's accessible via the Nova metadata API.
305 # Controller-specific params
306 CinderLVMLoopDeviceSize:
308 description: The size of the loopback file used by the cinder LVM driver.
311 description: The password for the cinder service account, used by cinder-api.
316 description: The iSCSI helper to use with cinder.
323 controllerExtraConfig:
326 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
330 default: overcloud-full
332 - custom_constraint: glance.image
333 OvercloudControlFlavor:
334 description: Flavor for control nodes to request when deploying.
338 - custom_constraint: nova.flavor
339 ControlVirtualInterface:
341 description: Interface where virtual ip will be assigned.
345 description: Whether to enable fencing in Pacemaker or not.
349 description: Whether to use Galera instead of regular MariaDB.
351 ControllerEnableCephStorage:
353 description: Whether to deploy Ceph Storage (OSD) on the Controller
355 ControllerEnableSwiftStorage:
357 description: Whether to enable Swift Storage on the Controller
359 ControllerSchedulerHints:
361 description: Optional scheduler hints to pass to nova
366 Additional configuration to inject into the cluster. The format required
367 may be implementation specific, e.g puppet hieradata. Any role specific
368 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
373 Pacemaker fencing configuration. The JSON should have
374 the following structure:
378 "agent": "AGENT_NAME",
379 "host_mac": "HOST_MAC_ADDRESS",
380 "params": {"PARAM_NAME": "PARAM_VALUE"}
388 "agent": "fence_xvm",
389 "host_mac": "52:54:00:aa:bb:cc",
391 "multicast_address": "225.0.0.12",
392 "port": "baremetal_0",
394 "manage_key_file": true,
395 "key_file": "/etc/fence_xvm.key",
396 "key_file_password": "abcdef"
404 description: The short name of the Gnocchi backend to use. Should be one
405 of swift, rbd or file
408 - allowed_values: ['swift', 'file', 'rbd']
409 GnocchiIndexerBackend:
411 description: The short name of the Gnocchi indexer backend to use.
414 description: The password for the gnocchi service account.
417 InstanceNameTemplate:
418 default: 'instance-%08x'
419 description: Template string to be used to generate instance names
423 description: Whether to manage IPtables rules.
427 description: Whether IPtables rules should be purged before setting up the ones.
429 MysqlInnodbBufferPoolSize:
431 Specifies the size of the buffer pool in megabytes. Setting to
432 zero should be interpreted as "no value" and will defer to the
437 description: Configures MySQL max_connections config setting
440 PublicVirtualInterface:
443 Specifies the interface where the public-facing virtual ip will be assigned.
444 This should be int_public when a VLAN is being used.
447 description: A random string to be used as a salt when hashing to determine mappings in the ring.
452 description: Value of mount_check in Swift account/container/object -server.conf
457 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
460 description: Partition Power to use when building Swift rings
465 description: How many replicas to use in the swift rings.
467 # Compute-specific params
468 CeilometerComputeAgent:
469 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
473 - allowed_values: ['', Present]
477 HypervisorNeutronPhysicalBridge:
480 An OVS bridge to create on each hypervisor. This defaults to br-ex the
481 same as the control plane nodes, as we have a uniform configuration of
482 the openvswitch agent. Typically should not need to be changed.
484 HypervisorNeutronPublicInterface:
486 description: What interface to add to the HypervisorNeutronPhysicalBridge.
488 NeutronNetworkVLANRanges:
489 default: 'datacentre:1:1000'
491 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
492 Neutron documentation for permitted values. Defaults to permitting any
493 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
494 type: comma_delimited_list
497 default: libvirt.LibvirtDriver
498 NovaComputeExtraConfig:
501 NovaCompute specific configuration to inject into the cluster. Same
502 structure as ExtraConfig.
504 NovaComputeLibvirtType:
507 NovaComputeLibvirtVifDriver:
509 description: Libvirt VIF driver configuration for the network
511 NovaComputeSchedulerHints:
513 description: Optional scheduler hints to pass to nova
515 NovaEnableRbdBackend:
517 description: Whether to enable or not the Rbd backend for Nova
521 default: overcloud-full
523 - custom_constraint: glance.image
526 description: Name of integration bridge used by Open vSwitch
528 NovaSecurityGroupAPI:
530 description: The full class name of the security API class
532 OvercloudComputeFlavor:
533 description: Use this flavor
537 - custom_constraint: nova.flavor
540 NeutronTenantNetwork: tenant
541 CeilometerApiNetwork: internal_api
542 AodhApiNetwork: internal_api
543 GnocchiApiNetwork: internal_api
544 MongoDbNetwork: internal_api
545 CinderApiNetwork: internal_api
546 CinderIscsiNetwork: storage
547 GlanceApiNetwork: storage
548 GlanceRegistryNetwork: internal_api
549 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
550 KeystonePublicApiNetwork: internal_api
551 NeutronApiNetwork: internal_api
552 HeatApiNetwork: internal_api
553 NovaApiNetwork: internal_api
554 NovaMetadataNetwork: internal_api
555 NovaVncProxyNetwork: internal_api
556 SwiftMgmtNetwork: storage_mgmt
557 SwiftProxyNetwork: storage
558 SaharaApiNetwork: internal_api
559 HorizonNetwork: internal_api
560 MemcachedNetwork: internal_api
561 RabbitMqNetwork: internal_api
562 RedisNetwork: internal_api
563 MysqlNetwork: internal_api
564 CephClusterNetwork: storage_mgmt
565 CephPublicNetwork: storage
566 ControllerHostnameResolveNetwork: internal_api
567 ComputeHostnameResolveNetwork: internal_api
568 BlockStorageHostnameResolveNetwork: internal_api
569 ObjectStorageHostnameResolveNetwork: internal_api
570 CephStorageHostnameResolveNetwork: storage
571 description: Mapping of service_name -> network name. Typically set
572 via parameter_defaults in the resource registry.
577 - OS::TripleO::Services::CinderApi
578 - OS::TripleO::Services::CinderScheduler
579 - OS::TripleO::Services::CinderVolume
580 - OS::TripleO::Services::Keystone
581 - OS::TripleO::Services::GlanceApi
582 - OS::TripleO::Services::GlanceRegistry
583 - OS::TripleO::Services::HeatApi
584 - OS::TripleO::Services::HeatApiCfn
585 - OS::TripleO::Services::HeatApiCloudwatch
586 - OS::TripleO::Services::HeatEngine
587 - OS::TripleO::Services::NeutronDhcpAgent
588 - OS::TripleO::Services::NeutronL3Agent
589 - OS::TripleO::Services::NeutronMetadataAgent
590 - OS::TripleO::Services::NeutronServer
591 - OS::TripleO::Services::NeutronCorePlugin
592 - OS::TripleO::Services::NeutronOvsAgent
593 - OS::TripleO::Services::RabbitMQ
594 - OS::TripleO::Services::HAproxy
595 - OS::TripleO::Services::Keepalived
596 - OS::TripleO::Services::Memcached
597 - OS::TripleO::Services::SwiftProxy
598 - OS::TripleO::Services::Redis
599 - OS::TripleO::Services::NovaConductor
600 description: A list of service resources (configured in the Heat
601 resource_registry) which represent nested stacks
602 for each service that should get installed on the Controllers.
603 type: comma_delimited_list
607 description: A list of service resources (configured in the Heat
608 resource_registry) which represent nested stacks
609 for each service that should get installed on the Compute Nodes.
610 type: comma_delimited_list
612 # Block storage specific parameters
617 default: overcloud-full
619 OvercloudBlockStorageFlavor:
620 description: Flavor for block storage nodes to request when deploying.
624 - custom_constraint: nova.flavor
625 BlockStorageExtraConfig:
628 BlockStorage specific configuration to inject into the cluster. Same
629 structure as ExtraConfig.
631 BlockStorageSchedulerHints:
633 description: Optional scheduler hints to pass to nova
637 # Object storage specific parameters
641 OvercloudSwiftStorageFlavor:
642 description: Flavor for Swift storage nodes to request when deploying.
646 - custom_constraint: nova.flavor
648 default: overcloud-full
650 ObjectStorageExtraConfig:
653 ObjectStorage specific configuration to inject into the cluster. Same
654 structure as ExtraConfig.
656 ObjectStorageSchedulerHints:
658 description: Optional scheduler hints to pass to nova
660 ObjectStorageServices:
662 description: A list of service resources (configured in the Heat
663 resource_registry) which represent nested stacks
664 for each service that should get installed on the ObjectStorage nodes.
665 Note this role currently only supports steps 2, 3 and 4 configuration.
666 type: comma_delimited_list
669 # Ceph storage specific parameters
674 default: overcloud-full
676 OvercloudCephStorageFlavor:
678 description: Flavor for Ceph storage nodes to request when deploying.
681 - custom_constraint: nova.flavor
682 CephStorageExtraConfig:
685 CephStorage specific configuration to inject into the cluster. Same
686 structure as ExtraConfig.
688 CephStorageSchedulerHints:
690 description: Optional scheduler hints to pass to nova
694 description: A list of service resources (configured in the Heat
695 resource_registry) which represent nested stacks
696 for each service that should get installed on the CephStorage nodes.
697 type: comma_delimited_list
699 # Hostname format for each role
700 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
701 # and %stackname% is replaced with OS::stack_name in the template below.
702 # If you want to use the heat generated names, pass '' (empty string).
703 ControllerHostnameFormat:
705 description: Format for Controller node hostnames
706 default: '%stackname%-controller-%index%'
707 ComputeHostnameFormat:
709 description: Format for Compute node hostnames
710 default: '%stackname%-novacompute-%index%'
711 BlockStorageHostnameFormat:
713 description: Format for BlockStorage node hostnames
714 default: '%stackname%-blockstorage-%index%'
715 ObjectStorageHostnameFormat:
717 description: Format for SwiftStorage node hostnames
718 default: '%stackname%-objectstorage-%index%'
719 CephStorageHostnameFormat:
721 description: Format for CephStorage node hostnames
722 default: '%stackname%-cephstorage-%index%'
724 # Identifiers to trigger tasks on nodes
729 Setting to a previously unused value during stack-update will trigger
730 package update on all nodes
735 Setting this to a unique value will re-run any deployment tasks which
736 perform configuration on a Heat stack-update.
738 # If you want to remove a specific node from a resource group, you can pass
739 # the node name or id as a <Group>RemovalPolicies parameter, for example:
740 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
741 ControllerRemovalPolicies:
745 List of resources to be removed from ControllerResourceGroup when
746 doing an update which requires removal of specific resources.
747 ComputeRemovalPolicies:
751 List of resources to be removed from ComputeResourceGroup when
752 doing an update which requires removal of specific resources.
753 BlockStorageRemovalPolicies:
757 List of resources to be removed from BlockStorageResourceGroup when
758 doing an update which requires removal of specific resources.
759 ObjectStorageRemovalPolicies:
763 List of resources to be removed from ObjectStorageResourceGroup when
764 doing an update which requires removal of specific resources.
765 CephStorageRemovalPolicies:
769 List of resources to be removed from CephStorageResourceGroup when
770 doing an update which requires removal of specific resources.
774 description: Do not use deprecated params, they will be removed.
776 - controllerExtraConfig
781 HeatAuthEncryptionKey:
782 type: OS::Heat::RandomString
785 type: OS::Heat::RandomString
790 type: OS::Heat::RandomString
795 type: OS::TripleO::EndpointMap
797 CloudName: {get_param: CloudName}
798 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
799 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
800 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
801 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
802 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
803 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
804 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
805 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
806 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
807 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
808 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
809 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
810 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
811 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
812 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
814 ControllerServiceChain:
815 type: OS::TripleO::Services
818 Services: {get_param: ControllerServices}
819 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
822 type: OS::Heat::ResourceGroup
825 count: {get_param: ControllerCount}
826 removal_policies: {get_param: ControllerRemovalPolicies}
828 type: OS::TripleO::Controller
830 AdminPassword: {get_param: AdminPassword}
831 AodhPassword: {get_param: AodhPassword}
832 CeilometerBackend: {get_param: CeilometerBackend}
833 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
834 CeilometerPassword: {get_param: CeilometerPassword}
835 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
836 CloudDomain: {get_param: CloudDomain}
837 ControlVirtualInterface: {get_param: ControlVirtualInterface}
838 controllerExtraConfig: {get_param: controllerExtraConfig}
839 CorosyncIPv6: {get_param: CorosyncIPv6}
840 Debug: {get_param: Debug}
841 EnableFencing: {get_param: EnableFencing}
842 ManageFirewall: {get_param: ManageFirewall}
843 PurgeFirewallRules: {get_param: PurgeFirewallRules}
844 EnableGalera: {get_param: EnableGalera}
845 EnableCephStorage: {get_param: ControllerEnableCephStorage}
846 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
847 ExtraConfig: {get_param: ExtraConfig}
848 FencingConfig: {get_param: FencingConfig}
849 Flavor: {get_param: OvercloudControlFlavor}
850 GnocchiPassword: {get_param: GnocchiPassword}
851 GnocchiBackend: {get_param: GnocchiBackend}
852 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
853 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
854 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
855 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
856 HorizonSecret: {get_resource: HorizonSecret}
857 Image: {get_param: controllerImage}
858 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
859 InstanceNameTemplate: {get_param: InstanceNameTemplate}
860 KeyName: {get_param: KeyName}
861 MemcachedIPv6: {get_param: MemcachedIPv6}
862 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
863 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
864 MysqlMaxConnections: {get_param: MysqlMaxConnections}
865 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
866 NeutronTenantMtu: {get_param: NeutronTenantMtu}
867 NeutronPublicInterface: {get_param: NeutronPublicInterface}
868 NeutronPassword: {get_param: NeutronPassword}
869 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
870 NovaIPv6: {get_param: NovaIPv6}
871 NovaPassword: {get_param: NovaPassword}
872 NtpServer: {get_param: NtpServer}
873 MongoDbNoJournal: {get_param: MongoDbNoJournal}
874 MongoDbIPv6: {get_param: MongoDbIPv6}
875 PcsdPassword: {get_resource: PcsdPassword}
876 PublicVirtualInterface: {get_param: PublicVirtualInterface}
877 RabbitPassword: {get_param: RabbitPassword}
878 RabbitUserName: {get_param: RabbitUserName}
879 RabbitCookie: {get_attr: [RabbitCookie, value]}
880 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
881 RabbitClientPort: {get_param: RabbitClientPort}
882 RedisPassword: {get_param: RedisPassword}
883 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
884 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
885 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
886 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
887 SwiftHashSuffix: {get_param: SwiftHashSuffix}
888 SwiftMountCheck: {get_param: SwiftMountCheck}
889 SwiftMinPartHours: {get_param: SwiftMinPartHours}
890 SwiftPartPower: {get_param: SwiftPartPower}
891 SwiftReplicas: { get_param: SwiftReplicas}
892 TimeZone: {get_param: TimeZone}
893 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
894 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
895 ServiceNetMap: {get_param: ServiceNetMap}
896 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
897 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
898 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
899 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
900 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
901 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
902 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
903 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
904 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
905 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
906 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
907 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
908 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
909 UpdateIdentifier: {get_param: UpdateIdentifier}
912 template: {get_param: ControllerHostnameFormat}
914 '%stackname%': {get_param: 'OS::stack_name'}
916 ServerMetadata: {get_param: ServerMetadata}
917 SchedulerHints: {get_param: ControllerSchedulerHints}
918 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
921 type: OS::TripleO::Services
923 Services: {get_param: ComputeServices}
924 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
927 type: OS::Heat::ResourceGroup
930 count: {get_param: ComputeCount}
931 removal_policies: {get_param: ComputeRemovalPolicies}
933 type: OS::TripleO::Compute
935 AdminPassword: {get_param: AdminPassword}
936 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
937 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
938 CeilometerPassword: {get_param: CeilometerPassword}
939 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
940 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
941 Debug: {get_param: Debug}
942 ExtraConfig: {get_param: ExtraConfig}
943 Flavor: {get_param: OvercloudComputeFlavor}
944 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
945 Image: {get_param: NovaImage}
946 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
947 KeyName: {get_param: KeyName}
948 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
949 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
950 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
951 NeutronTenantMtu: {get_param: NeutronTenantMtu}
952 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
953 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
954 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
955 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
956 NeutronNetworkType: {get_param: NeutronNetworkType}
957 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
958 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
959 NeutronPassword: {get_param: NeutronPassword}
960 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
961 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
962 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
963 NeutronCorePlugin: {get_param: NeutronCorePlugin}
964 NeutronServicePlugins: {get_param: NeutronServicePlugins}
965 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
966 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
967 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
968 # L3 HA and Failover is not relevant for Computes, should be removed
969 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
970 NeutronL3HA: {get_param: NeutronL3HA}
971 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
972 NovaComputeDriver: {get_param: NovaComputeDriver}
973 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
974 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
975 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
976 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
977 NovaIPv6: {get_param: NovaIPv6}
978 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
979 NovaPassword: {get_param: NovaPassword}
980 NovaOVSBridge: {get_param: NovaOVSBridge}
981 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
982 NtpServer: {get_param: NtpServer}
983 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
984 RabbitPassword: {get_param: RabbitPassword}
985 RabbitUserName: {get_param: RabbitUserName}
986 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
987 RabbitClientPort: {get_param: RabbitClientPort}
988 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
989 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
990 ServiceNetMap: {get_param: ServiceNetMap}
991 TimeZone: {get_param: TimeZone}
992 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
993 UpdateIdentifier: {get_param: UpdateIdentifier}
996 template: {get_param: ComputeHostnameFormat}
998 '%stackname%': {get_param: 'OS::stack_name'}
999 CloudDomain: {get_param: CloudDomain}
1000 ServerMetadata: {get_param: ServerMetadata}
1001 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1002 NodeIndex: '%index%'
1003 ServiceConfigSettings: {get_attr: [ComputeServiceChain, config_settings]}
1007 type: OS::Heat::ResourceGroup
1008 depends_on: Networks
1010 count: {get_param: BlockStorageCount}
1011 removal_policies: {get_param: BlockStorageRemovalPolicies}
1013 type: OS::TripleO::BlockStorage
1015 Debug: {get_param: Debug}
1016 Image: {get_param: BlockStorageImage}
1017 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1018 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1019 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1020 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1021 CinderPassword: {get_param: CinderPassword}
1022 KeyName: {get_param: KeyName}
1023 Flavor: {get_param: OvercloudBlockStorageFlavor}
1024 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1025 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1026 RabbitPassword: {get_param: RabbitPassword}
1027 RabbitUserName: {get_param: RabbitUserName}
1028 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1029 RabbitClientPort: {get_param: RabbitClientPort}
1030 TimeZone: {get_param: TimeZone}
1031 NtpServer: {get_param: NtpServer}
1032 UpdateIdentifier: {get_param: UpdateIdentifier}
1035 template: {get_param: BlockStorageHostnameFormat}
1037 '%stackname%': {get_param: 'OS::stack_name'}
1038 ServiceNetMap: {get_param: ServiceNetMap}
1039 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1040 ExtraConfig: {get_param: ExtraConfig}
1041 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1042 CloudDomain: {get_param: CloudDomain}
1043 ServerMetadata: {get_param: ServerMetadata}
1044 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1045 NodeIndex: '%index%'
1047 ObjectStorageServiceChain:
1048 type: OS::TripleO::Services
1050 Services: {get_param: ObjectStorageServices}
1051 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1054 type: OS::Heat::ResourceGroup
1055 depends_on: Networks
1057 count: {get_param: ObjectStorageCount}
1058 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1060 type: OS::TripleO::ObjectStorage
1062 KeyName: {get_param: KeyName}
1063 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1064 HashSuffix: {get_param: SwiftHashSuffix}
1065 MountCheck: {get_param: SwiftMountCheck}
1066 MinPartHours: {get_param: SwiftMinPartHours}
1067 PartPower: {get_param: SwiftPartPower}
1068 Image: {get_param: SwiftStorageImage}
1069 Replicas: { get_param: SwiftReplicas}
1070 TimeZone: {get_param: TimeZone}
1071 NtpServer: {get_param: NtpServer}
1072 UpdateIdentifier: {get_param: UpdateIdentifier}
1073 ServiceNetMap: {get_param: ServiceNetMap}
1076 template: {get_param: ObjectStorageHostnameFormat}
1078 '%stackname%': {get_param: 'OS::stack_name'}
1079 ExtraConfig: {get_param: ExtraConfig}
1080 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1081 CloudDomain: {get_param: CloudDomain}
1082 ServerMetadata: {get_param: ServerMetadata}
1083 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1084 NodeIndex: '%index%'
1085 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, config_settings]}
1087 CephStorageServiceChain:
1088 type: OS::TripleO::Services
1090 Services: {get_param: CephStorageServices}
1091 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1094 type: OS::Heat::ResourceGroup
1095 depends_on: Networks
1097 count: {get_param: CephStorageCount}
1098 removal_policies: {get_param: CephStorageRemovalPolicies}
1100 type: OS::TripleO::CephStorage
1102 Image: {get_param: CephStorageImage}
1103 KeyName: {get_param: KeyName}
1104 Flavor: {get_param: OvercloudCephStorageFlavor}
1105 NtpServer: {get_param: NtpServer}
1106 ServiceNetMap: {get_param: ServiceNetMap}
1107 TimeZone: {get_param: TimeZone}
1108 UpdateIdentifier: {get_param: UpdateIdentifier}
1111 template: {get_param: CephStorageHostnameFormat}
1113 '%stackname%': {get_param: 'OS::stack_name'}
1114 ExtraConfig: {get_param: ExtraConfig}
1115 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1116 CloudDomain: {get_param: CloudDomain}
1117 ServerMetadata: {get_param: ServerMetadata}
1118 SchedulerHints: {get_param: CephStorageSchedulerHints}
1119 NodeIndex: '%index%'
1120 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1122 ControllerIpListMap:
1123 type: OS::TripleO::Network::Ports::NetIpListMap
1125 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1126 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1127 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1128 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1129 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1130 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1131 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1134 type: OS::TripleO::AllNodes::SoftwareConfig
1136 compute_hosts: {get_attr: [Compute, hosts_entry]}
1137 controller_hosts: {get_attr: [Controller, hosts_entry]}
1138 controller_ips: {get_attr: [Controller, ip_address]}
1139 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1140 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1141 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1142 controller_names: {get_attr: [Controller, hostname]}
1143 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1144 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1145 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1146 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1147 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1148 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1149 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1150 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1151 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1152 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1153 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1154 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1155 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1156 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1157 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1158 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1159 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1160 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1161 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1162 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1163 DeployIdentifier: {get_param: DeployIdentifier}
1164 UpdateIdentifier: {get_param: UpdateIdentifier}
1167 type: OS::Heat::RandomString
1171 MysqlClusterUniquePart:
1172 type: OS::Heat::RandomString
1177 type: OS::Heat::RandomString
1180 salt: {get_param: RabbitCookieSalt}
1182 # creates the network architecture
1184 type: OS::TripleO::Network
1187 type: OS::Neutron::Port
1188 depends_on: Networks
1190 name: control_virtual_ip
1191 network: {get_param: NeutronControlPlaneID}
1192 fixed_ips: {get_param: ControlFixedIPs}
1193 replacement_policy: AUTO
1196 depends_on: Networks
1197 type: OS::TripleO::Network::Ports::RedisVipPort
1199 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1200 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1201 PortName: redis_virtual_ip
1202 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1205 # The public VIP is on the External net, falls back to ctlplane
1207 depends_on: Networks
1208 type: OS::TripleO::Network::Ports::ExternalVipPort
1210 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1211 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1212 PortName: public_virtual_ip
1213 FixedIPs: {get_param: PublicVirtualFixedIPs}
1215 InternalApiVirtualIP:
1216 depends_on: Networks
1217 type: OS::TripleO::Network::Ports::InternalApiVipPort
1219 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1220 PortName: internal_api_virtual_ip
1221 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1224 depends_on: Networks
1225 type: OS::TripleO::Network::Ports::StorageVipPort
1227 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1228 PortName: storage_virtual_ip
1229 FixedIPs: {get_param: StorageVirtualFixedIPs}
1231 StorageMgmtVirtualIP:
1232 depends_on: Networks
1233 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1235 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1236 PortName: storage_management_virtual_ip
1237 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1240 type: OS::TripleO::Network::Ports::NetVipMap
1242 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1243 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1244 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1245 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1246 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1247 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1248 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1249 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1250 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1251 # No tenant or management VIP required
1254 type: OS::TripleO::VipConfig
1257 type: OS::Heat::StructuredDeployments
1260 config: {get_resource: VipConfig}
1261 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1263 # service VIP mappings
1264 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1265 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1266 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1267 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1268 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1269 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1270 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1271 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1272 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1273 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1274 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1275 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1276 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1277 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1278 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1279 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1280 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1281 # direct configuration of Virtual IPs for each network
1282 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1283 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1284 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1285 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1286 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1287 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1289 ControllerBootstrapNodeConfig:
1290 type: OS::TripleO::BootstrapNode::SoftwareConfig
1292 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1293 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1295 ControllerBootstrapNodeDeployment:
1296 type: OS::Heat::StructuredDeployments
1298 name: ControllerBootstrapNodeDeployment
1299 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1300 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1302 ControllerSwiftDeployment:
1303 type: OS::Heat::StructuredDeployments
1305 name: ControllerSwiftDeployment
1306 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1307 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1309 ObjectStorageSwiftDeployment:
1310 type: OS::Heat::StructuredDeployments
1312 name: ObjectStorageSwiftDeployment
1313 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1314 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1316 SwiftDevicesAndProxyConfig:
1317 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1319 controller_swift_devices: {get_attr: [Controller, swift_device]}
1320 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1321 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1323 ComputeCephDeployment:
1324 type: OS::Heat::StructuredDeployments
1326 name: ComputeCephDeployment
1327 config: {get_attr: [CephClusterConfig, config_id]}
1328 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1330 ControllerCephDeployment:
1331 type: OS::Heat::StructuredDeployments
1333 name: ControllerCephDeployment
1334 config: {get_attr: [CephClusterConfig, config_id]}
1335 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1337 CephStorageCephDeployment:
1338 type: OS::Heat::StructuredDeployments
1340 name: CephStorageCephDeployment
1341 config: {get_attr: [CephClusterConfig, config_id]}
1342 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1345 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1347 ceph_storage_count: {get_param: CephStorageCount}
1348 ceph_fsid: {get_param: CephClusterFSID}
1349 ceph_mon_key: {get_param: CephMonKey}
1350 ceph_admin_key: {get_param: CephAdminKey}
1351 ceph_client_key: {get_param: CephClientKey}
1352 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1353 ceph_mon_names: {get_attr: [Controller, hostname]}
1354 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1356 ControllerAllNodesDeployment:
1357 type: OS::Heat::StructuredDeployments
1359 name: ControllerAllNodesDeployment
1360 config: {get_attr: [allNodesConfig, config_id]}
1361 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1363 ComputeAllNodesDeployment:
1364 type: OS::Heat::StructuredDeployments
1366 name: ComputeAllNodesDeployment
1367 config: {get_attr: [allNodesConfig, config_id]}
1368 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1370 BlockStorageAllNodesDeployment:
1371 type: OS::Heat::StructuredDeployments
1373 name: BlockStorageAllNodesDeployment
1374 config: {get_attr: [allNodesConfig, config_id]}
1375 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1377 ObjectStorageAllNodesDeployment:
1378 type: OS::Heat::StructuredDeployments
1380 name: ObjectStorageAllNodesDeployment
1381 config: {get_attr: [allNodesConfig, config_id]}
1382 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1384 CephStorageAllNodesDeployment:
1385 type: OS::Heat::StructuredDeployments
1387 name: CephStorageAllNodesDeployment
1388 config: {get_attr: [allNodesConfig, config_id]}
1389 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1391 # All Nodes Validations
1392 AllNodesValidationConfig:
1393 type: OS::TripleO::AllNodes::Validation
1398 - - {get_attr: [Controller, resource.0.external_ip_address]}
1399 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1400 - {get_attr: [Controller, resource.0.storage_ip_address]}
1401 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1402 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1404 ControllerAllNodesValidationDeployment:
1405 type: OS::Heat::StructuredDeployments
1406 depends_on: ControllerAllNodesDeployment
1408 name: ControllerAllNodesValidationDeployment
1409 config: {get_resource: AllNodesValidationConfig}
1410 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1412 ComputeAllNodesValidationDeployment:
1413 type: OS::Heat::StructuredDeployments
1414 depends_on: ComputeAllNodesDeployment
1416 name: ComputeAllNodesValidationDeployment
1417 config: {get_resource: AllNodesValidationConfig}
1418 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1420 BlockStorageAllNodesValidationDeployment:
1421 type: OS::Heat::StructuredDeployments
1422 depends_on: BlockStorageAllNodesDeployment
1424 name: BlockStorageAllNodesValidationDeployment
1425 config: {get_resource: AllNodesValidationConfig}
1426 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1428 ObjectStorageAllNodesValidationDeployment:
1429 type: OS::Heat::StructuredDeployments
1430 depends_on: ObjectStorageAllNodesDeployment
1432 name: ObjectStorageAllNodesValidationDeployment
1433 config: {get_resource: AllNodesValidationConfig}
1434 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1436 CephStorageAllNodesValidationDeployment:
1437 type: OS::Heat::StructuredDeployments
1438 depends_on: CephStorageAllNodesDeployment
1440 name: CephStorageAllNodesValidationDeployment
1441 config: {get_resource: AllNodesValidationConfig}
1442 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1445 type: OS::TripleO::Tasks::UpdateWorkflow
1447 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1448 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1449 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1450 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1451 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1453 deploy_identifier: {get_param: DeployIdentifier}
1454 update_identifier: {get_param: UpdateIdentifier}
1456 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1457 # the nested template may configure each role differently (or not at all)
1458 AllNodesExtraConfig:
1459 type: OS::TripleO::AllNodesExtraConfig
1462 - ComputeAllNodesValidationDeployment
1463 - BlockStorageAllNodesValidationDeployment
1464 - ObjectStorageAllNodesValidationDeployment
1465 - CephStorageAllNodesValidationDeployment
1466 - ControllerAllNodesValidationDeployment
1468 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1469 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1470 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1471 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1472 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1474 # Nested stack deployment runs after all other controller deployments
1475 ControllerNodesPostDeployment:
1476 type: OS::TripleO::ControllerPostDeployment
1477 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1479 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1480 NodeConfigIdentifiers:
1481 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1482 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1483 deployment_identifier: {get_param: DeployIdentifier}
1484 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1486 ComputeNodesPostDeployment:
1487 type: OS::TripleO::ComputePostDeployment
1488 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1490 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1491 NodeConfigIdentifiers:
1492 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1493 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1494 deployment_identifier: {get_param: DeployIdentifier}
1495 StepConfig: {get_attr: [ComputeServiceChain, step_config]}
1497 ObjectStorageNodesPostDeployment:
1498 type: OS::TripleO::ObjectStoragePostDeployment
1499 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1501 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1502 NodeConfigIdentifiers:
1503 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1504 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1505 deployment_identifier: {get_param: DeployIdentifier}
1506 StepConfig: {get_attr: [ObjectStorageServiceChain, step_config]}
1508 BlockStorageNodesPostDeployment:
1509 type: OS::TripleO::BlockStoragePostDeployment
1510 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1512 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1513 NodeConfigIdentifiers:
1514 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1515 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1516 deployment_identifier: {get_param: DeployIdentifier}
1518 CephStorageNodesPostDeployment:
1519 type: OS::TripleO::CephStoragePostDeployment
1520 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1522 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1523 NodeConfigIdentifiers:
1524 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1525 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1526 deployment_identifier: {get_param: DeployIdentifier}
1527 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1531 description: URL for the Overcloud Keystone service
1532 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1534 description: Keystone Admin VIP endpoint
1535 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1537 description: Controller VIP for public API endpoints
1538 value: {get_attr: [VipMap, net_ip_map, external]}
1540 description: VIP for Aodh API internal endpoint
1541 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1542 CeilometerInternalVip:
1543 description: VIP for Ceilometer API internal endpoint
1544 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1546 description: VIP for Cinder API internal endpoint
1547 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1549 description: VIP for Glance API internal endpoint
1550 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1552 description: VIP for Gnocchi API internal endpoint
1553 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1555 description: VIP for Heat API internal endpoint
1556 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1557 KeystoneInternalVip:
1558 description: VIP for Keystone API internal endpoint
1559 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1561 description: VIP for Neutron API internal endpoint
1562 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1564 description: VIP for Nova API internal endpoint
1565 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1567 description: VIP for Sahara API internal endpoint
1568 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1570 description: VIP for Swift Proxy internal endpoint
1571 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1574 Mapping of the resources with the needed info for their endpoints.
1575 This includes the protocol used, the IP, port and also a full
1576 representation of the URI.
1577 value: {get_attr: [EndpointMap, endpoint_map]}
1580 The content that should be appended to your /etc/hosts if you want to get
1581 hostname-based access to the deployed nodes (useful for testing without
1583 value: {get_attr: [allNodesConfig, hosts_entries]}