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