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 CinderEnableNfsBackend:
43 description: Whether to enable or not the NFS backend for Cinder
45 CinderEnableRbdBackend:
47 description: Whether to enable or not the Rbd backend for Cinder
51 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
55 description: Should be used for arbitrary ips.
59 description: Enable IPv6 in Corosync
63 description: Set to True to enable debugging on all services.
67 description: Syslog address where HAproxy will send its log
71 description: A list of IP/Hostname allowed to connect to horizon
72 type: comma_delimited_list
74 default: 'REBUILD_PRESERVE_EPHEMERAL'
75 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
77 InternalApiVirtualFixedIPs:
80 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
81 [{'ip_address':'1.2.3.4'}]
85 description: Name of an existing Nova key pair to enable SSH access to the instances
88 - custom_constraint: nova.keypair
91 description: Enable IPv6 features in Memcached.
93 NeutronBridgeMappings:
95 The OVS logical->physical bridge mappings to use. See the Neutron
96 documentation for details. Defaults to mapping br-ex - the external
97 bridge on hosts - to a physical name 'datacentre' which can be used
98 to create provider networks (and we use this for the default floating
99 network) - if changing this either use different post-install network
100 scripts or be sure to keep 'datacentre' as a mapping network name.
101 type: comma_delimited_list
102 default: "datacentre:br-ex"
103 NeutronControlPlaneID:
106 description: Neutron ID or name for ctlplane network.
107 NeutronEnableTunnelling:
113 Enable/disable the L2 population feature in the Neutron agents.
116 type: comma_delimited_list
117 default: 'datacentre'
119 If set, flat networks to configure in neutron plugins. Defaults to
120 'datacentre' to permit external network creation.
123 description: The tenant network type for Neutron.
124 type: comma_delimited_list
126 description: The password for the neutron service account, used by neutron agents.
129 NeutronPublicInterface:
131 description: What interface to bridge onto br-ex for network nodes.
133 NeutronMetadataProxySharedSecret:
134 description: Shared secret to prevent spoofing
139 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
140 be at least 50 bytes smaller than the MTU on the physical network. This
141 value will be used to set the MTU on the virtual Ethernet device.
142 This value will be used to construct the NeutronDnsmasqOptions, since that
143 will determine the MTU that is assigned to the VM host through DHCP.
149 The tunnel types for the Neutron tenant network.
150 type: comma_delimited_list
151 type: comma_delimited_list
155 The core plugin for Neutron. The value should be the entrypoint to be loaded
156 from neutron.core_plugins namespace.
158 NeutronServicePlugins:
159 default: "router,qos"
161 Comma-separated list of service plugin entrypoints to be loaded from the
162 neutron.service_plugins namespace.
163 type: comma_delimited_list
165 default: "vxlan,vlan,flat,gre"
167 Comma-separated list of network type driver entrypoints to be loaded.
168 type: comma_delimited_list
169 NeutronMechanismDrivers:
170 default: 'openvswitch'
172 The mechanism drivers for the Neutron tenant network.
173 type: comma_delimited_list
174 type: comma_delimited_list
175 NeutronAgentExtensions:
178 Comma-separated list of extensions enabled for the Neutron agents.
179 type: comma_delimited_list
180 NeutronAllowL3AgentFailover:
182 description: Allow automatic l3-agent failover
186 description: Whether to enable l3-agent HA
190 description: Enable IPv6 features in Nova
193 description: The password for the nova service account, used by nova-api.
196 PublicVirtualFixedIPs:
199 Control the IP allocation for the PublicVirtualInterface port. E.g.
200 [{'ip_address':'1.2.3.4'}]
205 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
208 description: The username for RabbitMQ
211 description: The password for RabbitMQ
217 Rabbit client subscriber parameter to specify
218 an SSL connection to the RabbitMQ host.
222 description: Set rabbit subscriber port, change this if using SSL
225 description: The password for Redis
228 StorageVirtualFixedIPs:
231 Control the IP allocation for the StorageVirtualInterface port. E.g.
232 [{'ip_address':'1.2.3.4'}]
234 StorageMgmtVirtualFixedIPs:
237 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
238 [{'ip_address':'1.2.3.4'}]
241 default: 'localdomain'
244 The DNS domain used for the hosts. This should match the dhcp_domain
245 configured in the Undercloud neutron. Defaults to localdomain.
249 Extra properties or metadata passed to Nova for the created nodes in
250 the overcloud. It's accessible via the Nova metadata API.
253 # Controller-specific params
259 controllerExtraConfig:
262 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
266 default: overcloud-full
268 - custom_constraint: glance.image
269 OvercloudControlFlavor:
270 description: Flavor for control nodes to request when deploying.
274 - custom_constraint: nova.flavor
275 ControlVirtualInterface:
277 description: Interface where virtual ip will be assigned.
281 description: Whether to enable fencing in Pacemaker or not.
285 description: Whether to use Galera instead of regular MariaDB.
287 ControllerSchedulerHints:
289 description: Optional scheduler hints to pass to nova
294 Additional configuration to inject into the cluster. The format required
295 may be implementation specific, e.g puppet hieradata. Any role specific
296 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
301 Pacemaker fencing configuration. The JSON should have
302 the following structure:
306 "agent": "AGENT_NAME",
307 "host_mac": "HOST_MAC_ADDRESS",
308 "params": {"PARAM_NAME": "PARAM_VALUE"}
316 "agent": "fence_xvm",
317 "host_mac": "52:54:00:aa:bb:cc",
319 "multicast_address": "225.0.0.12",
320 "port": "baremetal_0",
322 "manage_key_file": true,
323 "key_file": "/etc/fence_xvm.key",
324 "key_file_password": "abcdef"
332 description: The short name of the Gnocchi backend to use. Should be one
333 of swift, rbd or file
336 - allowed_values: ['swift', 'file', 'rbd']
337 GnocchiIndexerBackend:
339 description: The short name of the Gnocchi indexer backend to use.
342 description: The password for the gnocchi service account.
345 InstanceNameTemplate:
346 default: 'instance-%08x'
347 description: Template string to be used to generate instance names
351 description: Whether to manage IPtables rules.
355 description: Whether IPtables rules should be purged before setting up the ones.
357 MysqlInnodbBufferPoolSize:
359 Specifies the size of the buffer pool in megabytes. Setting to
360 zero should be interpreted as "no value" and will defer to the
365 description: Configures MySQL max_connections config setting
368 PublicVirtualInterface:
371 Specifies the interface where the public-facing virtual ip will be assigned.
372 This should be int_public when a VLAN is being used.
375 description: A random string to be used as a salt when hashing to determine mappings in the ring.
381 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
384 description: Partition Power to use when building Swift rings
389 description: How many replicas to use in the swift rings.
391 # Compute-specific params
392 CeilometerComputeAgent:
393 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
397 - allowed_values: ['', Present]
401 HypervisorNeutronPhysicalBridge:
404 An OVS bridge to create on each hypervisor. This defaults to br-ex the
405 same as the control plane nodes, as we have a uniform configuration of
406 the openvswitch agent. Typically should not need to be changed.
408 HypervisorNeutronPublicInterface:
410 description: What interface to add to the HypervisorNeutronPhysicalBridge.
412 NeutronNetworkVLANRanges:
413 default: 'datacentre:1:1000'
415 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
416 Neutron documentation for permitted values. Defaults to permitting any
417 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
418 type: comma_delimited_list
421 default: libvirt.LibvirtDriver
422 NovaComputeExtraConfig:
425 NovaCompute specific configuration to inject into the cluster. Same
426 structure as ExtraConfig.
428 NovaComputeLibvirtType:
431 NovaComputeLibvirtVifDriver:
433 description: Libvirt VIF driver configuration for the network
435 NovaComputeSchedulerHints:
437 description: Optional scheduler hints to pass to nova
439 NovaEnableRbdBackend:
441 description: Whether to enable or not the Rbd backend for Nova
445 default: overcloud-full
447 - custom_constraint: glance.image
450 description: Name of integration bridge used by Open vSwitch
452 NovaSecurityGroupAPI:
454 description: The full class name of the security API class
456 OvercloudComputeFlavor:
457 description: Use this flavor
461 - custom_constraint: nova.flavor
464 NeutronTenantNetwork: tenant
465 CeilometerApiNetwork: internal_api
466 AodhApiNetwork: internal_api
467 GnocchiApiNetwork: internal_api
468 MongoDbNetwork: internal_api
469 CinderApiNetwork: internal_api
470 CinderIscsiNetwork: storage
471 GlanceApiNetwork: storage
472 GlanceRegistryNetwork: internal_api
473 IronicApiNetwork: internal_api
474 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
475 KeystonePublicApiNetwork: internal_api
476 NeutronApiNetwork: internal_api
477 HeatApiNetwork: internal_api
478 NovaApiNetwork: internal_api
479 NovaMetadataNetwork: internal_api
480 NovaVncProxyNetwork: internal_api
481 SwiftMgmtNetwork: storage_mgmt
482 SwiftProxyNetwork: storage
483 SaharaApiNetwork: internal_api
484 HorizonNetwork: internal_api
485 MemcachedNetwork: internal_api
486 RabbitMqNetwork: internal_api
487 RedisNetwork: internal_api
488 MysqlNetwork: internal_api
489 CephClusterNetwork: storage_mgmt
490 CephPublicNetwork: storage
491 ControllerHostnameResolveNetwork: internal_api
492 ComputeHostnameResolveNetwork: internal_api
493 BlockStorageHostnameResolveNetwork: internal_api
494 ObjectStorageHostnameResolveNetwork: internal_api
495 CephStorageHostnameResolveNetwork: storage
496 description: Mapping of service_name -> network name. Typically set
497 via parameter_defaults in the resource registry.
502 - OS::TripleO::Services::CephMon
503 - OS::TripleO::Services::CephExternal
504 - OS::TripleO::Services::CinderApi
505 - OS::TripleO::Services::CinderScheduler
506 - OS::TripleO::Services::CinderVolume
507 - OS::TripleO::Services::Keystone
508 - OS::TripleO::Services::GlanceApi
509 - OS::TripleO::Services::GlanceRegistry
510 - OS::TripleO::Services::HeatApi
511 - OS::TripleO::Services::HeatApiCfn
512 - OS::TripleO::Services::HeatApiCloudwatch
513 - OS::TripleO::Services::HeatEngine
514 - OS::TripleO::Services::NeutronDhcpAgent
515 - OS::TripleO::Services::NeutronL3Agent
516 - OS::TripleO::Services::NeutronMetadataAgent
517 - OS::TripleO::Services::NeutronServer
518 - OS::TripleO::Services::NeutronCorePlugin
519 - OS::TripleO::Services::NeutronOvsAgent
520 - OS::TripleO::Services::RabbitMQ
521 - OS::TripleO::Services::HAproxy
522 - OS::TripleO::Services::Keepalived
523 - OS::TripleO::Services::Memcached
524 - OS::TripleO::Services::Redis
525 - OS::TripleO::Services::NovaConductor
526 - OS::TripleO::Services::MongoDb
527 - OS::TripleO::Services::NovaApi
528 - OS::TripleO::Services::NovaScheduler
529 - OS::TripleO::Services::NovaConsoleauth
530 - OS::TripleO::Services::NovaVncproxy
531 - OS::TripleO::Services::Ntp
532 - OS::TripleO::Services::SwiftProxy
533 - OS::TripleO::Services::SwiftStorage
534 - OS::TripleO::Services::Snmp
535 - OS::TripleO::Services::Timezone
536 description: A list of service resources (configured in the Heat
537 resource_registry) which represent nested stacks
538 for each service that should get installed on the Controllers.
539 type: comma_delimited_list
543 - OS::TripleO::Services::CephClient
544 - OS::TripleO::Services::CephExternal
545 - OS::TripleO::Services::Timezone
546 - OS::TripleO::Services::Ntp
547 - OS::TripleO::Services::Snmp
548 - OS::TripleO::Services::NovaCompute
549 - OS::TripleO::Services::NovaLibvirt
550 description: A list of service resources (configured in the Heat
551 resource_registry) which represent nested stacks
552 for each service that should get installed on the Compute Nodes.
553 type: comma_delimited_list
555 # Block storage specific parameters
560 default: overcloud-full
562 OvercloudBlockStorageFlavor:
563 description: Flavor for block storage nodes to request when deploying.
567 - custom_constraint: nova.flavor
568 BlockStorageExtraConfig:
571 BlockStorage specific configuration to inject into the cluster. Same
572 structure as ExtraConfig.
574 BlockStorageSchedulerHints:
576 description: Optional scheduler hints to pass to nova
578 BlockStorageServices:
580 - OS::TripleO::Services::CinderVolume
581 - OS::TripleO::Services::Ntp
582 - OS::TripleO::Services::Timezone
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 BlockStorage nodes.
586 type: comma_delimited_list
588 # Object storage specific parameters
592 OvercloudSwiftStorageFlavor:
593 description: Flavor for Swift storage nodes to request when deploying.
597 - custom_constraint: nova.flavor
599 default: overcloud-full
601 ObjectStorageExtraConfig:
604 ObjectStorage specific configuration to inject into the cluster. Same
605 structure as ExtraConfig.
607 ObjectStorageSchedulerHints:
609 description: Optional scheduler hints to pass to nova
611 ObjectStorageServices:
613 - OS::TripleO::Services::Ntp
614 - OS::TripleO::Services::SwiftStorage
615 - OS::TripleO::Services::Snmp
616 - OS::TripleO::Services::Timezone
617 description: A list of service resources (configured in the Heat
618 resource_registry) which represent nested stacks
619 for each service that should get installed on the ObjectStorage nodes.
620 Note this role currently only supports steps 2, 3 and 4 configuration.
621 type: comma_delimited_list
624 # Ceph storage specific parameters
629 default: overcloud-full
631 OvercloudCephStorageFlavor:
633 description: Flavor for Ceph storage nodes to request when deploying.
636 - custom_constraint: nova.flavor
637 CephStorageExtraConfig:
640 CephStorage specific configuration to inject into the cluster. Same
641 structure as ExtraConfig.
643 CephStorageSchedulerHints:
645 description: Optional scheduler hints to pass to nova
649 - OS::TripleO::Services::CephOSD
650 - OS::TripleO::Services::Ntp
651 - OS::TripleO::Services::Timezone
652 description: A list of service resources (configured in the Heat
653 resource_registry) which represent nested stacks
654 for each service that should get installed on the CephStorage nodes.
655 type: comma_delimited_list
657 # Hostname format for each role
658 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
659 # and %stackname% is replaced with OS::stack_name in the template below.
660 # If you want to use the heat generated names, pass '' (empty string).
661 ControllerHostnameFormat:
663 description: Format for Controller node hostnames
664 default: '%stackname%-controller-%index%'
665 ComputeHostnameFormat:
667 description: Format for Compute node hostnames
668 default: '%stackname%-novacompute-%index%'
669 BlockStorageHostnameFormat:
671 description: Format for BlockStorage node hostnames
672 default: '%stackname%-blockstorage-%index%'
673 ObjectStorageHostnameFormat:
675 description: Format for SwiftStorage node hostnames
676 default: '%stackname%-objectstorage-%index%'
677 CephStorageHostnameFormat:
679 description: Format for CephStorage node hostnames
680 default: '%stackname%-cephstorage-%index%'
682 # Identifiers to trigger tasks on nodes
687 Setting to a previously unused value during stack-update will trigger
688 package update on all nodes
693 Setting this to a unique value will re-run any deployment tasks which
694 perform configuration on a Heat stack-update.
696 # If you want to remove a specific node from a resource group, you can pass
697 # the node name or id as a <Group>RemovalPolicies parameter, for example:
698 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
699 ControllerRemovalPolicies:
703 List of resources to be removed from ControllerResourceGroup when
704 doing an update which requires removal of specific resources.
705 ComputeRemovalPolicies:
709 List of resources to be removed from ComputeResourceGroup when
710 doing an update which requires removal of specific resources.
711 BlockStorageRemovalPolicies:
715 List of resources to be removed from BlockStorageResourceGroup when
716 doing an update which requires removal of specific resources.
717 ObjectStorageRemovalPolicies:
721 List of resources to be removed from ObjectStorageResourceGroup when
722 doing an update which requires removal of specific resources.
723 CephStorageRemovalPolicies:
727 List of resources to be removed from CephStorageResourceGroup when
728 doing an update which requires removal of specific resources.
732 description: Do not use deprecated params, they will be removed.
734 - controllerExtraConfig
739 HeatAuthEncryptionKey:
740 type: OS::Heat::RandomString
743 type: OS::Heat::RandomString
748 type: OS::Heat::RandomString
753 type: OS::TripleO::EndpointMap
755 CloudName: {get_param: CloudName}
756 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
757 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
758 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
759 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
760 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
761 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
762 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
763 IronicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
764 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
765 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
766 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
767 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
768 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
769 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
770 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
771 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
773 ControllerServiceChain:
774 type: OS::TripleO::Services
777 Services: {get_param: ControllerServices}
778 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
781 type: OS::Heat::ResourceGroup
784 count: {get_param: ControllerCount}
785 removal_policies: {get_param: ControllerRemovalPolicies}
787 type: OS::TripleO::Controller
789 AdminPassword: {get_param: AdminPassword}
790 AodhPassword: {get_param: AodhPassword}
791 CeilometerBackend: {get_param: CeilometerBackend}
792 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
793 CeilometerPassword: {get_param: CeilometerPassword}
794 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
795 CloudDomain: {get_param: CloudDomain}
796 ControlVirtualInterface: {get_param: ControlVirtualInterface}
797 controllerExtraConfig: {get_param: controllerExtraConfig}
798 CorosyncIPv6: {get_param: CorosyncIPv6}
799 Debug: {get_param: Debug}
800 EnableFencing: {get_param: EnableFencing}
801 ManageFirewall: {get_param: ManageFirewall}
802 PurgeFirewallRules: {get_param: PurgeFirewallRules}
803 EnableGalera: {get_param: EnableGalera}
804 ExtraConfig: {get_param: ExtraConfig}
805 FencingConfig: {get_param: FencingConfig}
806 Flavor: {get_param: OvercloudControlFlavor}
807 GnocchiPassword: {get_param: GnocchiPassword}
808 GnocchiBackend: {get_param: GnocchiBackend}
809 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
810 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
811 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
812 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
813 HorizonSecret: {get_resource: HorizonSecret}
814 Image: {get_param: controllerImage}
815 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
816 InstanceNameTemplate: {get_param: InstanceNameTemplate}
817 KeyName: {get_param: KeyName}
818 MemcachedIPv6: {get_param: MemcachedIPv6}
819 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
820 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
821 MysqlMaxConnections: {get_param: MysqlMaxConnections}
822 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
823 NeutronTenantMtu: {get_param: NeutronTenantMtu}
824 NeutronPublicInterface: {get_param: NeutronPublicInterface}
825 NeutronPassword: {get_param: NeutronPassword}
826 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
827 NovaIPv6: {get_param: NovaIPv6}
828 NovaPassword: {get_param: NovaPassword}
829 PcsdPassword: {get_resource: PcsdPassword}
830 PublicVirtualInterface: {get_param: PublicVirtualInterface}
831 RabbitPassword: {get_param: RabbitPassword}
832 RabbitUserName: {get_param: RabbitUserName}
833 RabbitCookie: {get_attr: [RabbitCookie, value]}
834 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
835 RabbitClientPort: {get_param: RabbitClientPort}
836 RedisPassword: {get_param: RedisPassword}
837 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
838 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
839 SwiftHashSuffix: {get_param: SwiftHashSuffix}
840 SwiftMinPartHours: {get_param: SwiftMinPartHours}
841 SwiftPartPower: {get_param: SwiftPartPower}
842 SwiftReplicas: { get_param: SwiftReplicas}
843 ServiceNetMap: {get_param: ServiceNetMap}
844 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
845 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
846 UpdateIdentifier: {get_param: UpdateIdentifier}
849 template: {get_param: ControllerHostnameFormat}
851 '%stackname%': {get_param: 'OS::stack_name'}
853 ServerMetadata: {get_param: ServerMetadata}
854 SchedulerHints: {get_param: ControllerSchedulerHints}
855 ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
859 type: OS::TripleO::Services
861 Services: {get_param: ComputeServices}
862 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
865 type: OS::Heat::ResourceGroup
868 count: {get_param: ComputeCount}
869 removal_policies: {get_param: ComputeRemovalPolicies}
871 type: OS::TripleO::Compute
873 AdminPassword: {get_param: AdminPassword}
874 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
875 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
876 CeilometerPassword: {get_param: CeilometerPassword}
877 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
878 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
879 Debug: {get_param: Debug}
880 ExtraConfig: {get_param: ExtraConfig}
881 Flavor: {get_param: OvercloudComputeFlavor}
882 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
883 Image: {get_param: NovaImage}
884 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
885 KeyName: {get_param: KeyName}
886 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
887 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
888 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
889 NeutronTenantMtu: {get_param: NeutronTenantMtu}
890 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
891 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
892 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
893 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
894 NeutronNetworkType: {get_param: NeutronNetworkType}
895 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
896 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
897 NeutronPassword: {get_param: NeutronPassword}
898 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
899 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
900 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
901 NeutronCorePlugin: {get_param: NeutronCorePlugin}
902 NeutronServicePlugins: {get_param: NeutronServicePlugins}
903 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
904 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
905 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
906 # L3 HA and Failover is not relevant for Computes, should be removed
907 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
908 NeutronL3HA: {get_param: NeutronL3HA}
909 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
910 NovaComputeDriver: {get_param: NovaComputeDriver}
911 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
912 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
913 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
914 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
915 NovaIPv6: {get_param: NovaIPv6}
916 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
917 NovaPassword: {get_param: NovaPassword}
918 NovaOVSBridge: {get_param: NovaOVSBridge}
919 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
920 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
921 RabbitPassword: {get_param: RabbitPassword}
922 RabbitUserName: {get_param: RabbitUserName}
923 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
924 RabbitClientPort: {get_param: RabbitClientPort}
925 ServiceNetMap: {get_param: ServiceNetMap}
926 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
927 UpdateIdentifier: {get_param: UpdateIdentifier}
930 template: {get_param: ComputeHostnameFormat}
932 '%stackname%': {get_param: 'OS::stack_name'}
933 CloudDomain: {get_param: CloudDomain}
934 ServerMetadata: {get_param: ServerMetadata}
935 SchedulerHints: {get_param: NovaComputeSchedulerHints}
937 ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
939 BlockStorageServiceChain:
940 type: OS::TripleO::Services
942 Services: {get_param: BlockStorageServices}
943 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
946 type: OS::Heat::ResourceGroup
949 count: {get_param: BlockStorageCount}
950 removal_policies: {get_param: BlockStorageRemovalPolicies}
952 type: OS::TripleO::BlockStorage
954 Image: {get_param: BlockStorageImage}
955 KeyName: {get_param: KeyName}
956 Flavor: {get_param: OvercloudBlockStorageFlavor}
957 UpdateIdentifier: {get_param: UpdateIdentifier}
960 template: {get_param: BlockStorageHostnameFormat}
962 '%stackname%': {get_param: 'OS::stack_name'}
963 ServiceNetMap: {get_param: ServiceNetMap}
964 ExtraConfig: {get_param: ExtraConfig}
965 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
966 CloudDomain: {get_param: CloudDomain}
967 ServerMetadata: {get_param: ServerMetadata}
968 SchedulerHints: {get_param: BlockStorageSchedulerHints}
970 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
972 ObjectStorageServiceChain:
973 type: OS::TripleO::Services
975 Services: {get_param: ObjectStorageServices}
976 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
979 type: OS::Heat::ResourceGroup
982 count: {get_param: ObjectStorageCount}
983 removal_policies: {get_param: ObjectStorageRemovalPolicies}
985 type: OS::TripleO::ObjectStorage
987 KeyName: {get_param: KeyName}
988 Flavor: {get_param: OvercloudSwiftStorageFlavor}
989 HashSuffix: {get_param: SwiftHashSuffix}
990 MinPartHours: {get_param: SwiftMinPartHours}
991 PartPower: {get_param: SwiftPartPower}
992 Image: {get_param: SwiftStorageImage}
993 Replicas: { get_param: SwiftReplicas}
994 UpdateIdentifier: {get_param: UpdateIdentifier}
995 ServiceNetMap: {get_param: ServiceNetMap}
998 template: {get_param: ObjectStorageHostnameFormat}
1000 '%stackname%': {get_param: 'OS::stack_name'}
1001 ExtraConfig: {get_param: ExtraConfig}
1002 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1003 CloudDomain: {get_param: CloudDomain}
1004 ServerMetadata: {get_param: ServerMetadata}
1005 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1006 NodeIndex: '%index%'
1007 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
1009 CephStorageServiceChain:
1010 type: OS::TripleO::Services
1012 Services: {get_param: CephStorageServices}
1013 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1016 type: OS::Heat::ResourceGroup
1017 depends_on: Networks
1019 count: {get_param: CephStorageCount}
1020 removal_policies: {get_param: CephStorageRemovalPolicies}
1022 type: OS::TripleO::CephStorage
1024 Image: {get_param: CephStorageImage}
1025 KeyName: {get_param: KeyName}
1026 Flavor: {get_param: OvercloudCephStorageFlavor}
1027 ServiceNetMap: {get_param: ServiceNetMap}
1028 UpdateIdentifier: {get_param: UpdateIdentifier}
1031 template: {get_param: CephStorageHostnameFormat}
1033 '%stackname%': {get_param: 'OS::stack_name'}
1034 ExtraConfig: {get_param: ExtraConfig}
1035 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1036 CloudDomain: {get_param: CloudDomain}
1037 ServerMetadata: {get_param: ServerMetadata}
1038 SchedulerHints: {get_param: CephStorageSchedulerHints}
1039 NodeIndex: '%index%'
1040 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
1042 ControllerIpListMap:
1043 type: OS::TripleO::Network::Ports::NetIpListMap
1045 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1046 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1047 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1048 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1049 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1050 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1051 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1054 type: OS::TripleO::AllNodes::SoftwareConfig
1056 compute_hosts: {get_attr: [Compute, hosts_entry]}
1057 controller_hosts: {get_attr: [Controller, hosts_entry]}
1058 controller_ips: {get_attr: [Controller, ip_address]}
1059 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1060 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1061 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1062 controller_names: {get_attr: [Controller, hostname]}
1063 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1064 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1065 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1066 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1067 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1068 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1069 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1070 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1071 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1072 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1073 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1074 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1075 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1076 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1077 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1078 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1079 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1080 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1081 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1082 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1083 ironic_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1084 ceph_mon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1085 ceph_mon_node_names: {get_attr: [Controller, hostname]}
1086 DeployIdentifier: {get_param: DeployIdentifier}
1087 UpdateIdentifier: {get_param: UpdateIdentifier}
1090 type: OS::Heat::RandomString
1094 MysqlClusterUniquePart:
1095 type: OS::Heat::RandomString
1100 type: OS::Heat::RandomString
1103 salt: {get_param: RabbitCookieSalt}
1105 # creates the network architecture
1107 type: OS::TripleO::Network
1110 type: OS::Neutron::Port
1111 depends_on: Networks
1113 name: control_virtual_ip
1114 network: {get_param: NeutronControlPlaneID}
1115 fixed_ips: {get_param: ControlFixedIPs}
1116 replacement_policy: AUTO
1119 depends_on: Networks
1120 type: OS::TripleO::Network::Ports::RedisVipPort
1122 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1123 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1124 PortName: redis_virtual_ip
1125 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1128 # The public VIP is on the External net, falls back to ctlplane
1130 depends_on: Networks
1131 type: OS::TripleO::Network::Ports::ExternalVipPort
1133 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1134 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1135 PortName: public_virtual_ip
1136 FixedIPs: {get_param: PublicVirtualFixedIPs}
1138 InternalApiVirtualIP:
1139 depends_on: Networks
1140 type: OS::TripleO::Network::Ports::InternalApiVipPort
1142 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1143 PortName: internal_api_virtual_ip
1144 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1147 depends_on: Networks
1148 type: OS::TripleO::Network::Ports::StorageVipPort
1150 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1151 PortName: storage_virtual_ip
1152 FixedIPs: {get_param: StorageVirtualFixedIPs}
1154 StorageMgmtVirtualIP:
1155 depends_on: Networks
1156 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1158 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1159 PortName: storage_management_virtual_ip
1160 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1163 type: OS::TripleO::Network::Ports::NetVipMap
1165 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1166 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1167 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1168 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1169 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1170 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1171 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1172 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1173 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1174 # No tenant or management VIP required
1177 type: OS::TripleO::VipConfig
1180 type: OS::Heat::StructuredDeployments
1183 config: {get_resource: VipConfig}
1184 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1186 # service VIP mappings
1187 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1188 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1189 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1190 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1191 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1192 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1193 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1194 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1195 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1196 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1197 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1198 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1199 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1200 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1201 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1202 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1203 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1204 # direct configuration of Virtual IPs for each network
1205 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1206 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1207 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1208 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1209 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1210 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1211 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1213 ControllerBootstrapNodeConfig:
1214 type: OS::TripleO::BootstrapNode::SoftwareConfig
1216 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1217 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1219 ControllerBootstrapNodeDeployment:
1220 type: OS::Heat::StructuredDeployments
1222 name: ControllerBootstrapNodeDeployment
1223 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1224 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1226 ControllerSwiftDeployment:
1227 type: OS::Heat::StructuredDeployments
1229 name: ControllerSwiftDeployment
1230 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1231 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1233 ObjectStorageSwiftDeployment:
1234 type: OS::Heat::StructuredDeployments
1236 name: ObjectStorageSwiftDeployment
1237 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1238 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1240 SwiftDevicesAndProxyConfig:
1241 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1243 controller_swift_devices: {get_attr: [Controller, swift_device]}
1244 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1245 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1247 ComputeCephDeployment:
1248 type: OS::Heat::StructuredDeployments
1250 name: ComputeCephDeployment
1251 config: {get_attr: [CephClusterConfig, config_id]}
1252 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1254 ControllerCephDeployment:
1255 type: OS::Heat::StructuredDeployments
1257 name: ControllerCephDeployment
1258 config: {get_attr: [CephClusterConfig, config_id]}
1259 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1261 CephStorageCephDeployment:
1262 type: OS::Heat::StructuredDeployments
1264 name: CephStorageCephDeployment
1265 config: {get_attr: [CephClusterConfig, config_id]}
1266 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1269 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1271 ControllerAllNodesDeployment:
1272 type: OS::Heat::StructuredDeployments
1274 name: ControllerAllNodesDeployment
1275 config: {get_attr: [allNodesConfig, config_id]}
1276 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1278 ComputeAllNodesDeployment:
1279 type: OS::Heat::StructuredDeployments
1281 name: ComputeAllNodesDeployment
1282 config: {get_attr: [allNodesConfig, config_id]}
1283 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1285 BlockStorageAllNodesDeployment:
1286 type: OS::Heat::StructuredDeployments
1288 name: BlockStorageAllNodesDeployment
1289 config: {get_attr: [allNodesConfig, config_id]}
1290 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1292 ObjectStorageAllNodesDeployment:
1293 type: OS::Heat::StructuredDeployments
1295 name: ObjectStorageAllNodesDeployment
1296 config: {get_attr: [allNodesConfig, config_id]}
1297 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1299 CephStorageAllNodesDeployment:
1300 type: OS::Heat::StructuredDeployments
1302 name: CephStorageAllNodesDeployment
1303 config: {get_attr: [allNodesConfig, config_id]}
1304 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1306 # All Nodes Validations
1307 AllNodesValidationConfig:
1308 type: OS::TripleO::AllNodes::Validation
1313 - - {get_attr: [Controller, resource.0.external_ip_address]}
1314 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1315 - {get_attr: [Controller, resource.0.storage_ip_address]}
1316 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1317 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1319 ControllerAllNodesValidationDeployment:
1320 type: OS::Heat::StructuredDeployments
1321 depends_on: ControllerAllNodesDeployment
1323 name: ControllerAllNodesValidationDeployment
1324 config: {get_resource: AllNodesValidationConfig}
1325 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1327 ComputeAllNodesValidationDeployment:
1328 type: OS::Heat::StructuredDeployments
1329 depends_on: ComputeAllNodesDeployment
1331 name: ComputeAllNodesValidationDeployment
1332 config: {get_resource: AllNodesValidationConfig}
1333 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1335 BlockStorageAllNodesValidationDeployment:
1336 type: OS::Heat::StructuredDeployments
1337 depends_on: BlockStorageAllNodesDeployment
1339 name: BlockStorageAllNodesValidationDeployment
1340 config: {get_resource: AllNodesValidationConfig}
1341 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1343 ObjectStorageAllNodesValidationDeployment:
1344 type: OS::Heat::StructuredDeployments
1345 depends_on: ObjectStorageAllNodesDeployment
1347 name: ObjectStorageAllNodesValidationDeployment
1348 config: {get_resource: AllNodesValidationConfig}
1349 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1351 CephStorageAllNodesValidationDeployment:
1352 type: OS::Heat::StructuredDeployments
1353 depends_on: CephStorageAllNodesDeployment
1355 name: CephStorageAllNodesValidationDeployment
1356 config: {get_resource: AllNodesValidationConfig}
1357 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1360 type: OS::TripleO::Tasks::UpdateWorkflow
1362 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1363 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1364 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1365 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1366 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1368 deploy_identifier: {get_param: DeployIdentifier}
1369 update_identifier: {get_param: UpdateIdentifier}
1371 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1372 # the nested template may configure each role differently (or not at all)
1373 AllNodesExtraConfig:
1374 type: OS::TripleO::AllNodesExtraConfig
1377 - ComputeAllNodesValidationDeployment
1378 - BlockStorageAllNodesValidationDeployment
1379 - ObjectStorageAllNodesValidationDeployment
1380 - CephStorageAllNodesValidationDeployment
1381 - ControllerAllNodesValidationDeployment
1383 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1384 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1385 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1386 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1387 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1389 # Nested stack deployment runs after all other controller deployments
1390 ControllerNodesPostDeployment:
1391 type: OS::TripleO::ControllerPostDeployment
1392 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1394 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1395 NodeConfigIdentifiers:
1396 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1397 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1398 deployment_identifier: {get_param: DeployIdentifier}
1399 RoleData: {get_attr: [ControllerServiceChain, role_data]}
1401 ComputeNodesPostDeployment:
1402 type: OS::TripleO::ComputePostDeployment
1403 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1405 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1406 NodeConfigIdentifiers:
1407 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1408 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1409 deployment_identifier: {get_param: DeployIdentifier}
1410 RoleData: {get_attr: [ComputeServiceChain, role_data]}
1412 ObjectStorageNodesPostDeployment:
1413 type: OS::TripleO::ObjectStoragePostDeployment
1414 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1416 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1417 NodeConfigIdentifiers:
1418 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1419 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1420 deployment_identifier: {get_param: DeployIdentifier}
1421 RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
1423 BlockStorageNodesPostDeployment:
1424 type: OS::TripleO::BlockStoragePostDeployment
1425 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1427 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1428 NodeConfigIdentifiers:
1429 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1430 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1431 deployment_identifier: {get_param: DeployIdentifier}
1432 RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
1434 CephStorageNodesPostDeployment:
1435 type: OS::TripleO::CephStoragePostDeployment
1436 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1438 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1439 NodeConfigIdentifiers:
1440 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1441 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1442 deployment_identifier: {get_param: DeployIdentifier}
1443 RoleData: {get_attr: [CephStorageServiceChain, role_data]}
1447 description: URL for the Overcloud Keystone service
1448 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1450 description: Keystone Admin VIP endpoint
1451 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1453 description: Controller VIP for public API endpoints
1454 value: {get_attr: [VipMap, net_ip_map, external]}
1456 description: VIP for Aodh API internal endpoint
1457 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1458 CeilometerInternalVip:
1459 description: VIP for Ceilometer API internal endpoint
1460 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1462 description: VIP for Cinder API internal endpoint
1463 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1465 description: VIP for Glance API internal endpoint
1466 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1468 description: VIP for Gnocchi API internal endpoint
1469 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1471 description: VIP for Heat API internal endpoint
1472 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1474 description: VIP for Ironic API internal endpoint
1475 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1476 KeystoneInternalVip:
1477 description: VIP for Keystone API internal endpoint
1478 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1480 description: VIP for Neutron API internal endpoint
1481 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1483 description: VIP for Nova API internal endpoint
1484 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1486 description: VIP for Sahara API internal endpoint
1487 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1489 description: VIP for Swift Proxy internal endpoint
1490 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1493 Mapping of the resources with the needed info for their endpoints.
1494 This includes the protocol used, the IP, port and also a full
1495 representation of the URI.
1496 value: {get_attr: [EndpointMap, endpoint_map]}
1499 The content that should be appended to your /etc/hosts if you want to get
1500 hostname-based access to the deployed nodes (useful for testing without
1502 value: {get_attr: [allNodesConfig, hosts_entries]}