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.
23 CinderEnableNfsBackend:
25 description: Whether to enable or not the NFS backend for Cinder
27 CinderEnableRbdBackend:
29 description: Whether to enable or not the Rbd backend for Cinder
33 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
37 description: Should be used for arbitrary ips.
41 description: Enable IPv6 in Corosync
45 description: Set to True to enable debugging on all services.
49 description: Syslog address where HAproxy will send its log
53 description: A list of IP/Hostname allowed to connect to horizon
54 type: comma_delimited_list
56 default: 'REBUILD_PRESERVE_EPHEMERAL'
57 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
59 InternalApiVirtualFixedIPs:
62 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
63 [{'ip_address':'1.2.3.4'}]
67 description: Name of an existing Nova key pair to enable SSH access to the instances
70 - custom_constraint: nova.keypair
73 description: Enable IPv6 features in Memcached.
75 NeutronBridgeMappings:
77 The OVS logical->physical bridge mappings to use. See the Neutron
78 documentation for details. Defaults to mapping br-ex - the external
79 bridge on hosts - to a physical name 'datacentre' which can be used
80 to create provider networks (and we use this for the default floating
81 network) - if changing this either use different post-install network
82 scripts or be sure to keep 'datacentre' as a mapping network name.
83 type: comma_delimited_list
84 default: "datacentre:br-ex"
85 NeutronControlPlaneID:
88 description: Neutron ID or name for ctlplane network.
89 NeutronEnableTunnelling:
95 Enable/disable the L2 population feature in the Neutron agents.
98 type: comma_delimited_list
101 If set, flat networks to configure in neutron plugins. Defaults to
102 'datacentre' to permit external network creation.
105 description: The tenant network type for Neutron.
106 type: comma_delimited_list
108 description: The password for the neutron service account, used by neutron agents.
111 NeutronPublicInterface:
113 description: What interface to bridge onto br-ex for network nodes.
115 NeutronMetadataProxySharedSecret:
116 description: Shared secret to prevent spoofing
122 The tunnel types for the Neutron tenant network.
123 type: comma_delimited_list
124 type: comma_delimited_list
128 The core plugin for Neutron. The value should be the entrypoint to be loaded
129 from neutron.core_plugins namespace.
131 NeutronServicePlugins:
132 default: "router,qos"
134 Comma-separated list of service plugin entrypoints to be loaded from the
135 neutron.service_plugins namespace.
136 type: comma_delimited_list
138 default: "vxlan,vlan,flat,gre"
140 Comma-separated list of network type driver entrypoints to be loaded.
141 type: comma_delimited_list
142 NeutronMechanismDrivers:
143 default: 'openvswitch'
145 The mechanism drivers for the Neutron tenant network.
146 type: comma_delimited_list
147 type: comma_delimited_list
148 NeutronAgentExtensions:
151 Comma-separated list of extensions enabled for the Neutron agents.
152 type: comma_delimited_list
153 NeutronAllowL3AgentFailover:
155 description: Allow automatic l3-agent failover
159 description: Whether to enable l3-agent HA
163 description: Enable IPv6 features in Nova
166 description: The password for the nova service account, used by nova-api.
169 PublicVirtualFixedIPs:
172 Control the IP allocation for the PublicVirtualInterface port. E.g.
173 [{'ip_address':'1.2.3.4'}]
178 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
181 description: The username for RabbitMQ
184 description: The password for RabbitMQ
190 Rabbit client subscriber parameter to specify
191 an SSL connection to the RabbitMQ host.
195 description: Set rabbit subscriber port, change this if using SSL
198 description: The password for Redis
201 StorageVirtualFixedIPs:
204 Control the IP allocation for the StorageVirtualInterface port. E.g.
205 [{'ip_address':'1.2.3.4'}]
207 StorageMgmtVirtualFixedIPs:
210 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
211 [{'ip_address':'1.2.3.4'}]
214 default: 'localdomain'
217 The DNS domain used for the hosts. This should match the dhcp_domain
218 configured in the Undercloud neutron. Defaults to localdomain.
222 Extra properties or metadata passed to Nova for the created nodes in
223 the overcloud. It's accessible via the Nova metadata API.
226 # Controller-specific params
232 controllerExtraConfig:
235 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
239 default: overcloud-full
241 - custom_constraint: glance.image
242 OvercloudControlFlavor:
243 description: Flavor for control nodes to request when deploying.
247 - custom_constraint: nova.flavor
248 ControlVirtualInterface:
250 description: Interface where virtual ip will be assigned.
254 description: Whether to enable fencing in Pacemaker or not.
258 description: Whether to use Galera instead of regular MariaDB.
260 ControllerSchedulerHints:
262 description: Optional scheduler hints to pass to nova
267 Additional configuration to inject into the cluster. The format required
268 may be implementation specific, e.g puppet hieradata. Any role specific
269 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
274 Pacemaker fencing configuration. The JSON should have
275 the following structure:
279 "agent": "AGENT_NAME",
280 "host_mac": "HOST_MAC_ADDRESS",
281 "params": {"PARAM_NAME": "PARAM_VALUE"}
289 "agent": "fence_xvm",
290 "host_mac": "52:54:00:aa:bb:cc",
292 "multicast_address": "225.0.0.12",
293 "port": "baremetal_0",
295 "manage_key_file": true,
296 "key_file": "/etc/fence_xvm.key",
297 "key_file_password": "abcdef"
305 description: The short name of the Gnocchi backend to use. Should be one
306 of swift, rbd or file
309 - allowed_values: ['swift', 'file', 'rbd']
310 GnocchiIndexerBackend:
312 description: The short name of the Gnocchi indexer backend to use.
315 description: The password for the gnocchi service account.
318 InstanceNameTemplate:
319 default: 'instance-%08x'
320 description: Template string to be used to generate instance names
324 description: Whether to manage IPtables rules.
328 description: Whether IPtables rules should be purged before setting up the ones.
330 MysqlInnodbBufferPoolSize:
332 Specifies the size of the buffer pool in megabytes. Setting to
333 zero should be interpreted as "no value" and will defer to the
338 description: Configures MySQL max_connections config setting
341 PublicVirtualInterface:
344 Specifies the interface where the public-facing virtual ip will be assigned.
345 This should be int_public when a VLAN is being used.
348 description: A random string to be used as a salt when hashing to determine mappings in the ring.
354 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
357 description: Partition Power to use when building Swift rings
362 description: How many replicas to use in the swift rings.
364 # Compute-specific params
365 CeilometerComputeAgent:
366 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
370 - allowed_values: ['', Present]
374 HypervisorNeutronPhysicalBridge:
377 An OVS bridge to create on each hypervisor. This defaults to br-ex the
378 same as the control plane nodes, as we have a uniform configuration of
379 the openvswitch agent. Typically should not need to be changed.
381 HypervisorNeutronPublicInterface:
383 description: What interface to add to the HypervisorNeutronPhysicalBridge.
385 NeutronNetworkVLANRanges:
386 default: 'datacentre:1:1000'
388 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
389 Neutron documentation for permitted values. Defaults to permitting any
390 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
391 type: comma_delimited_list
394 default: libvirt.LibvirtDriver
395 NovaComputeExtraConfig:
398 NovaCompute specific configuration to inject into the cluster. Same
399 structure as ExtraConfig.
401 NovaComputeLibvirtType:
404 NovaComputeLibvirtVifDriver:
406 description: Libvirt VIF driver configuration for the network
408 NovaComputeSchedulerHints:
410 description: Optional scheduler hints to pass to nova
412 NovaEnableRbdBackend:
414 description: Whether to enable or not the Rbd backend for Nova
418 default: overcloud-full
420 - custom_constraint: glance.image
423 description: Name of integration bridge used by Open vSwitch
425 NovaSecurityGroupAPI:
427 description: The full class name of the security API class
429 OvercloudComputeFlavor:
430 description: Use this flavor
434 - custom_constraint: nova.flavor
437 NeutronTenantNetwork: tenant
438 CeilometerApiNetwork: internal_api
439 AodhApiNetwork: internal_api
440 GnocchiApiNetwork: internal_api
441 MongoDbNetwork: internal_api
442 CinderApiNetwork: internal_api
443 CinderIscsiNetwork: storage
444 GlanceApiNetwork: storage
445 GlanceRegistryNetwork: internal_api
446 IronicApiNetwork: internal_api
447 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
448 KeystonePublicApiNetwork: internal_api
449 NeutronApiNetwork: internal_api
450 HeatApiNetwork: internal_api
451 NovaApiNetwork: internal_api
452 NovaMetadataNetwork: internal_api
453 NovaVncProxyNetwork: internal_api
454 SwiftMgmtNetwork: storage_mgmt
455 SwiftProxyNetwork: storage
456 SaharaApiNetwork: internal_api
457 HorizonNetwork: internal_api
458 MemcachedNetwork: internal_api
459 RabbitMqNetwork: internal_api
460 RedisNetwork: internal_api
461 MysqlNetwork: internal_api
462 CephClusterNetwork: storage_mgmt
463 CephPublicNetwork: storage
464 ControllerHostnameResolveNetwork: internal_api
465 ComputeHostnameResolveNetwork: internal_api
466 BlockStorageHostnameResolveNetwork: internal_api
467 ObjectStorageHostnameResolveNetwork: internal_api
468 CephStorageHostnameResolveNetwork: storage
469 description: Mapping of service_name -> network name. Typically set
470 via parameter_defaults in the resource registry.
475 - OS::TripleO::Services::CephMon
476 - OS::TripleO::Services::CephExternal
477 - OS::TripleO::Services::CinderApi
478 - OS::TripleO::Services::CinderScheduler
479 - OS::TripleO::Services::CinderVolume
480 - OS::TripleO::Services::Kernel
481 - OS::TripleO::Services::Keystone
482 - OS::TripleO::Services::GlanceApi
483 - OS::TripleO::Services::GlanceRegistry
484 - OS::TripleO::Services::HeatApi
485 - OS::TripleO::Services::HeatApiCfn
486 - OS::TripleO::Services::HeatApiCloudwatch
487 - OS::TripleO::Services::HeatEngine
488 - OS::TripleO::Services::NeutronDhcpAgent
489 - OS::TripleO::Services::NeutronL3Agent
490 - OS::TripleO::Services::NeutronMetadataAgent
491 - OS::TripleO::Services::NeutronServer
492 - OS::TripleO::Services::NeutronCorePlugin
493 - OS::TripleO::Services::NeutronOvsAgent
494 - OS::TripleO::Services::RabbitMQ
495 - OS::TripleO::Services::HAproxy
496 - OS::TripleO::Services::Keepalived
497 - OS::TripleO::Services::Memcached
498 - OS::TripleO::Services::Redis
499 - OS::TripleO::Services::NovaConductor
500 - OS::TripleO::Services::MongoDb
501 - OS::TripleO::Services::NovaApi
502 - OS::TripleO::Services::NovaScheduler
503 - OS::TripleO::Services::NovaConsoleauth
504 - OS::TripleO::Services::NovaVncproxy
505 - OS::TripleO::Services::Ntp
506 - OS::TripleO::Services::SwiftProxy
507 - OS::TripleO::Services::SwiftStorage
508 - OS::TripleO::Services::Snmp
509 - OS::TripleO::Services::Timezone
510 - OS::TripleO::Services::CeilometerApi
511 - OS::TripleO::Services::CeilometerCollector
512 - OS::TripleO::Services::CeilometerExpirer
513 - OS::TripleO::Services::CeilometerAgentCentral
514 - OS::TripleO::Services::CeilometerAgentNotification
515 description: A list of service resources (configured in the Heat
516 resource_registry) which represent nested stacks
517 for each service that should get installed on the Controllers.
518 type: comma_delimited_list
522 - OS::TripleO::Services::CephClient
523 - OS::TripleO::Services::CephExternal
524 - OS::TripleO::Services::Timezone
525 - OS::TripleO::Services::Ntp
526 - OS::TripleO::Services::Snmp
527 - OS::TripleO::Services::NovaCompute
528 - OS::TripleO::Services::NovaLibvirt
529 - OS::TripleO::Services::Kernel
530 description: A list of service resources (configured in the Heat
531 resource_registry) which represent nested stacks
532 for each service that should get installed on the Compute Nodes.
533 type: comma_delimited_list
535 # Block storage specific parameters
540 default: overcloud-full
542 OvercloudBlockStorageFlavor:
543 description: Flavor for block storage nodes to request when deploying.
547 - custom_constraint: nova.flavor
548 BlockStorageExtraConfig:
551 BlockStorage specific configuration to inject into the cluster. Same
552 structure as ExtraConfig.
554 BlockStorageSchedulerHints:
556 description: Optional scheduler hints to pass to nova
558 BlockStorageServices:
560 - OS::TripleO::Services::CinderVolume
561 - OS::TripleO::Services::Kernel
562 - OS::TripleO::Services::Ntp
563 - OS::TripleO::Services::Timezone
564 - OS::TripleO::Services::Snmp
565 description: A list of service resources (configured in the Heat
566 resource_registry) which represent nested stacks
567 for each service that should get installed on the BlockStorage nodes.
568 type: comma_delimited_list
570 # Object storage specific parameters
574 OvercloudSwiftStorageFlavor:
575 description: Flavor for Swift storage nodes to request when deploying.
579 - custom_constraint: nova.flavor
581 default: overcloud-full
583 ObjectStorageExtraConfig:
586 ObjectStorage specific configuration to inject into the cluster. Same
587 structure as ExtraConfig.
589 ObjectStorageSchedulerHints:
591 description: Optional scheduler hints to pass to nova
593 ObjectStorageServices:
595 - OS::TripleO::Services::Kernel
596 - OS::TripleO::Services::Ntp
597 - OS::TripleO::Services::SwiftStorage
598 - OS::TripleO::Services::Snmp
599 - OS::TripleO::Services::Timezone
600 description: A list of service resources (configured in the Heat
601 resource_registry) which represent nested stacks
602 for each service that should get installed on the ObjectStorage nodes.
603 Note this role currently only supports steps 2, 3 and 4 configuration.
604 type: comma_delimited_list
607 # Ceph storage specific parameters
612 default: overcloud-full
614 OvercloudCephStorageFlavor:
616 description: Flavor for Ceph storage nodes to request when deploying.
619 - custom_constraint: nova.flavor
620 CephStorageExtraConfig:
623 CephStorage specific configuration to inject into the cluster. Same
624 structure as ExtraConfig.
626 CephStorageSchedulerHints:
628 description: Optional scheduler hints to pass to nova
632 - OS::TripleO::Services::CephOSD
633 - OS::TripleO::Services::Kernel
634 - OS::TripleO::Services::Ntp
635 - OS::TripleO::Services::Timezone
636 description: A list of service resources (configured in the Heat
637 resource_registry) which represent nested stacks
638 for each service that should get installed on the CephStorage nodes.
639 type: comma_delimited_list
641 # Hostname format for each role
642 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
643 # and %stackname% is replaced with OS::stack_name in the template below.
644 # If you want to use the heat generated names, pass '' (empty string).
645 ControllerHostnameFormat:
647 description: Format for Controller node hostnames
648 default: '%stackname%-controller-%index%'
649 ComputeHostnameFormat:
651 description: Format for Compute node hostnames
652 default: '%stackname%-novacompute-%index%'
653 BlockStorageHostnameFormat:
655 description: Format for BlockStorage node hostnames
656 default: '%stackname%-blockstorage-%index%'
657 ObjectStorageHostnameFormat:
659 description: Format for SwiftStorage node hostnames
660 default: '%stackname%-objectstorage-%index%'
661 CephStorageHostnameFormat:
663 description: Format for CephStorage node hostnames
664 default: '%stackname%-cephstorage-%index%'
666 # Identifiers to trigger tasks on nodes
671 Setting to a previously unused value during stack-update will trigger
672 package update on all nodes
677 Setting this to a unique value will re-run any deployment tasks which
678 perform configuration on a Heat stack-update.
680 # If you want to remove a specific node from a resource group, you can pass
681 # the node name or id as a <Group>RemovalPolicies parameter, for example:
682 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
683 ControllerRemovalPolicies:
687 List of resources to be removed from ControllerResourceGroup when
688 doing an update which requires removal of specific resources.
689 ComputeRemovalPolicies:
693 List of resources to be removed from ComputeResourceGroup when
694 doing an update which requires removal of specific resources.
695 BlockStorageRemovalPolicies:
699 List of resources to be removed from BlockStorageResourceGroup when
700 doing an update which requires removal of specific resources.
701 ObjectStorageRemovalPolicies:
705 List of resources to be removed from ObjectStorageResourceGroup when
706 doing an update which requires removal of specific resources.
707 CephStorageRemovalPolicies:
711 List of resources to be removed from CephStorageResourceGroup when
712 doing an update which requires removal of specific resources.
716 description: Do not use deprecated params, they will be removed.
718 - controllerExtraConfig
723 HeatAuthEncryptionKey:
724 type: OS::Heat::RandomString
727 type: OS::Heat::RandomString
732 type: OS::Heat::RandomString
737 type: OS::TripleO::EndpointMap
739 CloudName: {get_param: CloudName}
740 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
741 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
742 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
743 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
744 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
745 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
746 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
747 IronicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
748 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
749 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
750 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
751 MysqlNoBracketsVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
752 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
753 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
754 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
755 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
756 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
758 ControllerServiceChain:
759 type: OS::TripleO::Services
761 Services: {get_param: ControllerServices}
762 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
765 type: OS::Heat::ResourceGroup
768 count: {get_param: ControllerCount}
769 removal_policies: {get_param: ControllerRemovalPolicies}
771 type: OS::TripleO::Controller
773 AdminPassword: {get_param: AdminPassword}
774 AodhPassword: {get_param: AodhPassword}
775 CloudDomain: {get_param: CloudDomain}
776 ControlVirtualInterface: {get_param: ControlVirtualInterface}
777 controllerExtraConfig: {get_param: controllerExtraConfig}
778 CorosyncIPv6: {get_param: CorosyncIPv6}
779 Debug: {get_param: Debug}
780 EnableFencing: {get_param: EnableFencing}
781 ManageFirewall: {get_param: ManageFirewall}
782 PurgeFirewallRules: {get_param: PurgeFirewallRules}
783 EnableGalera: {get_param: EnableGalera}
784 ExtraConfig: {get_param: ExtraConfig}
785 FencingConfig: {get_param: FencingConfig}
786 Flavor: {get_param: OvercloudControlFlavor}
787 GnocchiPassword: {get_param: GnocchiPassword}
788 GnocchiBackend: {get_param: GnocchiBackend}
789 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
790 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
791 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
792 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
793 HorizonSecret: {get_resource: HorizonSecret}
794 Image: {get_param: controllerImage}
795 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
796 InstanceNameTemplate: {get_param: InstanceNameTemplate}
797 KeyName: {get_param: KeyName}
798 MemcachedIPv6: {get_param: MemcachedIPv6}
799 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
800 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
801 MysqlMaxConnections: {get_param: MysqlMaxConnections}
802 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
803 NeutronPublicInterface: {get_param: NeutronPublicInterface}
804 NeutronPassword: {get_param: NeutronPassword}
805 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
806 NovaIPv6: {get_param: NovaIPv6}
807 NovaPassword: {get_param: NovaPassword}
808 PcsdPassword: {get_resource: PcsdPassword}
809 PublicVirtualInterface: {get_param: PublicVirtualInterface}
810 RabbitPassword: {get_param: RabbitPassword}
811 RabbitUserName: {get_param: RabbitUserName}
812 RabbitCookie: {get_attr: [RabbitCookie, value]}
813 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
814 RabbitClientPort: {get_param: RabbitClientPort}
815 RedisPassword: {get_param: RedisPassword}
816 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
817 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
818 SwiftHashSuffix: {get_param: SwiftHashSuffix}
819 SwiftMinPartHours: {get_param: SwiftMinPartHours}
820 SwiftPartPower: {get_param: SwiftPartPower}
821 SwiftReplicas: { get_param: SwiftReplicas}
822 ServiceNetMap: {get_param: ServiceNetMap}
823 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
824 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
825 UpdateIdentifier: {get_param: UpdateIdentifier}
828 template: {get_param: ControllerHostnameFormat}
830 '%stackname%': {get_param: 'OS::stack_name'}
832 ServerMetadata: {get_param: ServerMetadata}
833 SchedulerHints: {get_param: ControllerSchedulerHints}
834 ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
838 type: OS::TripleO::Services
840 Services: {get_param: ComputeServices}
841 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
844 type: OS::Heat::ResourceGroup
847 count: {get_param: ComputeCount}
848 removal_policies: {get_param: ComputeRemovalPolicies}
850 type: OS::TripleO::Compute
852 AdminPassword: {get_param: AdminPassword}
853 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
854 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
855 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
856 Debug: {get_param: Debug}
857 ExtraConfig: {get_param: ExtraConfig}
858 Flavor: {get_param: OvercloudComputeFlavor}
859 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
860 Image: {get_param: NovaImage}
861 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
862 KeyName: {get_param: KeyName}
863 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
864 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
865 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
866 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
867 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
868 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
869 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
870 NeutronNetworkType: {get_param: NeutronNetworkType}
871 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
872 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
873 NeutronPassword: {get_param: NeutronPassword}
874 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
875 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
876 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
877 NeutronCorePlugin: {get_param: NeutronCorePlugin}
878 NeutronServicePlugins: {get_param: NeutronServicePlugins}
879 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
880 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
881 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
882 # L3 HA and Failover is not relevant for Computes, should be removed
883 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
884 NeutronL3HA: {get_param: NeutronL3HA}
885 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
886 NovaComputeDriver: {get_param: NovaComputeDriver}
887 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
888 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
889 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
890 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
891 NovaIPv6: {get_param: NovaIPv6}
892 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
893 NovaPassword: {get_param: NovaPassword}
894 NovaOVSBridge: {get_param: NovaOVSBridge}
895 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
896 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
897 RabbitPassword: {get_param: RabbitPassword}
898 RabbitUserName: {get_param: RabbitUserName}
899 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
900 RabbitClientPort: {get_param: RabbitClientPort}
901 ServiceNetMap: {get_param: ServiceNetMap}
902 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
903 UpdateIdentifier: {get_param: UpdateIdentifier}
906 template: {get_param: ComputeHostnameFormat}
908 '%stackname%': {get_param: 'OS::stack_name'}
909 CloudDomain: {get_param: CloudDomain}
910 ServerMetadata: {get_param: ServerMetadata}
911 SchedulerHints: {get_param: NovaComputeSchedulerHints}
913 ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
915 BlockStorageServiceChain:
916 type: OS::TripleO::Services
918 Services: {get_param: BlockStorageServices}
919 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
922 type: OS::Heat::ResourceGroup
925 count: {get_param: BlockStorageCount}
926 removal_policies: {get_param: BlockStorageRemovalPolicies}
928 type: OS::TripleO::BlockStorage
930 Image: {get_param: BlockStorageImage}
931 KeyName: {get_param: KeyName}
932 Flavor: {get_param: OvercloudBlockStorageFlavor}
933 UpdateIdentifier: {get_param: UpdateIdentifier}
936 template: {get_param: BlockStorageHostnameFormat}
938 '%stackname%': {get_param: 'OS::stack_name'}
939 ServiceNetMap: {get_param: ServiceNetMap}
940 ExtraConfig: {get_param: ExtraConfig}
941 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
942 CloudDomain: {get_param: CloudDomain}
943 ServerMetadata: {get_param: ServerMetadata}
944 SchedulerHints: {get_param: BlockStorageSchedulerHints}
946 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
948 ObjectStorageServiceChain:
949 type: OS::TripleO::Services
951 Services: {get_param: ObjectStorageServices}
952 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
955 type: OS::Heat::ResourceGroup
958 count: {get_param: ObjectStorageCount}
959 removal_policies: {get_param: ObjectStorageRemovalPolicies}
961 type: OS::TripleO::ObjectStorage
963 KeyName: {get_param: KeyName}
964 Flavor: {get_param: OvercloudSwiftStorageFlavor}
965 HashSuffix: {get_param: SwiftHashSuffix}
966 MinPartHours: {get_param: SwiftMinPartHours}
967 PartPower: {get_param: SwiftPartPower}
968 Image: {get_param: SwiftStorageImage}
969 Replicas: { get_param: SwiftReplicas}
970 UpdateIdentifier: {get_param: UpdateIdentifier}
971 ServiceNetMap: {get_param: ServiceNetMap}
974 template: {get_param: ObjectStorageHostnameFormat}
976 '%stackname%': {get_param: 'OS::stack_name'}
977 ExtraConfig: {get_param: ExtraConfig}
978 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
979 CloudDomain: {get_param: CloudDomain}
980 ServerMetadata: {get_param: ServerMetadata}
981 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
983 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
985 CephStorageServiceChain:
986 type: OS::TripleO::Services
988 Services: {get_param: CephStorageServices}
989 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
992 type: OS::Heat::ResourceGroup
995 count: {get_param: CephStorageCount}
996 removal_policies: {get_param: CephStorageRemovalPolicies}
998 type: OS::TripleO::CephStorage
1000 Image: {get_param: CephStorageImage}
1001 KeyName: {get_param: KeyName}
1002 Flavor: {get_param: OvercloudCephStorageFlavor}
1003 ServiceNetMap: {get_param: ServiceNetMap}
1004 UpdateIdentifier: {get_param: UpdateIdentifier}
1007 template: {get_param: CephStorageHostnameFormat}
1009 '%stackname%': {get_param: 'OS::stack_name'}
1010 ExtraConfig: {get_param: ExtraConfig}
1011 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1012 CloudDomain: {get_param: CloudDomain}
1013 ServerMetadata: {get_param: ServerMetadata}
1014 SchedulerHints: {get_param: CephStorageSchedulerHints}
1015 NodeIndex: '%index%'
1016 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
1018 ControllerIpListMap:
1019 type: OS::TripleO::Network::Ports::NetIpListMap
1021 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1022 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1023 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1024 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1025 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1026 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1027 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1030 type: OS::TripleO::AllNodes::SoftwareConfig
1032 compute_hosts: {get_attr: [Compute, hosts_entry]}
1033 controller_hosts: {get_attr: [Controller, hosts_entry]}
1034 controller_ips: {get_attr: [Controller, ip_address]}
1035 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1036 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1037 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1038 controller_names: {get_attr: [Controller, hostname]}
1039 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1040 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1041 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1042 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1043 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1044 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1045 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1046 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1047 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1048 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1049 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1050 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1051 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1052 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1053 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1054 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1055 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1056 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1057 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1058 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1059 ironic_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1060 ceph_mon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1061 ceph_mon_node_names: {get_attr: [Controller, hostname]}
1062 DeployIdentifier: {get_param: DeployIdentifier}
1063 UpdateIdentifier: {get_param: UpdateIdentifier}
1066 type: OS::Heat::RandomString
1070 MysqlClusterUniquePart:
1071 type: OS::Heat::RandomString
1076 type: OS::Heat::RandomString
1079 salt: {get_param: RabbitCookieSalt}
1081 # creates the network architecture
1083 type: OS::TripleO::Network
1086 type: OS::Neutron::Port
1087 depends_on: Networks
1089 name: control_virtual_ip
1090 network: {get_param: NeutronControlPlaneID}
1091 fixed_ips: {get_param: ControlFixedIPs}
1092 replacement_policy: AUTO
1095 depends_on: Networks
1096 type: OS::TripleO::Network::Ports::RedisVipPort
1098 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1099 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1100 PortName: redis_virtual_ip
1101 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1104 # The public VIP is on the External net, falls back to ctlplane
1106 depends_on: Networks
1107 type: OS::TripleO::Network::Ports::ExternalVipPort
1109 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1110 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1111 PortName: public_virtual_ip
1112 FixedIPs: {get_param: PublicVirtualFixedIPs}
1114 InternalApiVirtualIP:
1115 depends_on: Networks
1116 type: OS::TripleO::Network::Ports::InternalApiVipPort
1118 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1119 PortName: internal_api_virtual_ip
1120 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1123 depends_on: Networks
1124 type: OS::TripleO::Network::Ports::StorageVipPort
1126 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1127 PortName: storage_virtual_ip
1128 FixedIPs: {get_param: StorageVirtualFixedIPs}
1130 StorageMgmtVirtualIP:
1131 depends_on: Networks
1132 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1134 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1135 PortName: storage_management_virtual_ip
1136 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1139 type: OS::TripleO::Network::Ports::NetVipMap
1141 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1142 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1143 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1144 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1145 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1146 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1147 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1148 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1149 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1150 # No tenant or management VIP required
1153 type: OS::TripleO::VipConfig
1156 type: OS::Heat::StructuredDeployments
1159 config: {get_resource: VipConfig}
1160 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1162 # service VIP mappings
1163 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1164 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1165 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1166 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1167 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1168 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1169 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1170 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1171 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1172 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1173 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1174 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1175 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1176 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1177 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1178 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1179 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1180 # direct configuration of Virtual IPs for each network
1181 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1182 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1183 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1184 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1185 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1186 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1187 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1189 ControllerBootstrapNodeConfig:
1190 type: OS::TripleO::BootstrapNode::SoftwareConfig
1192 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1193 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1195 ControllerBootstrapNodeDeployment:
1196 type: OS::Heat::StructuredDeployments
1198 name: ControllerBootstrapNodeDeployment
1199 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1200 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1202 ControllerSwiftDeployment:
1203 type: OS::Heat::StructuredDeployments
1205 name: ControllerSwiftDeployment
1206 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1207 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1209 ObjectStorageSwiftDeployment:
1210 type: OS::Heat::StructuredDeployments
1212 name: ObjectStorageSwiftDeployment
1213 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1214 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1216 SwiftDevicesAndProxyConfig:
1217 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1219 controller_swift_devices: {get_attr: [Controller, swift_device]}
1220 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1221 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1223 ComputeCephDeployment:
1224 type: OS::Heat::StructuredDeployments
1226 name: ComputeCephDeployment
1227 config: {get_attr: [CephClusterConfig, config_id]}
1228 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1230 ControllerCephDeployment:
1231 type: OS::Heat::StructuredDeployments
1233 name: ControllerCephDeployment
1234 config: {get_attr: [CephClusterConfig, config_id]}
1235 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1237 CephStorageCephDeployment:
1238 type: OS::Heat::StructuredDeployments
1240 name: CephStorageCephDeployment
1241 config: {get_attr: [CephClusterConfig, config_id]}
1242 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1245 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1247 ControllerAllNodesDeployment:
1248 type: OS::Heat::StructuredDeployments
1250 name: ControllerAllNodesDeployment
1251 config: {get_attr: [allNodesConfig, config_id]}
1252 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1254 ComputeAllNodesDeployment:
1255 type: OS::Heat::StructuredDeployments
1257 name: ComputeAllNodesDeployment
1258 config: {get_attr: [allNodesConfig, config_id]}
1259 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1261 BlockStorageAllNodesDeployment:
1262 type: OS::Heat::StructuredDeployments
1264 name: BlockStorageAllNodesDeployment
1265 config: {get_attr: [allNodesConfig, config_id]}
1266 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1268 ObjectStorageAllNodesDeployment:
1269 type: OS::Heat::StructuredDeployments
1271 name: ObjectStorageAllNodesDeployment
1272 config: {get_attr: [allNodesConfig, config_id]}
1273 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1275 CephStorageAllNodesDeployment:
1276 type: OS::Heat::StructuredDeployments
1278 name: CephStorageAllNodesDeployment
1279 config: {get_attr: [allNodesConfig, config_id]}
1280 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1282 # All Nodes Validations
1283 AllNodesValidationConfig:
1284 type: OS::TripleO::AllNodes::Validation
1289 - - {get_attr: [Controller, resource.0.external_ip_address]}
1290 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1291 - {get_attr: [Controller, resource.0.storage_ip_address]}
1292 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1293 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1295 ControllerAllNodesValidationDeployment:
1296 type: OS::Heat::StructuredDeployments
1297 depends_on: ControllerAllNodesDeployment
1299 name: ControllerAllNodesValidationDeployment
1300 config: {get_resource: AllNodesValidationConfig}
1301 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1303 ComputeAllNodesValidationDeployment:
1304 type: OS::Heat::StructuredDeployments
1305 depends_on: ComputeAllNodesDeployment
1307 name: ComputeAllNodesValidationDeployment
1308 config: {get_resource: AllNodesValidationConfig}
1309 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1311 BlockStorageAllNodesValidationDeployment:
1312 type: OS::Heat::StructuredDeployments
1313 depends_on: BlockStorageAllNodesDeployment
1315 name: BlockStorageAllNodesValidationDeployment
1316 config: {get_resource: AllNodesValidationConfig}
1317 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1319 ObjectStorageAllNodesValidationDeployment:
1320 type: OS::Heat::StructuredDeployments
1321 depends_on: ObjectStorageAllNodesDeployment
1323 name: ObjectStorageAllNodesValidationDeployment
1324 config: {get_resource: AllNodesValidationConfig}
1325 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1327 CephStorageAllNodesValidationDeployment:
1328 type: OS::Heat::StructuredDeployments
1329 depends_on: CephStorageAllNodesDeployment
1331 name: CephStorageAllNodesValidationDeployment
1332 config: {get_resource: AllNodesValidationConfig}
1333 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1336 type: OS::TripleO::Tasks::UpdateWorkflow
1338 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1339 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1340 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1341 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1342 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1344 deploy_identifier: {get_param: DeployIdentifier}
1345 update_identifier: {get_param: UpdateIdentifier}
1347 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1348 # the nested template may configure each role differently (or not at all)
1349 AllNodesExtraConfig:
1350 type: OS::TripleO::AllNodesExtraConfig
1353 - ComputeAllNodesValidationDeployment
1354 - BlockStorageAllNodesValidationDeployment
1355 - ObjectStorageAllNodesValidationDeployment
1356 - CephStorageAllNodesValidationDeployment
1357 - ControllerAllNodesValidationDeployment
1359 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1360 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1361 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1362 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1363 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1365 # Nested stack deployment runs after all other controller deployments
1366 ControllerNodesPostDeployment:
1367 type: OS::TripleO::ControllerPostDeployment
1368 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1370 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1371 RoleData: {get_attr: [ControllerServiceChain, role_data]}
1373 ComputeNodesPostDeployment:
1374 type: OS::TripleO::ComputePostDeployment
1375 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1377 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1378 RoleData: {get_attr: [ComputeServiceChain, role_data]}
1380 ObjectStorageNodesPostDeployment:
1381 type: OS::TripleO::ObjectStoragePostDeployment
1382 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1384 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1385 RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
1387 BlockStorageNodesPostDeployment:
1388 type: OS::TripleO::BlockStoragePostDeployment
1389 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1391 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1392 RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
1394 CephStorageNodesPostDeployment:
1395 type: OS::TripleO::CephStoragePostDeployment
1396 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1398 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1399 RoleData: {get_attr: [CephStorageServiceChain, role_data]}
1403 description: URL for the Overcloud Keystone service
1404 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1406 description: Keystone Admin VIP endpoint
1407 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1409 description: Controller VIP for public API endpoints
1410 value: {get_attr: [VipMap, net_ip_map, external]}
1412 description: VIP for Aodh API internal endpoint
1413 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1414 CeilometerInternalVip:
1415 description: VIP for Ceilometer API internal endpoint
1416 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1418 description: VIP for Cinder API internal endpoint
1419 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1421 description: VIP for Glance API internal endpoint
1422 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1424 description: VIP for Gnocchi API internal endpoint
1425 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1427 description: VIP for Heat API internal endpoint
1428 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1430 description: VIP for Ironic API internal endpoint
1431 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1432 KeystoneInternalVip:
1433 description: VIP for Keystone API internal endpoint
1434 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1436 description: VIP for Neutron API internal endpoint
1437 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1439 description: VIP for Nova API internal endpoint
1440 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1442 description: VIP for Sahara API internal endpoint
1443 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1445 description: VIP for Swift Proxy internal endpoint
1446 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1449 Mapping of the resources with the needed info for their endpoints.
1450 This includes the protocol used, the IP, port and also a full
1451 representation of the URI.
1452 value: {get_attr: [EndpointMap, endpoint_map]}
1455 The content that should be appended to your /etc/hosts if you want to get
1456 hostname-based access to the deployed nodes (useful for testing without
1458 value: {get_attr: [allNodesConfig, hosts_entries]}