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 PublicVirtualFixedIPs:
223 Control the IP allocation for the PublicVirtualInterface port. E.g.
224 [{'ip_address':'1.2.3.4'}]
229 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
232 description: The username for RabbitMQ
235 description: The password for RabbitMQ
241 Rabbit client subscriber parameter to specify
242 an SSL connection to the RabbitMQ host.
246 description: Set rabbit subscriber port, change this if using SSL
249 description: The password for Redis
252 StorageVirtualFixedIPs:
255 Control the IP allocation for the StorageVirtualInterface port. E.g.
256 [{'ip_address':'1.2.3.4'}]
258 StorageMgmtVirtualFixedIPs:
261 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
262 [{'ip_address':'1.2.3.4'}]
265 default: 'localdomain'
268 The DNS domain used for the hosts. This should match the dhcp_domain
269 configured in the Undercloud neutron. Defaults to localdomain.
273 Extra properties or metadata passed to Nova for the created nodes in
274 the overcloud. It's accessible via the Nova metadata API.
277 # Controller-specific params
283 controllerExtraConfig:
286 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
290 default: overcloud-full
292 - custom_constraint: glance.image
293 OvercloudControlFlavor:
294 description: Flavor for control nodes to request when deploying.
298 - custom_constraint: nova.flavor
299 ControlVirtualInterface:
301 description: Interface where virtual ip will be assigned.
305 description: Whether to enable fencing in Pacemaker or not.
309 description: Whether to use Galera instead of regular MariaDB.
311 ControllerEnableCephStorage:
313 description: Whether to deploy Ceph Storage (OSD) on the Controller
315 ControllerSchedulerHints:
317 description: Optional scheduler hints to pass to nova
322 Additional configuration to inject into the cluster. The format required
323 may be implementation specific, e.g puppet hieradata. Any role specific
324 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
329 Pacemaker fencing configuration. The JSON should have
330 the following structure:
334 "agent": "AGENT_NAME",
335 "host_mac": "HOST_MAC_ADDRESS",
336 "params": {"PARAM_NAME": "PARAM_VALUE"}
344 "agent": "fence_xvm",
345 "host_mac": "52:54:00:aa:bb:cc",
347 "multicast_address": "225.0.0.12",
348 "port": "baremetal_0",
350 "manage_key_file": true,
351 "key_file": "/etc/fence_xvm.key",
352 "key_file_password": "abcdef"
360 description: The short name of the Gnocchi backend to use. Should be one
361 of swift, rbd or file
364 - allowed_values: ['swift', 'file', 'rbd']
365 GnocchiIndexerBackend:
367 description: The short name of the Gnocchi indexer backend to use.
370 description: The password for the gnocchi service account.
373 InstanceNameTemplate:
374 default: 'instance-%08x'
375 description: Template string to be used to generate instance names
379 description: Whether to manage IPtables rules.
383 description: Whether IPtables rules should be purged before setting up the ones.
385 MysqlInnodbBufferPoolSize:
387 Specifies the size of the buffer pool in megabytes. Setting to
388 zero should be interpreted as "no value" and will defer to the
393 description: Configures MySQL max_connections config setting
396 PublicVirtualInterface:
399 Specifies the interface where the public-facing virtual ip will be assigned.
400 This should be int_public when a VLAN is being used.
403 description: A random string to be used as a salt when hashing to determine mappings in the ring.
409 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
412 description: Partition Power to use when building Swift rings
417 description: How many replicas to use in the swift rings.
419 # Compute-specific params
420 CeilometerComputeAgent:
421 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
425 - allowed_values: ['', Present]
429 HypervisorNeutronPhysicalBridge:
432 An OVS bridge to create on each hypervisor. This defaults to br-ex the
433 same as the control plane nodes, as we have a uniform configuration of
434 the openvswitch agent. Typically should not need to be changed.
436 HypervisorNeutronPublicInterface:
438 description: What interface to add to the HypervisorNeutronPhysicalBridge.
440 NeutronNetworkVLANRanges:
441 default: 'datacentre:1:1000'
443 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
444 Neutron documentation for permitted values. Defaults to permitting any
445 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
446 type: comma_delimited_list
449 default: libvirt.LibvirtDriver
450 NovaComputeExtraConfig:
453 NovaCompute specific configuration to inject into the cluster. Same
454 structure as ExtraConfig.
456 NovaComputeLibvirtType:
459 NovaComputeLibvirtVifDriver:
461 description: Libvirt VIF driver configuration for the network
463 NovaComputeSchedulerHints:
465 description: Optional scheduler hints to pass to nova
467 NovaEnableRbdBackend:
469 description: Whether to enable or not the Rbd backend for Nova
473 default: overcloud-full
475 - custom_constraint: glance.image
478 description: Name of integration bridge used by Open vSwitch
480 NovaSecurityGroupAPI:
482 description: The full class name of the security API class
484 OvercloudComputeFlavor:
485 description: Use this flavor
489 - custom_constraint: nova.flavor
492 NeutronTenantNetwork: tenant
493 CeilometerApiNetwork: internal_api
494 AodhApiNetwork: internal_api
495 GnocchiApiNetwork: internal_api
496 MongoDbNetwork: internal_api
497 CinderApiNetwork: internal_api
498 CinderIscsiNetwork: storage
499 GlanceApiNetwork: storage
500 GlanceRegistryNetwork: internal_api
501 IronicApiNetwork: internal_api
502 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
503 KeystonePublicApiNetwork: internal_api
504 NeutronApiNetwork: internal_api
505 HeatApiNetwork: internal_api
506 NovaApiNetwork: internal_api
507 NovaMetadataNetwork: internal_api
508 NovaVncProxyNetwork: internal_api
509 SwiftMgmtNetwork: storage_mgmt
510 SwiftProxyNetwork: storage
511 SaharaApiNetwork: internal_api
512 HorizonNetwork: internal_api
513 MemcachedNetwork: internal_api
514 RabbitMqNetwork: internal_api
515 RedisNetwork: internal_api
516 MysqlNetwork: internal_api
517 CephClusterNetwork: storage_mgmt
518 CephPublicNetwork: storage
519 ControllerHostnameResolveNetwork: internal_api
520 ComputeHostnameResolveNetwork: internal_api
521 BlockStorageHostnameResolveNetwork: internal_api
522 ObjectStorageHostnameResolveNetwork: internal_api
523 CephStorageHostnameResolveNetwork: storage
524 description: Mapping of service_name -> network name. Typically set
525 via parameter_defaults in the resource registry.
530 - OS::TripleO::Services::CinderApi
531 - OS::TripleO::Services::CinderScheduler
532 - OS::TripleO::Services::CinderVolume
533 - OS::TripleO::Services::Keystone
534 - OS::TripleO::Services::GlanceApi
535 - OS::TripleO::Services::GlanceRegistry
536 - OS::TripleO::Services::HeatApi
537 - OS::TripleO::Services::HeatApiCfn
538 - OS::TripleO::Services::HeatApiCloudwatch
539 - OS::TripleO::Services::HeatEngine
540 - OS::TripleO::Services::NeutronDhcpAgent
541 - OS::TripleO::Services::NeutronL3Agent
542 - OS::TripleO::Services::NeutronMetadataAgent
543 - OS::TripleO::Services::NeutronServer
544 - OS::TripleO::Services::NeutronCorePlugin
545 - OS::TripleO::Services::NeutronOvsAgent
546 - OS::TripleO::Services::RabbitMQ
547 - OS::TripleO::Services::HAproxy
548 - OS::TripleO::Services::Keepalived
549 - OS::TripleO::Services::Memcached
550 - OS::TripleO::Services::Redis
551 - OS::TripleO::Services::NovaConductor
552 - OS::TripleO::Services::MongoDb
553 - OS::TripleO::Services::NovaApi
554 - OS::TripleO::Services::NovaScheduler
555 - OS::TripleO::Services::NovaConsoleauth
556 - OS::TripleO::Services::NovaVncproxy
557 - OS::TripleO::Services::Ntp
558 - OS::TripleO::Services::SwiftProxy
559 - OS::TripleO::Services::SwiftStorage
560 - OS::TripleO::Services::Snmp
561 - OS::TripleO::Services::Timezone
562 description: A list of service resources (configured in the Heat
563 resource_registry) which represent nested stacks
564 for each service that should get installed on the Controllers.
565 type: comma_delimited_list
569 - OS::TripleO::Services::Timezone
570 - OS::TripleO::Services::NovaCompute
571 - OS::TripleO::Services::Ntp
572 - OS::TripleO::Services::Snmp
573 description: A list of service resources (configured in the Heat
574 resource_registry) which represent nested stacks
575 for each service that should get installed on the Compute Nodes.
576 type: comma_delimited_list
578 # Block storage specific parameters
583 default: overcloud-full
585 OvercloudBlockStorageFlavor:
586 description: Flavor for block storage nodes to request when deploying.
590 - custom_constraint: nova.flavor
591 BlockStorageExtraConfig:
594 BlockStorage specific configuration to inject into the cluster. Same
595 structure as ExtraConfig.
597 BlockStorageSchedulerHints:
599 description: Optional scheduler hints to pass to nova
601 BlockStorageServices:
603 - OS::TripleO::Services::CinderVolume
604 - OS::TripleO::Services::Ntp
605 - OS::TripleO::Services::Timezone
606 description: A list of service resources (configured in the Heat
607 resource_registry) which represent nested stacks
608 for each service that should get installed on the BlockStorage nodes.
609 type: comma_delimited_list
611 # Object storage specific parameters
615 OvercloudSwiftStorageFlavor:
616 description: Flavor for Swift storage nodes to request when deploying.
620 - custom_constraint: nova.flavor
622 default: overcloud-full
624 ObjectStorageExtraConfig:
627 ObjectStorage specific configuration to inject into the cluster. Same
628 structure as ExtraConfig.
630 ObjectStorageSchedulerHints:
632 description: Optional scheduler hints to pass to nova
634 ObjectStorageServices:
636 - OS::TripleO::Services::Ntp
637 - OS::TripleO::Services::SwiftStorage
638 - OS::TripleO::Services::Snmp
639 - OS::TripleO::Services::Timezone
640 description: A list of service resources (configured in the Heat
641 resource_registry) which represent nested stacks
642 for each service that should get installed on the ObjectStorage nodes.
643 Note this role currently only supports steps 2, 3 and 4 configuration.
644 type: comma_delimited_list
647 # Ceph storage specific parameters
652 default: overcloud-full
654 OvercloudCephStorageFlavor:
656 description: Flavor for Ceph storage nodes to request when deploying.
659 - custom_constraint: nova.flavor
660 CephStorageExtraConfig:
663 CephStorage specific configuration to inject into the cluster. Same
664 structure as ExtraConfig.
666 CephStorageSchedulerHints:
668 description: Optional scheduler hints to pass to nova
672 - OS::TripleO::Services::Ntp
673 - OS::TripleO::Services::Timezone
674 description: A list of service resources (configured in the Heat
675 resource_registry) which represent nested stacks
676 for each service that should get installed on the CephStorage nodes.
677 type: comma_delimited_list
679 # Hostname format for each role
680 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
681 # and %stackname% is replaced with OS::stack_name in the template below.
682 # If you want to use the heat generated names, pass '' (empty string).
683 ControllerHostnameFormat:
685 description: Format for Controller node hostnames
686 default: '%stackname%-controller-%index%'
687 ComputeHostnameFormat:
689 description: Format for Compute node hostnames
690 default: '%stackname%-novacompute-%index%'
691 BlockStorageHostnameFormat:
693 description: Format for BlockStorage node hostnames
694 default: '%stackname%-blockstorage-%index%'
695 ObjectStorageHostnameFormat:
697 description: Format for SwiftStorage node hostnames
698 default: '%stackname%-objectstorage-%index%'
699 CephStorageHostnameFormat:
701 description: Format for CephStorage node hostnames
702 default: '%stackname%-cephstorage-%index%'
704 # Identifiers to trigger tasks on nodes
709 Setting to a previously unused value during stack-update will trigger
710 package update on all nodes
715 Setting this to a unique value will re-run any deployment tasks which
716 perform configuration on a Heat stack-update.
718 # If you want to remove a specific node from a resource group, you can pass
719 # the node name or id as a <Group>RemovalPolicies parameter, for example:
720 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
721 ControllerRemovalPolicies:
725 List of resources to be removed from ControllerResourceGroup when
726 doing an update which requires removal of specific resources.
727 ComputeRemovalPolicies:
731 List of resources to be removed from ComputeResourceGroup when
732 doing an update which requires removal of specific resources.
733 BlockStorageRemovalPolicies:
737 List of resources to be removed from BlockStorageResourceGroup when
738 doing an update which requires removal of specific resources.
739 ObjectStorageRemovalPolicies:
743 List of resources to be removed from ObjectStorageResourceGroup when
744 doing an update which requires removal of specific resources.
745 CephStorageRemovalPolicies:
749 List of resources to be removed from CephStorageResourceGroup when
750 doing an update which requires removal of specific resources.
754 description: Do not use deprecated params, they will be removed.
756 - controllerExtraConfig
761 HeatAuthEncryptionKey:
762 type: OS::Heat::RandomString
765 type: OS::Heat::RandomString
770 type: OS::Heat::RandomString
775 type: OS::TripleO::EndpointMap
777 CloudName: {get_param: CloudName}
778 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
779 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
780 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
781 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
782 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
783 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
784 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
785 IronicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
786 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
787 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
788 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
789 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
790 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
791 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
792 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
793 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
795 ControllerServiceChain:
796 type: OS::TripleO::Services
799 Services: {get_param: ControllerServices}
800 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
803 type: OS::Heat::ResourceGroup
806 count: {get_param: ControllerCount}
807 removal_policies: {get_param: ControllerRemovalPolicies}
809 type: OS::TripleO::Controller
811 AdminPassword: {get_param: AdminPassword}
812 AodhPassword: {get_param: AodhPassword}
813 CeilometerBackend: {get_param: CeilometerBackend}
814 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
815 CeilometerPassword: {get_param: CeilometerPassword}
816 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
817 CloudDomain: {get_param: CloudDomain}
818 ControlVirtualInterface: {get_param: ControlVirtualInterface}
819 controllerExtraConfig: {get_param: controllerExtraConfig}
820 CorosyncIPv6: {get_param: CorosyncIPv6}
821 Debug: {get_param: Debug}
822 EnableFencing: {get_param: EnableFencing}
823 ManageFirewall: {get_param: ManageFirewall}
824 PurgeFirewallRules: {get_param: PurgeFirewallRules}
825 EnableGalera: {get_param: EnableGalera}
826 EnableCephStorage: {get_param: ControllerEnableCephStorage}
827 ExtraConfig: {get_param: ExtraConfig}
828 FencingConfig: {get_param: FencingConfig}
829 Flavor: {get_param: OvercloudControlFlavor}
830 GnocchiPassword: {get_param: GnocchiPassword}
831 GnocchiBackend: {get_param: GnocchiBackend}
832 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
833 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
834 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
835 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
836 HorizonSecret: {get_resource: HorizonSecret}
837 Image: {get_param: controllerImage}
838 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
839 InstanceNameTemplate: {get_param: InstanceNameTemplate}
840 KeyName: {get_param: KeyName}
841 MemcachedIPv6: {get_param: MemcachedIPv6}
842 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
843 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
844 MysqlMaxConnections: {get_param: MysqlMaxConnections}
845 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
846 NeutronTenantMtu: {get_param: NeutronTenantMtu}
847 NeutronPublicInterface: {get_param: NeutronPublicInterface}
848 NeutronPassword: {get_param: NeutronPassword}
849 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
850 NovaIPv6: {get_param: NovaIPv6}
851 NovaPassword: {get_param: NovaPassword}
852 PcsdPassword: {get_resource: PcsdPassword}
853 PublicVirtualInterface: {get_param: PublicVirtualInterface}
854 RabbitPassword: {get_param: RabbitPassword}
855 RabbitUserName: {get_param: RabbitUserName}
856 RabbitCookie: {get_attr: [RabbitCookie, value]}
857 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
858 RabbitClientPort: {get_param: RabbitClientPort}
859 RedisPassword: {get_param: RedisPassword}
860 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
861 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
862 SwiftHashSuffix: {get_param: SwiftHashSuffix}
863 SwiftMinPartHours: {get_param: SwiftMinPartHours}
864 SwiftPartPower: {get_param: SwiftPartPower}
865 SwiftReplicas: { get_param: SwiftReplicas}
866 ServiceNetMap: {get_param: ServiceNetMap}
867 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
868 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
869 UpdateIdentifier: {get_param: UpdateIdentifier}
872 template: {get_param: ControllerHostnameFormat}
874 '%stackname%': {get_param: 'OS::stack_name'}
876 ServerMetadata: {get_param: ServerMetadata}
877 SchedulerHints: {get_param: ControllerSchedulerHints}
878 ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
882 type: OS::TripleO::Services
884 Services: {get_param: ComputeServices}
885 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
888 type: OS::Heat::ResourceGroup
891 count: {get_param: ComputeCount}
892 removal_policies: {get_param: ComputeRemovalPolicies}
894 type: OS::TripleO::Compute
896 AdminPassword: {get_param: AdminPassword}
897 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
898 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
899 CeilometerPassword: {get_param: CeilometerPassword}
900 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
901 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
902 Debug: {get_param: Debug}
903 ExtraConfig: {get_param: ExtraConfig}
904 Flavor: {get_param: OvercloudComputeFlavor}
905 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
906 Image: {get_param: NovaImage}
907 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
908 KeyName: {get_param: KeyName}
909 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
910 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
911 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
912 NeutronTenantMtu: {get_param: NeutronTenantMtu}
913 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
914 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
915 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
916 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
917 NeutronNetworkType: {get_param: NeutronNetworkType}
918 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
919 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
920 NeutronPassword: {get_param: NeutronPassword}
921 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
922 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
923 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
924 NeutronCorePlugin: {get_param: NeutronCorePlugin}
925 NeutronServicePlugins: {get_param: NeutronServicePlugins}
926 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
927 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
928 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
929 # L3 HA and Failover is not relevant for Computes, should be removed
930 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
931 NeutronL3HA: {get_param: NeutronL3HA}
932 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
933 NovaComputeDriver: {get_param: NovaComputeDriver}
934 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
935 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
936 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
937 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
938 NovaIPv6: {get_param: NovaIPv6}
939 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
940 NovaPassword: {get_param: NovaPassword}
941 NovaOVSBridge: {get_param: NovaOVSBridge}
942 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
943 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
944 RabbitPassword: {get_param: RabbitPassword}
945 RabbitUserName: {get_param: RabbitUserName}
946 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
947 RabbitClientPort: {get_param: RabbitClientPort}
948 ServiceNetMap: {get_param: ServiceNetMap}
949 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
950 UpdateIdentifier: {get_param: UpdateIdentifier}
953 template: {get_param: ComputeHostnameFormat}
955 '%stackname%': {get_param: 'OS::stack_name'}
956 CloudDomain: {get_param: CloudDomain}
957 ServerMetadata: {get_param: ServerMetadata}
958 SchedulerHints: {get_param: NovaComputeSchedulerHints}
960 ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
962 BlockStorageServiceChain:
963 type: OS::TripleO::Services
965 Services: {get_param: BlockStorageServices}
966 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
969 type: OS::Heat::ResourceGroup
972 count: {get_param: BlockStorageCount}
973 removal_policies: {get_param: BlockStorageRemovalPolicies}
975 type: OS::TripleO::BlockStorage
977 Image: {get_param: BlockStorageImage}
978 KeyName: {get_param: KeyName}
979 Flavor: {get_param: OvercloudBlockStorageFlavor}
980 UpdateIdentifier: {get_param: UpdateIdentifier}
983 template: {get_param: BlockStorageHostnameFormat}
985 '%stackname%': {get_param: 'OS::stack_name'}
986 ServiceNetMap: {get_param: ServiceNetMap}
987 ExtraConfig: {get_param: ExtraConfig}
988 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
989 CloudDomain: {get_param: CloudDomain}
990 ServerMetadata: {get_param: ServerMetadata}
991 SchedulerHints: {get_param: BlockStorageSchedulerHints}
993 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
995 ObjectStorageServiceChain:
996 type: OS::TripleO::Services
998 Services: {get_param: ObjectStorageServices}
999 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1002 type: OS::Heat::ResourceGroup
1003 depends_on: Networks
1005 count: {get_param: ObjectStorageCount}
1006 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1008 type: OS::TripleO::ObjectStorage
1010 KeyName: {get_param: KeyName}
1011 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1012 HashSuffix: {get_param: SwiftHashSuffix}
1013 MinPartHours: {get_param: SwiftMinPartHours}
1014 PartPower: {get_param: SwiftPartPower}
1015 Image: {get_param: SwiftStorageImage}
1016 Replicas: { get_param: SwiftReplicas}
1017 UpdateIdentifier: {get_param: UpdateIdentifier}
1018 ServiceNetMap: {get_param: ServiceNetMap}
1021 template: {get_param: ObjectStorageHostnameFormat}
1023 '%stackname%': {get_param: 'OS::stack_name'}
1024 ExtraConfig: {get_param: ExtraConfig}
1025 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1026 CloudDomain: {get_param: CloudDomain}
1027 ServerMetadata: {get_param: ServerMetadata}
1028 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1029 NodeIndex: '%index%'
1030 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
1032 CephStorageServiceChain:
1033 type: OS::TripleO::Services
1035 Services: {get_param: CephStorageServices}
1036 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1039 type: OS::Heat::ResourceGroup
1040 depends_on: Networks
1042 count: {get_param: CephStorageCount}
1043 removal_policies: {get_param: CephStorageRemovalPolicies}
1045 type: OS::TripleO::CephStorage
1047 Image: {get_param: CephStorageImage}
1048 KeyName: {get_param: KeyName}
1049 Flavor: {get_param: OvercloudCephStorageFlavor}
1050 ServiceNetMap: {get_param: ServiceNetMap}
1051 UpdateIdentifier: {get_param: UpdateIdentifier}
1054 template: {get_param: CephStorageHostnameFormat}
1056 '%stackname%': {get_param: 'OS::stack_name'}
1057 ExtraConfig: {get_param: ExtraConfig}
1058 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1059 CloudDomain: {get_param: CloudDomain}
1060 ServerMetadata: {get_param: ServerMetadata}
1061 SchedulerHints: {get_param: CephStorageSchedulerHints}
1062 NodeIndex: '%index%'
1063 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
1065 ControllerIpListMap:
1066 type: OS::TripleO::Network::Ports::NetIpListMap
1068 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1069 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1070 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1071 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1072 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1073 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1074 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1077 type: OS::TripleO::AllNodes::SoftwareConfig
1079 compute_hosts: {get_attr: [Compute, hosts_entry]}
1080 controller_hosts: {get_attr: [Controller, hosts_entry]}
1081 controller_ips: {get_attr: [Controller, ip_address]}
1082 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1083 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1084 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1085 controller_names: {get_attr: [Controller, hostname]}
1086 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1087 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1088 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1089 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1090 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1091 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1092 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1093 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1094 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1095 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1096 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1097 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1098 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1099 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1100 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1101 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1102 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1103 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1104 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1105 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1106 ironic_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1107 DeployIdentifier: {get_param: DeployIdentifier}
1108 UpdateIdentifier: {get_param: UpdateIdentifier}
1111 type: OS::Heat::RandomString
1115 MysqlClusterUniquePart:
1116 type: OS::Heat::RandomString
1121 type: OS::Heat::RandomString
1124 salt: {get_param: RabbitCookieSalt}
1126 # creates the network architecture
1128 type: OS::TripleO::Network
1131 type: OS::Neutron::Port
1132 depends_on: Networks
1134 name: control_virtual_ip
1135 network: {get_param: NeutronControlPlaneID}
1136 fixed_ips: {get_param: ControlFixedIPs}
1137 replacement_policy: AUTO
1140 depends_on: Networks
1141 type: OS::TripleO::Network::Ports::RedisVipPort
1143 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1144 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1145 PortName: redis_virtual_ip
1146 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1149 # The public VIP is on the External net, falls back to ctlplane
1151 depends_on: Networks
1152 type: OS::TripleO::Network::Ports::ExternalVipPort
1154 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1155 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1156 PortName: public_virtual_ip
1157 FixedIPs: {get_param: PublicVirtualFixedIPs}
1159 InternalApiVirtualIP:
1160 depends_on: Networks
1161 type: OS::TripleO::Network::Ports::InternalApiVipPort
1163 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1164 PortName: internal_api_virtual_ip
1165 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1168 depends_on: Networks
1169 type: OS::TripleO::Network::Ports::StorageVipPort
1171 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1172 PortName: storage_virtual_ip
1173 FixedIPs: {get_param: StorageVirtualFixedIPs}
1175 StorageMgmtVirtualIP:
1176 depends_on: Networks
1177 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1179 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1180 PortName: storage_management_virtual_ip
1181 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1184 type: OS::TripleO::Network::Ports::NetVipMap
1186 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1187 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1188 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1189 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1190 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1191 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1192 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1193 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1194 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1195 # No tenant or management VIP required
1198 type: OS::TripleO::VipConfig
1201 type: OS::Heat::StructuredDeployments
1204 config: {get_resource: VipConfig}
1205 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1207 # service VIP mappings
1208 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1209 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1210 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1211 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1212 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1213 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1214 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1215 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1216 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1217 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1218 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1219 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1220 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1221 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1222 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1223 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1224 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1225 # direct configuration of Virtual IPs for each network
1226 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1227 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1228 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1229 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1230 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1231 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1232 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1234 ControllerBootstrapNodeConfig:
1235 type: OS::TripleO::BootstrapNode::SoftwareConfig
1237 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1238 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1240 ControllerBootstrapNodeDeployment:
1241 type: OS::Heat::StructuredDeployments
1243 name: ControllerBootstrapNodeDeployment
1244 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1245 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1247 ControllerSwiftDeployment:
1248 type: OS::Heat::StructuredDeployments
1250 name: ControllerSwiftDeployment
1251 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1252 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1254 ObjectStorageSwiftDeployment:
1255 type: OS::Heat::StructuredDeployments
1257 name: ObjectStorageSwiftDeployment
1258 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1259 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1261 SwiftDevicesAndProxyConfig:
1262 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1264 controller_swift_devices: {get_attr: [Controller, swift_device]}
1265 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1266 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1268 ComputeCephDeployment:
1269 type: OS::Heat::StructuredDeployments
1271 name: ComputeCephDeployment
1272 config: {get_attr: [CephClusterConfig, config_id]}
1273 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1275 ControllerCephDeployment:
1276 type: OS::Heat::StructuredDeployments
1278 name: ControllerCephDeployment
1279 config: {get_attr: [CephClusterConfig, config_id]}
1280 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1282 CephStorageCephDeployment:
1283 type: OS::Heat::StructuredDeployments
1285 name: CephStorageCephDeployment
1286 config: {get_attr: [CephClusterConfig, config_id]}
1287 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1290 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1292 ceph_storage_count: {get_param: CephStorageCount}
1293 ceph_fsid: {get_param: CephClusterFSID}
1294 ceph_mon_key: {get_param: CephMonKey}
1295 ceph_admin_key: {get_param: CephAdminKey}
1296 ceph_client_key: {get_param: CephClientKey}
1297 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1298 ceph_mon_names: {get_attr: [Controller, hostname]}
1299 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1301 ControllerAllNodesDeployment:
1302 type: OS::Heat::StructuredDeployments
1304 name: ControllerAllNodesDeployment
1305 config: {get_attr: [allNodesConfig, config_id]}
1306 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1308 ComputeAllNodesDeployment:
1309 type: OS::Heat::StructuredDeployments
1311 name: ComputeAllNodesDeployment
1312 config: {get_attr: [allNodesConfig, config_id]}
1313 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1315 BlockStorageAllNodesDeployment:
1316 type: OS::Heat::StructuredDeployments
1318 name: BlockStorageAllNodesDeployment
1319 config: {get_attr: [allNodesConfig, config_id]}
1320 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1322 ObjectStorageAllNodesDeployment:
1323 type: OS::Heat::StructuredDeployments
1325 name: ObjectStorageAllNodesDeployment
1326 config: {get_attr: [allNodesConfig, config_id]}
1327 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1329 CephStorageAllNodesDeployment:
1330 type: OS::Heat::StructuredDeployments
1332 name: CephStorageAllNodesDeployment
1333 config: {get_attr: [allNodesConfig, config_id]}
1334 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1336 # All Nodes Validations
1337 AllNodesValidationConfig:
1338 type: OS::TripleO::AllNodes::Validation
1343 - - {get_attr: [Controller, resource.0.external_ip_address]}
1344 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1345 - {get_attr: [Controller, resource.0.storage_ip_address]}
1346 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1347 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1349 ControllerAllNodesValidationDeployment:
1350 type: OS::Heat::StructuredDeployments
1351 depends_on: ControllerAllNodesDeployment
1353 name: ControllerAllNodesValidationDeployment
1354 config: {get_resource: AllNodesValidationConfig}
1355 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1357 ComputeAllNodesValidationDeployment:
1358 type: OS::Heat::StructuredDeployments
1359 depends_on: ComputeAllNodesDeployment
1361 name: ComputeAllNodesValidationDeployment
1362 config: {get_resource: AllNodesValidationConfig}
1363 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1365 BlockStorageAllNodesValidationDeployment:
1366 type: OS::Heat::StructuredDeployments
1367 depends_on: BlockStorageAllNodesDeployment
1369 name: BlockStorageAllNodesValidationDeployment
1370 config: {get_resource: AllNodesValidationConfig}
1371 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1373 ObjectStorageAllNodesValidationDeployment:
1374 type: OS::Heat::StructuredDeployments
1375 depends_on: ObjectStorageAllNodesDeployment
1377 name: ObjectStorageAllNodesValidationDeployment
1378 config: {get_resource: AllNodesValidationConfig}
1379 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1381 CephStorageAllNodesValidationDeployment:
1382 type: OS::Heat::StructuredDeployments
1383 depends_on: CephStorageAllNodesDeployment
1385 name: CephStorageAllNodesValidationDeployment
1386 config: {get_resource: AllNodesValidationConfig}
1387 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1390 type: OS::TripleO::Tasks::UpdateWorkflow
1392 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1393 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1394 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1395 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1396 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1398 deploy_identifier: {get_param: DeployIdentifier}
1399 update_identifier: {get_param: UpdateIdentifier}
1401 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1402 # the nested template may configure each role differently (or not at all)
1403 AllNodesExtraConfig:
1404 type: OS::TripleO::AllNodesExtraConfig
1407 - ComputeAllNodesValidationDeployment
1408 - BlockStorageAllNodesValidationDeployment
1409 - ObjectStorageAllNodesValidationDeployment
1410 - CephStorageAllNodesValidationDeployment
1411 - ControllerAllNodesValidationDeployment
1413 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1414 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1415 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1416 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1417 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1419 # Nested stack deployment runs after all other controller deployments
1420 ControllerNodesPostDeployment:
1421 type: OS::TripleO::ControllerPostDeployment
1422 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1424 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1425 NodeConfigIdentifiers:
1426 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1427 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1428 deployment_identifier: {get_param: DeployIdentifier}
1429 StepConfig: {get_attr: [ControllerServiceChain, role_data, step_config]}
1431 ComputeNodesPostDeployment:
1432 type: OS::TripleO::ComputePostDeployment
1433 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1435 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1436 NodeConfigIdentifiers:
1437 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1438 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1439 deployment_identifier: {get_param: DeployIdentifier}
1440 StepConfig: {get_attr: [ComputeServiceChain, role_data, step_config]}
1442 ObjectStorageNodesPostDeployment:
1443 type: OS::TripleO::ObjectStoragePostDeployment
1444 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1446 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1447 NodeConfigIdentifiers:
1448 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1449 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1450 deployment_identifier: {get_param: DeployIdentifier}
1451 StepConfig: {get_attr: [ObjectStorageServiceChain, role_data, step_config]}
1453 BlockStorageNodesPostDeployment:
1454 type: OS::TripleO::BlockStoragePostDeployment
1455 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1457 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1458 NodeConfigIdentifiers:
1459 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1460 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1461 deployment_identifier: {get_param: DeployIdentifier}
1462 StepConfig: {get_attr: [BlockStorageServiceChain, role_data, step_config]}
1465 CephStorageNodesPostDeployment:
1466 type: OS::TripleO::CephStoragePostDeployment
1467 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1469 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1470 NodeConfigIdentifiers:
1471 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1472 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1473 deployment_identifier: {get_param: DeployIdentifier}
1474 StepConfig: {get_attr: [CephStorageServiceChain, role_data, step_config]}
1478 description: URL for the Overcloud Keystone service
1479 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1481 description: Keystone Admin VIP endpoint
1482 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1484 description: Controller VIP for public API endpoints
1485 value: {get_attr: [VipMap, net_ip_map, external]}
1487 description: VIP for Aodh API internal endpoint
1488 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1489 CeilometerInternalVip:
1490 description: VIP for Ceilometer API internal endpoint
1491 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1493 description: VIP for Cinder API internal endpoint
1494 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1496 description: VIP for Glance API internal endpoint
1497 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1499 description: VIP for Gnocchi API internal endpoint
1500 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1502 description: VIP for Heat API internal endpoint
1503 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1505 description: VIP for Ironic API internal endpoint
1506 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1507 KeystoneInternalVip:
1508 description: VIP for Keystone API internal endpoint
1509 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1511 description: VIP for Neutron API internal endpoint
1512 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1514 description: VIP for Nova API internal endpoint
1515 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1517 description: VIP for Sahara API internal endpoint
1518 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1520 description: VIP for Swift Proxy internal endpoint
1521 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1524 Mapping of the resources with the needed info for their endpoints.
1525 This includes the protocol used, the IP, port and also a full
1526 representation of the URI.
1527 value: {get_attr: [EndpointMap, endpoint_map]}
1530 The content that should be appended to your /etc/hosts if you want to get
1531 hostname-based access to the deployed nodes (useful for testing without
1533 value: {get_attr: [allNodesConfig, hosts_entries]}