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
140 The tunnel types for the Neutron tenant network.
141 type: comma_delimited_list
142 type: comma_delimited_list
146 The core plugin for Neutron. The value should be the entrypoint to be loaded
147 from neutron.core_plugins namespace.
149 NeutronServicePlugins:
150 default: "router,qos"
152 Comma-separated list of service plugin entrypoints to be loaded from the
153 neutron.service_plugins namespace.
154 type: comma_delimited_list
156 default: "vxlan,vlan,flat,gre"
158 Comma-separated list of network type driver entrypoints to be loaded.
159 type: comma_delimited_list
160 NeutronMechanismDrivers:
161 default: 'openvswitch'
163 The mechanism drivers for the Neutron tenant network.
164 type: comma_delimited_list
165 type: comma_delimited_list
166 NeutronAgentExtensions:
169 Comma-separated list of extensions enabled for the Neutron agents.
170 type: comma_delimited_list
171 NeutronAllowL3AgentFailover:
173 description: Allow automatic l3-agent failover
177 description: Whether to enable l3-agent HA
181 description: Enable IPv6 features in Nova
184 description: The password for the nova service account, used by nova-api.
187 PublicVirtualFixedIPs:
190 Control the IP allocation for the PublicVirtualInterface port. E.g.
191 [{'ip_address':'1.2.3.4'}]
196 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
199 description: The username for RabbitMQ
202 description: The password for RabbitMQ
208 Rabbit client subscriber parameter to specify
209 an SSL connection to the RabbitMQ host.
213 description: Set rabbit subscriber port, change this if using SSL
216 description: The password for Redis
219 StorageVirtualFixedIPs:
222 Control the IP allocation for the StorageVirtualInterface port. E.g.
223 [{'ip_address':'1.2.3.4'}]
225 StorageMgmtVirtualFixedIPs:
228 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
229 [{'ip_address':'1.2.3.4'}]
232 default: 'localdomain'
235 The DNS domain used for the hosts. This should match the dhcp_domain
236 configured in the Undercloud neutron. Defaults to localdomain.
240 Extra properties or metadata passed to Nova for the created nodes in
241 the overcloud. It's accessible via the Nova metadata API.
244 # Controller-specific params
250 controllerExtraConfig:
253 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
257 default: overcloud-full
259 - custom_constraint: glance.image
260 OvercloudControlFlavor:
261 description: Flavor for control nodes to request when deploying.
265 - custom_constraint: nova.flavor
266 ControlVirtualInterface:
268 description: Interface where virtual ip will be assigned.
272 description: Whether to enable fencing in Pacemaker or not.
276 description: Whether to use Galera instead of regular MariaDB.
278 ControllerSchedulerHints:
280 description: Optional scheduler hints to pass to nova
285 Additional configuration to inject into the cluster. The format required
286 may be implementation specific, e.g puppet hieradata. Any role specific
287 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
292 Pacemaker fencing configuration. The JSON should have
293 the following structure:
297 "agent": "AGENT_NAME",
298 "host_mac": "HOST_MAC_ADDRESS",
299 "params": {"PARAM_NAME": "PARAM_VALUE"}
307 "agent": "fence_xvm",
308 "host_mac": "52:54:00:aa:bb:cc",
310 "multicast_address": "225.0.0.12",
311 "port": "baremetal_0",
313 "manage_key_file": true,
314 "key_file": "/etc/fence_xvm.key",
315 "key_file_password": "abcdef"
323 description: The short name of the Gnocchi backend to use. Should be one
324 of swift, rbd or file
327 - allowed_values: ['swift', 'file', 'rbd']
328 GnocchiIndexerBackend:
330 description: The short name of the Gnocchi indexer backend to use.
333 description: The password for the gnocchi service account.
336 InstanceNameTemplate:
337 default: 'instance-%08x'
338 description: Template string to be used to generate instance names
342 description: Whether to manage IPtables rules.
346 description: Whether IPtables rules should be purged before setting up the ones.
348 MysqlInnodbBufferPoolSize:
350 Specifies the size of the buffer pool in megabytes. Setting to
351 zero should be interpreted as "no value" and will defer to the
356 description: Configures MySQL max_connections config setting
359 PublicVirtualInterface:
362 Specifies the interface where the public-facing virtual ip will be assigned.
363 This should be int_public when a VLAN is being used.
366 description: A random string to be used as a salt when hashing to determine mappings in the ring.
372 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
375 description: Partition Power to use when building Swift rings
380 description: How many replicas to use in the swift rings.
382 # Compute-specific params
383 CeilometerComputeAgent:
384 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
388 - allowed_values: ['', Present]
392 HypervisorNeutronPhysicalBridge:
395 An OVS bridge to create on each hypervisor. This defaults to br-ex the
396 same as the control plane nodes, as we have a uniform configuration of
397 the openvswitch agent. Typically should not need to be changed.
399 HypervisorNeutronPublicInterface:
401 description: What interface to add to the HypervisorNeutronPhysicalBridge.
403 NeutronNetworkVLANRanges:
404 default: 'datacentre:1:1000'
406 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
407 Neutron documentation for permitted values. Defaults to permitting any
408 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
409 type: comma_delimited_list
412 default: libvirt.LibvirtDriver
413 NovaComputeExtraConfig:
416 NovaCompute specific configuration to inject into the cluster. Same
417 structure as ExtraConfig.
419 NovaComputeLibvirtType:
422 NovaComputeLibvirtVifDriver:
424 description: Libvirt VIF driver configuration for the network
426 NovaComputeSchedulerHints:
428 description: Optional scheduler hints to pass to nova
430 NovaEnableRbdBackend:
432 description: Whether to enable or not the Rbd backend for Nova
436 default: overcloud-full
438 - custom_constraint: glance.image
441 description: Name of integration bridge used by Open vSwitch
443 NovaSecurityGroupAPI:
445 description: The full class name of the security API class
447 OvercloudComputeFlavor:
448 description: Use this flavor
452 - custom_constraint: nova.flavor
455 NeutronTenantNetwork: tenant
456 CeilometerApiNetwork: internal_api
457 AodhApiNetwork: internal_api
458 GnocchiApiNetwork: internal_api
459 MongoDbNetwork: internal_api
460 CinderApiNetwork: internal_api
461 CinderIscsiNetwork: storage
462 GlanceApiNetwork: storage
463 GlanceRegistryNetwork: internal_api
464 IronicApiNetwork: internal_api
465 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
466 KeystonePublicApiNetwork: internal_api
467 NeutronApiNetwork: internal_api
468 HeatApiNetwork: internal_api
469 NovaApiNetwork: internal_api
470 NovaMetadataNetwork: internal_api
471 NovaVncProxyNetwork: internal_api
472 SwiftMgmtNetwork: storage_mgmt
473 SwiftProxyNetwork: storage
474 SaharaApiNetwork: internal_api
475 HorizonNetwork: internal_api
476 MemcachedNetwork: internal_api
477 RabbitMqNetwork: internal_api
478 RedisNetwork: internal_api
479 MysqlNetwork: internal_api
480 CephClusterNetwork: storage_mgmt
481 CephPublicNetwork: storage
482 ControllerHostnameResolveNetwork: internal_api
483 ComputeHostnameResolveNetwork: internal_api
484 BlockStorageHostnameResolveNetwork: internal_api
485 ObjectStorageHostnameResolveNetwork: internal_api
486 CephStorageHostnameResolveNetwork: storage
487 description: Mapping of service_name -> network name. Typically set
488 via parameter_defaults in the resource registry.
493 - OS::TripleO::Services::CephMon
494 - OS::TripleO::Services::CephExternal
495 - OS::TripleO::Services::CinderApi
496 - OS::TripleO::Services::CinderScheduler
497 - OS::TripleO::Services::CinderVolume
498 - OS::TripleO::Services::Kernel
499 - OS::TripleO::Services::Keystone
500 - OS::TripleO::Services::GlanceApi
501 - OS::TripleO::Services::GlanceRegistry
502 - OS::TripleO::Services::HeatApi
503 - OS::TripleO::Services::HeatApiCfn
504 - OS::TripleO::Services::HeatApiCloudwatch
505 - OS::TripleO::Services::HeatEngine
506 - OS::TripleO::Services::NeutronDhcpAgent
507 - OS::TripleO::Services::NeutronL3Agent
508 - OS::TripleO::Services::NeutronMetadataAgent
509 - OS::TripleO::Services::NeutronServer
510 - OS::TripleO::Services::NeutronCorePlugin
511 - OS::TripleO::Services::NeutronOvsAgent
512 - OS::TripleO::Services::RabbitMQ
513 - OS::TripleO::Services::HAproxy
514 - OS::TripleO::Services::Keepalived
515 - OS::TripleO::Services::Memcached
516 - OS::TripleO::Services::Redis
517 - OS::TripleO::Services::NovaConductor
518 - OS::TripleO::Services::MongoDb
519 - OS::TripleO::Services::NovaApi
520 - OS::TripleO::Services::NovaScheduler
521 - OS::TripleO::Services::NovaConsoleauth
522 - OS::TripleO::Services::NovaVncproxy
523 - OS::TripleO::Services::Ntp
524 - OS::TripleO::Services::SwiftProxy
525 - OS::TripleO::Services::SwiftStorage
526 - OS::TripleO::Services::Snmp
527 - OS::TripleO::Services::Timezone
528 description: A list of service resources (configured in the Heat
529 resource_registry) which represent nested stacks
530 for each service that should get installed on the Controllers.
531 type: comma_delimited_list
535 - OS::TripleO::Services::CephClient
536 - OS::TripleO::Services::CephExternal
537 - OS::TripleO::Services::Timezone
538 - OS::TripleO::Services::Ntp
539 - OS::TripleO::Services::Snmp
540 - OS::TripleO::Services::NovaCompute
541 - OS::TripleO::Services::NovaLibvirt
542 - OS::TripleO::Services::Kernel
543 description: A list of service resources (configured in the Heat
544 resource_registry) which represent nested stacks
545 for each service that should get installed on the Compute Nodes.
546 type: comma_delimited_list
548 # Block storage specific parameters
553 default: overcloud-full
555 OvercloudBlockStorageFlavor:
556 description: Flavor for block storage nodes to request when deploying.
560 - custom_constraint: nova.flavor
561 BlockStorageExtraConfig:
564 BlockStorage specific configuration to inject into the cluster. Same
565 structure as ExtraConfig.
567 BlockStorageSchedulerHints:
569 description: Optional scheduler hints to pass to nova
571 BlockStorageServices:
573 - OS::TripleO::Services::CinderVolume
574 - OS::TripleO::Services::Kernel
575 - OS::TripleO::Services::Ntp
576 - OS::TripleO::Services::Timezone
577 - OS::TripleO::Services::Snmp
578 description: A list of service resources (configured in the Heat
579 resource_registry) which represent nested stacks
580 for each service that should get installed on the BlockStorage nodes.
581 type: comma_delimited_list
583 # Object storage specific parameters
587 OvercloudSwiftStorageFlavor:
588 description: Flavor for Swift storage nodes to request when deploying.
592 - custom_constraint: nova.flavor
594 default: overcloud-full
596 ObjectStorageExtraConfig:
599 ObjectStorage specific configuration to inject into the cluster. Same
600 structure as ExtraConfig.
602 ObjectStorageSchedulerHints:
604 description: Optional scheduler hints to pass to nova
606 ObjectStorageServices:
608 - OS::TripleO::Services::Kernel
609 - OS::TripleO::Services::Ntp
610 - OS::TripleO::Services::SwiftStorage
611 - OS::TripleO::Services::Snmp
612 - OS::TripleO::Services::Timezone
613 description: A list of service resources (configured in the Heat
614 resource_registry) which represent nested stacks
615 for each service that should get installed on the ObjectStorage nodes.
616 Note this role currently only supports steps 2, 3 and 4 configuration.
617 type: comma_delimited_list
620 # Ceph storage specific parameters
625 default: overcloud-full
627 OvercloudCephStorageFlavor:
629 description: Flavor for Ceph storage nodes to request when deploying.
632 - custom_constraint: nova.flavor
633 CephStorageExtraConfig:
636 CephStorage specific configuration to inject into the cluster. Same
637 structure as ExtraConfig.
639 CephStorageSchedulerHints:
641 description: Optional scheduler hints to pass to nova
645 - OS::TripleO::Services::CephOSD
646 - OS::TripleO::Services::Kernel
647 - OS::TripleO::Services::Ntp
648 - OS::TripleO::Services::Timezone
649 description: A list of service resources (configured in the Heat
650 resource_registry) which represent nested stacks
651 for each service that should get installed on the CephStorage nodes.
652 type: comma_delimited_list
654 # Hostname format for each role
655 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
656 # and %stackname% is replaced with OS::stack_name in the template below.
657 # If you want to use the heat generated names, pass '' (empty string).
658 ControllerHostnameFormat:
660 description: Format for Controller node hostnames
661 default: '%stackname%-controller-%index%'
662 ComputeHostnameFormat:
664 description: Format for Compute node hostnames
665 default: '%stackname%-novacompute-%index%'
666 BlockStorageHostnameFormat:
668 description: Format for BlockStorage node hostnames
669 default: '%stackname%-blockstorage-%index%'
670 ObjectStorageHostnameFormat:
672 description: Format for SwiftStorage node hostnames
673 default: '%stackname%-objectstorage-%index%'
674 CephStorageHostnameFormat:
676 description: Format for CephStorage node hostnames
677 default: '%stackname%-cephstorage-%index%'
679 # Identifiers to trigger tasks on nodes
684 Setting to a previously unused value during stack-update will trigger
685 package update on all nodes
690 Setting this to a unique value will re-run any deployment tasks which
691 perform configuration on a Heat stack-update.
693 # If you want to remove a specific node from a resource group, you can pass
694 # the node name or id as a <Group>RemovalPolicies parameter, for example:
695 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
696 ControllerRemovalPolicies:
700 List of resources to be removed from ControllerResourceGroup when
701 doing an update which requires removal of specific resources.
702 ComputeRemovalPolicies:
706 List of resources to be removed from ComputeResourceGroup when
707 doing an update which requires removal of specific resources.
708 BlockStorageRemovalPolicies:
712 List of resources to be removed from BlockStorageResourceGroup when
713 doing an update which requires removal of specific resources.
714 ObjectStorageRemovalPolicies:
718 List of resources to be removed from ObjectStorageResourceGroup when
719 doing an update which requires removal of specific resources.
720 CephStorageRemovalPolicies:
724 List of resources to be removed from CephStorageResourceGroup when
725 doing an update which requires removal of specific resources.
729 description: Do not use deprecated params, they will be removed.
731 - controllerExtraConfig
736 HeatAuthEncryptionKey:
737 type: OS::Heat::RandomString
740 type: OS::Heat::RandomString
745 type: OS::Heat::RandomString
750 type: OS::TripleO::EndpointMap
752 CloudName: {get_param: CloudName}
753 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
754 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
755 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
756 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
757 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
758 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
759 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
760 IronicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
761 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
762 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
763 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
764 MysqlNoBracketsVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
765 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
766 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
767 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
768 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
769 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
771 ControllerServiceChain:
772 type: OS::TripleO::Services
774 Services: {get_param: ControllerServices}
775 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
778 type: OS::Heat::ResourceGroup
781 count: {get_param: ControllerCount}
782 removal_policies: {get_param: ControllerRemovalPolicies}
784 type: OS::TripleO::Controller
786 AdminPassword: {get_param: AdminPassword}
787 AodhPassword: {get_param: AodhPassword}
788 CeilometerBackend: {get_param: CeilometerBackend}
789 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
790 CeilometerPassword: {get_param: CeilometerPassword}
791 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
792 CloudDomain: {get_param: CloudDomain}
793 ControlVirtualInterface: {get_param: ControlVirtualInterface}
794 controllerExtraConfig: {get_param: controllerExtraConfig}
795 CorosyncIPv6: {get_param: CorosyncIPv6}
796 Debug: {get_param: Debug}
797 EnableFencing: {get_param: EnableFencing}
798 ManageFirewall: {get_param: ManageFirewall}
799 PurgeFirewallRules: {get_param: PurgeFirewallRules}
800 EnableGalera: {get_param: EnableGalera}
801 ExtraConfig: {get_param: ExtraConfig}
802 FencingConfig: {get_param: FencingConfig}
803 Flavor: {get_param: OvercloudControlFlavor}
804 GnocchiPassword: {get_param: GnocchiPassword}
805 GnocchiBackend: {get_param: GnocchiBackend}
806 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
807 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
808 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
809 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
810 HorizonSecret: {get_resource: HorizonSecret}
811 Image: {get_param: controllerImage}
812 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
813 InstanceNameTemplate: {get_param: InstanceNameTemplate}
814 KeyName: {get_param: KeyName}
815 MemcachedIPv6: {get_param: MemcachedIPv6}
816 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
817 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
818 MysqlMaxConnections: {get_param: MysqlMaxConnections}
819 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
820 NeutronPublicInterface: {get_param: NeutronPublicInterface}
821 NeutronPassword: {get_param: NeutronPassword}
822 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
823 NovaIPv6: {get_param: NovaIPv6}
824 NovaPassword: {get_param: NovaPassword}
825 PcsdPassword: {get_resource: PcsdPassword}
826 PublicVirtualInterface: {get_param: PublicVirtualInterface}
827 RabbitPassword: {get_param: RabbitPassword}
828 RabbitUserName: {get_param: RabbitUserName}
829 RabbitCookie: {get_attr: [RabbitCookie, value]}
830 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
831 RabbitClientPort: {get_param: RabbitClientPort}
832 RedisPassword: {get_param: RedisPassword}
833 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
834 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
835 SwiftHashSuffix: {get_param: SwiftHashSuffix}
836 SwiftMinPartHours: {get_param: SwiftMinPartHours}
837 SwiftPartPower: {get_param: SwiftPartPower}
838 SwiftReplicas: { get_param: SwiftReplicas}
839 ServiceNetMap: {get_param: ServiceNetMap}
840 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
841 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
842 UpdateIdentifier: {get_param: UpdateIdentifier}
845 template: {get_param: ControllerHostnameFormat}
847 '%stackname%': {get_param: 'OS::stack_name'}
849 ServerMetadata: {get_param: ServerMetadata}
850 SchedulerHints: {get_param: ControllerSchedulerHints}
851 ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
855 type: OS::TripleO::Services
857 Services: {get_param: ComputeServices}
858 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
861 type: OS::Heat::ResourceGroup
864 count: {get_param: ComputeCount}
865 removal_policies: {get_param: ComputeRemovalPolicies}
867 type: OS::TripleO::Compute
869 AdminPassword: {get_param: AdminPassword}
870 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
871 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
872 CeilometerPassword: {get_param: CeilometerPassword}
873 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
874 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
875 Debug: {get_param: Debug}
876 ExtraConfig: {get_param: ExtraConfig}
877 Flavor: {get_param: OvercloudComputeFlavor}
878 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
879 Image: {get_param: NovaImage}
880 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
881 KeyName: {get_param: KeyName}
882 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
883 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
884 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
885 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
886 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
887 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
888 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
889 NeutronNetworkType: {get_param: NeutronNetworkType}
890 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
891 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
892 NeutronPassword: {get_param: NeutronPassword}
893 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
894 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
895 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
896 NeutronCorePlugin: {get_param: NeutronCorePlugin}
897 NeutronServicePlugins: {get_param: NeutronServicePlugins}
898 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
899 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
900 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
901 # L3 HA and Failover is not relevant for Computes, should be removed
902 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
903 NeutronL3HA: {get_param: NeutronL3HA}
904 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
905 NovaComputeDriver: {get_param: NovaComputeDriver}
906 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
907 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
908 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
909 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
910 NovaIPv6: {get_param: NovaIPv6}
911 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
912 NovaPassword: {get_param: NovaPassword}
913 NovaOVSBridge: {get_param: NovaOVSBridge}
914 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
915 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
916 RabbitPassword: {get_param: RabbitPassword}
917 RabbitUserName: {get_param: RabbitUserName}
918 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
919 RabbitClientPort: {get_param: RabbitClientPort}
920 ServiceNetMap: {get_param: ServiceNetMap}
921 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
922 UpdateIdentifier: {get_param: UpdateIdentifier}
925 template: {get_param: ComputeHostnameFormat}
927 '%stackname%': {get_param: 'OS::stack_name'}
928 CloudDomain: {get_param: CloudDomain}
929 ServerMetadata: {get_param: ServerMetadata}
930 SchedulerHints: {get_param: NovaComputeSchedulerHints}
932 ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
934 BlockStorageServiceChain:
935 type: OS::TripleO::Services
937 Services: {get_param: BlockStorageServices}
938 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
941 type: OS::Heat::ResourceGroup
944 count: {get_param: BlockStorageCount}
945 removal_policies: {get_param: BlockStorageRemovalPolicies}
947 type: OS::TripleO::BlockStorage
949 Image: {get_param: BlockStorageImage}
950 KeyName: {get_param: KeyName}
951 Flavor: {get_param: OvercloudBlockStorageFlavor}
952 UpdateIdentifier: {get_param: UpdateIdentifier}
955 template: {get_param: BlockStorageHostnameFormat}
957 '%stackname%': {get_param: 'OS::stack_name'}
958 ServiceNetMap: {get_param: ServiceNetMap}
959 ExtraConfig: {get_param: ExtraConfig}
960 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
961 CloudDomain: {get_param: CloudDomain}
962 ServerMetadata: {get_param: ServerMetadata}
963 SchedulerHints: {get_param: BlockStorageSchedulerHints}
965 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
967 ObjectStorageServiceChain:
968 type: OS::TripleO::Services
970 Services: {get_param: ObjectStorageServices}
971 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
974 type: OS::Heat::ResourceGroup
977 count: {get_param: ObjectStorageCount}
978 removal_policies: {get_param: ObjectStorageRemovalPolicies}
980 type: OS::TripleO::ObjectStorage
982 KeyName: {get_param: KeyName}
983 Flavor: {get_param: OvercloudSwiftStorageFlavor}
984 HashSuffix: {get_param: SwiftHashSuffix}
985 MinPartHours: {get_param: SwiftMinPartHours}
986 PartPower: {get_param: SwiftPartPower}
987 Image: {get_param: SwiftStorageImage}
988 Replicas: { get_param: SwiftReplicas}
989 UpdateIdentifier: {get_param: UpdateIdentifier}
990 ServiceNetMap: {get_param: ServiceNetMap}
993 template: {get_param: ObjectStorageHostnameFormat}
995 '%stackname%': {get_param: 'OS::stack_name'}
996 ExtraConfig: {get_param: ExtraConfig}
997 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
998 CloudDomain: {get_param: CloudDomain}
999 ServerMetadata: {get_param: ServerMetadata}
1000 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1001 NodeIndex: '%index%'
1002 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
1004 CephStorageServiceChain:
1005 type: OS::TripleO::Services
1007 Services: {get_param: CephStorageServices}
1008 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1011 type: OS::Heat::ResourceGroup
1012 depends_on: Networks
1014 count: {get_param: CephStorageCount}
1015 removal_policies: {get_param: CephStorageRemovalPolicies}
1017 type: OS::TripleO::CephStorage
1019 Image: {get_param: CephStorageImage}
1020 KeyName: {get_param: KeyName}
1021 Flavor: {get_param: OvercloudCephStorageFlavor}
1022 ServiceNetMap: {get_param: ServiceNetMap}
1023 UpdateIdentifier: {get_param: UpdateIdentifier}
1026 template: {get_param: CephStorageHostnameFormat}
1028 '%stackname%': {get_param: 'OS::stack_name'}
1029 ExtraConfig: {get_param: ExtraConfig}
1030 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1031 CloudDomain: {get_param: CloudDomain}
1032 ServerMetadata: {get_param: ServerMetadata}
1033 SchedulerHints: {get_param: CephStorageSchedulerHints}
1034 NodeIndex: '%index%'
1035 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
1037 ControllerIpListMap:
1038 type: OS::TripleO::Network::Ports::NetIpListMap
1040 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1041 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1042 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1043 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1044 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1045 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1046 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1049 type: OS::TripleO::AllNodes::SoftwareConfig
1051 compute_hosts: {get_attr: [Compute, hosts_entry]}
1052 controller_hosts: {get_attr: [Controller, hosts_entry]}
1053 controller_ips: {get_attr: [Controller, ip_address]}
1054 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1055 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1056 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1057 controller_names: {get_attr: [Controller, hostname]}
1058 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1059 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1060 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1061 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1062 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1063 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1064 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1065 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1066 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1067 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1068 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1069 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1070 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1071 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1072 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1073 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1074 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1075 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1076 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1077 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1078 ironic_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1079 ceph_mon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1080 ceph_mon_node_names: {get_attr: [Controller, hostname]}
1081 DeployIdentifier: {get_param: DeployIdentifier}
1082 UpdateIdentifier: {get_param: UpdateIdentifier}
1085 type: OS::Heat::RandomString
1089 MysqlClusterUniquePart:
1090 type: OS::Heat::RandomString
1095 type: OS::Heat::RandomString
1098 salt: {get_param: RabbitCookieSalt}
1100 # creates the network architecture
1102 type: OS::TripleO::Network
1105 type: OS::Neutron::Port
1106 depends_on: Networks
1108 name: control_virtual_ip
1109 network: {get_param: NeutronControlPlaneID}
1110 fixed_ips: {get_param: ControlFixedIPs}
1111 replacement_policy: AUTO
1114 depends_on: Networks
1115 type: OS::TripleO::Network::Ports::RedisVipPort
1117 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1118 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1119 PortName: redis_virtual_ip
1120 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1123 # The public VIP is on the External net, falls back to ctlplane
1125 depends_on: Networks
1126 type: OS::TripleO::Network::Ports::ExternalVipPort
1128 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1129 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1130 PortName: public_virtual_ip
1131 FixedIPs: {get_param: PublicVirtualFixedIPs}
1133 InternalApiVirtualIP:
1134 depends_on: Networks
1135 type: OS::TripleO::Network::Ports::InternalApiVipPort
1137 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1138 PortName: internal_api_virtual_ip
1139 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1142 depends_on: Networks
1143 type: OS::TripleO::Network::Ports::StorageVipPort
1145 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1146 PortName: storage_virtual_ip
1147 FixedIPs: {get_param: StorageVirtualFixedIPs}
1149 StorageMgmtVirtualIP:
1150 depends_on: Networks
1151 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1153 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1154 PortName: storage_management_virtual_ip
1155 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1158 type: OS::TripleO::Network::Ports::NetVipMap
1160 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1161 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1162 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1163 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1164 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1165 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1166 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1167 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1168 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1169 # No tenant or management VIP required
1172 type: OS::TripleO::VipConfig
1175 type: OS::Heat::StructuredDeployments
1178 config: {get_resource: VipConfig}
1179 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1181 # service VIP mappings
1182 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1183 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1184 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1185 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1186 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1187 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1188 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1189 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1190 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1191 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1192 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1193 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1194 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1195 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1196 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1197 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1198 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1199 # direct configuration of Virtual IPs for each network
1200 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1201 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1202 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1203 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1204 ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1205 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1206 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1208 ControllerBootstrapNodeConfig:
1209 type: OS::TripleO::BootstrapNode::SoftwareConfig
1211 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1212 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1214 ControllerBootstrapNodeDeployment:
1215 type: OS::Heat::StructuredDeployments
1217 name: ControllerBootstrapNodeDeployment
1218 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1219 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1221 ControllerSwiftDeployment:
1222 type: OS::Heat::StructuredDeployments
1224 name: ControllerSwiftDeployment
1225 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1226 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1228 ObjectStorageSwiftDeployment:
1229 type: OS::Heat::StructuredDeployments
1231 name: ObjectStorageSwiftDeployment
1232 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1233 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1235 SwiftDevicesAndProxyConfig:
1236 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1238 controller_swift_devices: {get_attr: [Controller, swift_device]}
1239 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1240 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1242 ComputeCephDeployment:
1243 type: OS::Heat::StructuredDeployments
1245 name: ComputeCephDeployment
1246 config: {get_attr: [CephClusterConfig, config_id]}
1247 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1249 ControllerCephDeployment:
1250 type: OS::Heat::StructuredDeployments
1252 name: ControllerCephDeployment
1253 config: {get_attr: [CephClusterConfig, config_id]}
1254 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1256 CephStorageCephDeployment:
1257 type: OS::Heat::StructuredDeployments
1259 name: CephStorageCephDeployment
1260 config: {get_attr: [CephClusterConfig, config_id]}
1261 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1264 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1266 ControllerAllNodesDeployment:
1267 type: OS::Heat::StructuredDeployments
1269 name: ControllerAllNodesDeployment
1270 config: {get_attr: [allNodesConfig, config_id]}
1271 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1273 ComputeAllNodesDeployment:
1274 type: OS::Heat::StructuredDeployments
1276 name: ComputeAllNodesDeployment
1277 config: {get_attr: [allNodesConfig, config_id]}
1278 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1280 BlockStorageAllNodesDeployment:
1281 type: OS::Heat::StructuredDeployments
1283 name: BlockStorageAllNodesDeployment
1284 config: {get_attr: [allNodesConfig, config_id]}
1285 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1287 ObjectStorageAllNodesDeployment:
1288 type: OS::Heat::StructuredDeployments
1290 name: ObjectStorageAllNodesDeployment
1291 config: {get_attr: [allNodesConfig, config_id]}
1292 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1294 CephStorageAllNodesDeployment:
1295 type: OS::Heat::StructuredDeployments
1297 name: CephStorageAllNodesDeployment
1298 config: {get_attr: [allNodesConfig, config_id]}
1299 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1301 # All Nodes Validations
1302 AllNodesValidationConfig:
1303 type: OS::TripleO::AllNodes::Validation
1308 - - {get_attr: [Controller, resource.0.external_ip_address]}
1309 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1310 - {get_attr: [Controller, resource.0.storage_ip_address]}
1311 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1312 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1314 ControllerAllNodesValidationDeployment:
1315 type: OS::Heat::StructuredDeployments
1316 depends_on: ControllerAllNodesDeployment
1318 name: ControllerAllNodesValidationDeployment
1319 config: {get_resource: AllNodesValidationConfig}
1320 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1322 ComputeAllNodesValidationDeployment:
1323 type: OS::Heat::StructuredDeployments
1324 depends_on: ComputeAllNodesDeployment
1326 name: ComputeAllNodesValidationDeployment
1327 config: {get_resource: AllNodesValidationConfig}
1328 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1330 BlockStorageAllNodesValidationDeployment:
1331 type: OS::Heat::StructuredDeployments
1332 depends_on: BlockStorageAllNodesDeployment
1334 name: BlockStorageAllNodesValidationDeployment
1335 config: {get_resource: AllNodesValidationConfig}
1336 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1338 ObjectStorageAllNodesValidationDeployment:
1339 type: OS::Heat::StructuredDeployments
1340 depends_on: ObjectStorageAllNodesDeployment
1342 name: ObjectStorageAllNodesValidationDeployment
1343 config: {get_resource: AllNodesValidationConfig}
1344 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1346 CephStorageAllNodesValidationDeployment:
1347 type: OS::Heat::StructuredDeployments
1348 depends_on: CephStorageAllNodesDeployment
1350 name: CephStorageAllNodesValidationDeployment
1351 config: {get_resource: AllNodesValidationConfig}
1352 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1355 type: OS::TripleO::Tasks::UpdateWorkflow
1357 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1358 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1359 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1360 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1361 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1363 deploy_identifier: {get_param: DeployIdentifier}
1364 update_identifier: {get_param: UpdateIdentifier}
1366 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1367 # the nested template may configure each role differently (or not at all)
1368 AllNodesExtraConfig:
1369 type: OS::TripleO::AllNodesExtraConfig
1372 - ComputeAllNodesValidationDeployment
1373 - BlockStorageAllNodesValidationDeployment
1374 - ObjectStorageAllNodesValidationDeployment
1375 - CephStorageAllNodesValidationDeployment
1376 - ControllerAllNodesValidationDeployment
1378 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1379 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1380 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1381 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1382 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1384 # Nested stack deployment runs after all other controller deployments
1385 ControllerNodesPostDeployment:
1386 type: OS::TripleO::ControllerPostDeployment
1387 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1389 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1390 RoleData: {get_attr: [ControllerServiceChain, role_data]}
1392 ComputeNodesPostDeployment:
1393 type: OS::TripleO::ComputePostDeployment
1394 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1396 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1397 RoleData: {get_attr: [ComputeServiceChain, role_data]}
1399 ObjectStorageNodesPostDeployment:
1400 type: OS::TripleO::ObjectStoragePostDeployment
1401 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1403 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1404 RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
1406 BlockStorageNodesPostDeployment:
1407 type: OS::TripleO::BlockStoragePostDeployment
1408 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1410 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1411 RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
1413 CephStorageNodesPostDeployment:
1414 type: OS::TripleO::CephStoragePostDeployment
1415 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1417 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1418 RoleData: {get_attr: [CephStorageServiceChain, role_data]}
1422 description: URL for the Overcloud Keystone service
1423 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1425 description: Keystone Admin VIP endpoint
1426 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1428 description: Controller VIP for public API endpoints
1429 value: {get_attr: [VipMap, net_ip_map, external]}
1431 description: VIP for Aodh API internal endpoint
1432 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1433 CeilometerInternalVip:
1434 description: VIP for Ceilometer API internal endpoint
1435 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1437 description: VIP for Cinder API internal endpoint
1438 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1440 description: VIP for Glance API internal endpoint
1441 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1443 description: VIP for Gnocchi API internal endpoint
1444 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1446 description: VIP for Heat API internal endpoint
1447 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1449 description: VIP for Ironic API internal endpoint
1450 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, IronicApiNetwork]}]}
1451 KeystoneInternalVip:
1452 description: VIP for Keystone API internal endpoint
1453 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1455 description: VIP for Neutron API internal endpoint
1456 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1458 description: VIP for Nova API internal endpoint
1459 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1461 description: VIP for Sahara API internal endpoint
1462 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1464 description: VIP for Swift Proxy internal endpoint
1465 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1468 Mapping of the resources with the needed info for their endpoints.
1469 This includes the protocol used, the IP, port and also a full
1470 representation of the URI.
1471 value: {get_attr: [EndpointMap, endpoint_map]}
1474 The content that should be appended to your /etc/hosts if you want to get
1475 hostname-based access to the deployed nodes (useful for testing without
1477 value: {get_attr: [allNodesConfig, hosts_entries]}