1 heat_template_version: 2016-04-08
4 Deploy an OpenStack environment, consisting of several node types (roles),
5 Controller, Compute, BlockStorage, SwiftStorage and CephStorage. The Storage
6 roles enable independent scaling of the storage components, but the minimal
7 deployment is one Controller and one Compute node.
10 # TODO(shadower): we should probably use the parameter groups to put
14 # Common parameters (not specific to a role)
16 description: The password for the keystone admin account, used for monitoring, querying neutron etc.
20 description: The password for the aodh services.
25 description: The ceilometer backend type.
27 CeilometerMeteringSecret:
28 description: Secret shared by the ceilometer services.
32 description: The password for the ceilometer service account.
35 CeilometerMeterDispatcher:
37 description: Dispatcher to process meter data
40 - allowed_values: ['gnocchi', 'database']
41 # This has to be an UUID so for now we generate it outside the template
45 description: The Ceph cluster FSID. Must be a UUID.
48 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
53 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
56 CinderEnableNfsBackend:
58 description: Whether to enable or not the NFS backend for Cinder
62 description: The Ceph client key. Can be created with ceph-authtool --gen-print-key. Currently only used for external Ceph deployments to create the openstack user keyring.
68 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
69 CinderEnableIscsiBackend:
71 description: Whether to enable or not the Iscsi backend for Cinder
73 CinderEnableRbdBackend:
75 description: Whether to enable or not the Rbd backend for Cinder
79 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
83 description: Should be used for arbitrary ips.
87 description: Enable IPv6 in Corosync
91 description: Set to True to enable debugging on all services.
95 description: Syslog address where HAproxy will send its log
99 description: A list of IP/Hostname allowed to connect to horizon
100 type: comma_delimited_list
102 default: 'REBUILD_PRESERVE_EPHEMERAL'
103 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
105 InternalApiVirtualFixedIPs:
108 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
109 [{'ip_address':'1.2.3.4'}]
113 description: Name of an existing Nova key pair to enable SSH access to the instances
116 - custom_constraint: nova.keypair
119 description: Enable IPv6 features in Memcached.
121 NeutronBridgeMappings:
123 The OVS logical->physical bridge mappings to use. See the Neutron
124 documentation for details. Defaults to mapping br-ex - the external
125 bridge on hosts - to a physical name 'datacentre' which can be used
126 to create provider networks (and we use this for the default floating
127 network) - if changing this either use different post-install network
128 scripts or be sure to keep 'datacentre' as a mapping network name.
129 type: comma_delimited_list
130 default: "datacentre:br-ex"
131 NeutronControlPlaneID:
134 description: Neutron ID or name for ctlplane network.
135 NeutronEnableTunnelling:
141 Enable/disable the L2 population feature in the Neutron agents.
144 type: comma_delimited_list
145 default: 'datacentre'
147 If set, flat networks to configure in neutron plugins. Defaults to
148 'datacentre' to permit external network creation.
151 description: The tenant network type for Neutron.
152 type: comma_delimited_list
154 description: The password for the neutron service account, used by neutron agents.
157 NeutronPublicInterface:
159 description: What interface to bridge onto br-ex for network nodes.
161 NeutronMetadataProxySharedSecret:
162 description: Shared secret to prevent spoofing
167 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
168 be at least 50 bytes smaller than the MTU on the physical network. This
169 value will be used to set the MTU on the virtual Ethernet device.
170 This value will be used to construct the NeutronDnsmasqOptions, since that
171 will determine the MTU that is assigned to the VM host through DHCP.
177 The tunnel types for the Neutron tenant network.
178 type: comma_delimited_list
179 type: comma_delimited_list
183 The core plugin for Neutron. The value should be the entrypoint to be loaded
184 from neutron.core_plugins namespace.
186 NeutronServicePlugins:
187 default: "router,qos"
189 Comma-separated list of service plugin entrypoints to be loaded from the
190 neutron.service_plugins namespace.
191 type: comma_delimited_list
193 default: "vxlan,vlan,flat,gre"
195 Comma-separated list of network type driver entrypoints to be loaded.
196 type: comma_delimited_list
197 NeutronMechanismDrivers:
198 default: 'openvswitch'
200 The mechanism drivers for the Neutron tenant network.
201 type: comma_delimited_list
202 type: comma_delimited_list
203 NeutronAgentExtensions:
206 Comma-separated list of extensions enabled for the Neutron agents.
207 type: comma_delimited_list
208 NeutronAllowL3AgentFailover:
210 description: Allow automatic l3-agent failover
214 description: Whether to enable l3-agent HA
218 description: Enable IPv6 features in Nova
221 description: The password for the nova service account, used by nova-api.
224 #TODO(ccamacho): Remove after landing Ntp in all roles
227 description: Comma-separated list of ntp servers
228 type: comma_delimited_list
229 PublicVirtualFixedIPs:
232 Control the IP allocation for the PublicVirtualInterface port. E.g.
233 [{'ip_address':'1.2.3.4'}]
238 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
241 description: The username for RabbitMQ
244 description: The password for RabbitMQ
250 Rabbit client subscriber parameter to specify
251 an SSL connection to the RabbitMQ host.
255 description: Set rabbit subscriber port, change this if using SSL
258 description: The password for Redis
261 SnmpdReadonlyUserName:
262 default: ro_snmp_user
263 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
265 SnmpdReadonlyUserPassword:
266 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
269 StorageVirtualFixedIPs:
272 Control the IP allocation for the StorageVirtualInterface port. E.g.
273 [{'ip_address':'1.2.3.4'}]
275 StorageMgmtVirtualFixedIPs:
278 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
279 [{'ip_address':'1.2.3.4'}]
283 description: The timezone to be set on nodes.
286 default: 'localdomain'
289 The DNS domain used for the hosts. This should match the dhcp_domain
290 configured in the Undercloud neutron. Defaults to localdomain.
294 Extra properties or metadata passed to Nova for the created nodes in
295 the overcloud. It's accessible via the Nova metadata API.
298 # Controller-specific params
299 CinderLVMLoopDeviceSize:
301 description: The size of the loopback file used by the cinder LVM driver.
304 description: The password for the cinder service account, used by cinder-api.
309 description: The iSCSI helper to use with cinder.
316 controllerExtraConfig:
319 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
323 default: overcloud-full
325 - custom_constraint: glance.image
326 OvercloudControlFlavor:
327 description: Flavor for control nodes to request when deploying.
331 - custom_constraint: nova.flavor
332 ControlVirtualInterface:
334 description: Interface where virtual ip will be assigned.
338 description: Whether to enable fencing in Pacemaker or not.
342 description: Whether to use Galera instead of regular MariaDB.
344 ControllerEnableCephStorage:
346 description: Whether to deploy Ceph Storage (OSD) on the Controller
348 ControllerSchedulerHints:
350 description: Optional scheduler hints to pass to nova
355 Additional configuration to inject into the cluster. The format required
356 may be implementation specific, e.g puppet hieradata. Any role specific
357 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
362 Pacemaker fencing configuration. The JSON should have
363 the following structure:
367 "agent": "AGENT_NAME",
368 "host_mac": "HOST_MAC_ADDRESS",
369 "params": {"PARAM_NAME": "PARAM_VALUE"}
377 "agent": "fence_xvm",
378 "host_mac": "52:54:00:aa:bb:cc",
380 "multicast_address": "225.0.0.12",
381 "port": "baremetal_0",
383 "manage_key_file": true,
384 "key_file": "/etc/fence_xvm.key",
385 "key_file_password": "abcdef"
393 description: The short name of the Gnocchi backend to use. Should be one
394 of swift, rbd or file
397 - allowed_values: ['swift', 'file', 'rbd']
398 GnocchiIndexerBackend:
400 description: The short name of the Gnocchi indexer backend to use.
403 description: The password for the gnocchi service account.
406 InstanceNameTemplate:
407 default: 'instance-%08x'
408 description: Template string to be used to generate instance names
412 description: Whether to manage IPtables rules.
416 description: Whether IPtables rules should be purged before setting up the ones.
418 MysqlInnodbBufferPoolSize:
420 Specifies the size of the buffer pool in megabytes. Setting to
421 zero should be interpreted as "no value" and will defer to the
426 description: Configures MySQL max_connections config setting
429 PublicVirtualInterface:
432 Specifies the interface where the public-facing virtual ip will be assigned.
433 This should be int_public when a VLAN is being used.
436 description: A random string to be used as a salt when hashing to determine mappings in the ring.
442 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
445 description: Partition Power to use when building Swift rings
450 description: How many replicas to use in the swift rings.
452 # Compute-specific params
453 CeilometerComputeAgent:
454 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
458 - allowed_values: ['', Present]
462 HypervisorNeutronPhysicalBridge:
465 An OVS bridge to create on each hypervisor. This defaults to br-ex the
466 same as the control plane nodes, as we have a uniform configuration of
467 the openvswitch agent. Typically should not need to be changed.
469 HypervisorNeutronPublicInterface:
471 description: What interface to add to the HypervisorNeutronPhysicalBridge.
473 NeutronNetworkVLANRanges:
474 default: 'datacentre:1:1000'
476 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
477 Neutron documentation for permitted values. Defaults to permitting any
478 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
479 type: comma_delimited_list
482 default: libvirt.LibvirtDriver
483 NovaComputeExtraConfig:
486 NovaCompute specific configuration to inject into the cluster. Same
487 structure as ExtraConfig.
489 NovaComputeLibvirtType:
492 NovaComputeLibvirtVifDriver:
494 description: Libvirt VIF driver configuration for the network
496 NovaComputeSchedulerHints:
498 description: Optional scheduler hints to pass to nova
500 NovaEnableRbdBackend:
502 description: Whether to enable or not the Rbd backend for Nova
506 default: overcloud-full
508 - custom_constraint: glance.image
511 description: Name of integration bridge used by Open vSwitch
513 NovaSecurityGroupAPI:
515 description: The full class name of the security API class
517 OvercloudComputeFlavor:
518 description: Use this flavor
522 - custom_constraint: nova.flavor
525 NeutronTenantNetwork: tenant
526 CeilometerApiNetwork: internal_api
527 AodhApiNetwork: internal_api
528 GnocchiApiNetwork: internal_api
529 MongoDbNetwork: internal_api
530 CinderApiNetwork: internal_api
531 CinderIscsiNetwork: storage
532 GlanceApiNetwork: storage
533 GlanceRegistryNetwork: internal_api
534 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
535 KeystonePublicApiNetwork: internal_api
536 NeutronApiNetwork: internal_api
537 HeatApiNetwork: internal_api
538 NovaApiNetwork: internal_api
539 NovaMetadataNetwork: internal_api
540 NovaVncProxyNetwork: internal_api
541 SwiftMgmtNetwork: storage_mgmt
542 SwiftProxyNetwork: storage
543 SaharaApiNetwork: internal_api
544 HorizonNetwork: internal_api
545 MemcachedNetwork: internal_api
546 RabbitMqNetwork: internal_api
547 RedisNetwork: internal_api
548 MysqlNetwork: internal_api
549 CephClusterNetwork: storage_mgmt
550 CephPublicNetwork: storage
551 ControllerHostnameResolveNetwork: internal_api
552 ComputeHostnameResolveNetwork: internal_api
553 BlockStorageHostnameResolveNetwork: internal_api
554 ObjectStorageHostnameResolveNetwork: internal_api
555 CephStorageHostnameResolveNetwork: storage
556 description: Mapping of service_name -> network name. Typically set
557 via parameter_defaults in the resource registry.
562 - OS::TripleO::Services::CinderApi
563 - OS::TripleO::Services::CinderScheduler
564 - OS::TripleO::Services::CinderVolume
565 - OS::TripleO::Services::Keystone
566 - OS::TripleO::Services::GlanceApi
567 - OS::TripleO::Services::GlanceRegistry
568 - OS::TripleO::Services::HeatApi
569 - OS::TripleO::Services::HeatApiCfn
570 - OS::TripleO::Services::HeatApiCloudwatch
571 - OS::TripleO::Services::HeatEngine
572 - OS::TripleO::Services::NeutronDhcpAgent
573 - OS::TripleO::Services::NeutronL3Agent
574 - OS::TripleO::Services::NeutronMetadataAgent
575 - OS::TripleO::Services::NeutronServer
576 - OS::TripleO::Services::NeutronCorePlugin
577 - OS::TripleO::Services::NeutronOvsAgent
578 - OS::TripleO::Services::RabbitMQ
579 - OS::TripleO::Services::HAproxy
580 - OS::TripleO::Services::Keepalived
581 - OS::TripleO::Services::Memcached
582 - OS::TripleO::Services::Redis
583 - OS::TripleO::Services::NovaConductor
584 - OS::TripleO::Services::MongoDb
585 - OS::TripleO::Services::NovaApi
586 - OS::TripleO::Services::NovaScheduler
587 - OS::TripleO::Services::NovaConsoleauth
588 - OS::TripleO::Services::NovaVncproxy
589 - OS::TripleO::Services::Ntp
590 - OS::TripleO::Services::SwiftProxy
591 - OS::TripleO::Services::SwiftStorage
592 description: A list of service resources (configured in the Heat
593 resource_registry) which represent nested stacks
594 for each service that should get installed on the Controllers.
595 type: comma_delimited_list
599 - OS::TripleO::Services::NovaCompute
600 - OS::TripleO::Services::Ntp
601 description: A list of service resources (configured in the Heat
602 resource_registry) which represent nested stacks
603 for each service that should get installed on the Compute Nodes.
604 type: comma_delimited_list
606 # Block storage specific parameters
611 default: overcloud-full
613 OvercloudBlockStorageFlavor:
614 description: Flavor for block storage nodes to request when deploying.
618 - custom_constraint: nova.flavor
619 BlockStorageExtraConfig:
622 BlockStorage specific configuration to inject into the cluster. Same
623 structure as ExtraConfig.
625 BlockStorageSchedulerHints:
627 description: Optional scheduler hints to pass to nova
631 # Object storage specific parameters
635 OvercloudSwiftStorageFlavor:
636 description: Flavor for Swift storage nodes to request when deploying.
640 - custom_constraint: nova.flavor
642 default: overcloud-full
644 ObjectStorageExtraConfig:
647 ObjectStorage specific configuration to inject into the cluster. Same
648 structure as ExtraConfig.
650 ObjectStorageSchedulerHints:
652 description: Optional scheduler hints to pass to nova
654 ObjectStorageServices:
656 - OS::TripleO::Services::Ntp
657 - OS::TripleO::Services::SwiftStorage
658 description: A list of service resources (configured in the Heat
659 resource_registry) which represent nested stacks
660 for each service that should get installed on the ObjectStorage nodes.
661 Note this role currently only supports steps 2, 3 and 4 configuration.
662 type: comma_delimited_list
665 # Ceph storage specific parameters
670 default: overcloud-full
672 OvercloudCephStorageFlavor:
674 description: Flavor for Ceph storage nodes to request when deploying.
677 - custom_constraint: nova.flavor
678 CephStorageExtraConfig:
681 CephStorage specific configuration to inject into the cluster. Same
682 structure as ExtraConfig.
684 CephStorageSchedulerHints:
686 description: Optional scheduler hints to pass to nova
690 - OS::TripleO::Services::Ntp
691 description: A list of service resources (configured in the Heat
692 resource_registry) which represent nested stacks
693 for each service that should get installed on the CephStorage nodes.
694 type: comma_delimited_list
696 # Hostname format for each role
697 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
698 # and %stackname% is replaced with OS::stack_name in the template below.
699 # If you want to use the heat generated names, pass '' (empty string).
700 ControllerHostnameFormat:
702 description: Format for Controller node hostnames
703 default: '%stackname%-controller-%index%'
704 ComputeHostnameFormat:
706 description: Format for Compute node hostnames
707 default: '%stackname%-novacompute-%index%'
708 BlockStorageHostnameFormat:
710 description: Format for BlockStorage node hostnames
711 default: '%stackname%-blockstorage-%index%'
712 ObjectStorageHostnameFormat:
714 description: Format for SwiftStorage node hostnames
715 default: '%stackname%-objectstorage-%index%'
716 CephStorageHostnameFormat:
718 description: Format for CephStorage node hostnames
719 default: '%stackname%-cephstorage-%index%'
721 # Identifiers to trigger tasks on nodes
726 Setting to a previously unused value during stack-update will trigger
727 package update on all nodes
732 Setting this to a unique value will re-run any deployment tasks which
733 perform configuration on a Heat stack-update.
735 # If you want to remove a specific node from a resource group, you can pass
736 # the node name or id as a <Group>RemovalPolicies parameter, for example:
737 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
738 ControllerRemovalPolicies:
742 List of resources to be removed from ControllerResourceGroup when
743 doing an update which requires removal of specific resources.
744 ComputeRemovalPolicies:
748 List of resources to be removed from ComputeResourceGroup when
749 doing an update which requires removal of specific resources.
750 BlockStorageRemovalPolicies:
754 List of resources to be removed from BlockStorageResourceGroup when
755 doing an update which requires removal of specific resources.
756 ObjectStorageRemovalPolicies:
760 List of resources to be removed from ObjectStorageResourceGroup when
761 doing an update which requires removal of specific resources.
762 CephStorageRemovalPolicies:
766 List of resources to be removed from CephStorageResourceGroup when
767 doing an update which requires removal of specific resources.
771 description: Do not use deprecated params, they will be removed.
773 - controllerExtraConfig
778 HeatAuthEncryptionKey:
779 type: OS::Heat::RandomString
782 type: OS::Heat::RandomString
787 type: OS::Heat::RandomString
792 type: OS::TripleO::EndpointMap
794 CloudName: {get_param: CloudName}
795 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
796 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
797 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
798 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
799 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
800 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
801 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
802 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
803 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
804 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
805 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
806 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
807 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
808 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
809 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
811 ControllerServiceChain:
812 type: OS::TripleO::Services
815 Services: {get_param: ControllerServices}
816 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
819 type: OS::Heat::ResourceGroup
822 count: {get_param: ControllerCount}
823 removal_policies: {get_param: ControllerRemovalPolicies}
825 type: OS::TripleO::Controller
827 AdminPassword: {get_param: AdminPassword}
828 AodhPassword: {get_param: AodhPassword}
829 CeilometerBackend: {get_param: CeilometerBackend}
830 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
831 CeilometerPassword: {get_param: CeilometerPassword}
832 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
833 CloudDomain: {get_param: CloudDomain}
834 ControlVirtualInterface: {get_param: ControlVirtualInterface}
835 controllerExtraConfig: {get_param: controllerExtraConfig}
836 CorosyncIPv6: {get_param: CorosyncIPv6}
837 Debug: {get_param: Debug}
838 EnableFencing: {get_param: EnableFencing}
839 ManageFirewall: {get_param: ManageFirewall}
840 PurgeFirewallRules: {get_param: PurgeFirewallRules}
841 EnableGalera: {get_param: EnableGalera}
842 EnableCephStorage: {get_param: ControllerEnableCephStorage}
843 ExtraConfig: {get_param: ExtraConfig}
844 FencingConfig: {get_param: FencingConfig}
845 Flavor: {get_param: OvercloudControlFlavor}
846 GnocchiPassword: {get_param: GnocchiPassword}
847 GnocchiBackend: {get_param: GnocchiBackend}
848 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
849 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
850 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
851 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
852 HorizonSecret: {get_resource: HorizonSecret}
853 Image: {get_param: controllerImage}
854 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
855 InstanceNameTemplate: {get_param: InstanceNameTemplate}
856 KeyName: {get_param: KeyName}
857 MemcachedIPv6: {get_param: MemcachedIPv6}
858 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
859 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
860 MysqlMaxConnections: {get_param: MysqlMaxConnections}
861 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
862 NeutronTenantMtu: {get_param: NeutronTenantMtu}
863 NeutronPublicInterface: {get_param: NeutronPublicInterface}
864 NeutronPassword: {get_param: NeutronPassword}
865 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
866 NovaIPv6: {get_param: NovaIPv6}
867 NovaPassword: {get_param: NovaPassword}
868 PcsdPassword: {get_resource: PcsdPassword}
869 PublicVirtualInterface: {get_param: PublicVirtualInterface}
870 RabbitPassword: {get_param: RabbitPassword}
871 RabbitUserName: {get_param: RabbitUserName}
872 RabbitCookie: {get_attr: [RabbitCookie, value]}
873 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
874 RabbitClientPort: {get_param: RabbitClientPort}
875 RedisPassword: {get_param: RedisPassword}
876 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
877 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
878 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
879 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
880 SwiftHashSuffix: {get_param: SwiftHashSuffix}
881 SwiftMinPartHours: {get_param: SwiftMinPartHours}
882 SwiftPartPower: {get_param: SwiftPartPower}
883 SwiftReplicas: { get_param: SwiftReplicas}
884 TimeZone: {get_param: TimeZone}
885 ServiceNetMap: {get_param: ServiceNetMap}
886 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
887 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
888 UpdateIdentifier: {get_param: UpdateIdentifier}
891 template: {get_param: ControllerHostnameFormat}
893 '%stackname%': {get_param: 'OS::stack_name'}
895 ServerMetadata: {get_param: ServerMetadata}
896 SchedulerHints: {get_param: ControllerSchedulerHints}
897 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
900 type: OS::TripleO::Services
902 Services: {get_param: ComputeServices}
903 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
906 type: OS::Heat::ResourceGroup
909 count: {get_param: ComputeCount}
910 removal_policies: {get_param: ComputeRemovalPolicies}
912 type: OS::TripleO::Compute
914 AdminPassword: {get_param: AdminPassword}
915 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
916 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
917 CeilometerPassword: {get_param: CeilometerPassword}
918 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
919 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
920 Debug: {get_param: Debug}
921 ExtraConfig: {get_param: ExtraConfig}
922 Flavor: {get_param: OvercloudComputeFlavor}
923 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
924 Image: {get_param: NovaImage}
925 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
926 KeyName: {get_param: KeyName}
927 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
928 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
929 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
930 NeutronTenantMtu: {get_param: NeutronTenantMtu}
931 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
932 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
933 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
934 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
935 NeutronNetworkType: {get_param: NeutronNetworkType}
936 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
937 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
938 NeutronPassword: {get_param: NeutronPassword}
939 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
940 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
941 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
942 NeutronCorePlugin: {get_param: NeutronCorePlugin}
943 NeutronServicePlugins: {get_param: NeutronServicePlugins}
944 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
945 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
946 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
947 # L3 HA and Failover is not relevant for Computes, should be removed
948 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
949 NeutronL3HA: {get_param: NeutronL3HA}
950 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
951 NovaComputeDriver: {get_param: NovaComputeDriver}
952 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
953 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
954 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
955 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
956 NovaIPv6: {get_param: NovaIPv6}
957 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
958 NovaPassword: {get_param: NovaPassword}
959 NovaOVSBridge: {get_param: NovaOVSBridge}
960 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
961 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
962 RabbitPassword: {get_param: RabbitPassword}
963 RabbitUserName: {get_param: RabbitUserName}
964 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
965 RabbitClientPort: {get_param: RabbitClientPort}
966 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
967 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
968 ServiceNetMap: {get_param: ServiceNetMap}
969 TimeZone: {get_param: TimeZone}
970 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
971 UpdateIdentifier: {get_param: UpdateIdentifier}
974 template: {get_param: ComputeHostnameFormat}
976 '%stackname%': {get_param: 'OS::stack_name'}
977 CloudDomain: {get_param: CloudDomain}
978 ServerMetadata: {get_param: ServerMetadata}
979 SchedulerHints: {get_param: NovaComputeSchedulerHints}
981 ServiceConfigSettings: {get_attr: [ComputeServiceChain, config_settings]}
985 type: OS::Heat::ResourceGroup
988 count: {get_param: BlockStorageCount}
989 removal_policies: {get_param: BlockStorageRemovalPolicies}
991 type: OS::TripleO::BlockStorage
993 Debug: {get_param: Debug}
994 Image: {get_param: BlockStorageImage}
995 CinderISCSIHelper: {get_param: CinderISCSIHelper}
996 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
997 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
998 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
999 CinderPassword: {get_param: CinderPassword}
1000 KeyName: {get_param: KeyName}
1001 Flavor: {get_param: OvercloudBlockStorageFlavor}
1002 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1003 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1004 RabbitPassword: {get_param: RabbitPassword}
1005 RabbitUserName: {get_param: RabbitUserName}
1006 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1007 RabbitClientPort: {get_param: RabbitClientPort}
1008 TimeZone: {get_param: TimeZone}
1009 NtpServer: {get_param: NtpServer}
1010 UpdateIdentifier: {get_param: UpdateIdentifier}
1013 template: {get_param: BlockStorageHostnameFormat}
1015 '%stackname%': {get_param: 'OS::stack_name'}
1016 ServiceNetMap: {get_param: ServiceNetMap}
1017 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1018 ExtraConfig: {get_param: ExtraConfig}
1019 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1020 CloudDomain: {get_param: CloudDomain}
1021 ServerMetadata: {get_param: ServerMetadata}
1022 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1023 NodeIndex: '%index%'
1025 ObjectStorageServiceChain:
1026 type: OS::TripleO::Services
1028 Services: {get_param: ObjectStorageServices}
1029 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1032 type: OS::Heat::ResourceGroup
1033 depends_on: Networks
1035 count: {get_param: ObjectStorageCount}
1036 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1038 type: OS::TripleO::ObjectStorage
1040 KeyName: {get_param: KeyName}
1041 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1042 HashSuffix: {get_param: SwiftHashSuffix}
1043 MinPartHours: {get_param: SwiftMinPartHours}
1044 PartPower: {get_param: SwiftPartPower}
1045 Image: {get_param: SwiftStorageImage}
1046 Replicas: { get_param: SwiftReplicas}
1047 TimeZone: {get_param: TimeZone}
1048 UpdateIdentifier: {get_param: UpdateIdentifier}
1049 ServiceNetMap: {get_param: ServiceNetMap}
1052 template: {get_param: ObjectStorageHostnameFormat}
1054 '%stackname%': {get_param: 'OS::stack_name'}
1055 ExtraConfig: {get_param: ExtraConfig}
1056 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1057 CloudDomain: {get_param: CloudDomain}
1058 ServerMetadata: {get_param: ServerMetadata}
1059 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1060 NodeIndex: '%index%'
1061 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, config_settings]}
1063 CephStorageServiceChain:
1064 type: OS::TripleO::Services
1066 Services: {get_param: CephStorageServices}
1067 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1070 type: OS::Heat::ResourceGroup
1071 depends_on: Networks
1073 count: {get_param: CephStorageCount}
1074 removal_policies: {get_param: CephStorageRemovalPolicies}
1076 type: OS::TripleO::CephStorage
1078 Image: {get_param: CephStorageImage}
1079 KeyName: {get_param: KeyName}
1080 Flavor: {get_param: OvercloudCephStorageFlavor}
1081 ServiceNetMap: {get_param: ServiceNetMap}
1082 TimeZone: {get_param: TimeZone}
1083 UpdateIdentifier: {get_param: UpdateIdentifier}
1086 template: {get_param: CephStorageHostnameFormat}
1088 '%stackname%': {get_param: 'OS::stack_name'}
1089 ExtraConfig: {get_param: ExtraConfig}
1090 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1091 CloudDomain: {get_param: CloudDomain}
1092 ServerMetadata: {get_param: ServerMetadata}
1093 SchedulerHints: {get_param: CephStorageSchedulerHints}
1094 NodeIndex: '%index%'
1095 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1097 ControllerIpListMap:
1098 type: OS::TripleO::Network::Ports::NetIpListMap
1100 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1101 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1102 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1103 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1104 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1105 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1106 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1109 type: OS::TripleO::AllNodes::SoftwareConfig
1111 compute_hosts: {get_attr: [Compute, hosts_entry]}
1112 controller_hosts: {get_attr: [Controller, hosts_entry]}
1113 controller_ips: {get_attr: [Controller, ip_address]}
1114 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1115 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1116 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1117 controller_names: {get_attr: [Controller, hostname]}
1118 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1119 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1120 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1121 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1122 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1123 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1124 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1125 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1126 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1127 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1128 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1129 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1130 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1131 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1132 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1133 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1134 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1135 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1136 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1137 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1138 DeployIdentifier: {get_param: DeployIdentifier}
1139 UpdateIdentifier: {get_param: UpdateIdentifier}
1142 type: OS::Heat::RandomString
1146 MysqlClusterUniquePart:
1147 type: OS::Heat::RandomString
1152 type: OS::Heat::RandomString
1155 salt: {get_param: RabbitCookieSalt}
1157 # creates the network architecture
1159 type: OS::TripleO::Network
1162 type: OS::Neutron::Port
1163 depends_on: Networks
1165 name: control_virtual_ip
1166 network: {get_param: NeutronControlPlaneID}
1167 fixed_ips: {get_param: ControlFixedIPs}
1168 replacement_policy: AUTO
1171 depends_on: Networks
1172 type: OS::TripleO::Network::Ports::RedisVipPort
1174 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1175 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1176 PortName: redis_virtual_ip
1177 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1180 # The public VIP is on the External net, falls back to ctlplane
1182 depends_on: Networks
1183 type: OS::TripleO::Network::Ports::ExternalVipPort
1185 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1186 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1187 PortName: public_virtual_ip
1188 FixedIPs: {get_param: PublicVirtualFixedIPs}
1190 InternalApiVirtualIP:
1191 depends_on: Networks
1192 type: OS::TripleO::Network::Ports::InternalApiVipPort
1194 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1195 PortName: internal_api_virtual_ip
1196 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1199 depends_on: Networks
1200 type: OS::TripleO::Network::Ports::StorageVipPort
1202 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1203 PortName: storage_virtual_ip
1204 FixedIPs: {get_param: StorageVirtualFixedIPs}
1206 StorageMgmtVirtualIP:
1207 depends_on: Networks
1208 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1210 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1211 PortName: storage_management_virtual_ip
1212 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1215 type: OS::TripleO::Network::Ports::NetVipMap
1217 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1218 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1219 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1220 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1221 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1222 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1223 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1224 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1225 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1226 # No tenant or management VIP required
1229 type: OS::TripleO::VipConfig
1232 type: OS::Heat::StructuredDeployments
1235 config: {get_resource: VipConfig}
1236 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1238 # service VIP mappings
1239 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1240 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1241 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1242 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1243 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1244 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1245 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1246 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1247 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1248 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1249 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1250 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1251 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1252 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1253 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1254 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1255 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1256 # direct configuration of Virtual IPs for each network
1257 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1258 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1259 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1260 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1261 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1262 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1264 ControllerBootstrapNodeConfig:
1265 type: OS::TripleO::BootstrapNode::SoftwareConfig
1267 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1268 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1270 ControllerBootstrapNodeDeployment:
1271 type: OS::Heat::StructuredDeployments
1273 name: ControllerBootstrapNodeDeployment
1274 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1275 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1277 ControllerSwiftDeployment:
1278 type: OS::Heat::StructuredDeployments
1280 name: ControllerSwiftDeployment
1281 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1282 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1284 ObjectStorageSwiftDeployment:
1285 type: OS::Heat::StructuredDeployments
1287 name: ObjectStorageSwiftDeployment
1288 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1289 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1291 SwiftDevicesAndProxyConfig:
1292 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1294 controller_swift_devices: {get_attr: [Controller, swift_device]}
1295 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1296 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1298 ComputeCephDeployment:
1299 type: OS::Heat::StructuredDeployments
1301 name: ComputeCephDeployment
1302 config: {get_attr: [CephClusterConfig, config_id]}
1303 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1305 ControllerCephDeployment:
1306 type: OS::Heat::StructuredDeployments
1308 name: ControllerCephDeployment
1309 config: {get_attr: [CephClusterConfig, config_id]}
1310 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1312 CephStorageCephDeployment:
1313 type: OS::Heat::StructuredDeployments
1315 name: CephStorageCephDeployment
1316 config: {get_attr: [CephClusterConfig, config_id]}
1317 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1320 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1322 ceph_storage_count: {get_param: CephStorageCount}
1323 ceph_fsid: {get_param: CephClusterFSID}
1324 ceph_mon_key: {get_param: CephMonKey}
1325 ceph_admin_key: {get_param: CephAdminKey}
1326 ceph_client_key: {get_param: CephClientKey}
1327 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1328 ceph_mon_names: {get_attr: [Controller, hostname]}
1329 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1331 ControllerAllNodesDeployment:
1332 type: OS::Heat::StructuredDeployments
1334 name: ControllerAllNodesDeployment
1335 config: {get_attr: [allNodesConfig, config_id]}
1336 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1338 ComputeAllNodesDeployment:
1339 type: OS::Heat::StructuredDeployments
1341 name: ComputeAllNodesDeployment
1342 config: {get_attr: [allNodesConfig, config_id]}
1343 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1345 BlockStorageAllNodesDeployment:
1346 type: OS::Heat::StructuredDeployments
1348 name: BlockStorageAllNodesDeployment
1349 config: {get_attr: [allNodesConfig, config_id]}
1350 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1352 ObjectStorageAllNodesDeployment:
1353 type: OS::Heat::StructuredDeployments
1355 name: ObjectStorageAllNodesDeployment
1356 config: {get_attr: [allNodesConfig, config_id]}
1357 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1359 CephStorageAllNodesDeployment:
1360 type: OS::Heat::StructuredDeployments
1362 name: CephStorageAllNodesDeployment
1363 config: {get_attr: [allNodesConfig, config_id]}
1364 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1366 # All Nodes Validations
1367 AllNodesValidationConfig:
1368 type: OS::TripleO::AllNodes::Validation
1373 - - {get_attr: [Controller, resource.0.external_ip_address]}
1374 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1375 - {get_attr: [Controller, resource.0.storage_ip_address]}
1376 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1377 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1379 ControllerAllNodesValidationDeployment:
1380 type: OS::Heat::StructuredDeployments
1381 depends_on: ControllerAllNodesDeployment
1383 name: ControllerAllNodesValidationDeployment
1384 config: {get_resource: AllNodesValidationConfig}
1385 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1387 ComputeAllNodesValidationDeployment:
1388 type: OS::Heat::StructuredDeployments
1389 depends_on: ComputeAllNodesDeployment
1391 name: ComputeAllNodesValidationDeployment
1392 config: {get_resource: AllNodesValidationConfig}
1393 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1395 BlockStorageAllNodesValidationDeployment:
1396 type: OS::Heat::StructuredDeployments
1397 depends_on: BlockStorageAllNodesDeployment
1399 name: BlockStorageAllNodesValidationDeployment
1400 config: {get_resource: AllNodesValidationConfig}
1401 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1403 ObjectStorageAllNodesValidationDeployment:
1404 type: OS::Heat::StructuredDeployments
1405 depends_on: ObjectStorageAllNodesDeployment
1407 name: ObjectStorageAllNodesValidationDeployment
1408 config: {get_resource: AllNodesValidationConfig}
1409 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1411 CephStorageAllNodesValidationDeployment:
1412 type: OS::Heat::StructuredDeployments
1413 depends_on: CephStorageAllNodesDeployment
1415 name: CephStorageAllNodesValidationDeployment
1416 config: {get_resource: AllNodesValidationConfig}
1417 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1420 type: OS::TripleO::Tasks::UpdateWorkflow
1422 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1423 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1424 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1425 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1426 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1428 deploy_identifier: {get_param: DeployIdentifier}
1429 update_identifier: {get_param: UpdateIdentifier}
1431 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1432 # the nested template may configure each role differently (or not at all)
1433 AllNodesExtraConfig:
1434 type: OS::TripleO::AllNodesExtraConfig
1437 - ComputeAllNodesValidationDeployment
1438 - BlockStorageAllNodesValidationDeployment
1439 - ObjectStorageAllNodesValidationDeployment
1440 - CephStorageAllNodesValidationDeployment
1441 - ControllerAllNodesValidationDeployment
1443 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1444 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1445 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1446 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1447 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1449 # Nested stack deployment runs after all other controller deployments
1450 ControllerNodesPostDeployment:
1451 type: OS::TripleO::ControllerPostDeployment
1452 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1454 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1455 NodeConfigIdentifiers:
1456 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1457 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1458 deployment_identifier: {get_param: DeployIdentifier}
1459 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1461 ComputeNodesPostDeployment:
1462 type: OS::TripleO::ComputePostDeployment
1463 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1465 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1466 NodeConfigIdentifiers:
1467 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1468 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1469 deployment_identifier: {get_param: DeployIdentifier}
1470 StepConfig: {get_attr: [ComputeServiceChain, step_config]}
1472 ObjectStorageNodesPostDeployment:
1473 type: OS::TripleO::ObjectStoragePostDeployment
1474 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1476 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1477 NodeConfigIdentifiers:
1478 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1479 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1480 deployment_identifier: {get_param: DeployIdentifier}
1481 StepConfig: {get_attr: [ObjectStorageServiceChain, step_config]}
1483 BlockStorageNodesPostDeployment:
1484 type: OS::TripleO::BlockStoragePostDeployment
1485 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1487 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1488 NodeConfigIdentifiers:
1489 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1490 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1491 deployment_identifier: {get_param: DeployIdentifier}
1493 CephStorageNodesPostDeployment:
1494 type: OS::TripleO::CephStoragePostDeployment
1495 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1497 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1498 NodeConfigIdentifiers:
1499 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1500 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1501 deployment_identifier: {get_param: DeployIdentifier}
1502 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1506 description: URL for the Overcloud Keystone service
1507 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1509 description: Keystone Admin VIP endpoint
1510 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1512 description: Controller VIP for public API endpoints
1513 value: {get_attr: [VipMap, net_ip_map, external]}
1515 description: VIP for Aodh API internal endpoint
1516 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1517 CeilometerInternalVip:
1518 description: VIP for Ceilometer API internal endpoint
1519 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1521 description: VIP for Cinder API internal endpoint
1522 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1524 description: VIP for Glance API internal endpoint
1525 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1527 description: VIP for Gnocchi API internal endpoint
1528 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1530 description: VIP for Heat API internal endpoint
1531 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1532 KeystoneInternalVip:
1533 description: VIP for Keystone API internal endpoint
1534 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1536 description: VIP for Neutron API internal endpoint
1537 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1539 description: VIP for Nova API internal endpoint
1540 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1542 description: VIP for Sahara API internal endpoint
1543 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1545 description: VIP for Swift Proxy internal endpoint
1546 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1549 Mapping of the resources with the needed info for their endpoints.
1550 This includes the protocol used, the IP, port and also a full
1551 representation of the URI.
1552 value: {get_attr: [EndpointMap, endpoint_map]}
1555 The content that should be appended to your /etc/hosts if you want to get
1556 hostname-based access to the deployed nodes (useful for testing without
1558 value: {get_attr: [allNodesConfig, hosts_entries]}