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