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.
226 description: Comma-separated list of ntp servers
227 type: comma_delimited_list
228 PublicVirtualFixedIPs:
231 Control the IP allocation for the PublicVirtualInterface port. E.g.
232 [{'ip_address':'1.2.3.4'}]
237 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
240 description: The username for RabbitMQ
243 description: The password for RabbitMQ
249 Rabbit client subscriber parameter to specify
250 an SSL connection to the RabbitMQ host.
254 description: Set rabbit subscriber port, change this if using SSL
257 description: The password for Redis
260 SnmpdReadonlyUserName:
261 default: ro_snmp_user
262 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
264 SnmpdReadonlyUserPassword:
265 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
268 StorageVirtualFixedIPs:
271 Control the IP allocation for the StorageVirtualInterface port. E.g.
272 [{'ip_address':'1.2.3.4'}]
274 StorageMgmtVirtualFixedIPs:
277 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
278 [{'ip_address':'1.2.3.4'}]
282 description: The timezone to be set on nodes.
285 default: 'localdomain'
288 The DNS domain used for the hosts. This should match the dhcp_domain
289 configured in the Undercloud neutron. Defaults to localdomain.
293 Extra properties or metadata passed to Nova for the created nodes in
294 the overcloud. It's accessible via the Nova metadata API.
297 # Controller-specific params
298 CinderLVMLoopDeviceSize:
300 description: The size of the loopback file used by the cinder LVM driver.
303 description: The password for the cinder service account, used by cinder-api.
308 description: The iSCSI helper to use with cinder.
315 controllerExtraConfig:
318 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
322 default: overcloud-full
324 - custom_constraint: glance.image
325 OvercloudControlFlavor:
326 description: Flavor for control nodes to request when deploying.
330 - custom_constraint: nova.flavor
331 ControlVirtualInterface:
333 description: Interface where virtual ip will be assigned.
337 description: Whether to enable fencing in Pacemaker or not.
341 description: Whether to use Galera instead of regular MariaDB.
343 ControllerEnableCephStorage:
345 description: Whether to deploy Ceph Storage (OSD) on the Controller
347 ControllerEnableSwiftStorage:
349 description: Whether to enable Swift Storage on the Controller
351 ControllerSchedulerHints:
353 description: Optional scheduler hints to pass to nova
358 Additional configuration to inject into the cluster. The format required
359 may be implementation specific, e.g puppet hieradata. Any role specific
360 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
365 Pacemaker fencing configuration. The JSON should have
366 the following structure:
370 "agent": "AGENT_NAME",
371 "host_mac": "HOST_MAC_ADDRESS",
372 "params": {"PARAM_NAME": "PARAM_VALUE"}
380 "agent": "fence_xvm",
381 "host_mac": "52:54:00:aa:bb:cc",
383 "multicast_address": "225.0.0.12",
384 "port": "baremetal_0",
386 "manage_key_file": true,
387 "key_file": "/etc/fence_xvm.key",
388 "key_file_password": "abcdef"
396 description: The short name of the Gnocchi backend to use. Should be one
397 of swift, rbd or file
400 - allowed_values: ['swift', 'file', 'rbd']
401 GnocchiIndexerBackend:
403 description: The short name of the Gnocchi indexer backend to use.
406 description: The password for the gnocchi service account.
409 InstanceNameTemplate:
410 default: 'instance-%08x'
411 description: Template string to be used to generate instance names
415 description: Whether to manage IPtables rules.
419 description: Whether IPtables rules should be purged before setting up the ones.
421 MysqlInnodbBufferPoolSize:
423 Specifies the size of the buffer pool in megabytes. Setting to
424 zero should be interpreted as "no value" and will defer to the
429 description: Configures MySQL max_connections config setting
432 PublicVirtualInterface:
435 Specifies the interface where the public-facing virtual ip will be assigned.
436 This should be int_public when a VLAN is being used.
439 description: A random string to be used as a salt when hashing to determine mappings in the ring.
444 description: Value of mount_check in Swift account/container/object -server.conf
449 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
452 description: Partition Power to use when building Swift rings
457 description: How many replicas to use in the swift rings.
459 # Compute-specific params
460 CeilometerComputeAgent:
461 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
465 - allowed_values: ['', Present]
469 HypervisorNeutronPhysicalBridge:
472 An OVS bridge to create on each hypervisor. This defaults to br-ex the
473 same as the control plane nodes, as we have a uniform configuration of
474 the openvswitch agent. Typically should not need to be changed.
476 HypervisorNeutronPublicInterface:
478 description: What interface to add to the HypervisorNeutronPhysicalBridge.
480 NeutronNetworkVLANRanges:
481 default: 'datacentre:1:1000'
483 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
484 Neutron documentation for permitted values. Defaults to permitting any
485 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
486 type: comma_delimited_list
489 default: libvirt.LibvirtDriver
490 NovaComputeExtraConfig:
493 NovaCompute specific configuration to inject into the cluster. Same
494 structure as ExtraConfig.
496 NovaComputeLibvirtType:
499 NovaComputeLibvirtVifDriver:
501 description: Libvirt VIF driver configuration for the network
503 NovaComputeSchedulerHints:
505 description: Optional scheduler hints to pass to nova
507 NovaEnableRbdBackend:
509 description: Whether to enable or not the Rbd backend for Nova
513 default: overcloud-full
515 - custom_constraint: glance.image
518 description: Name of integration bridge used by Open vSwitch
520 NovaSecurityGroupAPI:
522 description: The full class name of the security API class
524 OvercloudComputeFlavor:
525 description: Use this flavor
529 - custom_constraint: nova.flavor
532 NeutronTenantNetwork: tenant
533 CeilometerApiNetwork: internal_api
534 AodhApiNetwork: internal_api
535 GnocchiApiNetwork: internal_api
536 MongoDbNetwork: internal_api
537 CinderApiNetwork: internal_api
538 CinderIscsiNetwork: storage
539 GlanceApiNetwork: storage
540 GlanceRegistryNetwork: internal_api
541 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
542 KeystonePublicApiNetwork: internal_api
543 NeutronApiNetwork: internal_api
544 HeatApiNetwork: internal_api
545 NovaApiNetwork: internal_api
546 NovaMetadataNetwork: internal_api
547 NovaVncProxyNetwork: internal_api
548 SwiftMgmtNetwork: storage_mgmt
549 SwiftProxyNetwork: storage
550 SaharaApiNetwork: internal_api
551 HorizonNetwork: internal_api
552 MemcachedNetwork: internal_api
553 RabbitMqNetwork: internal_api
554 RedisNetwork: internal_api
555 MysqlNetwork: internal_api
556 CephClusterNetwork: storage_mgmt
557 CephPublicNetwork: storage
558 ControllerHostnameResolveNetwork: internal_api
559 ComputeHostnameResolveNetwork: internal_api
560 BlockStorageHostnameResolveNetwork: internal_api
561 ObjectStorageHostnameResolveNetwork: internal_api
562 CephStorageHostnameResolveNetwork: storage
563 description: Mapping of service_name -> network name. Typically set
564 via parameter_defaults in the resource registry.
569 - OS::TripleO::Services::CinderApi
570 - OS::TripleO::Services::CinderScheduler
571 - OS::TripleO::Services::CinderVolume
572 - OS::TripleO::Services::Keystone
573 - OS::TripleO::Services::GlanceApi
574 - OS::TripleO::Services::GlanceRegistry
575 - OS::TripleO::Services::HeatApi
576 - OS::TripleO::Services::HeatApiCfn
577 - OS::TripleO::Services::HeatApiCloudwatch
578 - OS::TripleO::Services::HeatEngine
579 - OS::TripleO::Services::NeutronDhcpAgent
580 - OS::TripleO::Services::NeutronL3Agent
581 - OS::TripleO::Services::NeutronMetadataAgent
582 - OS::TripleO::Services::NeutronServer
583 - OS::TripleO::Services::NeutronCorePlugin
584 - OS::TripleO::Services::NeutronOvsAgent
585 - OS::TripleO::Services::RabbitMQ
586 - OS::TripleO::Services::HAproxy
587 - OS::TripleO::Services::Keepalived
588 - OS::TripleO::Services::Memcached
589 - OS::TripleO::Services::SwiftProxy
590 - OS::TripleO::Services::Redis
591 - OS::TripleO::Services::NovaConductor
592 - OS::TripleO::Services::MongoDb
593 description: A list of service resources (configured in the Heat
594 resource_registry) which represent nested stacks
595 for each service that should get installed on the Controllers.
596 type: comma_delimited_list
600 description: A list of service resources (configured in the Heat
601 resource_registry) which represent nested stacks
602 for each service that should get installed on the Compute Nodes.
603 type: comma_delimited_list
605 # Block storage specific parameters
610 default: overcloud-full
612 OvercloudBlockStorageFlavor:
613 description: Flavor for block storage nodes to request when deploying.
617 - custom_constraint: nova.flavor
618 BlockStorageExtraConfig:
621 BlockStorage specific configuration to inject into the cluster. Same
622 structure as ExtraConfig.
624 BlockStorageSchedulerHints:
626 description: Optional scheduler hints to pass to nova
630 # Object storage specific parameters
634 OvercloudSwiftStorageFlavor:
635 description: Flavor for Swift storage nodes to request when deploying.
639 - custom_constraint: nova.flavor
641 default: overcloud-full
643 ObjectStorageExtraConfig:
646 ObjectStorage specific configuration to inject into the cluster. Same
647 structure as ExtraConfig.
649 ObjectStorageSchedulerHints:
651 description: Optional scheduler hints to pass to nova
653 ObjectStorageServices:
655 description: A list of service resources (configured in the Heat
656 resource_registry) which represent nested stacks
657 for each service that should get installed on the ObjectStorage nodes.
658 Note this role currently only supports steps 2, 3 and 4 configuration.
659 type: comma_delimited_list
662 # Ceph storage specific parameters
667 default: overcloud-full
669 OvercloudCephStorageFlavor:
671 description: Flavor for Ceph storage nodes to request when deploying.
674 - custom_constraint: nova.flavor
675 CephStorageExtraConfig:
678 CephStorage specific configuration to inject into the cluster. Same
679 structure as ExtraConfig.
681 CephStorageSchedulerHints:
683 description: Optional scheduler hints to pass to nova
687 description: A list of service resources (configured in the Heat
688 resource_registry) which represent nested stacks
689 for each service that should get installed on the CephStorage nodes.
690 type: comma_delimited_list
692 # Hostname format for each role
693 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
694 # and %stackname% is replaced with OS::stack_name in the template below.
695 # If you want to use the heat generated names, pass '' (empty string).
696 ControllerHostnameFormat:
698 description: Format for Controller node hostnames
699 default: '%stackname%-controller-%index%'
700 ComputeHostnameFormat:
702 description: Format for Compute node hostnames
703 default: '%stackname%-novacompute-%index%'
704 BlockStorageHostnameFormat:
706 description: Format for BlockStorage node hostnames
707 default: '%stackname%-blockstorage-%index%'
708 ObjectStorageHostnameFormat:
710 description: Format for SwiftStorage node hostnames
711 default: '%stackname%-objectstorage-%index%'
712 CephStorageHostnameFormat:
714 description: Format for CephStorage node hostnames
715 default: '%stackname%-cephstorage-%index%'
717 # Identifiers to trigger tasks on nodes
722 Setting to a previously unused value during stack-update will trigger
723 package update on all nodes
728 Setting this to a unique value will re-run any deployment tasks which
729 perform configuration on a Heat stack-update.
731 # If you want to remove a specific node from a resource group, you can pass
732 # the node name or id as a <Group>RemovalPolicies parameter, for example:
733 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
734 ControllerRemovalPolicies:
738 List of resources to be removed from ControllerResourceGroup when
739 doing an update which requires removal of specific resources.
740 ComputeRemovalPolicies:
744 List of resources to be removed from ComputeResourceGroup when
745 doing an update which requires removal of specific resources.
746 BlockStorageRemovalPolicies:
750 List of resources to be removed from BlockStorageResourceGroup when
751 doing an update which requires removal of specific resources.
752 ObjectStorageRemovalPolicies:
756 List of resources to be removed from ObjectStorageResourceGroup when
757 doing an update which requires removal of specific resources.
758 CephStorageRemovalPolicies:
762 List of resources to be removed from CephStorageResourceGroup when
763 doing an update which requires removal of specific resources.
767 description: Do not use deprecated params, they will be removed.
769 - controllerExtraConfig
774 HeatAuthEncryptionKey:
775 type: OS::Heat::RandomString
778 type: OS::Heat::RandomString
783 type: OS::Heat::RandomString
788 type: OS::TripleO::EndpointMap
790 CloudName: {get_param: CloudName}
791 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
792 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
793 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
794 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
795 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
796 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
797 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
798 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
799 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
800 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
801 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
802 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
803 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
804 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
805 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
807 ControllerServiceChain:
808 type: OS::TripleO::Services
811 Services: {get_param: ControllerServices}
812 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
815 type: OS::Heat::ResourceGroup
818 count: {get_param: ControllerCount}
819 removal_policies: {get_param: ControllerRemovalPolicies}
821 type: OS::TripleO::Controller
823 AdminPassword: {get_param: AdminPassword}
824 AodhPassword: {get_param: AodhPassword}
825 CeilometerBackend: {get_param: CeilometerBackend}
826 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
827 CeilometerPassword: {get_param: CeilometerPassword}
828 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
829 CloudDomain: {get_param: CloudDomain}
830 ControlVirtualInterface: {get_param: ControlVirtualInterface}
831 controllerExtraConfig: {get_param: controllerExtraConfig}
832 CorosyncIPv6: {get_param: CorosyncIPv6}
833 Debug: {get_param: Debug}
834 EnableFencing: {get_param: EnableFencing}
835 ManageFirewall: {get_param: ManageFirewall}
836 PurgeFirewallRules: {get_param: PurgeFirewallRules}
837 EnableGalera: {get_param: EnableGalera}
838 EnableCephStorage: {get_param: ControllerEnableCephStorage}
839 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
840 ExtraConfig: {get_param: ExtraConfig}
841 FencingConfig: {get_param: FencingConfig}
842 Flavor: {get_param: OvercloudControlFlavor}
843 GnocchiPassword: {get_param: GnocchiPassword}
844 GnocchiBackend: {get_param: GnocchiBackend}
845 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
846 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
847 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
848 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
849 HorizonSecret: {get_resource: HorizonSecret}
850 Image: {get_param: controllerImage}
851 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
852 InstanceNameTemplate: {get_param: InstanceNameTemplate}
853 KeyName: {get_param: KeyName}
854 MemcachedIPv6: {get_param: MemcachedIPv6}
855 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
856 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
857 MysqlMaxConnections: {get_param: MysqlMaxConnections}
858 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
859 NeutronTenantMtu: {get_param: NeutronTenantMtu}
860 NeutronPublicInterface: {get_param: NeutronPublicInterface}
861 NeutronPassword: {get_param: NeutronPassword}
862 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
863 NovaIPv6: {get_param: NovaIPv6}
864 NovaPassword: {get_param: NovaPassword}
865 NtpServer: {get_param: NtpServer}
866 PcsdPassword: {get_resource: PcsdPassword}
867 PublicVirtualInterface: {get_param: PublicVirtualInterface}
868 RabbitPassword: {get_param: RabbitPassword}
869 RabbitUserName: {get_param: RabbitUserName}
870 RabbitCookie: {get_attr: [RabbitCookie, value]}
871 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
872 RabbitClientPort: {get_param: RabbitClientPort}
873 RedisPassword: {get_param: RedisPassword}
874 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
875 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
876 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
877 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
878 SwiftHashSuffix: {get_param: SwiftHashSuffix}
879 SwiftMountCheck: {get_param: SwiftMountCheck}
880 SwiftMinPartHours: {get_param: SwiftMinPartHours}
881 SwiftPartPower: {get_param: SwiftPartPower}
882 SwiftReplicas: { get_param: SwiftReplicas}
883 TimeZone: {get_param: TimeZone}
884 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
885 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
886 ServiceNetMap: {get_param: ServiceNetMap}
887 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
888 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
889 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
890 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
891 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
892 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
893 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
894 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
895 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
896 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
897 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
898 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
899 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
900 UpdateIdentifier: {get_param: UpdateIdentifier}
903 template: {get_param: ControllerHostnameFormat}
905 '%stackname%': {get_param: 'OS::stack_name'}
907 ServerMetadata: {get_param: ServerMetadata}
908 SchedulerHints: {get_param: ControllerSchedulerHints}
909 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
912 type: OS::TripleO::Services
914 Services: {get_param: ComputeServices}
915 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
918 type: OS::Heat::ResourceGroup
921 count: {get_param: ComputeCount}
922 removal_policies: {get_param: ComputeRemovalPolicies}
924 type: OS::TripleO::Compute
926 AdminPassword: {get_param: AdminPassword}
927 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
928 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
929 CeilometerPassword: {get_param: CeilometerPassword}
930 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
931 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
932 Debug: {get_param: Debug}
933 ExtraConfig: {get_param: ExtraConfig}
934 Flavor: {get_param: OvercloudComputeFlavor}
935 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
936 Image: {get_param: NovaImage}
937 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
938 KeyName: {get_param: KeyName}
939 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
940 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
941 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
942 NeutronTenantMtu: {get_param: NeutronTenantMtu}
943 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
944 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
945 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
946 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
947 NeutronNetworkType: {get_param: NeutronNetworkType}
948 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
949 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
950 NeutronPassword: {get_param: NeutronPassword}
951 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
952 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
953 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
954 NeutronCorePlugin: {get_param: NeutronCorePlugin}
955 NeutronServicePlugins: {get_param: NeutronServicePlugins}
956 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
957 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
958 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
959 # L3 HA and Failover is not relevant for Computes, should be removed
960 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
961 NeutronL3HA: {get_param: NeutronL3HA}
962 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
963 NovaComputeDriver: {get_param: NovaComputeDriver}
964 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
965 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
966 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
967 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
968 NovaIPv6: {get_param: NovaIPv6}
969 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
970 NovaPassword: {get_param: NovaPassword}
971 NovaOVSBridge: {get_param: NovaOVSBridge}
972 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
973 NtpServer: {get_param: NtpServer}
974 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
975 RabbitPassword: {get_param: RabbitPassword}
976 RabbitUserName: {get_param: RabbitUserName}
977 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
978 RabbitClientPort: {get_param: RabbitClientPort}
979 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
980 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
981 ServiceNetMap: {get_param: ServiceNetMap}
982 TimeZone: {get_param: TimeZone}
983 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
984 UpdateIdentifier: {get_param: UpdateIdentifier}
987 template: {get_param: ComputeHostnameFormat}
989 '%stackname%': {get_param: 'OS::stack_name'}
990 CloudDomain: {get_param: CloudDomain}
991 ServerMetadata: {get_param: ServerMetadata}
992 SchedulerHints: {get_param: NovaComputeSchedulerHints}
994 ServiceConfigSettings: {get_attr: [ComputeServiceChain, config_settings]}
998 type: OS::Heat::ResourceGroup
1001 count: {get_param: BlockStorageCount}
1002 removal_policies: {get_param: BlockStorageRemovalPolicies}
1004 type: OS::TripleO::BlockStorage
1006 Debug: {get_param: Debug}
1007 Image: {get_param: BlockStorageImage}
1008 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1009 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1010 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1011 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1012 CinderPassword: {get_param: CinderPassword}
1013 KeyName: {get_param: KeyName}
1014 Flavor: {get_param: OvercloudBlockStorageFlavor}
1015 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1016 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1017 RabbitPassword: {get_param: RabbitPassword}
1018 RabbitUserName: {get_param: RabbitUserName}
1019 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1020 RabbitClientPort: {get_param: RabbitClientPort}
1021 TimeZone: {get_param: TimeZone}
1022 NtpServer: {get_param: NtpServer}
1023 UpdateIdentifier: {get_param: UpdateIdentifier}
1026 template: {get_param: BlockStorageHostnameFormat}
1028 '%stackname%': {get_param: 'OS::stack_name'}
1029 ServiceNetMap: {get_param: ServiceNetMap}
1030 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1031 ExtraConfig: {get_param: ExtraConfig}
1032 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1033 CloudDomain: {get_param: CloudDomain}
1034 ServerMetadata: {get_param: ServerMetadata}
1035 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1036 NodeIndex: '%index%'
1038 ObjectStorageServiceChain:
1039 type: OS::TripleO::Services
1041 Services: {get_param: ObjectStorageServices}
1042 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1045 type: OS::Heat::ResourceGroup
1046 depends_on: Networks
1048 count: {get_param: ObjectStorageCount}
1049 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1051 type: OS::TripleO::ObjectStorage
1053 KeyName: {get_param: KeyName}
1054 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1055 HashSuffix: {get_param: SwiftHashSuffix}
1056 MountCheck: {get_param: SwiftMountCheck}
1057 MinPartHours: {get_param: SwiftMinPartHours}
1058 PartPower: {get_param: SwiftPartPower}
1059 Image: {get_param: SwiftStorageImage}
1060 Replicas: { get_param: SwiftReplicas}
1061 TimeZone: {get_param: TimeZone}
1062 NtpServer: {get_param: NtpServer}
1063 UpdateIdentifier: {get_param: UpdateIdentifier}
1064 ServiceNetMap: {get_param: ServiceNetMap}
1067 template: {get_param: ObjectStorageHostnameFormat}
1069 '%stackname%': {get_param: 'OS::stack_name'}
1070 ExtraConfig: {get_param: ExtraConfig}
1071 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1072 CloudDomain: {get_param: CloudDomain}
1073 ServerMetadata: {get_param: ServerMetadata}
1074 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1075 NodeIndex: '%index%'
1076 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, config_settings]}
1078 CephStorageServiceChain:
1079 type: OS::TripleO::Services
1081 Services: {get_param: CephStorageServices}
1082 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1085 type: OS::Heat::ResourceGroup
1086 depends_on: Networks
1088 count: {get_param: CephStorageCount}
1089 removal_policies: {get_param: CephStorageRemovalPolicies}
1091 type: OS::TripleO::CephStorage
1093 Image: {get_param: CephStorageImage}
1094 KeyName: {get_param: KeyName}
1095 Flavor: {get_param: OvercloudCephStorageFlavor}
1096 NtpServer: {get_param: NtpServer}
1097 ServiceNetMap: {get_param: ServiceNetMap}
1098 TimeZone: {get_param: TimeZone}
1099 UpdateIdentifier: {get_param: UpdateIdentifier}
1102 template: {get_param: CephStorageHostnameFormat}
1104 '%stackname%': {get_param: 'OS::stack_name'}
1105 ExtraConfig: {get_param: ExtraConfig}
1106 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1107 CloudDomain: {get_param: CloudDomain}
1108 ServerMetadata: {get_param: ServerMetadata}
1109 SchedulerHints: {get_param: CephStorageSchedulerHints}
1110 NodeIndex: '%index%'
1111 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1113 ControllerIpListMap:
1114 type: OS::TripleO::Network::Ports::NetIpListMap
1116 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1117 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1118 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1119 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1120 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1121 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1122 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1125 type: OS::TripleO::AllNodes::SoftwareConfig
1127 compute_hosts: {get_attr: [Compute, hosts_entry]}
1128 controller_hosts: {get_attr: [Controller, hosts_entry]}
1129 controller_ips: {get_attr: [Controller, ip_address]}
1130 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1131 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1132 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1133 controller_names: {get_attr: [Controller, hostname]}
1134 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1135 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1136 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1137 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1138 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1139 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1140 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1141 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1142 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1143 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1144 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1145 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1146 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1147 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1148 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1149 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1150 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1151 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1152 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1153 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1154 DeployIdentifier: {get_param: DeployIdentifier}
1155 UpdateIdentifier: {get_param: UpdateIdentifier}
1158 type: OS::Heat::RandomString
1162 MysqlClusterUniquePart:
1163 type: OS::Heat::RandomString
1168 type: OS::Heat::RandomString
1171 salt: {get_param: RabbitCookieSalt}
1173 # creates the network architecture
1175 type: OS::TripleO::Network
1178 type: OS::Neutron::Port
1179 depends_on: Networks
1181 name: control_virtual_ip
1182 network: {get_param: NeutronControlPlaneID}
1183 fixed_ips: {get_param: ControlFixedIPs}
1184 replacement_policy: AUTO
1187 depends_on: Networks
1188 type: OS::TripleO::Network::Ports::RedisVipPort
1190 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1191 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1192 PortName: redis_virtual_ip
1193 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1196 # The public VIP is on the External net, falls back to ctlplane
1198 depends_on: Networks
1199 type: OS::TripleO::Network::Ports::ExternalVipPort
1201 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1202 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1203 PortName: public_virtual_ip
1204 FixedIPs: {get_param: PublicVirtualFixedIPs}
1206 InternalApiVirtualIP:
1207 depends_on: Networks
1208 type: OS::TripleO::Network::Ports::InternalApiVipPort
1210 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1211 PortName: internal_api_virtual_ip
1212 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1215 depends_on: Networks
1216 type: OS::TripleO::Network::Ports::StorageVipPort
1218 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1219 PortName: storage_virtual_ip
1220 FixedIPs: {get_param: StorageVirtualFixedIPs}
1222 StorageMgmtVirtualIP:
1223 depends_on: Networks
1224 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1226 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1227 PortName: storage_management_virtual_ip
1228 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1231 type: OS::TripleO::Network::Ports::NetVipMap
1233 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1234 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1235 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1236 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1237 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1238 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1239 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1240 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1241 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1242 # No tenant or management VIP required
1245 type: OS::TripleO::VipConfig
1248 type: OS::Heat::StructuredDeployments
1251 config: {get_resource: VipConfig}
1252 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1254 # service VIP mappings
1255 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1256 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1257 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1258 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1259 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1260 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1261 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1262 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1263 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1264 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1265 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1266 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1267 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1268 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1269 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1270 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1271 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1272 # direct configuration of Virtual IPs for each network
1273 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1274 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1275 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1276 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1277 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1278 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1280 ControllerBootstrapNodeConfig:
1281 type: OS::TripleO::BootstrapNode::SoftwareConfig
1283 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1284 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1286 ControllerBootstrapNodeDeployment:
1287 type: OS::Heat::StructuredDeployments
1289 name: ControllerBootstrapNodeDeployment
1290 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1291 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1293 ControllerSwiftDeployment:
1294 type: OS::Heat::StructuredDeployments
1296 name: ControllerSwiftDeployment
1297 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1298 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1300 ObjectStorageSwiftDeployment:
1301 type: OS::Heat::StructuredDeployments
1303 name: ObjectStorageSwiftDeployment
1304 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1305 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1307 SwiftDevicesAndProxyConfig:
1308 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1310 controller_swift_devices: {get_attr: [Controller, swift_device]}
1311 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1312 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1314 ComputeCephDeployment:
1315 type: OS::Heat::StructuredDeployments
1317 name: ComputeCephDeployment
1318 config: {get_attr: [CephClusterConfig, config_id]}
1319 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1321 ControllerCephDeployment:
1322 type: OS::Heat::StructuredDeployments
1324 name: ControllerCephDeployment
1325 config: {get_attr: [CephClusterConfig, config_id]}
1326 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1328 CephStorageCephDeployment:
1329 type: OS::Heat::StructuredDeployments
1331 name: CephStorageCephDeployment
1332 config: {get_attr: [CephClusterConfig, config_id]}
1333 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1336 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1338 ceph_storage_count: {get_param: CephStorageCount}
1339 ceph_fsid: {get_param: CephClusterFSID}
1340 ceph_mon_key: {get_param: CephMonKey}
1341 ceph_admin_key: {get_param: CephAdminKey}
1342 ceph_client_key: {get_param: CephClientKey}
1343 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1344 ceph_mon_names: {get_attr: [Controller, hostname]}
1345 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1347 ControllerAllNodesDeployment:
1348 type: OS::Heat::StructuredDeployments
1350 name: ControllerAllNodesDeployment
1351 config: {get_attr: [allNodesConfig, config_id]}
1352 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1354 ComputeAllNodesDeployment:
1355 type: OS::Heat::StructuredDeployments
1357 name: ComputeAllNodesDeployment
1358 config: {get_attr: [allNodesConfig, config_id]}
1359 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1361 BlockStorageAllNodesDeployment:
1362 type: OS::Heat::StructuredDeployments
1364 name: BlockStorageAllNodesDeployment
1365 config: {get_attr: [allNodesConfig, config_id]}
1366 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1368 ObjectStorageAllNodesDeployment:
1369 type: OS::Heat::StructuredDeployments
1371 name: ObjectStorageAllNodesDeployment
1372 config: {get_attr: [allNodesConfig, config_id]}
1373 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1375 CephStorageAllNodesDeployment:
1376 type: OS::Heat::StructuredDeployments
1378 name: CephStorageAllNodesDeployment
1379 config: {get_attr: [allNodesConfig, config_id]}
1380 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1382 # All Nodes Validations
1383 AllNodesValidationConfig:
1384 type: OS::TripleO::AllNodes::Validation
1389 - - {get_attr: [Controller, resource.0.external_ip_address]}
1390 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1391 - {get_attr: [Controller, resource.0.storage_ip_address]}
1392 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1393 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1395 ControllerAllNodesValidationDeployment:
1396 type: OS::Heat::StructuredDeployments
1397 depends_on: ControllerAllNodesDeployment
1399 name: ControllerAllNodesValidationDeployment
1400 config: {get_resource: AllNodesValidationConfig}
1401 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1403 ComputeAllNodesValidationDeployment:
1404 type: OS::Heat::StructuredDeployments
1405 depends_on: ComputeAllNodesDeployment
1407 name: ComputeAllNodesValidationDeployment
1408 config: {get_resource: AllNodesValidationConfig}
1409 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1411 BlockStorageAllNodesValidationDeployment:
1412 type: OS::Heat::StructuredDeployments
1413 depends_on: BlockStorageAllNodesDeployment
1415 name: BlockStorageAllNodesValidationDeployment
1416 config: {get_resource: AllNodesValidationConfig}
1417 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1419 ObjectStorageAllNodesValidationDeployment:
1420 type: OS::Heat::StructuredDeployments
1421 depends_on: ObjectStorageAllNodesDeployment
1423 name: ObjectStorageAllNodesValidationDeployment
1424 config: {get_resource: AllNodesValidationConfig}
1425 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1427 CephStorageAllNodesValidationDeployment:
1428 type: OS::Heat::StructuredDeployments
1429 depends_on: CephStorageAllNodesDeployment
1431 name: CephStorageAllNodesValidationDeployment
1432 config: {get_resource: AllNodesValidationConfig}
1433 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1436 type: OS::TripleO::Tasks::UpdateWorkflow
1438 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1439 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1440 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1441 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1442 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1444 deploy_identifier: {get_param: DeployIdentifier}
1445 update_identifier: {get_param: UpdateIdentifier}
1447 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1448 # the nested template may configure each role differently (or not at all)
1449 AllNodesExtraConfig:
1450 type: OS::TripleO::AllNodesExtraConfig
1453 - ComputeAllNodesValidationDeployment
1454 - BlockStorageAllNodesValidationDeployment
1455 - ObjectStorageAllNodesValidationDeployment
1456 - CephStorageAllNodesValidationDeployment
1457 - ControllerAllNodesValidationDeployment
1459 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1460 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1461 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1462 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1463 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1465 # Nested stack deployment runs after all other controller deployments
1466 ControllerNodesPostDeployment:
1467 type: OS::TripleO::ControllerPostDeployment
1468 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1470 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1471 NodeConfigIdentifiers:
1472 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1473 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1474 deployment_identifier: {get_param: DeployIdentifier}
1475 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1477 ComputeNodesPostDeployment:
1478 type: OS::TripleO::ComputePostDeployment
1479 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1481 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1482 NodeConfigIdentifiers:
1483 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1484 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1485 deployment_identifier: {get_param: DeployIdentifier}
1486 StepConfig: {get_attr: [ComputeServiceChain, step_config]}
1488 ObjectStorageNodesPostDeployment:
1489 type: OS::TripleO::ObjectStoragePostDeployment
1490 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1492 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1493 NodeConfigIdentifiers:
1494 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1495 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1496 deployment_identifier: {get_param: DeployIdentifier}
1497 StepConfig: {get_attr: [ObjectStorageServiceChain, step_config]}
1499 BlockStorageNodesPostDeployment:
1500 type: OS::TripleO::BlockStoragePostDeployment
1501 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1503 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1504 NodeConfigIdentifiers:
1505 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1506 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1507 deployment_identifier: {get_param: DeployIdentifier}
1509 CephStorageNodesPostDeployment:
1510 type: OS::TripleO::CephStoragePostDeployment
1511 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1513 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1514 NodeConfigIdentifiers:
1515 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1516 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1517 deployment_identifier: {get_param: DeployIdentifier}
1518 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1522 description: URL for the Overcloud Keystone service
1523 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1525 description: Keystone Admin VIP endpoint
1526 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1528 description: Controller VIP for public API endpoints
1529 value: {get_attr: [VipMap, net_ip_map, external]}
1531 description: VIP for Aodh API internal endpoint
1532 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1533 CeilometerInternalVip:
1534 description: VIP for Ceilometer API internal endpoint
1535 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1537 description: VIP for Cinder API internal endpoint
1538 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1540 description: VIP for Glance API internal endpoint
1541 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1543 description: VIP for Gnocchi API internal endpoint
1544 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1546 description: VIP for Heat API internal endpoint
1547 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1548 KeystoneInternalVip:
1549 description: VIP for Keystone API internal endpoint
1550 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1552 description: VIP for Neutron API internal endpoint
1553 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1555 description: VIP for Nova API internal endpoint
1556 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1558 description: VIP for Sahara API internal endpoint
1559 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1561 description: VIP for Swift Proxy internal endpoint
1562 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1565 Mapping of the resources with the needed info for their endpoints.
1566 This includes the protocol used, the IP, port and also a full
1567 representation of the URI.
1568 value: {get_attr: [EndpointMap, endpoint_map]}
1571 The content that should be appended to your /etc/hosts if you want to get
1572 hostname-based access to the deployed nodes (useful for testing without
1574 value: {get_attr: [allNodesConfig, hosts_entries]}