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
228 PublicVirtualFixedIPs:
231 Control the IP allocation for the PublicVirtualInterface port. E.g.
232 [{'ip_address':'1.2.3.4'}]
237 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
240 description: The username for RabbitMQ
243 description: The password for RabbitMQ
249 Rabbit client subscriber parameter to specify
250 an SSL connection to the RabbitMQ host.
254 description: Set rabbit subscriber port, change this if using SSL
257 description: The password for Redis
260 SnmpdReadonlyUserName:
261 default: ro_snmp_user
262 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
264 SnmpdReadonlyUserPassword:
265 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
268 StorageVirtualFixedIPs:
271 Control the IP allocation for the StorageVirtualInterface port. E.g.
272 [{'ip_address':'1.2.3.4'}]
274 StorageMgmtVirtualFixedIPs:
277 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
278 [{'ip_address':'1.2.3.4'}]
282 description: The timezone to be set on nodes.
285 default: 'localdomain'
288 The DNS domain used for the hosts. This should match the dhcp_domain
289 configured in the Undercloud neutron. Defaults to localdomain.
293 Extra properties or metadata passed to Nova for the created nodes in
294 the overcloud. It's accessible via the Nova metadata API.
297 # Controller-specific params
298 CinderLVMLoopDeviceSize:
300 description: The size of the loopback file used by the cinder LVM driver.
303 description: The password for the cinder service account, used by cinder-api.
308 description: The iSCSI helper to use with cinder.
315 controllerExtraConfig:
318 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
322 default: overcloud-full
324 - custom_constraint: glance.image
325 OvercloudControlFlavor:
326 description: Flavor for control nodes to request when deploying.
330 - custom_constraint: nova.flavor
331 ControlVirtualInterface:
333 description: Interface where virtual ip will be assigned.
337 description: Whether to enable fencing in Pacemaker or not.
341 description: Whether to use Galera instead of regular MariaDB.
343 ControllerEnableCephStorage:
345 description: Whether to deploy Ceph Storage (OSD) on the Controller
347 ControllerEnableSwiftStorage:
349 description: Whether to enable Swift Storage on the Controller
351 ControllerSchedulerHints:
353 description: Optional scheduler hints to pass to nova
358 Additional configuration to inject into the cluster. The format required
359 may be implementation specific, e.g puppet hieradata. Any role specific
360 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
365 Pacemaker fencing configuration. The JSON should have
366 the following structure:
370 "agent": "AGENT_NAME",
371 "host_mac": "HOST_MAC_ADDRESS",
372 "params": {"PARAM_NAME": "PARAM_VALUE"}
380 "agent": "fence_xvm",
381 "host_mac": "52:54:00:aa:bb:cc",
383 "multicast_address": "225.0.0.12",
384 "port": "baremetal_0",
386 "manage_key_file": true,
387 "key_file": "/etc/fence_xvm.key",
388 "key_file_password": "abcdef"
396 description: The short name of the Gnocchi backend to use. Should be one
397 of swift, rbd or file
400 - allowed_values: ['swift', 'file', 'rbd']
401 GnocchiIndexerBackend:
403 description: The short name of the Gnocchi indexer backend to use.
406 description: The password for the gnocchi service account.
409 InstanceNameTemplate:
410 default: 'instance-%08x'
411 description: Template string to be used to generate instance names
415 description: Whether to manage IPtables rules.
419 description: Whether IPtables rules should be purged before setting up the ones.
421 MysqlInnodbBufferPoolSize:
423 Specifies the size of the buffer pool in megabytes. Setting to
424 zero should be interpreted as "no value" and will defer to the
429 description: Configures MySQL max_connections config setting
432 PublicVirtualInterface:
435 Specifies the interface where the public-facing virtual ip will be assigned.
436 This should be int_public when a VLAN is being used.
439 description: A random string to be used as a salt when hashing to determine mappings in the ring.
444 description: Value of mount_check in Swift account/container/object -server.conf
449 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
452 description: Partition Power to use when building Swift rings
457 description: How many replicas to use in the swift rings.
459 # Compute-specific params
460 CeilometerComputeAgent:
461 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
465 - allowed_values: ['', Present]
469 HypervisorNeutronPhysicalBridge:
472 An OVS bridge to create on each hypervisor. This defaults to br-ex the
473 same as the control plane nodes, as we have a uniform configuration of
474 the openvswitch agent. Typically should not need to be changed.
476 HypervisorNeutronPublicInterface:
478 description: What interface to add to the HypervisorNeutronPhysicalBridge.
480 NeutronNetworkVLANRanges:
481 default: 'datacentre:1:1000'
483 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
484 Neutron documentation for permitted values. Defaults to permitting any
485 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
486 type: comma_delimited_list
489 default: libvirt.LibvirtDriver
490 NovaComputeExtraConfig:
493 NovaCompute specific configuration to inject into the cluster. Same
494 structure as ExtraConfig.
496 NovaComputeLibvirtType:
499 NovaComputeLibvirtVifDriver:
501 description: Libvirt VIF driver configuration for the network
503 NovaComputeSchedulerHints:
505 description: Optional scheduler hints to pass to nova
507 NovaEnableRbdBackend:
509 description: Whether to enable or not the Rbd backend for Nova
513 default: overcloud-full
515 - custom_constraint: glance.image
518 description: Name of integration bridge used by Open vSwitch
520 NovaSecurityGroupAPI:
522 description: The full class name of the security API class
524 OvercloudComputeFlavor:
525 description: Use this flavor
529 - custom_constraint: nova.flavor
532 NeutronTenantNetwork: tenant
533 CeilometerApiNetwork: internal_api
534 AodhApiNetwork: internal_api
535 GnocchiApiNetwork: internal_api
536 MongoDbNetwork: internal_api
537 CinderApiNetwork: internal_api
538 CinderIscsiNetwork: storage
539 GlanceApiNetwork: storage
540 GlanceRegistryNetwork: internal_api
541 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
542 KeystonePublicApiNetwork: internal_api
543 NeutronApiNetwork: internal_api
544 HeatApiNetwork: internal_api
545 NovaApiNetwork: internal_api
546 NovaMetadataNetwork: internal_api
547 NovaVncProxyNetwork: internal_api
548 SwiftMgmtNetwork: storage_mgmt
549 SwiftProxyNetwork: storage
550 SaharaApiNetwork: internal_api
551 HorizonNetwork: internal_api
552 MemcachedNetwork: internal_api
553 RabbitMqNetwork: internal_api
554 RedisNetwork: internal_api
555 MysqlNetwork: internal_api
556 CephClusterNetwork: storage_mgmt
557 CephPublicNetwork: storage
558 ControllerHostnameResolveNetwork: internal_api
559 ComputeHostnameResolveNetwork: internal_api
560 BlockStorageHostnameResolveNetwork: internal_api
561 ObjectStorageHostnameResolveNetwork: internal_api
562 CephStorageHostnameResolveNetwork: storage
563 description: Mapping of service_name -> network name. Typically set
564 via parameter_defaults in the resource registry.
569 - OS::TripleO::Services::CinderApi
570 - OS::TripleO::Services::CinderScheduler
571 - OS::TripleO::Services::CinderVolume
572 - OS::TripleO::Services::Keystone
573 - OS::TripleO::Services::GlanceApi
574 - OS::TripleO::Services::GlanceRegistry
575 - OS::TripleO::Services::HeatApi
576 - OS::TripleO::Services::HeatApiCfn
577 - OS::TripleO::Services::HeatApiCloudwatch
578 - OS::TripleO::Services::HeatEngine
579 - OS::TripleO::Services::NeutronDhcpAgent
580 - OS::TripleO::Services::NeutronL3Agent
581 - OS::TripleO::Services::NeutronMetadataAgent
582 - OS::TripleO::Services::NeutronServer
583 - OS::TripleO::Services::NeutronCorePlugin
584 - OS::TripleO::Services::NeutronOvsAgent
585 - OS::TripleO::Services::RabbitMQ
586 - OS::TripleO::Services::HAproxy
587 - OS::TripleO::Services::Keepalived
588 - OS::TripleO::Services::Memcached
589 - OS::TripleO::Services::SwiftProxy
590 - OS::TripleO::Services::Redis
591 - OS::TripleO::Services::NovaConductor
592 - OS::TripleO::Services::MongoDb
593 - OS::TripleO::Services::NovaApi
594 - OS::TripleO::Services::NovaScheduler
595 - OS::TripleO::Services::NovaConsoleauth
596 - OS::TripleO::Services::NovaVncproxy
597 description: A list of service resources (configured in the Heat
598 resource_registry) which represent nested stacks
599 for each service that should get installed on the Controllers.
600 type: comma_delimited_list
604 description: A list of service resources (configured in the Heat
605 resource_registry) which represent nested stacks
606 for each service that should get installed on the Compute Nodes.
607 type: comma_delimited_list
609 # Block storage specific parameters
614 default: overcloud-full
616 OvercloudBlockStorageFlavor:
617 description: Flavor for block storage nodes to request when deploying.
621 - custom_constraint: nova.flavor
622 BlockStorageExtraConfig:
625 BlockStorage specific configuration to inject into the cluster. Same
626 structure as ExtraConfig.
628 BlockStorageSchedulerHints:
630 description: Optional scheduler hints to pass to nova
634 # Object storage specific parameters
638 OvercloudSwiftStorageFlavor:
639 description: Flavor for Swift storage nodes to request when deploying.
643 - custom_constraint: nova.flavor
645 default: overcloud-full
647 ObjectStorageExtraConfig:
650 ObjectStorage specific configuration to inject into the cluster. Same
651 structure as ExtraConfig.
653 ObjectStorageSchedulerHints:
655 description: Optional scheduler hints to pass to nova
657 ObjectStorageServices:
659 description: A list of service resources (configured in the Heat
660 resource_registry) which represent nested stacks
661 for each service that should get installed on the ObjectStorage nodes.
662 Note this role currently only supports steps 2, 3 and 4 configuration.
663 type: comma_delimited_list
666 # Ceph storage specific parameters
671 default: overcloud-full
673 OvercloudCephStorageFlavor:
675 description: Flavor for Ceph storage nodes to request when deploying.
678 - custom_constraint: nova.flavor
679 CephStorageExtraConfig:
682 CephStorage specific configuration to inject into the cluster. Same
683 structure as ExtraConfig.
685 CephStorageSchedulerHints:
687 description: Optional scheduler hints to pass to nova
691 description: A list of service resources (configured in the Heat
692 resource_registry) which represent nested stacks
693 for each service that should get installed on the CephStorage nodes.
694 type: comma_delimited_list
696 # Hostname format for each role
697 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
698 # and %stackname% is replaced with OS::stack_name in the template below.
699 # If you want to use the heat generated names, pass '' (empty string).
700 ControllerHostnameFormat:
702 description: Format for Controller node hostnames
703 default: '%stackname%-controller-%index%'
704 ComputeHostnameFormat:
706 description: Format for Compute node hostnames
707 default: '%stackname%-novacompute-%index%'
708 BlockStorageHostnameFormat:
710 description: Format for BlockStorage node hostnames
711 default: '%stackname%-blockstorage-%index%'
712 ObjectStorageHostnameFormat:
714 description: Format for SwiftStorage node hostnames
715 default: '%stackname%-objectstorage-%index%'
716 CephStorageHostnameFormat:
718 description: Format for CephStorage node hostnames
719 default: '%stackname%-cephstorage-%index%'
721 # Identifiers to trigger tasks on nodes
726 Setting to a previously unused value during stack-update will trigger
727 package update on all nodes
732 Setting this to a unique value will re-run any deployment tasks which
733 perform configuration on a Heat stack-update.
735 # If you want to remove a specific node from a resource group, you can pass
736 # the node name or id as a <Group>RemovalPolicies parameter, for example:
737 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
738 ControllerRemovalPolicies:
742 List of resources to be removed from ControllerResourceGroup when
743 doing an update which requires removal of specific resources.
744 ComputeRemovalPolicies:
748 List of resources to be removed from ComputeResourceGroup when
749 doing an update which requires removal of specific resources.
750 BlockStorageRemovalPolicies:
754 List of resources to be removed from BlockStorageResourceGroup when
755 doing an update which requires removal of specific resources.
756 ObjectStorageRemovalPolicies:
760 List of resources to be removed from ObjectStorageResourceGroup when
761 doing an update which requires removal of specific resources.
762 CephStorageRemovalPolicies:
766 List of resources to be removed from CephStorageResourceGroup when
767 doing an update which requires removal of specific resources.
771 description: Do not use deprecated params, they will be removed.
773 - controllerExtraConfig
778 HeatAuthEncryptionKey:
779 type: OS::Heat::RandomString
782 type: OS::Heat::RandomString
787 type: OS::Heat::RandomString
792 type: OS::TripleO::EndpointMap
794 CloudName: {get_param: CloudName}
795 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
796 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
797 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
798 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
799 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
800 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
801 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
802 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
803 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
804 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
805 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
806 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
807 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
808 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
809 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
811 ControllerServiceChain:
812 type: OS::TripleO::Services
815 Services: {get_param: ControllerServices}
816 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
819 type: OS::Heat::ResourceGroup
822 count: {get_param: ControllerCount}
823 removal_policies: {get_param: ControllerRemovalPolicies}
825 type: OS::TripleO::Controller
827 AdminPassword: {get_param: AdminPassword}
828 AodhPassword: {get_param: AodhPassword}
829 CeilometerBackend: {get_param: CeilometerBackend}
830 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
831 CeilometerPassword: {get_param: CeilometerPassword}
832 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
833 CloudDomain: {get_param: CloudDomain}
834 ControlVirtualInterface: {get_param: ControlVirtualInterface}
835 controllerExtraConfig: {get_param: controllerExtraConfig}
836 CorosyncIPv6: {get_param: CorosyncIPv6}
837 Debug: {get_param: Debug}
838 EnableFencing: {get_param: EnableFencing}
839 ManageFirewall: {get_param: ManageFirewall}
840 PurgeFirewallRules: {get_param: PurgeFirewallRules}
841 EnableGalera: {get_param: EnableGalera}
842 EnableCephStorage: {get_param: ControllerEnableCephStorage}
843 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
844 ExtraConfig: {get_param: ExtraConfig}
845 FencingConfig: {get_param: FencingConfig}
846 Flavor: {get_param: OvercloudControlFlavor}
847 GnocchiPassword: {get_param: GnocchiPassword}
848 GnocchiBackend: {get_param: GnocchiBackend}
849 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
850 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
851 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
852 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
853 HorizonSecret: {get_resource: HorizonSecret}
854 Image: {get_param: controllerImage}
855 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
856 InstanceNameTemplate: {get_param: InstanceNameTemplate}
857 KeyName: {get_param: KeyName}
858 MemcachedIPv6: {get_param: MemcachedIPv6}
859 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
860 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
861 MysqlMaxConnections: {get_param: MysqlMaxConnections}
862 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
863 NeutronTenantMtu: {get_param: NeutronTenantMtu}
864 NeutronPublicInterface: {get_param: NeutronPublicInterface}
865 NeutronPassword: {get_param: NeutronPassword}
866 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
867 NovaIPv6: {get_param: NovaIPv6}
868 NovaPassword: {get_param: NovaPassword}
869 NtpServer: {get_param: NtpServer}
870 PcsdPassword: {get_resource: PcsdPassword}
871 PublicVirtualInterface: {get_param: PublicVirtualInterface}
872 RabbitPassword: {get_param: RabbitPassword}
873 RabbitUserName: {get_param: RabbitUserName}
874 RabbitCookie: {get_attr: [RabbitCookie, value]}
875 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
876 RabbitClientPort: {get_param: RabbitClientPort}
877 RedisPassword: {get_param: RedisPassword}
878 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
879 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
880 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
881 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
882 SwiftHashSuffix: {get_param: SwiftHashSuffix}
883 SwiftMountCheck: {get_param: SwiftMountCheck}
884 SwiftMinPartHours: {get_param: SwiftMinPartHours}
885 SwiftPartPower: {get_param: SwiftPartPower}
886 SwiftReplicas: { get_param: SwiftReplicas}
887 TimeZone: {get_param: TimeZone}
888 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
889 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
890 ServiceNetMap: {get_param: ServiceNetMap}
891 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
892 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
893 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
894 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
895 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
896 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
897 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
898 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
899 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
900 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
901 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
902 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
903 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
904 UpdateIdentifier: {get_param: UpdateIdentifier}
907 template: {get_param: ControllerHostnameFormat}
909 '%stackname%': {get_param: 'OS::stack_name'}
911 ServerMetadata: {get_param: ServerMetadata}
912 SchedulerHints: {get_param: ControllerSchedulerHints}
913 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
916 type: OS::TripleO::Services
918 Services: {get_param: ComputeServices}
919 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
922 type: OS::Heat::ResourceGroup
925 count: {get_param: ComputeCount}
926 removal_policies: {get_param: ComputeRemovalPolicies}
928 type: OS::TripleO::Compute
930 AdminPassword: {get_param: AdminPassword}
931 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
932 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
933 CeilometerPassword: {get_param: CeilometerPassword}
934 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
935 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
936 Debug: {get_param: Debug}
937 ExtraConfig: {get_param: ExtraConfig}
938 Flavor: {get_param: OvercloudComputeFlavor}
939 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
940 Image: {get_param: NovaImage}
941 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
942 KeyName: {get_param: KeyName}
943 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
944 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
945 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
946 NeutronTenantMtu: {get_param: NeutronTenantMtu}
947 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
948 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
949 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
950 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
951 NeutronNetworkType: {get_param: NeutronNetworkType}
952 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
953 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
954 NeutronPassword: {get_param: NeutronPassword}
955 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
956 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
957 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
958 NeutronCorePlugin: {get_param: NeutronCorePlugin}
959 NeutronServicePlugins: {get_param: NeutronServicePlugins}
960 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
961 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
962 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
963 # L3 HA and Failover is not relevant for Computes, should be removed
964 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
965 NeutronL3HA: {get_param: NeutronL3HA}
966 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
967 NovaComputeDriver: {get_param: NovaComputeDriver}
968 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
969 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
970 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
971 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
972 NovaIPv6: {get_param: NovaIPv6}
973 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
974 NovaPassword: {get_param: NovaPassword}
975 NovaOVSBridge: {get_param: NovaOVSBridge}
976 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
977 NtpServer: {get_param: NtpServer}
978 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
979 RabbitPassword: {get_param: RabbitPassword}
980 RabbitUserName: {get_param: RabbitUserName}
981 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
982 RabbitClientPort: {get_param: RabbitClientPort}
983 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
984 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
985 ServiceNetMap: {get_param: ServiceNetMap}
986 TimeZone: {get_param: TimeZone}
987 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
988 UpdateIdentifier: {get_param: UpdateIdentifier}
991 template: {get_param: ComputeHostnameFormat}
993 '%stackname%': {get_param: 'OS::stack_name'}
994 CloudDomain: {get_param: CloudDomain}
995 ServerMetadata: {get_param: ServerMetadata}
996 SchedulerHints: {get_param: NovaComputeSchedulerHints}
998 ServiceConfigSettings: {get_attr: [ComputeServiceChain, config_settings]}
1002 type: OS::Heat::ResourceGroup
1003 depends_on: Networks
1005 count: {get_param: BlockStorageCount}
1006 removal_policies: {get_param: BlockStorageRemovalPolicies}
1008 type: OS::TripleO::BlockStorage
1010 Debug: {get_param: Debug}
1011 Image: {get_param: BlockStorageImage}
1012 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1013 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1014 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1015 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1016 CinderPassword: {get_param: CinderPassword}
1017 KeyName: {get_param: KeyName}
1018 Flavor: {get_param: OvercloudBlockStorageFlavor}
1019 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1020 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1021 RabbitPassword: {get_param: RabbitPassword}
1022 RabbitUserName: {get_param: RabbitUserName}
1023 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1024 RabbitClientPort: {get_param: RabbitClientPort}
1025 TimeZone: {get_param: TimeZone}
1026 NtpServer: {get_param: NtpServer}
1027 UpdateIdentifier: {get_param: UpdateIdentifier}
1030 template: {get_param: BlockStorageHostnameFormat}
1032 '%stackname%': {get_param: 'OS::stack_name'}
1033 ServiceNetMap: {get_param: ServiceNetMap}
1034 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1035 ExtraConfig: {get_param: ExtraConfig}
1036 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1037 CloudDomain: {get_param: CloudDomain}
1038 ServerMetadata: {get_param: ServerMetadata}
1039 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1040 NodeIndex: '%index%'
1042 ObjectStorageServiceChain:
1043 type: OS::TripleO::Services
1045 Services: {get_param: ObjectStorageServices}
1046 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1049 type: OS::Heat::ResourceGroup
1050 depends_on: Networks
1052 count: {get_param: ObjectStorageCount}
1053 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1055 type: OS::TripleO::ObjectStorage
1057 KeyName: {get_param: KeyName}
1058 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1059 HashSuffix: {get_param: SwiftHashSuffix}
1060 MountCheck: {get_param: SwiftMountCheck}
1061 MinPartHours: {get_param: SwiftMinPartHours}
1062 PartPower: {get_param: SwiftPartPower}
1063 Image: {get_param: SwiftStorageImage}
1064 Replicas: { get_param: SwiftReplicas}
1065 TimeZone: {get_param: TimeZone}
1066 NtpServer: {get_param: NtpServer}
1067 UpdateIdentifier: {get_param: UpdateIdentifier}
1068 ServiceNetMap: {get_param: ServiceNetMap}
1071 template: {get_param: ObjectStorageHostnameFormat}
1073 '%stackname%': {get_param: 'OS::stack_name'}
1074 ExtraConfig: {get_param: ExtraConfig}
1075 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1076 CloudDomain: {get_param: CloudDomain}
1077 ServerMetadata: {get_param: ServerMetadata}
1078 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1079 NodeIndex: '%index%'
1080 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, config_settings]}
1082 CephStorageServiceChain:
1083 type: OS::TripleO::Services
1085 Services: {get_param: CephStorageServices}
1086 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1089 type: OS::Heat::ResourceGroup
1090 depends_on: Networks
1092 count: {get_param: CephStorageCount}
1093 removal_policies: {get_param: CephStorageRemovalPolicies}
1095 type: OS::TripleO::CephStorage
1097 Image: {get_param: CephStorageImage}
1098 KeyName: {get_param: KeyName}
1099 Flavor: {get_param: OvercloudCephStorageFlavor}
1100 NtpServer: {get_param: NtpServer}
1101 ServiceNetMap: {get_param: ServiceNetMap}
1102 TimeZone: {get_param: TimeZone}
1103 UpdateIdentifier: {get_param: UpdateIdentifier}
1106 template: {get_param: CephStorageHostnameFormat}
1108 '%stackname%': {get_param: 'OS::stack_name'}
1109 ExtraConfig: {get_param: ExtraConfig}
1110 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1111 CloudDomain: {get_param: CloudDomain}
1112 ServerMetadata: {get_param: ServerMetadata}
1113 SchedulerHints: {get_param: CephStorageSchedulerHints}
1114 NodeIndex: '%index%'
1115 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1117 ControllerIpListMap:
1118 type: OS::TripleO::Network::Ports::NetIpListMap
1120 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1121 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1122 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1123 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1124 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1125 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1126 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1129 type: OS::TripleO::AllNodes::SoftwareConfig
1131 compute_hosts: {get_attr: [Compute, hosts_entry]}
1132 controller_hosts: {get_attr: [Controller, hosts_entry]}
1133 controller_ips: {get_attr: [Controller, ip_address]}
1134 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1135 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1136 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1137 controller_names: {get_attr: [Controller, hostname]}
1138 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1139 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1140 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1141 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1142 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1143 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1144 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1145 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1146 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1147 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1148 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1149 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1150 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1151 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1152 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1153 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1154 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1155 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1156 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1157 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1158 DeployIdentifier: {get_param: DeployIdentifier}
1159 UpdateIdentifier: {get_param: UpdateIdentifier}
1162 type: OS::Heat::RandomString
1166 MysqlClusterUniquePart:
1167 type: OS::Heat::RandomString
1172 type: OS::Heat::RandomString
1175 salt: {get_param: RabbitCookieSalt}
1177 # creates the network architecture
1179 type: OS::TripleO::Network
1182 type: OS::Neutron::Port
1183 depends_on: Networks
1185 name: control_virtual_ip
1186 network: {get_param: NeutronControlPlaneID}
1187 fixed_ips: {get_param: ControlFixedIPs}
1188 replacement_policy: AUTO
1191 depends_on: Networks
1192 type: OS::TripleO::Network::Ports::RedisVipPort
1194 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1195 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1196 PortName: redis_virtual_ip
1197 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1200 # The public VIP is on the External net, falls back to ctlplane
1202 depends_on: Networks
1203 type: OS::TripleO::Network::Ports::ExternalVipPort
1205 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1206 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1207 PortName: public_virtual_ip
1208 FixedIPs: {get_param: PublicVirtualFixedIPs}
1210 InternalApiVirtualIP:
1211 depends_on: Networks
1212 type: OS::TripleO::Network::Ports::InternalApiVipPort
1214 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1215 PortName: internal_api_virtual_ip
1216 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1219 depends_on: Networks
1220 type: OS::TripleO::Network::Ports::StorageVipPort
1222 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1223 PortName: storage_virtual_ip
1224 FixedIPs: {get_param: StorageVirtualFixedIPs}
1226 StorageMgmtVirtualIP:
1227 depends_on: Networks
1228 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1230 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1231 PortName: storage_management_virtual_ip
1232 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1235 type: OS::TripleO::Network::Ports::NetVipMap
1237 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1238 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1239 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1240 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1241 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1242 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1243 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1244 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1245 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1246 # No tenant or management VIP required
1249 type: OS::TripleO::VipConfig
1252 type: OS::Heat::StructuredDeployments
1255 config: {get_resource: VipConfig}
1256 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1258 # service VIP mappings
1259 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1260 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1261 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1262 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1263 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1264 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1265 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1266 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1267 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1268 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1269 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1270 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1271 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1272 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1273 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1274 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1275 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1276 # direct configuration of Virtual IPs for each network
1277 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1278 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1279 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1280 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1281 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1282 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1284 ControllerBootstrapNodeConfig:
1285 type: OS::TripleO::BootstrapNode::SoftwareConfig
1287 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1288 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1290 ControllerBootstrapNodeDeployment:
1291 type: OS::Heat::StructuredDeployments
1293 name: ControllerBootstrapNodeDeployment
1294 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1295 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1297 ControllerSwiftDeployment:
1298 type: OS::Heat::StructuredDeployments
1300 name: ControllerSwiftDeployment
1301 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1302 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1304 ObjectStorageSwiftDeployment:
1305 type: OS::Heat::StructuredDeployments
1307 name: ObjectStorageSwiftDeployment
1308 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1309 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1311 SwiftDevicesAndProxyConfig:
1312 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1314 controller_swift_devices: {get_attr: [Controller, swift_device]}
1315 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1316 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1318 ComputeCephDeployment:
1319 type: OS::Heat::StructuredDeployments
1321 name: ComputeCephDeployment
1322 config: {get_attr: [CephClusterConfig, config_id]}
1323 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1325 ControllerCephDeployment:
1326 type: OS::Heat::StructuredDeployments
1328 name: ControllerCephDeployment
1329 config: {get_attr: [CephClusterConfig, config_id]}
1330 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1332 CephStorageCephDeployment:
1333 type: OS::Heat::StructuredDeployments
1335 name: CephStorageCephDeployment
1336 config: {get_attr: [CephClusterConfig, config_id]}
1337 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1340 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1342 ceph_storage_count: {get_param: CephStorageCount}
1343 ceph_fsid: {get_param: CephClusterFSID}
1344 ceph_mon_key: {get_param: CephMonKey}
1345 ceph_admin_key: {get_param: CephAdminKey}
1346 ceph_client_key: {get_param: CephClientKey}
1347 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1348 ceph_mon_names: {get_attr: [Controller, hostname]}
1349 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1351 ControllerAllNodesDeployment:
1352 type: OS::Heat::StructuredDeployments
1354 name: ControllerAllNodesDeployment
1355 config: {get_attr: [allNodesConfig, config_id]}
1356 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1358 ComputeAllNodesDeployment:
1359 type: OS::Heat::StructuredDeployments
1361 name: ComputeAllNodesDeployment
1362 config: {get_attr: [allNodesConfig, config_id]}
1363 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1365 BlockStorageAllNodesDeployment:
1366 type: OS::Heat::StructuredDeployments
1368 name: BlockStorageAllNodesDeployment
1369 config: {get_attr: [allNodesConfig, config_id]}
1370 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1372 ObjectStorageAllNodesDeployment:
1373 type: OS::Heat::StructuredDeployments
1375 name: ObjectStorageAllNodesDeployment
1376 config: {get_attr: [allNodesConfig, config_id]}
1377 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1379 CephStorageAllNodesDeployment:
1380 type: OS::Heat::StructuredDeployments
1382 name: CephStorageAllNodesDeployment
1383 config: {get_attr: [allNodesConfig, config_id]}
1384 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1386 # All Nodes Validations
1387 AllNodesValidationConfig:
1388 type: OS::TripleO::AllNodes::Validation
1393 - - {get_attr: [Controller, resource.0.external_ip_address]}
1394 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1395 - {get_attr: [Controller, resource.0.storage_ip_address]}
1396 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1397 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1399 ControllerAllNodesValidationDeployment:
1400 type: OS::Heat::StructuredDeployments
1401 depends_on: ControllerAllNodesDeployment
1403 name: ControllerAllNodesValidationDeployment
1404 config: {get_resource: AllNodesValidationConfig}
1405 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1407 ComputeAllNodesValidationDeployment:
1408 type: OS::Heat::StructuredDeployments
1409 depends_on: ComputeAllNodesDeployment
1411 name: ComputeAllNodesValidationDeployment
1412 config: {get_resource: AllNodesValidationConfig}
1413 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1415 BlockStorageAllNodesValidationDeployment:
1416 type: OS::Heat::StructuredDeployments
1417 depends_on: BlockStorageAllNodesDeployment
1419 name: BlockStorageAllNodesValidationDeployment
1420 config: {get_resource: AllNodesValidationConfig}
1421 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1423 ObjectStorageAllNodesValidationDeployment:
1424 type: OS::Heat::StructuredDeployments
1425 depends_on: ObjectStorageAllNodesDeployment
1427 name: ObjectStorageAllNodesValidationDeployment
1428 config: {get_resource: AllNodesValidationConfig}
1429 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1431 CephStorageAllNodesValidationDeployment:
1432 type: OS::Heat::StructuredDeployments
1433 depends_on: CephStorageAllNodesDeployment
1435 name: CephStorageAllNodesValidationDeployment
1436 config: {get_resource: AllNodesValidationConfig}
1437 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1440 type: OS::TripleO::Tasks::UpdateWorkflow
1442 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1443 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1444 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1445 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1446 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1448 deploy_identifier: {get_param: DeployIdentifier}
1449 update_identifier: {get_param: UpdateIdentifier}
1451 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1452 # the nested template may configure each role differently (or not at all)
1453 AllNodesExtraConfig:
1454 type: OS::TripleO::AllNodesExtraConfig
1457 - ComputeAllNodesValidationDeployment
1458 - BlockStorageAllNodesValidationDeployment
1459 - ObjectStorageAllNodesValidationDeployment
1460 - CephStorageAllNodesValidationDeployment
1461 - ControllerAllNodesValidationDeployment
1463 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1464 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1465 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1466 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1467 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1469 # Nested stack deployment runs after all other controller deployments
1470 ControllerNodesPostDeployment:
1471 type: OS::TripleO::ControllerPostDeployment
1472 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1474 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1475 NodeConfigIdentifiers:
1476 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1477 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1478 deployment_identifier: {get_param: DeployIdentifier}
1479 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1481 ComputeNodesPostDeployment:
1482 type: OS::TripleO::ComputePostDeployment
1483 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1485 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1486 NodeConfigIdentifiers:
1487 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1488 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1489 deployment_identifier: {get_param: DeployIdentifier}
1490 StepConfig: {get_attr: [ComputeServiceChain, step_config]}
1492 ObjectStorageNodesPostDeployment:
1493 type: OS::TripleO::ObjectStoragePostDeployment
1494 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1496 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1497 NodeConfigIdentifiers:
1498 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1499 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1500 deployment_identifier: {get_param: DeployIdentifier}
1501 StepConfig: {get_attr: [ObjectStorageServiceChain, step_config]}
1503 BlockStorageNodesPostDeployment:
1504 type: OS::TripleO::BlockStoragePostDeployment
1505 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1507 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1508 NodeConfigIdentifiers:
1509 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1510 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1511 deployment_identifier: {get_param: DeployIdentifier}
1513 CephStorageNodesPostDeployment:
1514 type: OS::TripleO::CephStoragePostDeployment
1515 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1517 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1518 NodeConfigIdentifiers:
1519 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1520 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1521 deployment_identifier: {get_param: DeployIdentifier}
1522 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1526 description: URL for the Overcloud Keystone service
1527 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1529 description: Keystone Admin VIP endpoint
1530 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1532 description: Controller VIP for public API endpoints
1533 value: {get_attr: [VipMap, net_ip_map, external]}
1535 description: VIP for Aodh API internal endpoint
1536 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1537 CeilometerInternalVip:
1538 description: VIP for Ceilometer API internal endpoint
1539 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1541 description: VIP for Cinder API internal endpoint
1542 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1544 description: VIP for Glance API internal endpoint
1545 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1547 description: VIP for Gnocchi API internal endpoint
1548 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1550 description: VIP for Heat API internal endpoint
1551 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1552 KeystoneInternalVip:
1553 description: VIP for Keystone API internal endpoint
1554 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1556 description: VIP for Neutron API internal endpoint
1557 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1559 description: VIP for Nova API internal endpoint
1560 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1562 description: VIP for Sahara API internal endpoint
1563 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1565 description: VIP for Swift Proxy internal endpoint
1566 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1569 Mapping of the resources with the needed info for their endpoints.
1570 This includes the protocol used, the IP, port and also a full
1571 representation of the URI.
1572 value: {get_attr: [EndpointMap, endpoint_map]}
1575 The content that should be appended to your /etc/hosts if you want to get
1576 hostname-based access to the deployed nodes (useful for testing without
1578 value: {get_attr: [allNodesConfig, hosts_entries]}