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.
224 #TODO(ccamacho): Remove after landing Ntp in all roles
227 description: Comma-separated list of ntp servers
228 type: comma_delimited_list
229 PublicVirtualFixedIPs:
232 Control the IP allocation for the PublicVirtualInterface port. E.g.
233 [{'ip_address':'1.2.3.4'}]
238 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
241 description: The username for RabbitMQ
244 description: The password for RabbitMQ
250 Rabbit client subscriber parameter to specify
251 an SSL connection to the RabbitMQ host.
255 description: Set rabbit subscriber port, change this if using SSL
258 description: The password for Redis
261 SnmpdReadonlyUserName:
262 default: ro_snmp_user
263 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
265 SnmpdReadonlyUserPassword:
266 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
269 StorageVirtualFixedIPs:
272 Control the IP allocation for the StorageVirtualInterface port. E.g.
273 [{'ip_address':'1.2.3.4'}]
275 StorageMgmtVirtualFixedIPs:
278 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
279 [{'ip_address':'1.2.3.4'}]
283 description: The timezone to be set on nodes.
286 default: 'localdomain'
289 The DNS domain used for the hosts. This should match the dhcp_domain
290 configured in the Undercloud neutron. Defaults to localdomain.
294 Extra properties or metadata passed to Nova for the created nodes in
295 the overcloud. It's accessible via the Nova metadata API.
298 # Controller-specific params
299 CinderLVMLoopDeviceSize:
301 description: The size of the loopback file used by the cinder LVM driver.
304 description: The password for the cinder service account, used by cinder-api.
309 description: The iSCSI helper to use with cinder.
316 controllerExtraConfig:
319 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
323 default: overcloud-full
325 - custom_constraint: glance.image
326 OvercloudControlFlavor:
327 description: Flavor for control nodes to request when deploying.
331 - custom_constraint: nova.flavor
332 ControlVirtualInterface:
334 description: Interface where virtual ip will be assigned.
338 description: Whether to enable fencing in Pacemaker or not.
342 description: Whether to use Galera instead of regular MariaDB.
344 ControllerEnableCephStorage:
346 description: Whether to deploy Ceph Storage (OSD) on the Controller
348 ControllerEnableSwiftStorage:
350 description: Whether to enable Swift Storage on the Controller
352 ControllerSchedulerHints:
354 description: Optional scheduler hints to pass to nova
359 Additional configuration to inject into the cluster. The format required
360 may be implementation specific, e.g puppet hieradata. Any role specific
361 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
366 Pacemaker fencing configuration. The JSON should have
367 the following structure:
371 "agent": "AGENT_NAME",
372 "host_mac": "HOST_MAC_ADDRESS",
373 "params": {"PARAM_NAME": "PARAM_VALUE"}
381 "agent": "fence_xvm",
382 "host_mac": "52:54:00:aa:bb:cc",
384 "multicast_address": "225.0.0.12",
385 "port": "baremetal_0",
387 "manage_key_file": true,
388 "key_file": "/etc/fence_xvm.key",
389 "key_file_password": "abcdef"
397 description: The short name of the Gnocchi backend to use. Should be one
398 of swift, rbd or file
401 - allowed_values: ['swift', 'file', 'rbd']
402 GnocchiIndexerBackend:
404 description: The short name of the Gnocchi indexer backend to use.
407 description: The password for the gnocchi service account.
410 InstanceNameTemplate:
411 default: 'instance-%08x'
412 description: Template string to be used to generate instance names
416 description: Whether to manage IPtables rules.
420 description: Whether IPtables rules should be purged before setting up the ones.
422 MysqlInnodbBufferPoolSize:
424 Specifies the size of the buffer pool in megabytes. Setting to
425 zero should be interpreted as "no value" and will defer to the
430 description: Configures MySQL max_connections config setting
433 PublicVirtualInterface:
436 Specifies the interface where the public-facing virtual ip will be assigned.
437 This should be int_public when a VLAN is being used.
440 description: A random string to be used as a salt when hashing to determine mappings in the ring.
445 description: Value of mount_check in Swift account/container/object -server.conf
450 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
453 description: Partition Power to use when building Swift rings
458 description: How many replicas to use in the swift rings.
460 # Compute-specific params
461 CeilometerComputeAgent:
462 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
466 - allowed_values: ['', Present]
470 HypervisorNeutronPhysicalBridge:
473 An OVS bridge to create on each hypervisor. This defaults to br-ex the
474 same as the control plane nodes, as we have a uniform configuration of
475 the openvswitch agent. Typically should not need to be changed.
477 HypervisorNeutronPublicInterface:
479 description: What interface to add to the HypervisorNeutronPhysicalBridge.
481 NeutronNetworkVLANRanges:
482 default: 'datacentre:1:1000'
484 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
485 Neutron documentation for permitted values. Defaults to permitting any
486 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
487 type: comma_delimited_list
490 default: libvirt.LibvirtDriver
491 NovaComputeExtraConfig:
494 NovaCompute specific configuration to inject into the cluster. Same
495 structure as ExtraConfig.
497 NovaComputeLibvirtType:
500 NovaComputeLibvirtVifDriver:
502 description: Libvirt VIF driver configuration for the network
504 NovaComputeSchedulerHints:
506 description: Optional scheduler hints to pass to nova
508 NovaEnableRbdBackend:
510 description: Whether to enable or not the Rbd backend for Nova
514 default: overcloud-full
516 - custom_constraint: glance.image
519 description: Name of integration bridge used by Open vSwitch
521 NovaSecurityGroupAPI:
523 description: The full class name of the security API class
525 OvercloudComputeFlavor:
526 description: Use this flavor
530 - custom_constraint: nova.flavor
533 NeutronTenantNetwork: tenant
534 CeilometerApiNetwork: internal_api
535 AodhApiNetwork: internal_api
536 GnocchiApiNetwork: internal_api
537 MongoDbNetwork: internal_api
538 CinderApiNetwork: internal_api
539 CinderIscsiNetwork: storage
540 GlanceApiNetwork: storage
541 GlanceRegistryNetwork: internal_api
542 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
543 KeystonePublicApiNetwork: internal_api
544 NeutronApiNetwork: internal_api
545 HeatApiNetwork: internal_api
546 NovaApiNetwork: internal_api
547 NovaMetadataNetwork: internal_api
548 NovaVncProxyNetwork: internal_api
549 SwiftMgmtNetwork: storage_mgmt
550 SwiftProxyNetwork: storage
551 SaharaApiNetwork: internal_api
552 HorizonNetwork: internal_api
553 MemcachedNetwork: internal_api
554 RabbitMqNetwork: internal_api
555 RedisNetwork: internal_api
556 MysqlNetwork: internal_api
557 CephClusterNetwork: storage_mgmt
558 CephPublicNetwork: storage
559 ControllerHostnameResolveNetwork: internal_api
560 ComputeHostnameResolveNetwork: internal_api
561 BlockStorageHostnameResolveNetwork: internal_api
562 ObjectStorageHostnameResolveNetwork: internal_api
563 CephStorageHostnameResolveNetwork: storage
564 description: Mapping of service_name -> network name. Typically set
565 via parameter_defaults in the resource registry.
570 - OS::TripleO::Services::CinderApi
571 - OS::TripleO::Services::CinderScheduler
572 - OS::TripleO::Services::CinderVolume
573 - OS::TripleO::Services::Keystone
574 - OS::TripleO::Services::GlanceApi
575 - OS::TripleO::Services::GlanceRegistry
576 - OS::TripleO::Services::HeatApi
577 - OS::TripleO::Services::HeatApiCfn
578 - OS::TripleO::Services::HeatApiCloudwatch
579 - OS::TripleO::Services::HeatEngine
580 - OS::TripleO::Services::NeutronDhcpAgent
581 - OS::TripleO::Services::NeutronL3Agent
582 - OS::TripleO::Services::NeutronMetadataAgent
583 - OS::TripleO::Services::NeutronServer
584 - OS::TripleO::Services::NeutronCorePlugin
585 - OS::TripleO::Services::NeutronOvsAgent
586 - OS::TripleO::Services::RabbitMQ
587 - OS::TripleO::Services::HAproxy
588 - OS::TripleO::Services::Keepalived
589 - OS::TripleO::Services::Memcached
590 - OS::TripleO::Services::SwiftProxy
591 - OS::TripleO::Services::Redis
592 - OS::TripleO::Services::NovaConductor
593 - OS::TripleO::Services::MongoDb
594 - OS::TripleO::Services::NovaApi
595 - OS::TripleO::Services::NovaScheduler
596 - OS::TripleO::Services::NovaConsoleauth
597 - OS::TripleO::Services::NovaVncproxy
598 - OS::TripleO::Services::Ntp
599 description: A list of service resources (configured in the Heat
600 resource_registry) which represent nested stacks
601 for each service that should get installed on the Controllers.
602 type: comma_delimited_list
606 - OS::TripleO::Services::NovaCompute
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 - OS::TripleO::Services::Ntp
695 description: A list of service resources (configured in the Heat
696 resource_registry) which represent nested stacks
697 for each service that should get installed on the CephStorage nodes.
698 type: comma_delimited_list
700 # Hostname format for each role
701 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
702 # and %stackname% is replaced with OS::stack_name in the template below.
703 # If you want to use the heat generated names, pass '' (empty string).
704 ControllerHostnameFormat:
706 description: Format for Controller node hostnames
707 default: '%stackname%-controller-%index%'
708 ComputeHostnameFormat:
710 description: Format for Compute node hostnames
711 default: '%stackname%-novacompute-%index%'
712 BlockStorageHostnameFormat:
714 description: Format for BlockStorage node hostnames
715 default: '%stackname%-blockstorage-%index%'
716 ObjectStorageHostnameFormat:
718 description: Format for SwiftStorage node hostnames
719 default: '%stackname%-objectstorage-%index%'
720 CephStorageHostnameFormat:
722 description: Format for CephStorage node hostnames
723 default: '%stackname%-cephstorage-%index%'
725 # Identifiers to trigger tasks on nodes
730 Setting to a previously unused value during stack-update will trigger
731 package update on all nodes
736 Setting this to a unique value will re-run any deployment tasks which
737 perform configuration on a Heat stack-update.
739 # If you want to remove a specific node from a resource group, you can pass
740 # the node name or id as a <Group>RemovalPolicies parameter, for example:
741 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
742 ControllerRemovalPolicies:
746 List of resources to be removed from ControllerResourceGroup when
747 doing an update which requires removal of specific resources.
748 ComputeRemovalPolicies:
752 List of resources to be removed from ComputeResourceGroup when
753 doing an update which requires removal of specific resources.
754 BlockStorageRemovalPolicies:
758 List of resources to be removed from BlockStorageResourceGroup when
759 doing an update which requires removal of specific resources.
760 ObjectStorageRemovalPolicies:
764 List of resources to be removed from ObjectStorageResourceGroup when
765 doing an update which requires removal of specific resources.
766 CephStorageRemovalPolicies:
770 List of resources to be removed from CephStorageResourceGroup when
771 doing an update which requires removal of specific resources.
775 description: Do not use deprecated params, they will be removed.
777 - controllerExtraConfig
782 HeatAuthEncryptionKey:
783 type: OS::Heat::RandomString
786 type: OS::Heat::RandomString
791 type: OS::Heat::RandomString
796 type: OS::TripleO::EndpointMap
798 CloudName: {get_param: CloudName}
799 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
800 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
801 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
802 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
803 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
804 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
805 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
806 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
807 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
808 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
809 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
810 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
811 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
812 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
813 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
815 ControllerServiceChain:
816 type: OS::TripleO::Services
819 Services: {get_param: ControllerServices}
820 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
823 type: OS::Heat::ResourceGroup
826 count: {get_param: ControllerCount}
827 removal_policies: {get_param: ControllerRemovalPolicies}
829 type: OS::TripleO::Controller
831 AdminPassword: {get_param: AdminPassword}
832 AodhPassword: {get_param: AodhPassword}
833 CeilometerBackend: {get_param: CeilometerBackend}
834 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
835 CeilometerPassword: {get_param: CeilometerPassword}
836 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
837 CloudDomain: {get_param: CloudDomain}
838 ControlVirtualInterface: {get_param: ControlVirtualInterface}
839 controllerExtraConfig: {get_param: controllerExtraConfig}
840 CorosyncIPv6: {get_param: CorosyncIPv6}
841 Debug: {get_param: Debug}
842 EnableFencing: {get_param: EnableFencing}
843 ManageFirewall: {get_param: ManageFirewall}
844 PurgeFirewallRules: {get_param: PurgeFirewallRules}
845 EnableGalera: {get_param: EnableGalera}
846 EnableCephStorage: {get_param: ControllerEnableCephStorage}
847 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
848 ExtraConfig: {get_param: ExtraConfig}
849 FencingConfig: {get_param: FencingConfig}
850 Flavor: {get_param: OvercloudControlFlavor}
851 GnocchiPassword: {get_param: GnocchiPassword}
852 GnocchiBackend: {get_param: GnocchiBackend}
853 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
854 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
855 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
856 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
857 HorizonSecret: {get_resource: HorizonSecret}
858 Image: {get_param: controllerImage}
859 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
860 InstanceNameTemplate: {get_param: InstanceNameTemplate}
861 KeyName: {get_param: KeyName}
862 MemcachedIPv6: {get_param: MemcachedIPv6}
863 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
864 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
865 MysqlMaxConnections: {get_param: MysqlMaxConnections}
866 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
867 NeutronTenantMtu: {get_param: NeutronTenantMtu}
868 NeutronPublicInterface: {get_param: NeutronPublicInterface}
869 NeutronPassword: {get_param: NeutronPassword}
870 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
871 NovaIPv6: {get_param: NovaIPv6}
872 NovaPassword: {get_param: NovaPassword}
873 PcsdPassword: {get_resource: PcsdPassword}
874 PublicVirtualInterface: {get_param: PublicVirtualInterface}
875 RabbitPassword: {get_param: RabbitPassword}
876 RabbitUserName: {get_param: RabbitUserName}
877 RabbitCookie: {get_attr: [RabbitCookie, value]}
878 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
879 RabbitClientPort: {get_param: RabbitClientPort}
880 RedisPassword: {get_param: RedisPassword}
881 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
882 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
883 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
884 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
885 SwiftHashSuffix: {get_param: SwiftHashSuffix}
886 SwiftMountCheck: {get_param: SwiftMountCheck}
887 SwiftMinPartHours: {get_param: SwiftMinPartHours}
888 SwiftPartPower: {get_param: SwiftPartPower}
889 SwiftReplicas: { get_param: SwiftReplicas}
890 TimeZone: {get_param: TimeZone}
891 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
892 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
893 ServiceNetMap: {get_param: ServiceNetMap}
894 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
895 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
896 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
897 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
898 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
899 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
900 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
901 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
902 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
903 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
904 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
905 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
906 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
907 UpdateIdentifier: {get_param: UpdateIdentifier}
910 template: {get_param: ControllerHostnameFormat}
912 '%stackname%': {get_param: 'OS::stack_name'}
914 ServerMetadata: {get_param: ServerMetadata}
915 SchedulerHints: {get_param: ControllerSchedulerHints}
916 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
919 type: OS::TripleO::Services
921 Services: {get_param: ComputeServices}
922 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
925 type: OS::Heat::ResourceGroup
928 count: {get_param: ComputeCount}
929 removal_policies: {get_param: ComputeRemovalPolicies}
931 type: OS::TripleO::Compute
933 AdminPassword: {get_param: AdminPassword}
934 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
935 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
936 CeilometerPassword: {get_param: CeilometerPassword}
937 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
938 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
939 Debug: {get_param: Debug}
940 ExtraConfig: {get_param: ExtraConfig}
941 Flavor: {get_param: OvercloudComputeFlavor}
942 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
943 Image: {get_param: NovaImage}
944 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
945 KeyName: {get_param: KeyName}
946 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
947 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
948 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
949 NeutronTenantMtu: {get_param: NeutronTenantMtu}
950 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
951 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
952 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
953 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
954 NeutronNetworkType: {get_param: NeutronNetworkType}
955 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
956 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
957 NeutronPassword: {get_param: NeutronPassword}
958 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
959 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
960 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
961 NeutronCorePlugin: {get_param: NeutronCorePlugin}
962 NeutronServicePlugins: {get_param: NeutronServicePlugins}
963 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
964 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
965 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
966 # L3 HA and Failover is not relevant for Computes, should be removed
967 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
968 NeutronL3HA: {get_param: NeutronL3HA}
969 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
970 NovaComputeDriver: {get_param: NovaComputeDriver}
971 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
972 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
973 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
974 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
975 NovaIPv6: {get_param: NovaIPv6}
976 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
977 NovaPassword: {get_param: NovaPassword}
978 NovaOVSBridge: {get_param: NovaOVSBridge}
979 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
980 NtpServer: {get_param: NtpServer}
981 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
982 RabbitPassword: {get_param: RabbitPassword}
983 RabbitUserName: {get_param: RabbitUserName}
984 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
985 RabbitClientPort: {get_param: RabbitClientPort}
986 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
987 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
988 ServiceNetMap: {get_param: ServiceNetMap}
989 TimeZone: {get_param: TimeZone}
990 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
991 UpdateIdentifier: {get_param: UpdateIdentifier}
994 template: {get_param: ComputeHostnameFormat}
996 '%stackname%': {get_param: 'OS::stack_name'}
997 CloudDomain: {get_param: CloudDomain}
998 ServerMetadata: {get_param: ServerMetadata}
999 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1000 NodeIndex: '%index%'
1001 ServiceConfigSettings: {get_attr: [ComputeServiceChain, config_settings]}
1005 type: OS::Heat::ResourceGroup
1006 depends_on: Networks
1008 count: {get_param: BlockStorageCount}
1009 removal_policies: {get_param: BlockStorageRemovalPolicies}
1011 type: OS::TripleO::BlockStorage
1013 Debug: {get_param: Debug}
1014 Image: {get_param: BlockStorageImage}
1015 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1016 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1017 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1018 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1019 CinderPassword: {get_param: CinderPassword}
1020 KeyName: {get_param: KeyName}
1021 Flavor: {get_param: OvercloudBlockStorageFlavor}
1022 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1023 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1024 RabbitPassword: {get_param: RabbitPassword}
1025 RabbitUserName: {get_param: RabbitUserName}
1026 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1027 RabbitClientPort: {get_param: RabbitClientPort}
1028 TimeZone: {get_param: TimeZone}
1029 NtpServer: {get_param: NtpServer}
1030 UpdateIdentifier: {get_param: UpdateIdentifier}
1033 template: {get_param: BlockStorageHostnameFormat}
1035 '%stackname%': {get_param: 'OS::stack_name'}
1036 ServiceNetMap: {get_param: ServiceNetMap}
1037 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1038 ExtraConfig: {get_param: ExtraConfig}
1039 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1040 CloudDomain: {get_param: CloudDomain}
1041 ServerMetadata: {get_param: ServerMetadata}
1042 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1043 NodeIndex: '%index%'
1045 ObjectStorageServiceChain:
1046 type: OS::TripleO::Services
1048 Services: {get_param: ObjectStorageServices}
1049 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1052 type: OS::Heat::ResourceGroup
1053 depends_on: Networks
1055 count: {get_param: ObjectStorageCount}
1056 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1058 type: OS::TripleO::ObjectStorage
1060 KeyName: {get_param: KeyName}
1061 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1062 HashSuffix: {get_param: SwiftHashSuffix}
1063 MountCheck: {get_param: SwiftMountCheck}
1064 MinPartHours: {get_param: SwiftMinPartHours}
1065 PartPower: {get_param: SwiftPartPower}
1066 Image: {get_param: SwiftStorageImage}
1067 Replicas: { get_param: SwiftReplicas}
1068 TimeZone: {get_param: TimeZone}
1069 NtpServer: {get_param: NtpServer}
1070 UpdateIdentifier: {get_param: UpdateIdentifier}
1071 ServiceNetMap: {get_param: ServiceNetMap}
1074 template: {get_param: ObjectStorageHostnameFormat}
1076 '%stackname%': {get_param: 'OS::stack_name'}
1077 ExtraConfig: {get_param: ExtraConfig}
1078 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1079 CloudDomain: {get_param: CloudDomain}
1080 ServerMetadata: {get_param: ServerMetadata}
1081 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1082 NodeIndex: '%index%'
1083 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, config_settings]}
1085 CephStorageServiceChain:
1086 type: OS::TripleO::Services
1088 Services: {get_param: CephStorageServices}
1089 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1092 type: OS::Heat::ResourceGroup
1093 depends_on: Networks
1095 count: {get_param: CephStorageCount}
1096 removal_policies: {get_param: CephStorageRemovalPolicies}
1098 type: OS::TripleO::CephStorage
1100 Image: {get_param: CephStorageImage}
1101 KeyName: {get_param: KeyName}
1102 Flavor: {get_param: OvercloudCephStorageFlavor}
1103 ServiceNetMap: {get_param: ServiceNetMap}
1104 TimeZone: {get_param: TimeZone}
1105 UpdateIdentifier: {get_param: UpdateIdentifier}
1108 template: {get_param: CephStorageHostnameFormat}
1110 '%stackname%': {get_param: 'OS::stack_name'}
1111 ExtraConfig: {get_param: ExtraConfig}
1112 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1113 CloudDomain: {get_param: CloudDomain}
1114 ServerMetadata: {get_param: ServerMetadata}
1115 SchedulerHints: {get_param: CephStorageSchedulerHints}
1116 NodeIndex: '%index%'
1117 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1119 ControllerIpListMap:
1120 type: OS::TripleO::Network::Ports::NetIpListMap
1122 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1123 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1124 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1125 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1126 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1127 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1128 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1131 type: OS::TripleO::AllNodes::SoftwareConfig
1133 compute_hosts: {get_attr: [Compute, hosts_entry]}
1134 controller_hosts: {get_attr: [Controller, hosts_entry]}
1135 controller_ips: {get_attr: [Controller, ip_address]}
1136 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1137 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1138 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1139 controller_names: {get_attr: [Controller, hostname]}
1140 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1141 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1142 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1143 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1144 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1145 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1146 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1147 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1148 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1149 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1150 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1151 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1152 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1153 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1154 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1155 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1156 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1157 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1158 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1159 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1160 DeployIdentifier: {get_param: DeployIdentifier}
1161 UpdateIdentifier: {get_param: UpdateIdentifier}
1164 type: OS::Heat::RandomString
1168 MysqlClusterUniquePart:
1169 type: OS::Heat::RandomString
1174 type: OS::Heat::RandomString
1177 salt: {get_param: RabbitCookieSalt}
1179 # creates the network architecture
1181 type: OS::TripleO::Network
1184 type: OS::Neutron::Port
1185 depends_on: Networks
1187 name: control_virtual_ip
1188 network: {get_param: NeutronControlPlaneID}
1189 fixed_ips: {get_param: ControlFixedIPs}
1190 replacement_policy: AUTO
1193 depends_on: Networks
1194 type: OS::TripleO::Network::Ports::RedisVipPort
1196 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1197 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1198 PortName: redis_virtual_ip
1199 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1202 # The public VIP is on the External net, falls back to ctlplane
1204 depends_on: Networks
1205 type: OS::TripleO::Network::Ports::ExternalVipPort
1207 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1208 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1209 PortName: public_virtual_ip
1210 FixedIPs: {get_param: PublicVirtualFixedIPs}
1212 InternalApiVirtualIP:
1213 depends_on: Networks
1214 type: OS::TripleO::Network::Ports::InternalApiVipPort
1216 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1217 PortName: internal_api_virtual_ip
1218 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1221 depends_on: Networks
1222 type: OS::TripleO::Network::Ports::StorageVipPort
1224 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1225 PortName: storage_virtual_ip
1226 FixedIPs: {get_param: StorageVirtualFixedIPs}
1228 StorageMgmtVirtualIP:
1229 depends_on: Networks
1230 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1232 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1233 PortName: storage_management_virtual_ip
1234 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1237 type: OS::TripleO::Network::Ports::NetVipMap
1239 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1240 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1241 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1242 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1243 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1244 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1245 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1246 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1247 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1248 # No tenant or management VIP required
1251 type: OS::TripleO::VipConfig
1254 type: OS::Heat::StructuredDeployments
1257 config: {get_resource: VipConfig}
1258 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1260 # service VIP mappings
1261 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1262 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1263 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1264 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1265 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1266 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1267 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1268 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1269 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1270 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1271 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1272 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1273 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1274 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1275 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1276 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1277 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1278 # direct configuration of Virtual IPs for each network
1279 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1280 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1281 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1282 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1283 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1284 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1286 ControllerBootstrapNodeConfig:
1287 type: OS::TripleO::BootstrapNode::SoftwareConfig
1289 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1290 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1292 ControllerBootstrapNodeDeployment:
1293 type: OS::Heat::StructuredDeployments
1295 name: ControllerBootstrapNodeDeployment
1296 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1297 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1299 ControllerSwiftDeployment:
1300 type: OS::Heat::StructuredDeployments
1302 name: ControllerSwiftDeployment
1303 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1304 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1306 ObjectStorageSwiftDeployment:
1307 type: OS::Heat::StructuredDeployments
1309 name: ObjectStorageSwiftDeployment
1310 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1311 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1313 SwiftDevicesAndProxyConfig:
1314 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1316 controller_swift_devices: {get_attr: [Controller, swift_device]}
1317 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1318 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1320 ComputeCephDeployment:
1321 type: OS::Heat::StructuredDeployments
1323 name: ComputeCephDeployment
1324 config: {get_attr: [CephClusterConfig, config_id]}
1325 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1327 ControllerCephDeployment:
1328 type: OS::Heat::StructuredDeployments
1330 name: ControllerCephDeployment
1331 config: {get_attr: [CephClusterConfig, config_id]}
1332 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1334 CephStorageCephDeployment:
1335 type: OS::Heat::StructuredDeployments
1337 name: CephStorageCephDeployment
1338 config: {get_attr: [CephClusterConfig, config_id]}
1339 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1342 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1344 ceph_storage_count: {get_param: CephStorageCount}
1345 ceph_fsid: {get_param: CephClusterFSID}
1346 ceph_mon_key: {get_param: CephMonKey}
1347 ceph_admin_key: {get_param: CephAdminKey}
1348 ceph_client_key: {get_param: CephClientKey}
1349 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1350 ceph_mon_names: {get_attr: [Controller, hostname]}
1351 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1353 ControllerAllNodesDeployment:
1354 type: OS::Heat::StructuredDeployments
1356 name: ControllerAllNodesDeployment
1357 config: {get_attr: [allNodesConfig, config_id]}
1358 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1360 ComputeAllNodesDeployment:
1361 type: OS::Heat::StructuredDeployments
1363 name: ComputeAllNodesDeployment
1364 config: {get_attr: [allNodesConfig, config_id]}
1365 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1367 BlockStorageAllNodesDeployment:
1368 type: OS::Heat::StructuredDeployments
1370 name: BlockStorageAllNodesDeployment
1371 config: {get_attr: [allNodesConfig, config_id]}
1372 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1374 ObjectStorageAllNodesDeployment:
1375 type: OS::Heat::StructuredDeployments
1377 name: ObjectStorageAllNodesDeployment
1378 config: {get_attr: [allNodesConfig, config_id]}
1379 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1381 CephStorageAllNodesDeployment:
1382 type: OS::Heat::StructuredDeployments
1384 name: CephStorageAllNodesDeployment
1385 config: {get_attr: [allNodesConfig, config_id]}
1386 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1388 # All Nodes Validations
1389 AllNodesValidationConfig:
1390 type: OS::TripleO::AllNodes::Validation
1395 - - {get_attr: [Controller, resource.0.external_ip_address]}
1396 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1397 - {get_attr: [Controller, resource.0.storage_ip_address]}
1398 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1399 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1401 ControllerAllNodesValidationDeployment:
1402 type: OS::Heat::StructuredDeployments
1403 depends_on: ControllerAllNodesDeployment
1405 name: ControllerAllNodesValidationDeployment
1406 config: {get_resource: AllNodesValidationConfig}
1407 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1409 ComputeAllNodesValidationDeployment:
1410 type: OS::Heat::StructuredDeployments
1411 depends_on: ComputeAllNodesDeployment
1413 name: ComputeAllNodesValidationDeployment
1414 config: {get_resource: AllNodesValidationConfig}
1415 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1417 BlockStorageAllNodesValidationDeployment:
1418 type: OS::Heat::StructuredDeployments
1419 depends_on: BlockStorageAllNodesDeployment
1421 name: BlockStorageAllNodesValidationDeployment
1422 config: {get_resource: AllNodesValidationConfig}
1423 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1425 ObjectStorageAllNodesValidationDeployment:
1426 type: OS::Heat::StructuredDeployments
1427 depends_on: ObjectStorageAllNodesDeployment
1429 name: ObjectStorageAllNodesValidationDeployment
1430 config: {get_resource: AllNodesValidationConfig}
1431 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1433 CephStorageAllNodesValidationDeployment:
1434 type: OS::Heat::StructuredDeployments
1435 depends_on: CephStorageAllNodesDeployment
1437 name: CephStorageAllNodesValidationDeployment
1438 config: {get_resource: AllNodesValidationConfig}
1439 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1442 type: OS::TripleO::Tasks::UpdateWorkflow
1444 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1445 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1446 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1447 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1448 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1450 deploy_identifier: {get_param: DeployIdentifier}
1451 update_identifier: {get_param: UpdateIdentifier}
1453 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1454 # the nested template may configure each role differently (or not at all)
1455 AllNodesExtraConfig:
1456 type: OS::TripleO::AllNodesExtraConfig
1459 - ComputeAllNodesValidationDeployment
1460 - BlockStorageAllNodesValidationDeployment
1461 - ObjectStorageAllNodesValidationDeployment
1462 - CephStorageAllNodesValidationDeployment
1463 - ControllerAllNodesValidationDeployment
1465 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1466 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1467 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1468 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1469 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1471 # Nested stack deployment runs after all other controller deployments
1472 ControllerNodesPostDeployment:
1473 type: OS::TripleO::ControllerPostDeployment
1474 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1476 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1477 NodeConfigIdentifiers:
1478 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1479 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1480 deployment_identifier: {get_param: DeployIdentifier}
1481 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1483 ComputeNodesPostDeployment:
1484 type: OS::TripleO::ComputePostDeployment
1485 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1487 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1488 NodeConfigIdentifiers:
1489 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1490 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1491 deployment_identifier: {get_param: DeployIdentifier}
1492 StepConfig: {get_attr: [ComputeServiceChain, step_config]}
1494 ObjectStorageNodesPostDeployment:
1495 type: OS::TripleO::ObjectStoragePostDeployment
1496 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1498 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1499 NodeConfigIdentifiers:
1500 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1501 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1502 deployment_identifier: {get_param: DeployIdentifier}
1503 StepConfig: {get_attr: [ObjectStorageServiceChain, step_config]}
1505 BlockStorageNodesPostDeployment:
1506 type: OS::TripleO::BlockStoragePostDeployment
1507 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1509 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1510 NodeConfigIdentifiers:
1511 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1512 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1513 deployment_identifier: {get_param: DeployIdentifier}
1515 CephStorageNodesPostDeployment:
1516 type: OS::TripleO::CephStoragePostDeployment
1517 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1519 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1520 NodeConfigIdentifiers:
1521 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1522 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1523 deployment_identifier: {get_param: DeployIdentifier}
1524 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1528 description: URL for the Overcloud Keystone service
1529 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1531 description: Keystone Admin VIP endpoint
1532 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1534 description: Controller VIP for public API endpoints
1535 value: {get_attr: [VipMap, net_ip_map, external]}
1537 description: VIP for Aodh API internal endpoint
1538 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1539 CeilometerInternalVip:
1540 description: VIP for Ceilometer API internal endpoint
1541 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1543 description: VIP for Cinder API internal endpoint
1544 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1546 description: VIP for Glance API internal endpoint
1547 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1549 description: VIP for Gnocchi API internal endpoint
1550 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1552 description: VIP for Heat API internal endpoint
1553 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1554 KeystoneInternalVip:
1555 description: VIP for Keystone API internal endpoint
1556 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1558 description: VIP for Neutron API internal endpoint
1559 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1561 description: VIP for Nova API internal endpoint
1562 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1564 description: VIP for Sahara API internal endpoint
1565 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1567 description: VIP for Swift Proxy internal endpoint
1568 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1571 Mapping of the resources with the needed info for their endpoints.
1572 This includes the protocol used, the IP, port and also a full
1573 representation of the URI.
1574 value: {get_attr: [EndpointMap, endpoint_map]}
1577 The content that should be appended to your /etc/hosts if you want to get
1578 hostname-based access to the deployed nodes (useful for testing without
1580 value: {get_attr: [allNodesConfig, hosts_entries]}