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 NeutronCorePlugin: {get_param: NeutronCorePlugin}
871 NeutronServicePlugins: {get_param: NeutronServicePlugins}
872 NovaIPv6: {get_param: NovaIPv6}
873 NovaPassword: {get_param: NovaPassword}
874 NtpServer: {get_param: NtpServer}
875 MongoDbNoJournal: {get_param: MongoDbNoJournal}
876 MongoDbIPv6: {get_param: MongoDbIPv6}
877 PcsdPassword: {get_resource: PcsdPassword}
878 PublicVirtualInterface: {get_param: PublicVirtualInterface}
879 RabbitPassword: {get_param: RabbitPassword}
880 RabbitUserName: {get_param: RabbitUserName}
881 RabbitCookie: {get_attr: [RabbitCookie, value]}
882 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
883 RabbitClientPort: {get_param: RabbitClientPort}
884 RedisPassword: {get_param: RedisPassword}
885 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
886 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
887 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
888 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
889 SwiftHashSuffix: {get_param: SwiftHashSuffix}
890 SwiftMountCheck: {get_param: SwiftMountCheck}
891 SwiftMinPartHours: {get_param: SwiftMinPartHours}
892 SwiftPartPower: {get_param: SwiftPartPower}
893 SwiftReplicas: { get_param: SwiftReplicas}
894 TimeZone: {get_param: TimeZone}
895 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
896 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
897 ServiceNetMap: {get_param: ServiceNetMap}
898 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
899 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
900 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
901 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
902 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
903 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
904 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
905 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
906 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
907 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
908 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
909 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
910 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
911 UpdateIdentifier: {get_param: UpdateIdentifier}
914 template: {get_param: ControllerHostnameFormat}
916 '%stackname%': {get_param: 'OS::stack_name'}
918 ServerMetadata: {get_param: ServerMetadata}
919 SchedulerHints: {get_param: ControllerSchedulerHints}
920 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
923 type: OS::TripleO::Services
925 Services: {get_param: ComputeServices}
926 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
929 type: OS::Heat::ResourceGroup
932 count: {get_param: ComputeCount}
933 removal_policies: {get_param: ComputeRemovalPolicies}
935 type: OS::TripleO::Compute
937 AdminPassword: {get_param: AdminPassword}
938 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
939 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
940 CeilometerPassword: {get_param: CeilometerPassword}
941 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
942 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
943 Debug: {get_param: Debug}
944 ExtraConfig: {get_param: ExtraConfig}
945 Flavor: {get_param: OvercloudComputeFlavor}
946 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
947 Image: {get_param: NovaImage}
948 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
949 KeyName: {get_param: KeyName}
950 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
951 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
952 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
953 NeutronTenantMtu: {get_param: NeutronTenantMtu}
954 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
955 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
956 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
957 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
958 NeutronNetworkType: {get_param: NeutronNetworkType}
959 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
960 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
961 NeutronPassword: {get_param: NeutronPassword}
962 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
963 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
964 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
965 NeutronCorePlugin: {get_param: NeutronCorePlugin}
966 NeutronServicePlugins: {get_param: NeutronServicePlugins}
967 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
968 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
969 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
970 # L3 HA and Failover is not relevant for Computes, should be removed
971 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
972 NeutronL3HA: {get_param: NeutronL3HA}
973 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
974 NovaComputeDriver: {get_param: NovaComputeDriver}
975 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
976 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
977 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
978 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
979 NovaIPv6: {get_param: NovaIPv6}
980 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
981 NovaPassword: {get_param: NovaPassword}
982 NovaOVSBridge: {get_param: NovaOVSBridge}
983 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
984 NtpServer: {get_param: NtpServer}
985 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
986 RabbitPassword: {get_param: RabbitPassword}
987 RabbitUserName: {get_param: RabbitUserName}
988 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
989 RabbitClientPort: {get_param: RabbitClientPort}
990 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
991 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
992 ServiceNetMap: {get_param: ServiceNetMap}
993 TimeZone: {get_param: TimeZone}
994 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
995 UpdateIdentifier: {get_param: UpdateIdentifier}
998 template: {get_param: ComputeHostnameFormat}
1000 '%stackname%': {get_param: 'OS::stack_name'}
1001 CloudDomain: {get_param: CloudDomain}
1002 ServerMetadata: {get_param: ServerMetadata}
1003 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1004 NodeIndex: '%index%'
1005 ServiceConfigSettings: {get_attr: [ComputeServiceChain, config_settings]}
1009 type: OS::Heat::ResourceGroup
1010 depends_on: Networks
1012 count: {get_param: BlockStorageCount}
1013 removal_policies: {get_param: BlockStorageRemovalPolicies}
1015 type: OS::TripleO::BlockStorage
1017 Debug: {get_param: Debug}
1018 Image: {get_param: BlockStorageImage}
1019 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1020 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1021 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1022 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1023 CinderPassword: {get_param: CinderPassword}
1024 KeyName: {get_param: KeyName}
1025 Flavor: {get_param: OvercloudBlockStorageFlavor}
1026 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1027 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1028 RabbitPassword: {get_param: RabbitPassword}
1029 RabbitUserName: {get_param: RabbitUserName}
1030 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1031 RabbitClientPort: {get_param: RabbitClientPort}
1032 TimeZone: {get_param: TimeZone}
1033 NtpServer: {get_param: NtpServer}
1034 UpdateIdentifier: {get_param: UpdateIdentifier}
1037 template: {get_param: BlockStorageHostnameFormat}
1039 '%stackname%': {get_param: 'OS::stack_name'}
1040 ServiceNetMap: {get_param: ServiceNetMap}
1041 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1042 ExtraConfig: {get_param: ExtraConfig}
1043 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1044 CloudDomain: {get_param: CloudDomain}
1045 ServerMetadata: {get_param: ServerMetadata}
1046 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1047 NodeIndex: '%index%'
1049 ObjectStorageServiceChain:
1050 type: OS::TripleO::Services
1052 Services: {get_param: ObjectStorageServices}
1053 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1056 type: OS::Heat::ResourceGroup
1057 depends_on: Networks
1059 count: {get_param: ObjectStorageCount}
1060 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1062 type: OS::TripleO::ObjectStorage
1064 KeyName: {get_param: KeyName}
1065 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1066 HashSuffix: {get_param: SwiftHashSuffix}
1067 MountCheck: {get_param: SwiftMountCheck}
1068 MinPartHours: {get_param: SwiftMinPartHours}
1069 PartPower: {get_param: SwiftPartPower}
1070 Image: {get_param: SwiftStorageImage}
1071 Replicas: { get_param: SwiftReplicas}
1072 TimeZone: {get_param: TimeZone}
1073 NtpServer: {get_param: NtpServer}
1074 UpdateIdentifier: {get_param: UpdateIdentifier}
1075 ServiceNetMap: {get_param: ServiceNetMap}
1078 template: {get_param: ObjectStorageHostnameFormat}
1080 '%stackname%': {get_param: 'OS::stack_name'}
1081 ExtraConfig: {get_param: ExtraConfig}
1082 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1083 CloudDomain: {get_param: CloudDomain}
1084 ServerMetadata: {get_param: ServerMetadata}
1085 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1086 NodeIndex: '%index%'
1087 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, config_settings]}
1089 CephStorageServiceChain:
1090 type: OS::TripleO::Services
1092 Services: {get_param: CephStorageServices}
1093 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1096 type: OS::Heat::ResourceGroup
1097 depends_on: Networks
1099 count: {get_param: CephStorageCount}
1100 removal_policies: {get_param: CephStorageRemovalPolicies}
1102 type: OS::TripleO::CephStorage
1104 Image: {get_param: CephStorageImage}
1105 KeyName: {get_param: KeyName}
1106 Flavor: {get_param: OvercloudCephStorageFlavor}
1107 NtpServer: {get_param: NtpServer}
1108 ServiceNetMap: {get_param: ServiceNetMap}
1109 TimeZone: {get_param: TimeZone}
1110 UpdateIdentifier: {get_param: UpdateIdentifier}
1113 template: {get_param: CephStorageHostnameFormat}
1115 '%stackname%': {get_param: 'OS::stack_name'}
1116 ExtraConfig: {get_param: ExtraConfig}
1117 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1118 CloudDomain: {get_param: CloudDomain}
1119 ServerMetadata: {get_param: ServerMetadata}
1120 SchedulerHints: {get_param: CephStorageSchedulerHints}
1121 NodeIndex: '%index%'
1122 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1124 ControllerIpListMap:
1125 type: OS::TripleO::Network::Ports::NetIpListMap
1127 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1128 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1129 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1130 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1131 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1132 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1133 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1136 type: OS::TripleO::AllNodes::SoftwareConfig
1138 compute_hosts: {get_attr: [Compute, hosts_entry]}
1139 controller_hosts: {get_attr: [Controller, hosts_entry]}
1140 controller_ips: {get_attr: [Controller, ip_address]}
1141 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1142 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1143 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1144 controller_names: {get_attr: [Controller, hostname]}
1145 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1146 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1147 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1148 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1149 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1150 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1151 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1152 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1153 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1154 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1155 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1156 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1157 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1158 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1159 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1160 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1161 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1162 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1163 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1164 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1165 DeployIdentifier: {get_param: DeployIdentifier}
1166 UpdateIdentifier: {get_param: UpdateIdentifier}
1169 type: OS::Heat::RandomString
1173 MysqlClusterUniquePart:
1174 type: OS::Heat::RandomString
1179 type: OS::Heat::RandomString
1182 salt: {get_param: RabbitCookieSalt}
1184 # creates the network architecture
1186 type: OS::TripleO::Network
1189 type: OS::Neutron::Port
1190 depends_on: Networks
1192 name: control_virtual_ip
1193 network: {get_param: NeutronControlPlaneID}
1194 fixed_ips: {get_param: ControlFixedIPs}
1195 replacement_policy: AUTO
1198 depends_on: Networks
1199 type: OS::TripleO::Network::Ports::RedisVipPort
1201 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1202 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1203 PortName: redis_virtual_ip
1204 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1207 # The public VIP is on the External net, falls back to ctlplane
1209 depends_on: Networks
1210 type: OS::TripleO::Network::Ports::ExternalVipPort
1212 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1213 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1214 PortName: public_virtual_ip
1215 FixedIPs: {get_param: PublicVirtualFixedIPs}
1217 InternalApiVirtualIP:
1218 depends_on: Networks
1219 type: OS::TripleO::Network::Ports::InternalApiVipPort
1221 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1222 PortName: internal_api_virtual_ip
1223 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1226 depends_on: Networks
1227 type: OS::TripleO::Network::Ports::StorageVipPort
1229 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1230 PortName: storage_virtual_ip
1231 FixedIPs: {get_param: StorageVirtualFixedIPs}
1233 StorageMgmtVirtualIP:
1234 depends_on: Networks
1235 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1237 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1238 PortName: storage_management_virtual_ip
1239 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1242 type: OS::TripleO::Network::Ports::NetVipMap
1244 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1245 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1246 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1247 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1248 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1249 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1250 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1251 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1252 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1253 # No tenant or management VIP required
1256 type: OS::TripleO::VipConfig
1259 type: OS::Heat::StructuredDeployments
1262 config: {get_resource: VipConfig}
1263 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1265 # service VIP mappings
1266 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1267 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1268 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1269 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1270 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1271 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1272 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1273 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1274 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1275 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1276 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1277 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1278 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1279 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1280 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1281 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1282 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1283 # direct configuration of Virtual IPs for each network
1284 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1285 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1286 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1287 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1288 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1289 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1291 ControllerBootstrapNodeConfig:
1292 type: OS::TripleO::BootstrapNode::SoftwareConfig
1294 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1295 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1297 ControllerBootstrapNodeDeployment:
1298 type: OS::Heat::StructuredDeployments
1300 name: ControllerBootstrapNodeDeployment
1301 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1302 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1304 ControllerSwiftDeployment:
1305 type: OS::Heat::StructuredDeployments
1307 name: ControllerSwiftDeployment
1308 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1309 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1311 ObjectStorageSwiftDeployment:
1312 type: OS::Heat::StructuredDeployments
1314 name: ObjectStorageSwiftDeployment
1315 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1316 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1318 SwiftDevicesAndProxyConfig:
1319 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1321 controller_swift_devices: {get_attr: [Controller, swift_device]}
1322 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1323 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1325 ComputeCephDeployment:
1326 type: OS::Heat::StructuredDeployments
1328 name: ComputeCephDeployment
1329 config: {get_attr: [CephClusterConfig, config_id]}
1330 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1332 ControllerCephDeployment:
1333 type: OS::Heat::StructuredDeployments
1335 name: ControllerCephDeployment
1336 config: {get_attr: [CephClusterConfig, config_id]}
1337 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1339 CephStorageCephDeployment:
1340 type: OS::Heat::StructuredDeployments
1342 name: CephStorageCephDeployment
1343 config: {get_attr: [CephClusterConfig, config_id]}
1344 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1347 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1349 ceph_storage_count: {get_param: CephStorageCount}
1350 ceph_fsid: {get_param: CephClusterFSID}
1351 ceph_mon_key: {get_param: CephMonKey}
1352 ceph_admin_key: {get_param: CephAdminKey}
1353 ceph_client_key: {get_param: CephClientKey}
1354 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1355 ceph_mon_names: {get_attr: [Controller, hostname]}
1356 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1358 ControllerAllNodesDeployment:
1359 type: OS::Heat::StructuredDeployments
1361 name: ControllerAllNodesDeployment
1362 config: {get_attr: [allNodesConfig, config_id]}
1363 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1365 ComputeAllNodesDeployment:
1366 type: OS::Heat::StructuredDeployments
1368 name: ComputeAllNodesDeployment
1369 config: {get_attr: [allNodesConfig, config_id]}
1370 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1372 BlockStorageAllNodesDeployment:
1373 type: OS::Heat::StructuredDeployments
1375 name: BlockStorageAllNodesDeployment
1376 config: {get_attr: [allNodesConfig, config_id]}
1377 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1379 ObjectStorageAllNodesDeployment:
1380 type: OS::Heat::StructuredDeployments
1382 name: ObjectStorageAllNodesDeployment
1383 config: {get_attr: [allNodesConfig, config_id]}
1384 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1386 CephStorageAllNodesDeployment:
1387 type: OS::Heat::StructuredDeployments
1389 name: CephStorageAllNodesDeployment
1390 config: {get_attr: [allNodesConfig, config_id]}
1391 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1393 # All Nodes Validations
1394 AllNodesValidationConfig:
1395 type: OS::TripleO::AllNodes::Validation
1400 - - {get_attr: [Controller, resource.0.external_ip_address]}
1401 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1402 - {get_attr: [Controller, resource.0.storage_ip_address]}
1403 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1404 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1406 ControllerAllNodesValidationDeployment:
1407 type: OS::Heat::StructuredDeployments
1408 depends_on: ControllerAllNodesDeployment
1410 name: ControllerAllNodesValidationDeployment
1411 config: {get_resource: AllNodesValidationConfig}
1412 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1414 ComputeAllNodesValidationDeployment:
1415 type: OS::Heat::StructuredDeployments
1416 depends_on: ComputeAllNodesDeployment
1418 name: ComputeAllNodesValidationDeployment
1419 config: {get_resource: AllNodesValidationConfig}
1420 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1422 BlockStorageAllNodesValidationDeployment:
1423 type: OS::Heat::StructuredDeployments
1424 depends_on: BlockStorageAllNodesDeployment
1426 name: BlockStorageAllNodesValidationDeployment
1427 config: {get_resource: AllNodesValidationConfig}
1428 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1430 ObjectStorageAllNodesValidationDeployment:
1431 type: OS::Heat::StructuredDeployments
1432 depends_on: ObjectStorageAllNodesDeployment
1434 name: ObjectStorageAllNodesValidationDeployment
1435 config: {get_resource: AllNodesValidationConfig}
1436 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1438 CephStorageAllNodesValidationDeployment:
1439 type: OS::Heat::StructuredDeployments
1440 depends_on: CephStorageAllNodesDeployment
1442 name: CephStorageAllNodesValidationDeployment
1443 config: {get_resource: AllNodesValidationConfig}
1444 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1447 type: OS::TripleO::Tasks::UpdateWorkflow
1449 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1450 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1451 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1452 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1453 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1455 deploy_identifier: {get_param: DeployIdentifier}
1456 update_identifier: {get_param: UpdateIdentifier}
1458 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1459 # the nested template may configure each role differently (or not at all)
1460 AllNodesExtraConfig:
1461 type: OS::TripleO::AllNodesExtraConfig
1464 - ComputeAllNodesValidationDeployment
1465 - BlockStorageAllNodesValidationDeployment
1466 - ObjectStorageAllNodesValidationDeployment
1467 - CephStorageAllNodesValidationDeployment
1468 - ControllerAllNodesValidationDeployment
1470 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1471 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1472 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1473 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1474 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1476 # Nested stack deployment runs after all other controller deployments
1477 ControllerNodesPostDeployment:
1478 type: OS::TripleO::ControllerPostDeployment
1479 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1481 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1482 NodeConfigIdentifiers:
1483 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1484 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1485 deployment_identifier: {get_param: DeployIdentifier}
1486 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1488 ComputeNodesPostDeployment:
1489 type: OS::TripleO::ComputePostDeployment
1490 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1492 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1493 NodeConfigIdentifiers:
1494 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1495 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1496 deployment_identifier: {get_param: DeployIdentifier}
1497 StepConfig: {get_attr: [ComputeServiceChain, step_config]}
1499 ObjectStorageNodesPostDeployment:
1500 type: OS::TripleO::ObjectStoragePostDeployment
1501 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1503 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1504 NodeConfigIdentifiers:
1505 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1506 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1507 deployment_identifier: {get_param: DeployIdentifier}
1508 StepConfig: {get_attr: [ObjectStorageServiceChain, step_config]}
1510 BlockStorageNodesPostDeployment:
1511 type: OS::TripleO::BlockStoragePostDeployment
1512 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1514 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1515 NodeConfigIdentifiers:
1516 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1517 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1518 deployment_identifier: {get_param: DeployIdentifier}
1520 CephStorageNodesPostDeployment:
1521 type: OS::TripleO::CephStoragePostDeployment
1522 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1524 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1525 NodeConfigIdentifiers:
1526 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1527 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1528 deployment_identifier: {get_param: DeployIdentifier}
1529 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1533 description: URL for the Overcloud Keystone service
1534 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1536 description: Keystone Admin VIP endpoint
1537 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1539 description: Controller VIP for public API endpoints
1540 value: {get_attr: [VipMap, net_ip_map, external]}
1542 description: VIP for Aodh API internal endpoint
1543 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1544 CeilometerInternalVip:
1545 description: VIP for Ceilometer API internal endpoint
1546 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1548 description: VIP for Cinder API internal endpoint
1549 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1551 description: VIP for Glance API internal endpoint
1552 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1554 description: VIP for Gnocchi API internal endpoint
1555 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1557 description: VIP for Heat API internal endpoint
1558 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1559 KeystoneInternalVip:
1560 description: VIP for Keystone API internal endpoint
1561 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1563 description: VIP for Neutron API internal endpoint
1564 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1566 description: VIP for Nova API internal endpoint
1567 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1569 description: VIP for Sahara API internal endpoint
1570 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1572 description: VIP for Swift Proxy internal endpoint
1573 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1576 Mapping of the resources with the needed info for their endpoints.
1577 This includes the protocol used, the IP, port and also a full
1578 representation of the URI.
1579 value: {get_attr: [EndpointMap, endpoint_map]}
1582 The content that should be appended to your /etc/hosts if you want to get
1583 hostname-based access to the deployed nodes (useful for testing without
1585 value: {get_attr: [allNodesConfig, hosts_entries]}