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 description: A list of service resources (configured in the Heat
595 resource_registry) which represent nested stacks
596 for each service that should get installed on the Controllers.
597 type: comma_delimited_list
601 description: A list of service resources (configured in the Heat
602 resource_registry) which represent nested stacks
603 for each service that should get installed on the Compute Nodes.
604 type: comma_delimited_list
606 # Block storage specific parameters
611 default: overcloud-full
613 OvercloudBlockStorageFlavor:
614 description: Flavor for block storage nodes to request when deploying.
618 - custom_constraint: nova.flavor
619 BlockStorageExtraConfig:
622 BlockStorage specific configuration to inject into the cluster. Same
623 structure as ExtraConfig.
625 BlockStorageSchedulerHints:
627 description: Optional scheduler hints to pass to nova
631 # Object storage specific parameters
635 OvercloudSwiftStorageFlavor:
636 description: Flavor for Swift storage nodes to request when deploying.
640 - custom_constraint: nova.flavor
642 default: overcloud-full
644 ObjectStorageExtraConfig:
647 ObjectStorage specific configuration to inject into the cluster. Same
648 structure as ExtraConfig.
650 ObjectStorageSchedulerHints:
652 description: Optional scheduler hints to pass to nova
654 ObjectStorageServices:
656 description: A list of service resources (configured in the Heat
657 resource_registry) which represent nested stacks
658 for each service that should get installed on the ObjectStorage nodes.
659 Note this role currently only supports steps 2, 3 and 4 configuration.
660 type: comma_delimited_list
663 # Ceph storage specific parameters
668 default: overcloud-full
670 OvercloudCephStorageFlavor:
672 description: Flavor for Ceph storage nodes to request when deploying.
675 - custom_constraint: nova.flavor
676 CephStorageExtraConfig:
679 CephStorage specific configuration to inject into the cluster. Same
680 structure as ExtraConfig.
682 CephStorageSchedulerHints:
684 description: Optional scheduler hints to pass to nova
688 description: A list of service resources (configured in the Heat
689 resource_registry) which represent nested stacks
690 for each service that should get installed on the CephStorage nodes.
691 type: comma_delimited_list
693 # Hostname format for each role
694 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
695 # and %stackname% is replaced with OS::stack_name in the template below.
696 # If you want to use the heat generated names, pass '' (empty string).
697 ControllerHostnameFormat:
699 description: Format for Controller node hostnames
700 default: '%stackname%-controller-%index%'
701 ComputeHostnameFormat:
703 description: Format for Compute node hostnames
704 default: '%stackname%-novacompute-%index%'
705 BlockStorageHostnameFormat:
707 description: Format for BlockStorage node hostnames
708 default: '%stackname%-blockstorage-%index%'
709 ObjectStorageHostnameFormat:
711 description: Format for SwiftStorage node hostnames
712 default: '%stackname%-objectstorage-%index%'
713 CephStorageHostnameFormat:
715 description: Format for CephStorage node hostnames
716 default: '%stackname%-cephstorage-%index%'
718 # Identifiers to trigger tasks on nodes
723 Setting to a previously unused value during stack-update will trigger
724 package update on all nodes
729 Setting this to a unique value will re-run any deployment tasks which
730 perform configuration on a Heat stack-update.
732 # If you want to remove a specific node from a resource group, you can pass
733 # the node name or id as a <Group>RemovalPolicies parameter, for example:
734 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
735 ControllerRemovalPolicies:
739 List of resources to be removed from ControllerResourceGroup when
740 doing an update which requires removal of specific resources.
741 ComputeRemovalPolicies:
745 List of resources to be removed from ComputeResourceGroup when
746 doing an update which requires removal of specific resources.
747 BlockStorageRemovalPolicies:
751 List of resources to be removed from BlockStorageResourceGroup when
752 doing an update which requires removal of specific resources.
753 ObjectStorageRemovalPolicies:
757 List of resources to be removed from ObjectStorageResourceGroup when
758 doing an update which requires removal of specific resources.
759 CephStorageRemovalPolicies:
763 List of resources to be removed from CephStorageResourceGroup when
764 doing an update which requires removal of specific resources.
768 description: Do not use deprecated params, they will be removed.
770 - controllerExtraConfig
775 HeatAuthEncryptionKey:
776 type: OS::Heat::RandomString
779 type: OS::Heat::RandomString
784 type: OS::Heat::RandomString
789 type: OS::TripleO::EndpointMap
791 CloudName: {get_param: CloudName}
792 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
793 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
794 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
795 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
796 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
797 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
798 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
799 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
800 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
801 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
802 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
803 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
804 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
805 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
806 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
808 ControllerServiceChain:
809 type: OS::TripleO::Services
812 Services: {get_param: ControllerServices}
813 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
816 type: OS::Heat::ResourceGroup
819 count: {get_param: ControllerCount}
820 removal_policies: {get_param: ControllerRemovalPolicies}
822 type: OS::TripleO::Controller
824 AdminPassword: {get_param: AdminPassword}
825 AodhPassword: {get_param: AodhPassword}
826 CeilometerBackend: {get_param: CeilometerBackend}
827 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
828 CeilometerPassword: {get_param: CeilometerPassword}
829 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
830 CloudDomain: {get_param: CloudDomain}
831 ControlVirtualInterface: {get_param: ControlVirtualInterface}
832 controllerExtraConfig: {get_param: controllerExtraConfig}
833 CorosyncIPv6: {get_param: CorosyncIPv6}
834 Debug: {get_param: Debug}
835 EnableFencing: {get_param: EnableFencing}
836 ManageFirewall: {get_param: ManageFirewall}
837 PurgeFirewallRules: {get_param: PurgeFirewallRules}
838 EnableGalera: {get_param: EnableGalera}
839 EnableCephStorage: {get_param: ControllerEnableCephStorage}
840 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
841 ExtraConfig: {get_param: ExtraConfig}
842 FencingConfig: {get_param: FencingConfig}
843 Flavor: {get_param: OvercloudControlFlavor}
844 GnocchiPassword: {get_param: GnocchiPassword}
845 GnocchiBackend: {get_param: GnocchiBackend}
846 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
847 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
848 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
849 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
850 HorizonSecret: {get_resource: HorizonSecret}
851 Image: {get_param: controllerImage}
852 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
853 InstanceNameTemplate: {get_param: InstanceNameTemplate}
854 KeyName: {get_param: KeyName}
855 MemcachedIPv6: {get_param: MemcachedIPv6}
856 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
857 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
858 MysqlMaxConnections: {get_param: MysqlMaxConnections}
859 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
860 NeutronTenantMtu: {get_param: NeutronTenantMtu}
861 NeutronPublicInterface: {get_param: NeutronPublicInterface}
862 NeutronPassword: {get_param: NeutronPassword}
863 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
864 NovaIPv6: {get_param: NovaIPv6}
865 NovaPassword: {get_param: NovaPassword}
866 NtpServer: {get_param: NtpServer}
867 PcsdPassword: {get_resource: PcsdPassword}
868 PublicVirtualInterface: {get_param: PublicVirtualInterface}
869 RabbitPassword: {get_param: RabbitPassword}
870 RabbitUserName: {get_param: RabbitUserName}
871 RabbitCookie: {get_attr: [RabbitCookie, value]}
872 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
873 RabbitClientPort: {get_param: RabbitClientPort}
874 RedisPassword: {get_param: RedisPassword}
875 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
876 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
877 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
878 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
879 SwiftHashSuffix: {get_param: SwiftHashSuffix}
880 SwiftMountCheck: {get_param: SwiftMountCheck}
881 SwiftMinPartHours: {get_param: SwiftMinPartHours}
882 SwiftPartPower: {get_param: SwiftPartPower}
883 SwiftReplicas: { get_param: SwiftReplicas}
884 TimeZone: {get_param: TimeZone}
885 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
886 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
887 ServiceNetMap: {get_param: ServiceNetMap}
888 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
889 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
890 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
891 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
892 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
893 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
894 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
895 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
896 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
897 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
898 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
899 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
900 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
901 UpdateIdentifier: {get_param: UpdateIdentifier}
904 template: {get_param: ControllerHostnameFormat}
906 '%stackname%': {get_param: 'OS::stack_name'}
908 ServerMetadata: {get_param: ServerMetadata}
909 SchedulerHints: {get_param: ControllerSchedulerHints}
910 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
913 type: OS::TripleO::Services
915 Services: {get_param: ComputeServices}
916 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
919 type: OS::Heat::ResourceGroup
922 count: {get_param: ComputeCount}
923 removal_policies: {get_param: ComputeRemovalPolicies}
925 type: OS::TripleO::Compute
927 AdminPassword: {get_param: AdminPassword}
928 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
929 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
930 CeilometerPassword: {get_param: CeilometerPassword}
931 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
932 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
933 Debug: {get_param: Debug}
934 ExtraConfig: {get_param: ExtraConfig}
935 Flavor: {get_param: OvercloudComputeFlavor}
936 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
937 Image: {get_param: NovaImage}
938 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
939 KeyName: {get_param: KeyName}
940 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
941 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
942 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
943 NeutronTenantMtu: {get_param: NeutronTenantMtu}
944 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
945 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
946 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
947 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
948 NeutronNetworkType: {get_param: NeutronNetworkType}
949 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
950 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
951 NeutronPassword: {get_param: NeutronPassword}
952 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
953 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
954 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
955 NeutronCorePlugin: {get_param: NeutronCorePlugin}
956 NeutronServicePlugins: {get_param: NeutronServicePlugins}
957 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
958 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
959 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
960 # L3 HA and Failover is not relevant for Computes, should be removed
961 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
962 NeutronL3HA: {get_param: NeutronL3HA}
963 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
964 NovaComputeDriver: {get_param: NovaComputeDriver}
965 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
966 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
967 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
968 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
969 NovaIPv6: {get_param: NovaIPv6}
970 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
971 NovaPassword: {get_param: NovaPassword}
972 NovaOVSBridge: {get_param: NovaOVSBridge}
973 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
974 NtpServer: {get_param: NtpServer}
975 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
976 RabbitPassword: {get_param: RabbitPassword}
977 RabbitUserName: {get_param: RabbitUserName}
978 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
979 RabbitClientPort: {get_param: RabbitClientPort}
980 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
981 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
982 ServiceNetMap: {get_param: ServiceNetMap}
983 TimeZone: {get_param: TimeZone}
984 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
985 UpdateIdentifier: {get_param: UpdateIdentifier}
988 template: {get_param: ComputeHostnameFormat}
990 '%stackname%': {get_param: 'OS::stack_name'}
991 CloudDomain: {get_param: CloudDomain}
992 ServerMetadata: {get_param: ServerMetadata}
993 SchedulerHints: {get_param: NovaComputeSchedulerHints}
995 ServiceConfigSettings: {get_attr: [ComputeServiceChain, config_settings]}
999 type: OS::Heat::ResourceGroup
1000 depends_on: Networks
1002 count: {get_param: BlockStorageCount}
1003 removal_policies: {get_param: BlockStorageRemovalPolicies}
1005 type: OS::TripleO::BlockStorage
1007 Debug: {get_param: Debug}
1008 Image: {get_param: BlockStorageImage}
1009 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1010 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1011 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1012 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1013 CinderPassword: {get_param: CinderPassword}
1014 KeyName: {get_param: KeyName}
1015 Flavor: {get_param: OvercloudBlockStorageFlavor}
1016 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1017 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1018 RabbitPassword: {get_param: RabbitPassword}
1019 RabbitUserName: {get_param: RabbitUserName}
1020 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1021 RabbitClientPort: {get_param: RabbitClientPort}
1022 TimeZone: {get_param: TimeZone}
1023 NtpServer: {get_param: NtpServer}
1024 UpdateIdentifier: {get_param: UpdateIdentifier}
1027 template: {get_param: BlockStorageHostnameFormat}
1029 '%stackname%': {get_param: 'OS::stack_name'}
1030 ServiceNetMap: {get_param: ServiceNetMap}
1031 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1032 ExtraConfig: {get_param: ExtraConfig}
1033 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1034 CloudDomain: {get_param: CloudDomain}
1035 ServerMetadata: {get_param: ServerMetadata}
1036 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1037 NodeIndex: '%index%'
1039 ObjectStorageServiceChain:
1040 type: OS::TripleO::Services
1042 Services: {get_param: ObjectStorageServices}
1043 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1046 type: OS::Heat::ResourceGroup
1047 depends_on: Networks
1049 count: {get_param: ObjectStorageCount}
1050 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1052 type: OS::TripleO::ObjectStorage
1054 KeyName: {get_param: KeyName}
1055 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1056 HashSuffix: {get_param: SwiftHashSuffix}
1057 MountCheck: {get_param: SwiftMountCheck}
1058 MinPartHours: {get_param: SwiftMinPartHours}
1059 PartPower: {get_param: SwiftPartPower}
1060 Image: {get_param: SwiftStorageImage}
1061 Replicas: { get_param: SwiftReplicas}
1062 TimeZone: {get_param: TimeZone}
1063 NtpServer: {get_param: NtpServer}
1064 UpdateIdentifier: {get_param: UpdateIdentifier}
1065 ServiceNetMap: {get_param: ServiceNetMap}
1068 template: {get_param: ObjectStorageHostnameFormat}
1070 '%stackname%': {get_param: 'OS::stack_name'}
1071 ExtraConfig: {get_param: ExtraConfig}
1072 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1073 CloudDomain: {get_param: CloudDomain}
1074 ServerMetadata: {get_param: ServerMetadata}
1075 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1076 NodeIndex: '%index%'
1077 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, config_settings]}
1079 CephStorageServiceChain:
1080 type: OS::TripleO::Services
1082 Services: {get_param: CephStorageServices}
1083 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1086 type: OS::Heat::ResourceGroup
1087 depends_on: Networks
1089 count: {get_param: CephStorageCount}
1090 removal_policies: {get_param: CephStorageRemovalPolicies}
1092 type: OS::TripleO::CephStorage
1094 Image: {get_param: CephStorageImage}
1095 KeyName: {get_param: KeyName}
1096 Flavor: {get_param: OvercloudCephStorageFlavor}
1097 NtpServer: {get_param: NtpServer}
1098 ServiceNetMap: {get_param: ServiceNetMap}
1099 TimeZone: {get_param: TimeZone}
1100 UpdateIdentifier: {get_param: UpdateIdentifier}
1103 template: {get_param: CephStorageHostnameFormat}
1105 '%stackname%': {get_param: 'OS::stack_name'}
1106 ExtraConfig: {get_param: ExtraConfig}
1107 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1108 CloudDomain: {get_param: CloudDomain}
1109 ServerMetadata: {get_param: ServerMetadata}
1110 SchedulerHints: {get_param: CephStorageSchedulerHints}
1111 NodeIndex: '%index%'
1112 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1114 ControllerIpListMap:
1115 type: OS::TripleO::Network::Ports::NetIpListMap
1117 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1118 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1119 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1120 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1121 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1122 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1123 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1126 type: OS::TripleO::AllNodes::SoftwareConfig
1128 compute_hosts: {get_attr: [Compute, hosts_entry]}
1129 controller_hosts: {get_attr: [Controller, hosts_entry]}
1130 controller_ips: {get_attr: [Controller, ip_address]}
1131 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1132 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1133 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1134 controller_names: {get_attr: [Controller, hostname]}
1135 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1136 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1137 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1138 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1139 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1140 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1141 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1142 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1143 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1144 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1145 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1146 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1147 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1148 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1149 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1150 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1151 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1152 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1153 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1154 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1155 DeployIdentifier: {get_param: DeployIdentifier}
1156 UpdateIdentifier: {get_param: UpdateIdentifier}
1159 type: OS::Heat::RandomString
1163 MysqlClusterUniquePart:
1164 type: OS::Heat::RandomString
1169 type: OS::Heat::RandomString
1172 salt: {get_param: RabbitCookieSalt}
1174 # creates the network architecture
1176 type: OS::TripleO::Network
1179 type: OS::Neutron::Port
1180 depends_on: Networks
1182 name: control_virtual_ip
1183 network: {get_param: NeutronControlPlaneID}
1184 fixed_ips: {get_param: ControlFixedIPs}
1185 replacement_policy: AUTO
1188 depends_on: Networks
1189 type: OS::TripleO::Network::Ports::RedisVipPort
1191 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1192 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1193 PortName: redis_virtual_ip
1194 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1197 # The public VIP is on the External net, falls back to ctlplane
1199 depends_on: Networks
1200 type: OS::TripleO::Network::Ports::ExternalVipPort
1202 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1203 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1204 PortName: public_virtual_ip
1205 FixedIPs: {get_param: PublicVirtualFixedIPs}
1207 InternalApiVirtualIP:
1208 depends_on: Networks
1209 type: OS::TripleO::Network::Ports::InternalApiVipPort
1211 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1212 PortName: internal_api_virtual_ip
1213 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1216 depends_on: Networks
1217 type: OS::TripleO::Network::Ports::StorageVipPort
1219 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1220 PortName: storage_virtual_ip
1221 FixedIPs: {get_param: StorageVirtualFixedIPs}
1223 StorageMgmtVirtualIP:
1224 depends_on: Networks
1225 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1227 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1228 PortName: storage_management_virtual_ip
1229 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1232 type: OS::TripleO::Network::Ports::NetVipMap
1234 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1235 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1236 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1237 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1238 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1239 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1240 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1241 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1242 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1243 # No tenant or management VIP required
1246 type: OS::TripleO::VipConfig
1249 type: OS::Heat::StructuredDeployments
1252 config: {get_resource: VipConfig}
1253 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1255 # service VIP mappings
1256 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1257 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1258 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1259 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1260 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1261 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1262 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1263 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1264 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1265 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1266 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1267 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1268 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1269 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1270 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1271 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1272 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1273 # direct configuration of Virtual IPs for each network
1274 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1275 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1276 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1277 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1278 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1279 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1281 ControllerBootstrapNodeConfig:
1282 type: OS::TripleO::BootstrapNode::SoftwareConfig
1284 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1285 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1287 ControllerBootstrapNodeDeployment:
1288 type: OS::Heat::StructuredDeployments
1290 name: ControllerBootstrapNodeDeployment
1291 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1292 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1294 ControllerSwiftDeployment:
1295 type: OS::Heat::StructuredDeployments
1297 name: ControllerSwiftDeployment
1298 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1299 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1301 ObjectStorageSwiftDeployment:
1302 type: OS::Heat::StructuredDeployments
1304 name: ObjectStorageSwiftDeployment
1305 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1306 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1308 SwiftDevicesAndProxyConfig:
1309 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1311 controller_swift_devices: {get_attr: [Controller, swift_device]}
1312 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1313 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1315 ComputeCephDeployment:
1316 type: OS::Heat::StructuredDeployments
1318 name: ComputeCephDeployment
1319 config: {get_attr: [CephClusterConfig, config_id]}
1320 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1322 ControllerCephDeployment:
1323 type: OS::Heat::StructuredDeployments
1325 name: ControllerCephDeployment
1326 config: {get_attr: [CephClusterConfig, config_id]}
1327 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1329 CephStorageCephDeployment:
1330 type: OS::Heat::StructuredDeployments
1332 name: CephStorageCephDeployment
1333 config: {get_attr: [CephClusterConfig, config_id]}
1334 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1337 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1339 ceph_storage_count: {get_param: CephStorageCount}
1340 ceph_fsid: {get_param: CephClusterFSID}
1341 ceph_mon_key: {get_param: CephMonKey}
1342 ceph_admin_key: {get_param: CephAdminKey}
1343 ceph_client_key: {get_param: CephClientKey}
1344 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1345 ceph_mon_names: {get_attr: [Controller, hostname]}
1346 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1348 ControllerAllNodesDeployment:
1349 type: OS::Heat::StructuredDeployments
1351 name: ControllerAllNodesDeployment
1352 config: {get_attr: [allNodesConfig, config_id]}
1353 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1355 ComputeAllNodesDeployment:
1356 type: OS::Heat::StructuredDeployments
1358 name: ComputeAllNodesDeployment
1359 config: {get_attr: [allNodesConfig, config_id]}
1360 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1362 BlockStorageAllNodesDeployment:
1363 type: OS::Heat::StructuredDeployments
1365 name: BlockStorageAllNodesDeployment
1366 config: {get_attr: [allNodesConfig, config_id]}
1367 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1369 ObjectStorageAllNodesDeployment:
1370 type: OS::Heat::StructuredDeployments
1372 name: ObjectStorageAllNodesDeployment
1373 config: {get_attr: [allNodesConfig, config_id]}
1374 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1376 CephStorageAllNodesDeployment:
1377 type: OS::Heat::StructuredDeployments
1379 name: CephStorageAllNodesDeployment
1380 config: {get_attr: [allNodesConfig, config_id]}
1381 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1383 # All Nodes Validations
1384 AllNodesValidationConfig:
1385 type: OS::TripleO::AllNodes::Validation
1390 - - {get_attr: [Controller, resource.0.external_ip_address]}
1391 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1392 - {get_attr: [Controller, resource.0.storage_ip_address]}
1393 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1394 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1396 ControllerAllNodesValidationDeployment:
1397 type: OS::Heat::StructuredDeployments
1398 depends_on: ControllerAllNodesDeployment
1400 name: ControllerAllNodesValidationDeployment
1401 config: {get_resource: AllNodesValidationConfig}
1402 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1404 ComputeAllNodesValidationDeployment:
1405 type: OS::Heat::StructuredDeployments
1406 depends_on: ComputeAllNodesDeployment
1408 name: ComputeAllNodesValidationDeployment
1409 config: {get_resource: AllNodesValidationConfig}
1410 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1412 BlockStorageAllNodesValidationDeployment:
1413 type: OS::Heat::StructuredDeployments
1414 depends_on: BlockStorageAllNodesDeployment
1416 name: BlockStorageAllNodesValidationDeployment
1417 config: {get_resource: AllNodesValidationConfig}
1418 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1420 ObjectStorageAllNodesValidationDeployment:
1421 type: OS::Heat::StructuredDeployments
1422 depends_on: ObjectStorageAllNodesDeployment
1424 name: ObjectStorageAllNodesValidationDeployment
1425 config: {get_resource: AllNodesValidationConfig}
1426 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1428 CephStorageAllNodesValidationDeployment:
1429 type: OS::Heat::StructuredDeployments
1430 depends_on: CephStorageAllNodesDeployment
1432 name: CephStorageAllNodesValidationDeployment
1433 config: {get_resource: AllNodesValidationConfig}
1434 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1437 type: OS::TripleO::Tasks::UpdateWorkflow
1439 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1440 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1441 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1442 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1443 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1445 deploy_identifier: {get_param: DeployIdentifier}
1446 update_identifier: {get_param: UpdateIdentifier}
1448 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1449 # the nested template may configure each role differently (or not at all)
1450 AllNodesExtraConfig:
1451 type: OS::TripleO::AllNodesExtraConfig
1454 - ComputeAllNodesValidationDeployment
1455 - BlockStorageAllNodesValidationDeployment
1456 - ObjectStorageAllNodesValidationDeployment
1457 - CephStorageAllNodesValidationDeployment
1458 - ControllerAllNodesValidationDeployment
1460 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1461 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1462 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1463 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1464 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1466 # Nested stack deployment runs after all other controller deployments
1467 ControllerNodesPostDeployment:
1468 type: OS::TripleO::ControllerPostDeployment
1469 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1471 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1472 NodeConfigIdentifiers:
1473 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1474 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1475 deployment_identifier: {get_param: DeployIdentifier}
1476 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1478 ComputeNodesPostDeployment:
1479 type: OS::TripleO::ComputePostDeployment
1480 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1482 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1483 NodeConfigIdentifiers:
1484 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1485 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1486 deployment_identifier: {get_param: DeployIdentifier}
1487 StepConfig: {get_attr: [ComputeServiceChain, step_config]}
1489 ObjectStorageNodesPostDeployment:
1490 type: OS::TripleO::ObjectStoragePostDeployment
1491 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1493 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1494 NodeConfigIdentifiers:
1495 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1496 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1497 deployment_identifier: {get_param: DeployIdentifier}
1498 StepConfig: {get_attr: [ObjectStorageServiceChain, step_config]}
1500 BlockStorageNodesPostDeployment:
1501 type: OS::TripleO::BlockStoragePostDeployment
1502 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1504 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1505 NodeConfigIdentifiers:
1506 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1507 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1508 deployment_identifier: {get_param: DeployIdentifier}
1510 CephStorageNodesPostDeployment:
1511 type: OS::TripleO::CephStoragePostDeployment
1512 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1514 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1515 NodeConfigIdentifiers:
1516 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1517 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1518 deployment_identifier: {get_param: DeployIdentifier}
1519 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1523 description: URL for the Overcloud Keystone service
1524 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1526 description: Keystone Admin VIP endpoint
1527 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1529 description: Controller VIP for public API endpoints
1530 value: {get_attr: [VipMap, net_ip_map, external]}
1532 description: VIP for Aodh API internal endpoint
1533 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1534 CeilometerInternalVip:
1535 description: VIP for Ceilometer API internal endpoint
1536 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1538 description: VIP for Cinder API internal endpoint
1539 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1541 description: VIP for Glance API internal endpoint
1542 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1544 description: VIP for Gnocchi API internal endpoint
1545 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1547 description: VIP for Heat API internal endpoint
1548 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1549 KeystoneInternalVip:
1550 description: VIP for Keystone API internal endpoint
1551 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1553 description: VIP for Neutron API internal endpoint
1554 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1556 description: VIP for Nova API internal endpoint
1557 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1559 description: VIP for Sahara API internal endpoint
1560 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1562 description: VIP for Swift Proxy internal endpoint
1563 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1566 Mapping of the resources with the needed info for their endpoints.
1567 This includes the protocol used, the IP, port and also a full
1568 representation of the URI.
1569 value: {get_attr: [EndpointMap, endpoint_map]}
1572 The content that should be appended to your /etc/hosts if you want to get
1573 hostname-based access to the deployed nodes (useful for testing without
1575 value: {get_attr: [allNodesConfig, hosts_entries]}