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 - OS::TripleO::Services::NovaApi
594 - OS::TripleO::Services::NovaScheduler
595 - OS::TripleO::Services::NovaConsoleauth
596 description: A list of service resources (configured in the Heat
597 resource_registry) which represent nested stacks
598 for each service that should get installed on the Controllers.
599 type: comma_delimited_list
603 description: A list of service resources (configured in the Heat
604 resource_registry) which represent nested stacks
605 for each service that should get installed on the Compute Nodes.
606 type: comma_delimited_list
608 # Block storage specific parameters
613 default: overcloud-full
615 OvercloudBlockStorageFlavor:
616 description: Flavor for block storage nodes to request when deploying.
620 - custom_constraint: nova.flavor
621 BlockStorageExtraConfig:
624 BlockStorage specific configuration to inject into the cluster. Same
625 structure as ExtraConfig.
627 BlockStorageSchedulerHints:
629 description: Optional scheduler hints to pass to nova
633 # Object storage specific parameters
637 OvercloudSwiftStorageFlavor:
638 description: Flavor for Swift storage nodes to request when deploying.
642 - custom_constraint: nova.flavor
644 default: overcloud-full
646 ObjectStorageExtraConfig:
649 ObjectStorage specific configuration to inject into the cluster. Same
650 structure as ExtraConfig.
652 ObjectStorageSchedulerHints:
654 description: Optional scheduler hints to pass to nova
656 ObjectStorageServices:
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 description: A list of service resources (configured in the Heat
691 resource_registry) which represent nested stacks
692 for each service that should get installed on the CephStorage nodes.
693 type: comma_delimited_list
695 # Hostname format for each role
696 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
697 # and %stackname% is replaced with OS::stack_name in the template below.
698 # If you want to use the heat generated names, pass '' (empty string).
699 ControllerHostnameFormat:
701 description: Format for Controller node hostnames
702 default: '%stackname%-controller-%index%'
703 ComputeHostnameFormat:
705 description: Format for Compute node hostnames
706 default: '%stackname%-novacompute-%index%'
707 BlockStorageHostnameFormat:
709 description: Format for BlockStorage node hostnames
710 default: '%stackname%-blockstorage-%index%'
711 ObjectStorageHostnameFormat:
713 description: Format for SwiftStorage node hostnames
714 default: '%stackname%-objectstorage-%index%'
715 CephStorageHostnameFormat:
717 description: Format for CephStorage node hostnames
718 default: '%stackname%-cephstorage-%index%'
720 # Identifiers to trigger tasks on nodes
725 Setting to a previously unused value during stack-update will trigger
726 package update on all nodes
731 Setting this to a unique value will re-run any deployment tasks which
732 perform configuration on a Heat stack-update.
734 # If you want to remove a specific node from a resource group, you can pass
735 # the node name or id as a <Group>RemovalPolicies parameter, for example:
736 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
737 ControllerRemovalPolicies:
741 List of resources to be removed from ControllerResourceGroup when
742 doing an update which requires removal of specific resources.
743 ComputeRemovalPolicies:
747 List of resources to be removed from ComputeResourceGroup when
748 doing an update which requires removal of specific resources.
749 BlockStorageRemovalPolicies:
753 List of resources to be removed from BlockStorageResourceGroup when
754 doing an update which requires removal of specific resources.
755 ObjectStorageRemovalPolicies:
759 List of resources to be removed from ObjectStorageResourceGroup when
760 doing an update which requires removal of specific resources.
761 CephStorageRemovalPolicies:
765 List of resources to be removed from CephStorageResourceGroup when
766 doing an update which requires removal of specific resources.
770 description: Do not use deprecated params, they will be removed.
772 - controllerExtraConfig
777 HeatAuthEncryptionKey:
778 type: OS::Heat::RandomString
781 type: OS::Heat::RandomString
786 type: OS::Heat::RandomString
791 type: OS::TripleO::EndpointMap
793 CloudName: {get_param: CloudName}
794 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
795 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
796 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
797 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
798 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
799 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
800 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
801 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
802 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
803 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
804 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
805 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
806 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
807 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
808 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
810 ControllerServiceChain:
811 type: OS::TripleO::Services
814 Services: {get_param: ControllerServices}
815 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
818 type: OS::Heat::ResourceGroup
821 count: {get_param: ControllerCount}
822 removal_policies: {get_param: ControllerRemovalPolicies}
824 type: OS::TripleO::Controller
826 AdminPassword: {get_param: AdminPassword}
827 AodhPassword: {get_param: AodhPassword}
828 CeilometerBackend: {get_param: CeilometerBackend}
829 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
830 CeilometerPassword: {get_param: CeilometerPassword}
831 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
832 CloudDomain: {get_param: CloudDomain}
833 ControlVirtualInterface: {get_param: ControlVirtualInterface}
834 controllerExtraConfig: {get_param: controllerExtraConfig}
835 CorosyncIPv6: {get_param: CorosyncIPv6}
836 Debug: {get_param: Debug}
837 EnableFencing: {get_param: EnableFencing}
838 ManageFirewall: {get_param: ManageFirewall}
839 PurgeFirewallRules: {get_param: PurgeFirewallRules}
840 EnableGalera: {get_param: EnableGalera}
841 EnableCephStorage: {get_param: ControllerEnableCephStorage}
842 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
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 NtpServer: {get_param: NtpServer}
869 PcsdPassword: {get_resource: PcsdPassword}
870 PublicVirtualInterface: {get_param: PublicVirtualInterface}
871 RabbitPassword: {get_param: RabbitPassword}
872 RabbitUserName: {get_param: RabbitUserName}
873 RabbitCookie: {get_attr: [RabbitCookie, value]}
874 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
875 RabbitClientPort: {get_param: RabbitClientPort}
876 RedisPassword: {get_param: RedisPassword}
877 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
878 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
879 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
880 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
881 SwiftHashSuffix: {get_param: SwiftHashSuffix}
882 SwiftMountCheck: {get_param: SwiftMountCheck}
883 SwiftMinPartHours: {get_param: SwiftMinPartHours}
884 SwiftPartPower: {get_param: SwiftPartPower}
885 SwiftReplicas: { get_param: SwiftReplicas}
886 TimeZone: {get_param: TimeZone}
887 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
888 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
889 ServiceNetMap: {get_param: ServiceNetMap}
890 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
891 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
892 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
893 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
894 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
895 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
896 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
897 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
898 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
899 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
900 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
901 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
902 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
903 UpdateIdentifier: {get_param: UpdateIdentifier}
906 template: {get_param: ControllerHostnameFormat}
908 '%stackname%': {get_param: 'OS::stack_name'}
910 ServerMetadata: {get_param: ServerMetadata}
911 SchedulerHints: {get_param: ControllerSchedulerHints}
912 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
915 type: OS::TripleO::Services
917 Services: {get_param: ComputeServices}
918 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
921 type: OS::Heat::ResourceGroup
924 count: {get_param: ComputeCount}
925 removal_policies: {get_param: ComputeRemovalPolicies}
927 type: OS::TripleO::Compute
929 AdminPassword: {get_param: AdminPassword}
930 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
931 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
932 CeilometerPassword: {get_param: CeilometerPassword}
933 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
934 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
935 Debug: {get_param: Debug}
936 ExtraConfig: {get_param: ExtraConfig}
937 Flavor: {get_param: OvercloudComputeFlavor}
938 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
939 Image: {get_param: NovaImage}
940 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
941 KeyName: {get_param: KeyName}
942 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
943 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
944 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
945 NeutronTenantMtu: {get_param: NeutronTenantMtu}
946 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
947 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
948 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
949 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
950 NeutronNetworkType: {get_param: NeutronNetworkType}
951 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
952 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
953 NeutronPassword: {get_param: NeutronPassword}
954 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
955 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
956 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
957 NeutronCorePlugin: {get_param: NeutronCorePlugin}
958 NeutronServicePlugins: {get_param: NeutronServicePlugins}
959 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
960 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
961 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
962 # L3 HA and Failover is not relevant for Computes, should be removed
963 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
964 NeutronL3HA: {get_param: NeutronL3HA}
965 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
966 NovaComputeDriver: {get_param: NovaComputeDriver}
967 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
968 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
969 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
970 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
971 NovaIPv6: {get_param: NovaIPv6}
972 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
973 NovaPassword: {get_param: NovaPassword}
974 NovaOVSBridge: {get_param: NovaOVSBridge}
975 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
976 NtpServer: {get_param: NtpServer}
977 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
978 RabbitPassword: {get_param: RabbitPassword}
979 RabbitUserName: {get_param: RabbitUserName}
980 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
981 RabbitClientPort: {get_param: RabbitClientPort}
982 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
983 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
984 ServiceNetMap: {get_param: ServiceNetMap}
985 TimeZone: {get_param: TimeZone}
986 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
987 UpdateIdentifier: {get_param: UpdateIdentifier}
990 template: {get_param: ComputeHostnameFormat}
992 '%stackname%': {get_param: 'OS::stack_name'}
993 CloudDomain: {get_param: CloudDomain}
994 ServerMetadata: {get_param: ServerMetadata}
995 SchedulerHints: {get_param: NovaComputeSchedulerHints}
997 ServiceConfigSettings: {get_attr: [ComputeServiceChain, config_settings]}
1001 type: OS::Heat::ResourceGroup
1002 depends_on: Networks
1004 count: {get_param: BlockStorageCount}
1005 removal_policies: {get_param: BlockStorageRemovalPolicies}
1007 type: OS::TripleO::BlockStorage
1009 Debug: {get_param: Debug}
1010 Image: {get_param: BlockStorageImage}
1011 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1012 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1013 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1014 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1015 CinderPassword: {get_param: CinderPassword}
1016 KeyName: {get_param: KeyName}
1017 Flavor: {get_param: OvercloudBlockStorageFlavor}
1018 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1019 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1020 RabbitPassword: {get_param: RabbitPassword}
1021 RabbitUserName: {get_param: RabbitUserName}
1022 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1023 RabbitClientPort: {get_param: RabbitClientPort}
1024 TimeZone: {get_param: TimeZone}
1025 NtpServer: {get_param: NtpServer}
1026 UpdateIdentifier: {get_param: UpdateIdentifier}
1029 template: {get_param: BlockStorageHostnameFormat}
1031 '%stackname%': {get_param: 'OS::stack_name'}
1032 ServiceNetMap: {get_param: ServiceNetMap}
1033 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1034 ExtraConfig: {get_param: ExtraConfig}
1035 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1036 CloudDomain: {get_param: CloudDomain}
1037 ServerMetadata: {get_param: ServerMetadata}
1038 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1039 NodeIndex: '%index%'
1041 ObjectStorageServiceChain:
1042 type: OS::TripleO::Services
1044 Services: {get_param: ObjectStorageServices}
1045 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1048 type: OS::Heat::ResourceGroup
1049 depends_on: Networks
1051 count: {get_param: ObjectStorageCount}
1052 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1054 type: OS::TripleO::ObjectStorage
1056 KeyName: {get_param: KeyName}
1057 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1058 HashSuffix: {get_param: SwiftHashSuffix}
1059 MountCheck: {get_param: SwiftMountCheck}
1060 MinPartHours: {get_param: SwiftMinPartHours}
1061 PartPower: {get_param: SwiftPartPower}
1062 Image: {get_param: SwiftStorageImage}
1063 Replicas: { get_param: SwiftReplicas}
1064 TimeZone: {get_param: TimeZone}
1065 NtpServer: {get_param: NtpServer}
1066 UpdateIdentifier: {get_param: UpdateIdentifier}
1067 ServiceNetMap: {get_param: ServiceNetMap}
1070 template: {get_param: ObjectStorageHostnameFormat}
1072 '%stackname%': {get_param: 'OS::stack_name'}
1073 ExtraConfig: {get_param: ExtraConfig}
1074 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1075 CloudDomain: {get_param: CloudDomain}
1076 ServerMetadata: {get_param: ServerMetadata}
1077 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1078 NodeIndex: '%index%'
1079 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, config_settings]}
1081 CephStorageServiceChain:
1082 type: OS::TripleO::Services
1084 Services: {get_param: CephStorageServices}
1085 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1088 type: OS::Heat::ResourceGroup
1089 depends_on: Networks
1091 count: {get_param: CephStorageCount}
1092 removal_policies: {get_param: CephStorageRemovalPolicies}
1094 type: OS::TripleO::CephStorage
1096 Image: {get_param: CephStorageImage}
1097 KeyName: {get_param: KeyName}
1098 Flavor: {get_param: OvercloudCephStorageFlavor}
1099 NtpServer: {get_param: NtpServer}
1100 ServiceNetMap: {get_param: ServiceNetMap}
1101 TimeZone: {get_param: TimeZone}
1102 UpdateIdentifier: {get_param: UpdateIdentifier}
1105 template: {get_param: CephStorageHostnameFormat}
1107 '%stackname%': {get_param: 'OS::stack_name'}
1108 ExtraConfig: {get_param: ExtraConfig}
1109 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1110 CloudDomain: {get_param: CloudDomain}
1111 ServerMetadata: {get_param: ServerMetadata}
1112 SchedulerHints: {get_param: CephStorageSchedulerHints}
1113 NodeIndex: '%index%'
1114 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1116 ControllerIpListMap:
1117 type: OS::TripleO::Network::Ports::NetIpListMap
1119 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1120 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1121 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1122 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1123 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1124 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1125 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1128 type: OS::TripleO::AllNodes::SoftwareConfig
1130 compute_hosts: {get_attr: [Compute, hosts_entry]}
1131 controller_hosts: {get_attr: [Controller, hosts_entry]}
1132 controller_ips: {get_attr: [Controller, ip_address]}
1133 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1134 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1135 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1136 controller_names: {get_attr: [Controller, hostname]}
1137 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1138 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1139 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1140 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1141 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1142 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1143 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1144 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1145 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1146 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1147 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1148 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1149 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1150 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1151 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1152 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1153 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1154 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1155 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1156 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1157 DeployIdentifier: {get_param: DeployIdentifier}
1158 UpdateIdentifier: {get_param: UpdateIdentifier}
1161 type: OS::Heat::RandomString
1165 MysqlClusterUniquePart:
1166 type: OS::Heat::RandomString
1171 type: OS::Heat::RandomString
1174 salt: {get_param: RabbitCookieSalt}
1176 # creates the network architecture
1178 type: OS::TripleO::Network
1181 type: OS::Neutron::Port
1182 depends_on: Networks
1184 name: control_virtual_ip
1185 network: {get_param: NeutronControlPlaneID}
1186 fixed_ips: {get_param: ControlFixedIPs}
1187 replacement_policy: AUTO
1190 depends_on: Networks
1191 type: OS::TripleO::Network::Ports::RedisVipPort
1193 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1194 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1195 PortName: redis_virtual_ip
1196 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1199 # The public VIP is on the External net, falls back to ctlplane
1201 depends_on: Networks
1202 type: OS::TripleO::Network::Ports::ExternalVipPort
1204 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1205 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1206 PortName: public_virtual_ip
1207 FixedIPs: {get_param: PublicVirtualFixedIPs}
1209 InternalApiVirtualIP:
1210 depends_on: Networks
1211 type: OS::TripleO::Network::Ports::InternalApiVipPort
1213 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1214 PortName: internal_api_virtual_ip
1215 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1218 depends_on: Networks
1219 type: OS::TripleO::Network::Ports::StorageVipPort
1221 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1222 PortName: storage_virtual_ip
1223 FixedIPs: {get_param: StorageVirtualFixedIPs}
1225 StorageMgmtVirtualIP:
1226 depends_on: Networks
1227 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1229 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1230 PortName: storage_management_virtual_ip
1231 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1234 type: OS::TripleO::Network::Ports::NetVipMap
1236 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1237 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1238 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1239 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1240 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1241 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1242 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1243 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1244 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1245 # No tenant or management VIP required
1248 type: OS::TripleO::VipConfig
1251 type: OS::Heat::StructuredDeployments
1254 config: {get_resource: VipConfig}
1255 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1257 # service VIP mappings
1258 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1259 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1260 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1261 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1262 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1263 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1264 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1265 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1266 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1267 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1268 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1269 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1270 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1271 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1272 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1273 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1274 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1275 # direct configuration of Virtual IPs for each network
1276 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1277 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1278 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1279 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1280 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1281 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1283 ControllerBootstrapNodeConfig:
1284 type: OS::TripleO::BootstrapNode::SoftwareConfig
1286 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1287 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1289 ControllerBootstrapNodeDeployment:
1290 type: OS::Heat::StructuredDeployments
1292 name: ControllerBootstrapNodeDeployment
1293 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1294 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1296 ControllerSwiftDeployment:
1297 type: OS::Heat::StructuredDeployments
1299 name: ControllerSwiftDeployment
1300 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1301 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1303 ObjectStorageSwiftDeployment:
1304 type: OS::Heat::StructuredDeployments
1306 name: ObjectStorageSwiftDeployment
1307 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1308 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1310 SwiftDevicesAndProxyConfig:
1311 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1313 controller_swift_devices: {get_attr: [Controller, swift_device]}
1314 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1315 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1317 ComputeCephDeployment:
1318 type: OS::Heat::StructuredDeployments
1320 name: ComputeCephDeployment
1321 config: {get_attr: [CephClusterConfig, config_id]}
1322 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1324 ControllerCephDeployment:
1325 type: OS::Heat::StructuredDeployments
1327 name: ControllerCephDeployment
1328 config: {get_attr: [CephClusterConfig, config_id]}
1329 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1331 CephStorageCephDeployment:
1332 type: OS::Heat::StructuredDeployments
1334 name: CephStorageCephDeployment
1335 config: {get_attr: [CephClusterConfig, config_id]}
1336 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1339 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1341 ceph_storage_count: {get_param: CephStorageCount}
1342 ceph_fsid: {get_param: CephClusterFSID}
1343 ceph_mon_key: {get_param: CephMonKey}
1344 ceph_admin_key: {get_param: CephAdminKey}
1345 ceph_client_key: {get_param: CephClientKey}
1346 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1347 ceph_mon_names: {get_attr: [Controller, hostname]}
1348 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1350 ControllerAllNodesDeployment:
1351 type: OS::Heat::StructuredDeployments
1353 name: ControllerAllNodesDeployment
1354 config: {get_attr: [allNodesConfig, config_id]}
1355 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1357 ComputeAllNodesDeployment:
1358 type: OS::Heat::StructuredDeployments
1360 name: ComputeAllNodesDeployment
1361 config: {get_attr: [allNodesConfig, config_id]}
1362 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1364 BlockStorageAllNodesDeployment:
1365 type: OS::Heat::StructuredDeployments
1367 name: BlockStorageAllNodesDeployment
1368 config: {get_attr: [allNodesConfig, config_id]}
1369 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1371 ObjectStorageAllNodesDeployment:
1372 type: OS::Heat::StructuredDeployments
1374 name: ObjectStorageAllNodesDeployment
1375 config: {get_attr: [allNodesConfig, config_id]}
1376 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1378 CephStorageAllNodesDeployment:
1379 type: OS::Heat::StructuredDeployments
1381 name: CephStorageAllNodesDeployment
1382 config: {get_attr: [allNodesConfig, config_id]}
1383 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1385 # All Nodes Validations
1386 AllNodesValidationConfig:
1387 type: OS::TripleO::AllNodes::Validation
1392 - - {get_attr: [Controller, resource.0.external_ip_address]}
1393 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1394 - {get_attr: [Controller, resource.0.storage_ip_address]}
1395 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1396 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1398 ControllerAllNodesValidationDeployment:
1399 type: OS::Heat::StructuredDeployments
1400 depends_on: ControllerAllNodesDeployment
1402 name: ControllerAllNodesValidationDeployment
1403 config: {get_resource: AllNodesValidationConfig}
1404 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1406 ComputeAllNodesValidationDeployment:
1407 type: OS::Heat::StructuredDeployments
1408 depends_on: ComputeAllNodesDeployment
1410 name: ComputeAllNodesValidationDeployment
1411 config: {get_resource: AllNodesValidationConfig}
1412 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1414 BlockStorageAllNodesValidationDeployment:
1415 type: OS::Heat::StructuredDeployments
1416 depends_on: BlockStorageAllNodesDeployment
1418 name: BlockStorageAllNodesValidationDeployment
1419 config: {get_resource: AllNodesValidationConfig}
1420 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1422 ObjectStorageAllNodesValidationDeployment:
1423 type: OS::Heat::StructuredDeployments
1424 depends_on: ObjectStorageAllNodesDeployment
1426 name: ObjectStorageAllNodesValidationDeployment
1427 config: {get_resource: AllNodesValidationConfig}
1428 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1430 CephStorageAllNodesValidationDeployment:
1431 type: OS::Heat::StructuredDeployments
1432 depends_on: CephStorageAllNodesDeployment
1434 name: CephStorageAllNodesValidationDeployment
1435 config: {get_resource: AllNodesValidationConfig}
1436 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1439 type: OS::TripleO::Tasks::UpdateWorkflow
1441 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1442 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1443 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1444 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1445 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1447 deploy_identifier: {get_param: DeployIdentifier}
1448 update_identifier: {get_param: UpdateIdentifier}
1450 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1451 # the nested template may configure each role differently (or not at all)
1452 AllNodesExtraConfig:
1453 type: OS::TripleO::AllNodesExtraConfig
1456 - ComputeAllNodesValidationDeployment
1457 - BlockStorageAllNodesValidationDeployment
1458 - ObjectStorageAllNodesValidationDeployment
1459 - CephStorageAllNodesValidationDeployment
1460 - ControllerAllNodesValidationDeployment
1462 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1463 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1464 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1465 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1466 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1468 # Nested stack deployment runs after all other controller deployments
1469 ControllerNodesPostDeployment:
1470 type: OS::TripleO::ControllerPostDeployment
1471 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1473 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1474 NodeConfigIdentifiers:
1475 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1476 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1477 deployment_identifier: {get_param: DeployIdentifier}
1478 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1480 ComputeNodesPostDeployment:
1481 type: OS::TripleO::ComputePostDeployment
1482 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1484 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1485 NodeConfigIdentifiers:
1486 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1487 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1488 deployment_identifier: {get_param: DeployIdentifier}
1489 StepConfig: {get_attr: [ComputeServiceChain, step_config]}
1491 ObjectStorageNodesPostDeployment:
1492 type: OS::TripleO::ObjectStoragePostDeployment
1493 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1495 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1496 NodeConfigIdentifiers:
1497 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1498 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1499 deployment_identifier: {get_param: DeployIdentifier}
1500 StepConfig: {get_attr: [ObjectStorageServiceChain, step_config]}
1502 BlockStorageNodesPostDeployment:
1503 type: OS::TripleO::BlockStoragePostDeployment
1504 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1506 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1507 NodeConfigIdentifiers:
1508 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1509 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1510 deployment_identifier: {get_param: DeployIdentifier}
1512 CephStorageNodesPostDeployment:
1513 type: OS::TripleO::CephStoragePostDeployment
1514 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1516 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1517 NodeConfigIdentifiers:
1518 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1519 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1520 deployment_identifier: {get_param: DeployIdentifier}
1521 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1525 description: URL for the Overcloud Keystone service
1526 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1528 description: Keystone Admin VIP endpoint
1529 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1531 description: Controller VIP for public API endpoints
1532 value: {get_attr: [VipMap, net_ip_map, external]}
1534 description: VIP for Aodh API internal endpoint
1535 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1536 CeilometerInternalVip:
1537 description: VIP for Ceilometer API internal endpoint
1538 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1540 description: VIP for Cinder API internal endpoint
1541 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1543 description: VIP for Glance API internal endpoint
1544 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1546 description: VIP for Gnocchi API internal endpoint
1547 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1549 description: VIP for Heat API internal endpoint
1550 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1551 KeystoneInternalVip:
1552 description: VIP for Keystone API internal endpoint
1553 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1555 description: VIP for Neutron API internal endpoint
1556 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1558 description: VIP for Nova API internal endpoint
1559 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1561 description: VIP for Sahara API internal endpoint
1562 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1564 description: VIP for Swift Proxy internal endpoint
1565 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1568 Mapping of the resources with the needed info for their endpoints.
1569 This includes the protocol used, the IP, port and also a full
1570 representation of the URI.
1571 value: {get_attr: [EndpointMap, endpoint_map]}
1574 The content that should be appended to your /etc/hosts if you want to get
1575 hostname-based access to the deployed nodes (useful for testing without
1577 value: {get_attr: [allNodesConfig, hosts_entries]}