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 - OS::TripleO::Services::NovaVncproxy
597 description: A list of service resources (configured in the Heat
598 resource_registry) which represent nested stacks
599 for each service that should get installed on the Controllers.
600 type: comma_delimited_list
604 - OS::TripleO::Services::NovaCompute
605 description: A list of service resources (configured in the Heat
606 resource_registry) which represent nested stacks
607 for each service that should get installed on the Compute Nodes.
608 type: comma_delimited_list
610 # Block storage specific parameters
615 default: overcloud-full
617 OvercloudBlockStorageFlavor:
618 description: Flavor for block storage nodes to request when deploying.
622 - custom_constraint: nova.flavor
623 BlockStorageExtraConfig:
626 BlockStorage specific configuration to inject into the cluster. Same
627 structure as ExtraConfig.
629 BlockStorageSchedulerHints:
631 description: Optional scheduler hints to pass to nova
635 # Object storage specific parameters
639 OvercloudSwiftStorageFlavor:
640 description: Flavor for Swift storage nodes to request when deploying.
644 - custom_constraint: nova.flavor
646 default: overcloud-full
648 ObjectStorageExtraConfig:
651 ObjectStorage specific configuration to inject into the cluster. Same
652 structure as ExtraConfig.
654 ObjectStorageSchedulerHints:
656 description: Optional scheduler hints to pass to nova
658 ObjectStorageServices:
660 description: A list of service resources (configured in the Heat
661 resource_registry) which represent nested stacks
662 for each service that should get installed on the ObjectStorage nodes.
663 Note this role currently only supports steps 2, 3 and 4 configuration.
664 type: comma_delimited_list
667 # Ceph storage specific parameters
672 default: overcloud-full
674 OvercloudCephStorageFlavor:
676 description: Flavor for Ceph storage nodes to request when deploying.
679 - custom_constraint: nova.flavor
680 CephStorageExtraConfig:
683 CephStorage specific configuration to inject into the cluster. Same
684 structure as ExtraConfig.
686 CephStorageSchedulerHints:
688 description: Optional scheduler hints to pass to nova
692 description: A list of service resources (configured in the Heat
693 resource_registry) which represent nested stacks
694 for each service that should get installed on the CephStorage nodes.
695 type: comma_delimited_list
697 # Hostname format for each role
698 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
699 # and %stackname% is replaced with OS::stack_name in the template below.
700 # If you want to use the heat generated names, pass '' (empty string).
701 ControllerHostnameFormat:
703 description: Format for Controller node hostnames
704 default: '%stackname%-controller-%index%'
705 ComputeHostnameFormat:
707 description: Format for Compute node hostnames
708 default: '%stackname%-novacompute-%index%'
709 BlockStorageHostnameFormat:
711 description: Format for BlockStorage node hostnames
712 default: '%stackname%-blockstorage-%index%'
713 ObjectStorageHostnameFormat:
715 description: Format for SwiftStorage node hostnames
716 default: '%stackname%-objectstorage-%index%'
717 CephStorageHostnameFormat:
719 description: Format for CephStorage node hostnames
720 default: '%stackname%-cephstorage-%index%'
722 # Identifiers to trigger tasks on nodes
727 Setting to a previously unused value during stack-update will trigger
728 package update on all nodes
733 Setting this to a unique value will re-run any deployment tasks which
734 perform configuration on a Heat stack-update.
736 # If you want to remove a specific node from a resource group, you can pass
737 # the node name or id as a <Group>RemovalPolicies parameter, for example:
738 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
739 ControllerRemovalPolicies:
743 List of resources to be removed from ControllerResourceGroup when
744 doing an update which requires removal of specific resources.
745 ComputeRemovalPolicies:
749 List of resources to be removed from ComputeResourceGroup when
750 doing an update which requires removal of specific resources.
751 BlockStorageRemovalPolicies:
755 List of resources to be removed from BlockStorageResourceGroup when
756 doing an update which requires removal of specific resources.
757 ObjectStorageRemovalPolicies:
761 List of resources to be removed from ObjectStorageResourceGroup when
762 doing an update which requires removal of specific resources.
763 CephStorageRemovalPolicies:
767 List of resources to be removed from CephStorageResourceGroup when
768 doing an update which requires removal of specific resources.
772 description: Do not use deprecated params, they will be removed.
774 - controllerExtraConfig
779 HeatAuthEncryptionKey:
780 type: OS::Heat::RandomString
783 type: OS::Heat::RandomString
788 type: OS::Heat::RandomString
793 type: OS::TripleO::EndpointMap
795 CloudName: {get_param: CloudName}
796 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
797 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
798 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
799 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
800 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
801 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
802 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
803 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
804 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
805 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
806 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
807 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
808 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
809 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
810 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
812 ControllerServiceChain:
813 type: OS::TripleO::Services
816 Services: {get_param: ControllerServices}
817 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
820 type: OS::Heat::ResourceGroup
823 count: {get_param: ControllerCount}
824 removal_policies: {get_param: ControllerRemovalPolicies}
826 type: OS::TripleO::Controller
828 AdminPassword: {get_param: AdminPassword}
829 AodhPassword: {get_param: AodhPassword}
830 CeilometerBackend: {get_param: CeilometerBackend}
831 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
832 CeilometerPassword: {get_param: CeilometerPassword}
833 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
834 CloudDomain: {get_param: CloudDomain}
835 ControlVirtualInterface: {get_param: ControlVirtualInterface}
836 controllerExtraConfig: {get_param: controllerExtraConfig}
837 CorosyncIPv6: {get_param: CorosyncIPv6}
838 Debug: {get_param: Debug}
839 EnableFencing: {get_param: EnableFencing}
840 ManageFirewall: {get_param: ManageFirewall}
841 PurgeFirewallRules: {get_param: PurgeFirewallRules}
842 EnableGalera: {get_param: EnableGalera}
843 EnableCephStorage: {get_param: ControllerEnableCephStorage}
844 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
845 ExtraConfig: {get_param: ExtraConfig}
846 FencingConfig: {get_param: FencingConfig}
847 Flavor: {get_param: OvercloudControlFlavor}
848 GnocchiPassword: {get_param: GnocchiPassword}
849 GnocchiBackend: {get_param: GnocchiBackend}
850 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
851 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
852 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
853 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
854 HorizonSecret: {get_resource: HorizonSecret}
855 Image: {get_param: controllerImage}
856 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
857 InstanceNameTemplate: {get_param: InstanceNameTemplate}
858 KeyName: {get_param: KeyName}
859 MemcachedIPv6: {get_param: MemcachedIPv6}
860 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
861 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
862 MysqlMaxConnections: {get_param: MysqlMaxConnections}
863 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
864 NeutronTenantMtu: {get_param: NeutronTenantMtu}
865 NeutronPublicInterface: {get_param: NeutronPublicInterface}
866 NeutronPassword: {get_param: NeutronPassword}
867 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
868 NovaIPv6: {get_param: NovaIPv6}
869 NovaPassword: {get_param: NovaPassword}
870 NtpServer: {get_param: NtpServer}
871 PcsdPassword: {get_resource: PcsdPassword}
872 PublicVirtualInterface: {get_param: PublicVirtualInterface}
873 RabbitPassword: {get_param: RabbitPassword}
874 RabbitUserName: {get_param: RabbitUserName}
875 RabbitCookie: {get_attr: [RabbitCookie, value]}
876 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
877 RabbitClientPort: {get_param: RabbitClientPort}
878 RedisPassword: {get_param: RedisPassword}
879 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
880 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
881 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
882 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
883 SwiftHashSuffix: {get_param: SwiftHashSuffix}
884 SwiftMountCheck: {get_param: SwiftMountCheck}
885 SwiftMinPartHours: {get_param: SwiftMinPartHours}
886 SwiftPartPower: {get_param: SwiftPartPower}
887 SwiftReplicas: { get_param: SwiftReplicas}
888 TimeZone: {get_param: TimeZone}
889 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
890 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
891 ServiceNetMap: {get_param: ServiceNetMap}
892 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
893 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
894 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
895 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
896 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
897 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
898 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
899 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
900 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
901 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
902 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
903 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
904 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
905 UpdateIdentifier: {get_param: UpdateIdentifier}
908 template: {get_param: ControllerHostnameFormat}
910 '%stackname%': {get_param: 'OS::stack_name'}
912 ServerMetadata: {get_param: ServerMetadata}
913 SchedulerHints: {get_param: ControllerSchedulerHints}
914 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
917 type: OS::TripleO::Services
919 Services: {get_param: ComputeServices}
920 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
923 type: OS::Heat::ResourceGroup
926 count: {get_param: ComputeCount}
927 removal_policies: {get_param: ComputeRemovalPolicies}
929 type: OS::TripleO::Compute
931 AdminPassword: {get_param: AdminPassword}
932 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
933 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
934 CeilometerPassword: {get_param: CeilometerPassword}
935 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
936 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
937 Debug: {get_param: Debug}
938 ExtraConfig: {get_param: ExtraConfig}
939 Flavor: {get_param: OvercloudComputeFlavor}
940 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
941 Image: {get_param: NovaImage}
942 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
943 KeyName: {get_param: KeyName}
944 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
945 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
946 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
947 NeutronTenantMtu: {get_param: NeutronTenantMtu}
948 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
949 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
950 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
951 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
952 NeutronNetworkType: {get_param: NeutronNetworkType}
953 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
954 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
955 NeutronPassword: {get_param: NeutronPassword}
956 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
957 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
958 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
959 NeutronCorePlugin: {get_param: NeutronCorePlugin}
960 NeutronServicePlugins: {get_param: NeutronServicePlugins}
961 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
962 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
963 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
964 # L3 HA and Failover is not relevant for Computes, should be removed
965 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
966 NeutronL3HA: {get_param: NeutronL3HA}
967 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
968 NovaComputeDriver: {get_param: NovaComputeDriver}
969 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
970 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
971 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
972 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
973 NovaIPv6: {get_param: NovaIPv6}
974 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
975 NovaPassword: {get_param: NovaPassword}
976 NovaOVSBridge: {get_param: NovaOVSBridge}
977 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
978 NtpServer: {get_param: NtpServer}
979 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
980 RabbitPassword: {get_param: RabbitPassword}
981 RabbitUserName: {get_param: RabbitUserName}
982 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
983 RabbitClientPort: {get_param: RabbitClientPort}
984 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
985 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
986 ServiceNetMap: {get_param: ServiceNetMap}
987 TimeZone: {get_param: TimeZone}
988 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
989 UpdateIdentifier: {get_param: UpdateIdentifier}
992 template: {get_param: ComputeHostnameFormat}
994 '%stackname%': {get_param: 'OS::stack_name'}
995 CloudDomain: {get_param: CloudDomain}
996 ServerMetadata: {get_param: ServerMetadata}
997 SchedulerHints: {get_param: NovaComputeSchedulerHints}
999 ServiceConfigSettings: {get_attr: [ComputeServiceChain, config_settings]}
1003 type: OS::Heat::ResourceGroup
1004 depends_on: Networks
1006 count: {get_param: BlockStorageCount}
1007 removal_policies: {get_param: BlockStorageRemovalPolicies}
1009 type: OS::TripleO::BlockStorage
1011 Debug: {get_param: Debug}
1012 Image: {get_param: BlockStorageImage}
1013 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1014 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1015 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1016 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1017 CinderPassword: {get_param: CinderPassword}
1018 KeyName: {get_param: KeyName}
1019 Flavor: {get_param: OvercloudBlockStorageFlavor}
1020 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1021 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1022 RabbitPassword: {get_param: RabbitPassword}
1023 RabbitUserName: {get_param: RabbitUserName}
1024 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1025 RabbitClientPort: {get_param: RabbitClientPort}
1026 TimeZone: {get_param: TimeZone}
1027 NtpServer: {get_param: NtpServer}
1028 UpdateIdentifier: {get_param: UpdateIdentifier}
1031 template: {get_param: BlockStorageHostnameFormat}
1033 '%stackname%': {get_param: 'OS::stack_name'}
1034 ServiceNetMap: {get_param: ServiceNetMap}
1035 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1036 ExtraConfig: {get_param: ExtraConfig}
1037 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1038 CloudDomain: {get_param: CloudDomain}
1039 ServerMetadata: {get_param: ServerMetadata}
1040 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1041 NodeIndex: '%index%'
1043 ObjectStorageServiceChain:
1044 type: OS::TripleO::Services
1046 Services: {get_param: ObjectStorageServices}
1047 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1050 type: OS::Heat::ResourceGroup
1051 depends_on: Networks
1053 count: {get_param: ObjectStorageCount}
1054 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1056 type: OS::TripleO::ObjectStorage
1058 KeyName: {get_param: KeyName}
1059 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1060 HashSuffix: {get_param: SwiftHashSuffix}
1061 MountCheck: {get_param: SwiftMountCheck}
1062 MinPartHours: {get_param: SwiftMinPartHours}
1063 PartPower: {get_param: SwiftPartPower}
1064 Image: {get_param: SwiftStorageImage}
1065 Replicas: { get_param: SwiftReplicas}
1066 TimeZone: {get_param: TimeZone}
1067 NtpServer: {get_param: NtpServer}
1068 UpdateIdentifier: {get_param: UpdateIdentifier}
1069 ServiceNetMap: {get_param: ServiceNetMap}
1072 template: {get_param: ObjectStorageHostnameFormat}
1074 '%stackname%': {get_param: 'OS::stack_name'}
1075 ExtraConfig: {get_param: ExtraConfig}
1076 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1077 CloudDomain: {get_param: CloudDomain}
1078 ServerMetadata: {get_param: ServerMetadata}
1079 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1080 NodeIndex: '%index%'
1081 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, config_settings]}
1083 CephStorageServiceChain:
1084 type: OS::TripleO::Services
1086 Services: {get_param: CephStorageServices}
1087 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1090 type: OS::Heat::ResourceGroup
1091 depends_on: Networks
1093 count: {get_param: CephStorageCount}
1094 removal_policies: {get_param: CephStorageRemovalPolicies}
1096 type: OS::TripleO::CephStorage
1098 Image: {get_param: CephStorageImage}
1099 KeyName: {get_param: KeyName}
1100 Flavor: {get_param: OvercloudCephStorageFlavor}
1101 NtpServer: {get_param: NtpServer}
1102 ServiceNetMap: {get_param: ServiceNetMap}
1103 TimeZone: {get_param: TimeZone}
1104 UpdateIdentifier: {get_param: UpdateIdentifier}
1107 template: {get_param: CephStorageHostnameFormat}
1109 '%stackname%': {get_param: 'OS::stack_name'}
1110 ExtraConfig: {get_param: ExtraConfig}
1111 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1112 CloudDomain: {get_param: CloudDomain}
1113 ServerMetadata: {get_param: ServerMetadata}
1114 SchedulerHints: {get_param: CephStorageSchedulerHints}
1115 NodeIndex: '%index%'
1116 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1118 ControllerIpListMap:
1119 type: OS::TripleO::Network::Ports::NetIpListMap
1121 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1122 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1123 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1124 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1125 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1126 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1127 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1130 type: OS::TripleO::AllNodes::SoftwareConfig
1132 compute_hosts: {get_attr: [Compute, hosts_entry]}
1133 controller_hosts: {get_attr: [Controller, hosts_entry]}
1134 controller_ips: {get_attr: [Controller, ip_address]}
1135 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1136 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1137 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1138 controller_names: {get_attr: [Controller, hostname]}
1139 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1140 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1141 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1142 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1143 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1144 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1145 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1146 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1147 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1148 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1149 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1150 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1151 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1152 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1153 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1154 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1155 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1156 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1157 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1158 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1159 DeployIdentifier: {get_param: DeployIdentifier}
1160 UpdateIdentifier: {get_param: UpdateIdentifier}
1163 type: OS::Heat::RandomString
1167 MysqlClusterUniquePart:
1168 type: OS::Heat::RandomString
1173 type: OS::Heat::RandomString
1176 salt: {get_param: RabbitCookieSalt}
1178 # creates the network architecture
1180 type: OS::TripleO::Network
1183 type: OS::Neutron::Port
1184 depends_on: Networks
1186 name: control_virtual_ip
1187 network: {get_param: NeutronControlPlaneID}
1188 fixed_ips: {get_param: ControlFixedIPs}
1189 replacement_policy: AUTO
1192 depends_on: Networks
1193 type: OS::TripleO::Network::Ports::RedisVipPort
1195 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1196 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1197 PortName: redis_virtual_ip
1198 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1201 # The public VIP is on the External net, falls back to ctlplane
1203 depends_on: Networks
1204 type: OS::TripleO::Network::Ports::ExternalVipPort
1206 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1207 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1208 PortName: public_virtual_ip
1209 FixedIPs: {get_param: PublicVirtualFixedIPs}
1211 InternalApiVirtualIP:
1212 depends_on: Networks
1213 type: OS::TripleO::Network::Ports::InternalApiVipPort
1215 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1216 PortName: internal_api_virtual_ip
1217 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1220 depends_on: Networks
1221 type: OS::TripleO::Network::Ports::StorageVipPort
1223 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1224 PortName: storage_virtual_ip
1225 FixedIPs: {get_param: StorageVirtualFixedIPs}
1227 StorageMgmtVirtualIP:
1228 depends_on: Networks
1229 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1231 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1232 PortName: storage_management_virtual_ip
1233 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1236 type: OS::TripleO::Network::Ports::NetVipMap
1238 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1239 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1240 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1241 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1242 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1243 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1244 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1245 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1246 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1247 # No tenant or management VIP required
1250 type: OS::TripleO::VipConfig
1253 type: OS::Heat::StructuredDeployments
1256 config: {get_resource: VipConfig}
1257 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1259 # service VIP mappings
1260 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1261 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1262 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1263 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1264 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1265 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1266 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1267 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1268 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1269 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1270 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1271 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1272 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1273 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1274 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1275 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1276 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1277 # direct configuration of Virtual IPs for each network
1278 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1279 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1280 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1281 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1282 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1283 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1285 ControllerBootstrapNodeConfig:
1286 type: OS::TripleO::BootstrapNode::SoftwareConfig
1288 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1289 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1291 ControllerBootstrapNodeDeployment:
1292 type: OS::Heat::StructuredDeployments
1294 name: ControllerBootstrapNodeDeployment
1295 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1296 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1298 ControllerSwiftDeployment:
1299 type: OS::Heat::StructuredDeployments
1301 name: ControllerSwiftDeployment
1302 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1303 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1305 ObjectStorageSwiftDeployment:
1306 type: OS::Heat::StructuredDeployments
1308 name: ObjectStorageSwiftDeployment
1309 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1310 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1312 SwiftDevicesAndProxyConfig:
1313 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1315 controller_swift_devices: {get_attr: [Controller, swift_device]}
1316 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1317 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1319 ComputeCephDeployment:
1320 type: OS::Heat::StructuredDeployments
1322 name: ComputeCephDeployment
1323 config: {get_attr: [CephClusterConfig, config_id]}
1324 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1326 ControllerCephDeployment:
1327 type: OS::Heat::StructuredDeployments
1329 name: ControllerCephDeployment
1330 config: {get_attr: [CephClusterConfig, config_id]}
1331 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1333 CephStorageCephDeployment:
1334 type: OS::Heat::StructuredDeployments
1336 name: CephStorageCephDeployment
1337 config: {get_attr: [CephClusterConfig, config_id]}
1338 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1341 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1343 ceph_storage_count: {get_param: CephStorageCount}
1344 ceph_fsid: {get_param: CephClusterFSID}
1345 ceph_mon_key: {get_param: CephMonKey}
1346 ceph_admin_key: {get_param: CephAdminKey}
1347 ceph_client_key: {get_param: CephClientKey}
1348 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1349 ceph_mon_names: {get_attr: [Controller, hostname]}
1350 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1352 ControllerAllNodesDeployment:
1353 type: OS::Heat::StructuredDeployments
1355 name: ControllerAllNodesDeployment
1356 config: {get_attr: [allNodesConfig, config_id]}
1357 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1359 ComputeAllNodesDeployment:
1360 type: OS::Heat::StructuredDeployments
1362 name: ComputeAllNodesDeployment
1363 config: {get_attr: [allNodesConfig, config_id]}
1364 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1366 BlockStorageAllNodesDeployment:
1367 type: OS::Heat::StructuredDeployments
1369 name: BlockStorageAllNodesDeployment
1370 config: {get_attr: [allNodesConfig, config_id]}
1371 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1373 ObjectStorageAllNodesDeployment:
1374 type: OS::Heat::StructuredDeployments
1376 name: ObjectStorageAllNodesDeployment
1377 config: {get_attr: [allNodesConfig, config_id]}
1378 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1380 CephStorageAllNodesDeployment:
1381 type: OS::Heat::StructuredDeployments
1383 name: CephStorageAllNodesDeployment
1384 config: {get_attr: [allNodesConfig, config_id]}
1385 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1387 # All Nodes Validations
1388 AllNodesValidationConfig:
1389 type: OS::TripleO::AllNodes::Validation
1394 - - {get_attr: [Controller, resource.0.external_ip_address]}
1395 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1396 - {get_attr: [Controller, resource.0.storage_ip_address]}
1397 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1398 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1400 ControllerAllNodesValidationDeployment:
1401 type: OS::Heat::StructuredDeployments
1402 depends_on: ControllerAllNodesDeployment
1404 name: ControllerAllNodesValidationDeployment
1405 config: {get_resource: AllNodesValidationConfig}
1406 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1408 ComputeAllNodesValidationDeployment:
1409 type: OS::Heat::StructuredDeployments
1410 depends_on: ComputeAllNodesDeployment
1412 name: ComputeAllNodesValidationDeployment
1413 config: {get_resource: AllNodesValidationConfig}
1414 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1416 BlockStorageAllNodesValidationDeployment:
1417 type: OS::Heat::StructuredDeployments
1418 depends_on: BlockStorageAllNodesDeployment
1420 name: BlockStorageAllNodesValidationDeployment
1421 config: {get_resource: AllNodesValidationConfig}
1422 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1424 ObjectStorageAllNodesValidationDeployment:
1425 type: OS::Heat::StructuredDeployments
1426 depends_on: ObjectStorageAllNodesDeployment
1428 name: ObjectStorageAllNodesValidationDeployment
1429 config: {get_resource: AllNodesValidationConfig}
1430 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1432 CephStorageAllNodesValidationDeployment:
1433 type: OS::Heat::StructuredDeployments
1434 depends_on: CephStorageAllNodesDeployment
1436 name: CephStorageAllNodesValidationDeployment
1437 config: {get_resource: AllNodesValidationConfig}
1438 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1441 type: OS::TripleO::Tasks::UpdateWorkflow
1443 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1444 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1445 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1446 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1447 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1449 deploy_identifier: {get_param: DeployIdentifier}
1450 update_identifier: {get_param: UpdateIdentifier}
1452 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1453 # the nested template may configure each role differently (or not at all)
1454 AllNodesExtraConfig:
1455 type: OS::TripleO::AllNodesExtraConfig
1458 - ComputeAllNodesValidationDeployment
1459 - BlockStorageAllNodesValidationDeployment
1460 - ObjectStorageAllNodesValidationDeployment
1461 - CephStorageAllNodesValidationDeployment
1462 - ControllerAllNodesValidationDeployment
1464 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1465 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1466 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1467 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1468 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1470 # Nested stack deployment runs after all other controller deployments
1471 ControllerNodesPostDeployment:
1472 type: OS::TripleO::ControllerPostDeployment
1473 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1475 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1476 NodeConfigIdentifiers:
1477 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1478 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1479 deployment_identifier: {get_param: DeployIdentifier}
1480 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1482 ComputeNodesPostDeployment:
1483 type: OS::TripleO::ComputePostDeployment
1484 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1486 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1487 NodeConfigIdentifiers:
1488 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1489 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1490 deployment_identifier: {get_param: DeployIdentifier}
1491 StepConfig: {get_attr: [ComputeServiceChain, step_config]}
1493 ObjectStorageNodesPostDeployment:
1494 type: OS::TripleO::ObjectStoragePostDeployment
1495 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1497 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1498 NodeConfigIdentifiers:
1499 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1500 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1501 deployment_identifier: {get_param: DeployIdentifier}
1502 StepConfig: {get_attr: [ObjectStorageServiceChain, step_config]}
1504 BlockStorageNodesPostDeployment:
1505 type: OS::TripleO::BlockStoragePostDeployment
1506 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1508 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1509 NodeConfigIdentifiers:
1510 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1511 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1512 deployment_identifier: {get_param: DeployIdentifier}
1514 CephStorageNodesPostDeployment:
1515 type: OS::TripleO::CephStoragePostDeployment
1516 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1518 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1519 NodeConfigIdentifiers:
1520 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1521 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1522 deployment_identifier: {get_param: DeployIdentifier}
1523 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1527 description: URL for the Overcloud Keystone service
1528 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1530 description: Keystone Admin VIP endpoint
1531 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1533 description: Controller VIP for public API endpoints
1534 value: {get_attr: [VipMap, net_ip_map, external]}
1536 description: VIP for Aodh API internal endpoint
1537 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1538 CeilometerInternalVip:
1539 description: VIP for Ceilometer API internal endpoint
1540 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1542 description: VIP for Cinder API internal endpoint
1543 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1545 description: VIP for Glance API internal endpoint
1546 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1548 description: VIP for Gnocchi API internal endpoint
1549 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1551 description: VIP for Heat API internal endpoint
1552 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1553 KeystoneInternalVip:
1554 description: VIP for Keystone API internal endpoint
1555 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1557 description: VIP for Neutron API internal endpoint
1558 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1560 description: VIP for Nova API internal endpoint
1561 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1563 description: VIP for Sahara API internal endpoint
1564 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1566 description: VIP for Swift Proxy internal endpoint
1567 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1570 Mapping of the resources with the needed info for their endpoints.
1571 This includes the protocol used, the IP, port and also a full
1572 representation of the URI.
1573 value: {get_attr: [EndpointMap, endpoint_map]}
1576 The content that should be appended to your /etc/hosts if you want to get
1577 hostname-based access to the deployed nodes (useful for testing without
1579 value: {get_attr: [allNodesConfig, hosts_entries]}