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 StorageVirtualFixedIPs:
260 Control the IP allocation for the StorageVirtualInterface port. E.g.
261 [{'ip_address':'1.2.3.4'}]
263 StorageMgmtVirtualFixedIPs:
266 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
267 [{'ip_address':'1.2.3.4'}]
269 #TODO(ccamacho):Remove after landing composable timezone for all nodes
272 description: The timezone to be set on nodes.
275 default: 'localdomain'
278 The DNS domain used for the hosts. This should match the dhcp_domain
279 configured in the Undercloud neutron. Defaults to localdomain.
283 Extra properties or metadata passed to Nova for the created nodes in
284 the overcloud. It's accessible via the Nova metadata API.
287 # Controller-specific params
293 controllerExtraConfig:
296 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
300 default: overcloud-full
302 - custom_constraint: glance.image
303 OvercloudControlFlavor:
304 description: Flavor for control nodes to request when deploying.
308 - custom_constraint: nova.flavor
309 ControlVirtualInterface:
311 description: Interface where virtual ip will be assigned.
315 description: Whether to enable fencing in Pacemaker or not.
319 description: Whether to use Galera instead of regular MariaDB.
321 ControllerEnableCephStorage:
323 description: Whether to deploy Ceph Storage (OSD) on the Controller
325 ControllerSchedulerHints:
327 description: Optional scheduler hints to pass to nova
332 Additional configuration to inject into the cluster. The format required
333 may be implementation specific, e.g puppet hieradata. Any role specific
334 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
339 Pacemaker fencing configuration. The JSON should have
340 the following structure:
344 "agent": "AGENT_NAME",
345 "host_mac": "HOST_MAC_ADDRESS",
346 "params": {"PARAM_NAME": "PARAM_VALUE"}
354 "agent": "fence_xvm",
355 "host_mac": "52:54:00:aa:bb:cc",
357 "multicast_address": "225.0.0.12",
358 "port": "baremetal_0",
360 "manage_key_file": true,
361 "key_file": "/etc/fence_xvm.key",
362 "key_file_password": "abcdef"
370 description: The short name of the Gnocchi backend to use. Should be one
371 of swift, rbd or file
374 - allowed_values: ['swift', 'file', 'rbd']
375 GnocchiIndexerBackend:
377 description: The short name of the Gnocchi indexer backend to use.
380 description: The password for the gnocchi service account.
383 InstanceNameTemplate:
384 default: 'instance-%08x'
385 description: Template string to be used to generate instance names
389 description: Whether to manage IPtables rules.
393 description: Whether IPtables rules should be purged before setting up the ones.
395 MysqlInnodbBufferPoolSize:
397 Specifies the size of the buffer pool in megabytes. Setting to
398 zero should be interpreted as "no value" and will defer to the
403 description: Configures MySQL max_connections config setting
406 PublicVirtualInterface:
409 Specifies the interface where the public-facing virtual ip will be assigned.
410 This should be int_public when a VLAN is being used.
413 description: A random string to be used as a salt when hashing to determine mappings in the ring.
419 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
422 description: Partition Power to use when building Swift rings
427 description: How many replicas to use in the swift rings.
429 # Compute-specific params
430 CeilometerComputeAgent:
431 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
435 - allowed_values: ['', Present]
439 HypervisorNeutronPhysicalBridge:
442 An OVS bridge to create on each hypervisor. This defaults to br-ex the
443 same as the control plane nodes, as we have a uniform configuration of
444 the openvswitch agent. Typically should not need to be changed.
446 HypervisorNeutronPublicInterface:
448 description: What interface to add to the HypervisorNeutronPhysicalBridge.
450 NeutronNetworkVLANRanges:
451 default: 'datacentre:1:1000'
453 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
454 Neutron documentation for permitted values. Defaults to permitting any
455 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
456 type: comma_delimited_list
459 default: libvirt.LibvirtDriver
460 NovaComputeExtraConfig:
463 NovaCompute specific configuration to inject into the cluster. Same
464 structure as ExtraConfig.
466 NovaComputeLibvirtType:
469 NovaComputeLibvirtVifDriver:
471 description: Libvirt VIF driver configuration for the network
473 NovaComputeSchedulerHints:
475 description: Optional scheduler hints to pass to nova
477 NovaEnableRbdBackend:
479 description: Whether to enable or not the Rbd backend for Nova
483 default: overcloud-full
485 - custom_constraint: glance.image
488 description: Name of integration bridge used by Open vSwitch
490 NovaSecurityGroupAPI:
492 description: The full class name of the security API class
494 OvercloudComputeFlavor:
495 description: Use this flavor
499 - custom_constraint: nova.flavor
502 NeutronTenantNetwork: tenant
503 CeilometerApiNetwork: internal_api
504 AodhApiNetwork: internal_api
505 GnocchiApiNetwork: internal_api
506 MongoDbNetwork: internal_api
507 CinderApiNetwork: internal_api
508 CinderIscsiNetwork: storage
509 GlanceApiNetwork: storage
510 GlanceRegistryNetwork: internal_api
511 IronicApiNetwork: internal_api
512 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
513 KeystonePublicApiNetwork: internal_api
514 NeutronApiNetwork: internal_api
515 HeatApiNetwork: internal_api
516 NovaApiNetwork: internal_api
517 NovaMetadataNetwork: internal_api
518 NovaVncProxyNetwork: internal_api
519 SwiftMgmtNetwork: storage_mgmt
520 SwiftProxyNetwork: storage
521 SaharaApiNetwork: internal_api
522 HorizonNetwork: internal_api
523 MemcachedNetwork: internal_api
524 RabbitMqNetwork: internal_api
525 RedisNetwork: internal_api
526 MysqlNetwork: internal_api
527 CephClusterNetwork: storage_mgmt
528 CephPublicNetwork: storage
529 ControllerHostnameResolveNetwork: internal_api
530 ComputeHostnameResolveNetwork: internal_api
531 BlockStorageHostnameResolveNetwork: internal_api
532 ObjectStorageHostnameResolveNetwork: internal_api
533 CephStorageHostnameResolveNetwork: storage
534 description: Mapping of service_name -> network name. Typically set
535 via parameter_defaults in the resource registry.
540 - OS::TripleO::Services::CinderApi
541 - OS::TripleO::Services::CinderScheduler
542 - OS::TripleO::Services::CinderVolume
543 - OS::TripleO::Services::Keystone
544 - OS::TripleO::Services::GlanceApi
545 - OS::TripleO::Services::GlanceRegistry
546 - OS::TripleO::Services::HeatApi
547 - OS::TripleO::Services::HeatApiCfn
548 - OS::TripleO::Services::HeatApiCloudwatch
549 - OS::TripleO::Services::HeatEngine
550 - OS::TripleO::Services::NeutronDhcpAgent
551 - OS::TripleO::Services::NeutronL3Agent
552 - OS::TripleO::Services::NeutronMetadataAgent
553 - OS::TripleO::Services::NeutronServer
554 - OS::TripleO::Services::NeutronCorePlugin
555 - OS::TripleO::Services::NeutronOvsAgent
556 - OS::TripleO::Services::RabbitMQ
557 - OS::TripleO::Services::HAproxy
558 - OS::TripleO::Services::Keepalived
559 - OS::TripleO::Services::Memcached
560 - OS::TripleO::Services::Redis
561 - OS::TripleO::Services::NovaConductor
562 - OS::TripleO::Services::MongoDb
563 - OS::TripleO::Services::NovaApi
564 - OS::TripleO::Services::NovaScheduler
565 - OS::TripleO::Services::NovaConsoleauth
566 - OS::TripleO::Services::NovaVncproxy
567 - OS::TripleO::Services::Ntp
568 - OS::TripleO::Services::SwiftProxy
569 - OS::TripleO::Services::SwiftStorage
570 - OS::TripleO::Services::Snmp
571 - OS::TripleO::Services::Timezone
572 description: A list of service resources (configured in the Heat
573 resource_registry) which represent nested stacks
574 for each service that should get installed on the Controllers.
575 type: comma_delimited_list
579 - OS::TripleO::Services::Timezone
580 - OS::TripleO::Services::NovaCompute
581 - OS::TripleO::Services::Ntp
582 - OS::TripleO::Services::Snmp
583 description: A list of service resources (configured in the Heat
584 resource_registry) which represent nested stacks
585 for each service that should get installed on the Compute Nodes.
586 type: comma_delimited_list
588 # Block storage specific parameters
593 default: overcloud-full
595 OvercloudBlockStorageFlavor:
596 description: Flavor for block storage nodes to request when deploying.
600 - custom_constraint: nova.flavor
601 BlockStorageExtraConfig:
604 BlockStorage specific configuration to inject into the cluster. Same
605 structure as ExtraConfig.
607 BlockStorageSchedulerHints:
609 description: Optional scheduler hints to pass to nova
611 BlockStorageServices:
613 - OS::TripleO::Services::CinderVolume
614 description: A list of service resources (configured in the Heat
615 resource_registry) which represent nested stacks
616 for each service that should get installed on the BlockStorage nodes.
617 type: comma_delimited_list
619 # Object storage specific parameters
623 OvercloudSwiftStorageFlavor:
624 description: Flavor for Swift storage nodes to request when deploying.
628 - custom_constraint: nova.flavor
630 default: overcloud-full
632 ObjectStorageExtraConfig:
635 ObjectStorage specific configuration to inject into the cluster. Same
636 structure as ExtraConfig.
638 ObjectStorageSchedulerHints:
640 description: Optional scheduler hints to pass to nova
642 ObjectStorageServices:
644 - OS::TripleO::Services::Ntp
645 - OS::TripleO::Services::SwiftStorage
646 - OS::TripleO::Services::Snmp
647 description: A list of service resources (configured in the Heat
648 resource_registry) which represent nested stacks
649 for each service that should get installed on the ObjectStorage nodes.
650 Note this role currently only supports steps 2, 3 and 4 configuration.
651 type: comma_delimited_list
654 # Ceph storage specific parameters
659 default: overcloud-full
661 OvercloudCephStorageFlavor:
663 description: Flavor for Ceph storage nodes to request when deploying.
666 - custom_constraint: nova.flavor
667 CephStorageExtraConfig:
670 CephStorage specific configuration to inject into the cluster. Same
671 structure as ExtraConfig.
673 CephStorageSchedulerHints:
675 description: Optional scheduler hints to pass to nova
679 - OS::TripleO::Services::Ntp
680 description: A list of service resources (configured in the Heat
681 resource_registry) which represent nested stacks
682 for each service that should get installed on the CephStorage nodes.
683 type: comma_delimited_list
685 # Hostname format for each role
686 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
687 # and %stackname% is replaced with OS::stack_name in the template below.
688 # If you want to use the heat generated names, pass '' (empty string).
689 ControllerHostnameFormat:
691 description: Format for Controller node hostnames
692 default: '%stackname%-controller-%index%'
693 ComputeHostnameFormat:
695 description: Format for Compute node hostnames
696 default: '%stackname%-novacompute-%index%'
697 BlockStorageHostnameFormat:
699 description: Format for BlockStorage node hostnames
700 default: '%stackname%-blockstorage-%index%'
701 ObjectStorageHostnameFormat:
703 description: Format for SwiftStorage node hostnames
704 default: '%stackname%-objectstorage-%index%'
705 CephStorageHostnameFormat:
707 description: Format for CephStorage node hostnames
708 default: '%stackname%-cephstorage-%index%'
710 # Identifiers to trigger tasks on nodes
715 Setting to a previously unused value during stack-update will trigger
716 package update on all nodes
721 Setting this to a unique value will re-run any deployment tasks which
722 perform configuration on a Heat stack-update.
724 # If you want to remove a specific node from a resource group, you can pass
725 # the node name or id as a <Group>RemovalPolicies parameter, for example:
726 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
727 ControllerRemovalPolicies:
731 List of resources to be removed from ControllerResourceGroup when
732 doing an update which requires removal of specific resources.
733 ComputeRemovalPolicies:
737 List of resources to be removed from ComputeResourceGroup when
738 doing an update which requires removal of specific resources.
739 BlockStorageRemovalPolicies:
743 List of resources to be removed from BlockStorageResourceGroup when
744 doing an update which requires removal of specific resources.
745 ObjectStorageRemovalPolicies:
749 List of resources to be removed from ObjectStorageResourceGroup when
750 doing an update which requires removal of specific resources.
751 CephStorageRemovalPolicies:
755 List of resources to be removed from CephStorageResourceGroup when
756 doing an update which requires removal of specific resources.
760 description: Do not use deprecated params, they will be removed.
762 - controllerExtraConfig
767 HeatAuthEncryptionKey:
768 type: OS::Heat::RandomString
771 type: OS::Heat::RandomString
776 type: OS::Heat::RandomString
781 type: OS::TripleO::EndpointMap
783 CloudName: {get_param: CloudName}
784 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
785 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
786 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
787 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
788 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
789 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
790 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
791 IronicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
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 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
867 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
868 SwiftHashSuffix: {get_param: SwiftHashSuffix}
869 SwiftMinPartHours: {get_param: SwiftMinPartHours}
870 SwiftPartPower: {get_param: SwiftPartPower}
871 SwiftReplicas: { get_param: SwiftReplicas}
872 ServiceNetMap: {get_param: ServiceNetMap}
873 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
874 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
875 UpdateIdentifier: {get_param: UpdateIdentifier}
878 template: {get_param: ControllerHostnameFormat}
880 '%stackname%': {get_param: 'OS::stack_name'}
882 ServerMetadata: {get_param: ServerMetadata}
883 SchedulerHints: {get_param: ControllerSchedulerHints}
884 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
887 type: OS::TripleO::Services
889 Services: {get_param: ComputeServices}
890 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
893 type: OS::Heat::ResourceGroup
896 count: {get_param: ComputeCount}
897 removal_policies: {get_param: ComputeRemovalPolicies}
899 type: OS::TripleO::Compute
901 AdminPassword: {get_param: AdminPassword}
902 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
903 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
904 CeilometerPassword: {get_param: CeilometerPassword}
905 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
906 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
907 Debug: {get_param: Debug}
908 ExtraConfig: {get_param: ExtraConfig}
909 Flavor: {get_param: OvercloudComputeFlavor}
910 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
911 Image: {get_param: NovaImage}
912 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
913 KeyName: {get_param: KeyName}
914 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
915 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
916 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
917 NeutronTenantMtu: {get_param: NeutronTenantMtu}
918 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
919 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
920 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
921 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
922 NeutronNetworkType: {get_param: NeutronNetworkType}
923 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
924 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
925 NeutronPassword: {get_param: NeutronPassword}
926 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
927 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
928 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
929 NeutronCorePlugin: {get_param: NeutronCorePlugin}
930 NeutronServicePlugins: {get_param: NeutronServicePlugins}
931 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
932 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
933 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
934 # L3 HA and Failover is not relevant for Computes, should be removed
935 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
936 NeutronL3HA: {get_param: NeutronL3HA}
937 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
938 NovaComputeDriver: {get_param: NovaComputeDriver}
939 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
940 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
941 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
942 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
943 NovaIPv6: {get_param: NovaIPv6}
944 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
945 NovaPassword: {get_param: NovaPassword}
946 NovaOVSBridge: {get_param: NovaOVSBridge}
947 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
948 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
949 RabbitPassword: {get_param: RabbitPassword}
950 RabbitUserName: {get_param: RabbitUserName}
951 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
952 RabbitClientPort: {get_param: RabbitClientPort}
953 ServiceNetMap: {get_param: ServiceNetMap}
954 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
955 UpdateIdentifier: {get_param: UpdateIdentifier}
958 template: {get_param: ComputeHostnameFormat}
960 '%stackname%': {get_param: 'OS::stack_name'}
961 CloudDomain: {get_param: CloudDomain}
962 ServerMetadata: {get_param: ServerMetadata}
963 SchedulerHints: {get_param: NovaComputeSchedulerHints}
965 ServiceConfigSettings: {get_attr: [ComputeServiceChain, config_settings]}
967 BlockStorageServiceChain:
968 type: OS::TripleO::Services
970 Services: {get_param: BlockStorageServices}
971 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
974 type: OS::Heat::ResourceGroup
977 count: {get_param: BlockStorageCount}
978 removal_policies: {get_param: BlockStorageRemovalPolicies}
980 type: OS::TripleO::BlockStorage
982 Image: {get_param: BlockStorageImage}
983 KeyName: {get_param: KeyName}
984 Flavor: {get_param: OvercloudBlockStorageFlavor}
985 TimeZone: {get_param: TimeZone}
986 NtpServer: {get_param: NtpServer}
987 UpdateIdentifier: {get_param: UpdateIdentifier}
990 template: {get_param: BlockStorageHostnameFormat}
992 '%stackname%': {get_param: 'OS::stack_name'}
993 ServiceNetMap: {get_param: ServiceNetMap}
994 ExtraConfig: {get_param: ExtraConfig}
995 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
996 CloudDomain: {get_param: CloudDomain}
997 ServerMetadata: {get_param: ServerMetadata}
998 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1000 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, config_settings]}
1002 ObjectStorageServiceChain:
1003 type: OS::TripleO::Services
1005 Services: {get_param: ObjectStorageServices}
1006 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1009 type: OS::Heat::ResourceGroup
1010 depends_on: Networks
1012 count: {get_param: ObjectStorageCount}
1013 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1015 type: OS::TripleO::ObjectStorage
1017 KeyName: {get_param: KeyName}
1018 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1019 HashSuffix: {get_param: SwiftHashSuffix}
1020 MinPartHours: {get_param: SwiftMinPartHours}
1021 PartPower: {get_param: SwiftPartPower}
1022 Image: {get_param: SwiftStorageImage}
1023 Replicas: { get_param: SwiftReplicas}
1024 TimeZone: {get_param: TimeZone}
1025 UpdateIdentifier: {get_param: UpdateIdentifier}
1026 ServiceNetMap: {get_param: ServiceNetMap}
1029 template: {get_param: ObjectStorageHostnameFormat}
1031 '%stackname%': {get_param: 'OS::stack_name'}
1032 ExtraConfig: {get_param: ExtraConfig}
1033 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1034 CloudDomain: {get_param: CloudDomain}
1035 ServerMetadata: {get_param: ServerMetadata}
1036 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1037 NodeIndex: '%index%'
1038 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, config_settings]}
1040 CephStorageServiceChain:
1041 type: OS::TripleO::Services
1043 Services: {get_param: CephStorageServices}
1044 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1047 type: OS::Heat::ResourceGroup
1048 depends_on: Networks
1050 count: {get_param: CephStorageCount}
1051 removal_policies: {get_param: CephStorageRemovalPolicies}
1053 type: OS::TripleO::CephStorage
1055 Image: {get_param: CephStorageImage}
1056 KeyName: {get_param: KeyName}
1057 Flavor: {get_param: OvercloudCephStorageFlavor}
1058 ServiceNetMap: {get_param: ServiceNetMap}
1059 TimeZone: {get_param: TimeZone}
1060 UpdateIdentifier: {get_param: UpdateIdentifier}
1063 template: {get_param: CephStorageHostnameFormat}
1065 '%stackname%': {get_param: 'OS::stack_name'}
1066 ExtraConfig: {get_param: ExtraConfig}
1067 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1068 CloudDomain: {get_param: CloudDomain}
1069 ServerMetadata: {get_param: ServerMetadata}
1070 SchedulerHints: {get_param: CephStorageSchedulerHints}
1071 NodeIndex: '%index%'
1072 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1074 ControllerIpListMap:
1075 type: OS::TripleO::Network::Ports::NetIpListMap
1077 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1078 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1079 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1080 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1081 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1082 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1083 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1086 type: OS::TripleO::AllNodes::SoftwareConfig
1088 compute_hosts: {get_attr: [Compute, hosts_entry]}
1089 controller_hosts: {get_attr: [Controller, hosts_entry]}
1090 controller_ips: {get_attr: [Controller, ip_address]}
1091 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1092 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1093 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1094 controller_names: {get_attr: [Controller, hostname]}
1095 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1096 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1097 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1098 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1099 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1100 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1101 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1102 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1103 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1104 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1105 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1106 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1107 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1108 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1109 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1110 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1111 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1112 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1113 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1114 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1115 ironic_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1116 DeployIdentifier: {get_param: DeployIdentifier}
1117 UpdateIdentifier: {get_param: UpdateIdentifier}
1120 type: OS::Heat::RandomString
1124 MysqlClusterUniquePart:
1125 type: OS::Heat::RandomString
1130 type: OS::Heat::RandomString
1133 salt: {get_param: RabbitCookieSalt}
1135 # creates the network architecture
1137 type: OS::TripleO::Network
1140 type: OS::Neutron::Port
1141 depends_on: Networks
1143 name: control_virtual_ip
1144 network: {get_param: NeutronControlPlaneID}
1145 fixed_ips: {get_param: ControlFixedIPs}
1146 replacement_policy: AUTO
1149 depends_on: Networks
1150 type: OS::TripleO::Network::Ports::RedisVipPort
1152 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1153 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1154 PortName: redis_virtual_ip
1155 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1158 # The public VIP is on the External net, falls back to ctlplane
1160 depends_on: Networks
1161 type: OS::TripleO::Network::Ports::ExternalVipPort
1163 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1164 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1165 PortName: public_virtual_ip
1166 FixedIPs: {get_param: PublicVirtualFixedIPs}
1168 InternalApiVirtualIP:
1169 depends_on: Networks
1170 type: OS::TripleO::Network::Ports::InternalApiVipPort
1172 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1173 PortName: internal_api_virtual_ip
1174 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1177 depends_on: Networks
1178 type: OS::TripleO::Network::Ports::StorageVipPort
1180 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1181 PortName: storage_virtual_ip
1182 FixedIPs: {get_param: StorageVirtualFixedIPs}
1184 StorageMgmtVirtualIP:
1185 depends_on: Networks
1186 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1188 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1189 PortName: storage_management_virtual_ip
1190 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1193 type: OS::TripleO::Network::Ports::NetVipMap
1195 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1196 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1197 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1198 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1199 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1200 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1201 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1202 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1203 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1204 # No tenant or management VIP required
1207 type: OS::TripleO::VipConfig
1210 type: OS::Heat::StructuredDeployments
1213 config: {get_resource: VipConfig}
1214 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1216 # service VIP mappings
1217 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1218 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1219 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1220 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1221 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1222 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1223 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1224 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1225 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1226 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1227 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1228 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1229 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1230 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1231 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1232 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1233 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1234 # direct configuration of Virtual IPs for each network
1235 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1236 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1237 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1238 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1239 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1240 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1241 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1243 ControllerBootstrapNodeConfig:
1244 type: OS::TripleO::BootstrapNode::SoftwareConfig
1246 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1247 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1249 ControllerBootstrapNodeDeployment:
1250 type: OS::Heat::StructuredDeployments
1252 name: ControllerBootstrapNodeDeployment
1253 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1254 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1256 ControllerSwiftDeployment:
1257 type: OS::Heat::StructuredDeployments
1259 name: ControllerSwiftDeployment
1260 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1261 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1263 ObjectStorageSwiftDeployment:
1264 type: OS::Heat::StructuredDeployments
1266 name: ObjectStorageSwiftDeployment
1267 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1268 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1270 SwiftDevicesAndProxyConfig:
1271 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1273 controller_swift_devices: {get_attr: [Controller, swift_device]}
1274 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1275 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1277 ComputeCephDeployment:
1278 type: OS::Heat::StructuredDeployments
1280 name: ComputeCephDeployment
1281 config: {get_attr: [CephClusterConfig, config_id]}
1282 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1284 ControllerCephDeployment:
1285 type: OS::Heat::StructuredDeployments
1287 name: ControllerCephDeployment
1288 config: {get_attr: [CephClusterConfig, config_id]}
1289 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1291 CephStorageCephDeployment:
1292 type: OS::Heat::StructuredDeployments
1294 name: CephStorageCephDeployment
1295 config: {get_attr: [CephClusterConfig, config_id]}
1296 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1299 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1301 ceph_storage_count: {get_param: CephStorageCount}
1302 ceph_fsid: {get_param: CephClusterFSID}
1303 ceph_mon_key: {get_param: CephMonKey}
1304 ceph_admin_key: {get_param: CephAdminKey}
1305 ceph_client_key: {get_param: CephClientKey}
1306 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1307 ceph_mon_names: {get_attr: [Controller, hostname]}
1308 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1310 ControllerAllNodesDeployment:
1311 type: OS::Heat::StructuredDeployments
1313 name: ControllerAllNodesDeployment
1314 config: {get_attr: [allNodesConfig, config_id]}
1315 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1317 ComputeAllNodesDeployment:
1318 type: OS::Heat::StructuredDeployments
1320 name: ComputeAllNodesDeployment
1321 config: {get_attr: [allNodesConfig, config_id]}
1322 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1324 BlockStorageAllNodesDeployment:
1325 type: OS::Heat::StructuredDeployments
1327 name: BlockStorageAllNodesDeployment
1328 config: {get_attr: [allNodesConfig, config_id]}
1329 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1331 ObjectStorageAllNodesDeployment:
1332 type: OS::Heat::StructuredDeployments
1334 name: ObjectStorageAllNodesDeployment
1335 config: {get_attr: [allNodesConfig, config_id]}
1336 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1338 CephStorageAllNodesDeployment:
1339 type: OS::Heat::StructuredDeployments
1341 name: CephStorageAllNodesDeployment
1342 config: {get_attr: [allNodesConfig, config_id]}
1343 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1345 # All Nodes Validations
1346 AllNodesValidationConfig:
1347 type: OS::TripleO::AllNodes::Validation
1352 - - {get_attr: [Controller, resource.0.external_ip_address]}
1353 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1354 - {get_attr: [Controller, resource.0.storage_ip_address]}
1355 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1356 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1358 ControllerAllNodesValidationDeployment:
1359 type: OS::Heat::StructuredDeployments
1360 depends_on: ControllerAllNodesDeployment
1362 name: ControllerAllNodesValidationDeployment
1363 config: {get_resource: AllNodesValidationConfig}
1364 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1366 ComputeAllNodesValidationDeployment:
1367 type: OS::Heat::StructuredDeployments
1368 depends_on: ComputeAllNodesDeployment
1370 name: ComputeAllNodesValidationDeployment
1371 config: {get_resource: AllNodesValidationConfig}
1372 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1374 BlockStorageAllNodesValidationDeployment:
1375 type: OS::Heat::StructuredDeployments
1376 depends_on: BlockStorageAllNodesDeployment
1378 name: BlockStorageAllNodesValidationDeployment
1379 config: {get_resource: AllNodesValidationConfig}
1380 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1382 ObjectStorageAllNodesValidationDeployment:
1383 type: OS::Heat::StructuredDeployments
1384 depends_on: ObjectStorageAllNodesDeployment
1386 name: ObjectStorageAllNodesValidationDeployment
1387 config: {get_resource: AllNodesValidationConfig}
1388 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1390 CephStorageAllNodesValidationDeployment:
1391 type: OS::Heat::StructuredDeployments
1392 depends_on: CephStorageAllNodesDeployment
1394 name: CephStorageAllNodesValidationDeployment
1395 config: {get_resource: AllNodesValidationConfig}
1396 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1399 type: OS::TripleO::Tasks::UpdateWorkflow
1401 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1402 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1403 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1404 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1405 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1407 deploy_identifier: {get_param: DeployIdentifier}
1408 update_identifier: {get_param: UpdateIdentifier}
1410 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1411 # the nested template may configure each role differently (or not at all)
1412 AllNodesExtraConfig:
1413 type: OS::TripleO::AllNodesExtraConfig
1416 - ComputeAllNodesValidationDeployment
1417 - BlockStorageAllNodesValidationDeployment
1418 - ObjectStorageAllNodesValidationDeployment
1419 - CephStorageAllNodesValidationDeployment
1420 - ControllerAllNodesValidationDeployment
1422 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1423 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1424 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1425 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1426 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1428 # Nested stack deployment runs after all other controller deployments
1429 ControllerNodesPostDeployment:
1430 type: OS::TripleO::ControllerPostDeployment
1431 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1433 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1434 NodeConfigIdentifiers:
1435 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1436 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1437 deployment_identifier: {get_param: DeployIdentifier}
1438 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1440 ComputeNodesPostDeployment:
1441 type: OS::TripleO::ComputePostDeployment
1442 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1444 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1445 NodeConfigIdentifiers:
1446 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1447 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1448 deployment_identifier: {get_param: DeployIdentifier}
1449 StepConfig: {get_attr: [ComputeServiceChain, step_config]}
1451 ObjectStorageNodesPostDeployment:
1452 type: OS::TripleO::ObjectStoragePostDeployment
1453 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1455 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1456 NodeConfigIdentifiers:
1457 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1458 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1459 deployment_identifier: {get_param: DeployIdentifier}
1460 StepConfig: {get_attr: [ObjectStorageServiceChain, step_config]}
1462 BlockStorageNodesPostDeployment:
1463 type: OS::TripleO::BlockStoragePostDeployment
1464 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1466 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1467 NodeConfigIdentifiers:
1468 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1469 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1470 deployment_identifier: {get_param: DeployIdentifier}
1471 StepConfig: {get_attr: [BlockStorageServiceChain, step_config]}
1474 CephStorageNodesPostDeployment:
1475 type: OS::TripleO::CephStoragePostDeployment
1476 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1478 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1479 NodeConfigIdentifiers:
1480 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1481 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1482 deployment_identifier: {get_param: DeployIdentifier}
1483 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1487 description: URL for the Overcloud Keystone service
1488 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1490 description: Keystone Admin VIP endpoint
1491 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1493 description: Controller VIP for public API endpoints
1494 value: {get_attr: [VipMap, net_ip_map, external]}
1496 description: VIP for Aodh API internal endpoint
1497 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1498 CeilometerInternalVip:
1499 description: VIP for Ceilometer API internal endpoint
1500 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1502 description: VIP for Cinder API internal endpoint
1503 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1505 description: VIP for Glance API internal endpoint
1506 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1508 description: VIP for Gnocchi API internal endpoint
1509 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1511 description: VIP for Heat API internal endpoint
1512 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1514 description: VIP for Ironic API internal endpoint
1515 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1516 KeystoneInternalVip:
1517 description: VIP for Keystone API internal endpoint
1518 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1520 description: VIP for Neutron API internal endpoint
1521 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1523 description: VIP for Nova API internal endpoint
1524 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1526 description: VIP for Sahara API internal endpoint
1527 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1529 description: VIP for Swift Proxy internal endpoint
1530 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1533 Mapping of the resources with the needed info for their endpoints.
1534 This includes the protocol used, the IP, port and also a full
1535 representation of the URI.
1536 value: {get_attr: [EndpointMap, endpoint_map]}
1539 The content that should be appended to your /etc/hosts if you want to get
1540 hostname-based access to the deployed nodes (useful for testing without
1542 value: {get_attr: [allNodesConfig, hosts_entries]}