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 NeutronPublicInterfaceTag:
164 VLAN tag for creating a public VLAN. The tag will be used to
165 create an access port on the exterior bridge for each control plane node,
166 and that port will be given the IP address returned by neutron from the
167 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
168 overcloud.yaml to include the deployment of VLAN ports to the control
171 NeutronComputeAgentMode:
173 description: Agent mode for the neutron-l3-agent on the compute hosts
177 description: Agent mode for the neutron-l3-agent on the controller hosts
181 description: Whether to configure Neutron Distributed Virtual Routers
183 NeutronMetadataProxySharedSecret:
184 description: Shared secret to prevent spoofing
189 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
190 be at least 50 bytes smaller than the MTU on the physical network. This
191 value will be used to set the MTU on the virtual Ethernet device.
192 This value will be used to construct the NeutronDnsmasqOptions, since that
193 will determine the MTU that is assigned to the VM host through DHCP.
199 The tunnel types for the Neutron tenant network.
200 type: comma_delimited_list
201 NeutronTunnelIdRanges:
203 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
204 of GRE tunnel IDs that are available for tenant network allocation
205 default: ["1:4094", ]
206 type: comma_delimited_list
209 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
210 of VXLAN VNI IDs that are available for tenant network allocation
211 default: ["1:4094", ]
212 type: comma_delimited_list
216 The core plugin for Neutron. The value should be the entrypoint to be loaded
217 from neutron.core_plugins namespace.
219 NeutronServicePlugins:
220 default: "router,qos"
222 Comma-separated list of service plugin entrypoints to be loaded from the
223 neutron.service_plugins namespace.
224 type: comma_delimited_list
226 default: "vxlan,vlan,flat,gre"
228 Comma-separated list of network type driver entrypoints to be loaded.
229 type: comma_delimited_list
230 NeutronMechanismDrivers:
231 default: 'openvswitch'
233 The mechanism drivers for the Neutron tenant network.
234 type: comma_delimited_list
235 NeutronPluginExtensions:
236 default: "qos,port_security"
238 Comma-separated list of extensions enabled for the Neutron plugin.
239 type: comma_delimited_list
240 NeutronAgentExtensions:
243 Comma-separated list of extensions enabled for the Neutron agents.
244 type: comma_delimited_list
245 NeutronAllowL3AgentFailover:
247 description: Allow automatic l3-agent failover
251 description: Whether to enable l3-agent HA
255 description: Enable IPv6 features in Nova
258 description: The password for the nova service account, used by nova-api.
263 description: Comma-separated list of ntp servers
264 type: comma_delimited_list
267 description: Should MongoDb journaling be disabled
271 description: Enable IPv6 if MongoDB VIP is IPv6
273 PublicVirtualFixedIPs:
276 Control the IP allocation for the PublicVirtualInterface port. E.g.
277 [{'ip_address':'1.2.3.4'}]
282 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
285 description: The username for RabbitMQ
288 description: The password for RabbitMQ
294 Rabbit client subscriber parameter to specify
295 an SSL connection to the RabbitMQ host.
299 description: Set rabbit subscriber port, change this if using SSL
301 # We need to set this as string because 'unlimited' is a valid setting
304 description: Configures RabbitMQ FD limit
308 description: Enable IPv6 in RabbitMQ
311 description: The password for Redis
314 SnmpdReadonlyUserName:
315 default: ro_snmp_user
316 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
318 SnmpdReadonlyUserPassword:
319 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
322 StorageVirtualFixedIPs:
325 Control the IP allocation for the StorageVirtualInterface port. E.g.
326 [{'ip_address':'1.2.3.4'}]
328 StorageMgmtVirtualFixedIPs:
331 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
332 [{'ip_address':'1.2.3.4'}]
336 description: The timezone to be set on nodes.
339 default: 'localdomain'
342 The DNS domain used for the hosts. This should match the dhcp_domain
343 configured in the Undercloud neutron. Defaults to localdomain.
347 Extra properties or metadata passed to Nova for the created nodes in
348 the overcloud. It's accessible via the Nova metadata API.
351 # Controller-specific params
352 CinderLVMLoopDeviceSize:
354 description: The size of the loopback file used by the cinder LVM driver.
356 CinderNfsMountOptions:
359 Mount options for NFS mounts used by Cinder NFS backend. Effective
360 when CinderEnableNfsBackend is true.
365 NFS servers used by Cinder NFS backend. Effective when
366 CinderEnableNfsBackend is true.
367 type: comma_delimited_list
369 description: The password for the cinder service account, used by cinder-api.
374 description: The iSCSI helper to use with cinder.
381 controllerExtraConfig:
384 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
388 default: overcloud-full
390 - custom_constraint: glance.image
391 OvercloudControlFlavor:
392 description: Flavor for control nodes to request when deploying.
396 - custom_constraint: nova.flavor
397 ControlVirtualInterface:
399 description: Interface where virtual ip will be assigned.
403 description: Whether to enable fencing in Pacemaker or not.
407 description: Whether to use Galera instead of regular MariaDB.
409 ControllerEnableCephStorage:
411 description: Whether to deploy Ceph Storage (OSD) on the Controller
413 ControllerEnableSwiftStorage:
415 description: Whether to enable Swift Storage on the Controller
417 ControllerSchedulerHints:
419 description: Optional scheduler hints to pass to nova
424 Additional configuration to inject into the cluster. The format required
425 may be implementation specific, e.g puppet hieradata. Any role specific
426 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
431 Pacemaker fencing configuration. The JSON should have
432 the following structure:
436 "agent": "AGENT_NAME",
437 "host_mac": "HOST_MAC_ADDRESS",
438 "params": {"PARAM_NAME": "PARAM_VALUE"}
446 "agent": "fence_xvm",
447 "host_mac": "52:54:00:aa:bb:cc",
449 "multicast_address": "225.0.0.12",
450 "port": "baremetal_0",
452 "manage_key_file": true,
453 "key_file": "/etc/fence_xvm.key",
454 "key_file_password": "abcdef"
462 description: The short name of the Gnocchi backend to use. Should be one
463 of swift, rbd or file
466 - allowed_values: ['swift', 'file', 'rbd']
467 GnocchiIndexerBackend:
469 description: The short name of the Gnocchi indexer backend to use.
472 description: The password for the gnocchi service account.
476 description: The password for the Heat service account, used by the Heat services.
479 HeatStackDomainAdminPassword:
480 description: Password for heat_stack_domain_admin user.
483 InstanceNameTemplate:
484 default: 'instance-%08x'
485 description: Template string to be used to generate instance names
489 description: Whether to manage IPtables rules.
493 description: Whether IPtables rules should be purged before setting up the ones.
495 MysqlInnodbBufferPoolSize:
497 Specifies the size of the buffer pool in megabytes. Setting to
498 zero should be interpreted as "no value" and will defer to the
503 description: Configures MySQL max_connections config setting
506 NeutronPublicInterfaceDefaultRoute:
508 description: A custom default route for the NeutronPublicInterface.
510 NeutronPublicInterfaceIP:
512 description: A custom IP address to put onto the NeutronPublicInterface.
514 NeutronPublicInterfaceRawDevice:
516 description: If set, the public interface is a vlan with this device as the raw device.
518 PublicVirtualInterface:
521 Specifies the interface where the public-facing virtual ip will be assigned.
522 This should be int_public when a VLAN is being used.
525 description: A random string to be used as a salt when hashing to determine mappings in the ring.
529 description: The password for the swift service account, used by the swift proxy services.
534 description: Value of mount_check in Swift account/container/object -server.conf
539 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
542 description: Partition Power to use when building Swift rings
547 description: How many replicas to use in the swift rings.
549 description: The password for the sahara service account.
553 # Compute-specific params
554 CeilometerComputeAgent:
555 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
559 - allowed_values: ['', Present]
563 HypervisorNeutronPhysicalBridge:
566 An OVS bridge to create on each hypervisor. This defaults to br-ex the
567 same as the control plane nodes, as we have a uniform configuration of
568 the openvswitch agent. Typically should not need to be changed.
570 HypervisorNeutronPublicInterface:
572 description: What interface to add to the HypervisorNeutronPhysicalBridge.
574 NeutronNetworkVLANRanges:
575 default: 'datacentre:1:1000'
577 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
578 Neutron documentation for permitted values. Defaults to permitting any
579 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
580 type: comma_delimited_list
583 default: libvirt.LibvirtDriver
584 NovaComputeExtraConfig:
587 NovaCompute specific configuration to inject into the cluster. Same
588 structure as ExtraConfig.
590 NovaComputeLibvirtType:
593 NovaComputeLibvirtVifDriver:
595 description: Libvirt VIF driver configuration for the network
597 NovaComputeSchedulerHints:
599 description: Optional scheduler hints to pass to nova
601 NovaEnableRbdBackend:
603 description: Whether to enable or not the Rbd backend for Nova
607 default: overcloud-full
609 - custom_constraint: glance.image
612 description: Name of integration bridge used by Open vSwitch
614 NovaSecurityGroupAPI:
616 description: The full class name of the security API class
618 OvercloudComputeFlavor:
619 description: Use this flavor
623 - custom_constraint: nova.flavor
626 NeutronTenantNetwork: tenant
627 CeilometerApiNetwork: internal_api
628 AodhApiNetwork: internal_api
629 GnocchiApiNetwork: internal_api
630 MongoDbNetwork: internal_api
631 CinderApiNetwork: internal_api
632 CinderIscsiNetwork: storage
633 GlanceApiNetwork: storage
634 GlanceRegistryNetwork: internal_api
635 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
636 KeystonePublicApiNetwork: internal_api
637 NeutronApiNetwork: internal_api
638 HeatApiNetwork: internal_api
639 NovaApiNetwork: internal_api
640 NovaMetadataNetwork: internal_api
641 NovaVncProxyNetwork: internal_api
642 SwiftMgmtNetwork: storage_mgmt
643 SwiftProxyNetwork: storage
644 SaharaApiNetwork: internal_api
645 HorizonNetwork: internal_api
646 MemcachedNetwork: internal_api
647 RabbitMqNetwork: internal_api
648 RedisNetwork: internal_api
649 MysqlNetwork: internal_api
650 CephClusterNetwork: storage_mgmt
651 CephPublicNetwork: storage
652 ControllerHostnameResolveNetwork: internal_api
653 ComputeHostnameResolveNetwork: internal_api
654 BlockStorageHostnameResolveNetwork: internal_api
655 ObjectStorageHostnameResolveNetwork: internal_api
656 CephStorageHostnameResolveNetwork: storage
657 description: Mapping of service_name -> network name. Typically set
658 via parameter_defaults in the resource registry.
663 - OS::TripleO::Services::Keystone
664 - OS::TripleO::Services::GlanceApi
665 - OS::TripleO::Services::GlanceRegistry
666 - OS::TripleO::Services::NeutronDhcpAgent
667 - OS::TripleO::Services::NeutronL3Agent
668 - OS::TripleO::Services::NeutronMetadataAgent
669 description: A list of service resources (configured in the Heat
670 resource_registry) which represent nested stacks
671 for each service that should get installed on the Controllers.
672 type: comma_delimited_list
674 # Block storage specific parameters
679 default: overcloud-full
681 OvercloudBlockStorageFlavor:
682 description: Flavor for block storage nodes to request when deploying.
686 - custom_constraint: nova.flavor
687 BlockStorageExtraConfig:
690 BlockStorage specific configuration to inject into the cluster. Same
691 structure as ExtraConfig.
693 BlockStorageSchedulerHints:
695 description: Optional scheduler hints to pass to nova
699 # Object storage specific parameters
703 OvercloudSwiftStorageFlavor:
704 description: Flavor for Swift storage nodes to request when deploying.
708 - custom_constraint: nova.flavor
710 default: overcloud-full
712 ObjectStorageExtraConfig:
715 ObjectStorage specific configuration to inject into the cluster. Same
716 structure as ExtraConfig.
718 ObjectStorageSchedulerHints:
720 description: Optional scheduler hints to pass to nova
723 # Ceph storage specific parameters
728 default: overcloud-full
730 OvercloudCephStorageFlavor:
732 description: Flavor for Ceph storage nodes to request when deploying.
735 - custom_constraint: nova.flavor
736 CephStorageExtraConfig:
739 CephStorage specific configuration to inject into the cluster. Same
740 structure as ExtraConfig.
742 CephStorageSchedulerHints:
744 description: Optional scheduler hints to pass to nova
748 # Hostname format for each role
749 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
750 # and %stackname% is replaced with OS::stack_name in the template below.
751 # If you want to use the heat generated names, pass '' (empty string).
752 ControllerHostnameFormat:
754 description: Format for Controller node hostnames
755 default: '%stackname%-controller-%index%'
756 ComputeHostnameFormat:
758 description: Format for Compute node hostnames
759 default: '%stackname%-novacompute-%index%'
760 BlockStorageHostnameFormat:
762 description: Format for BlockStorage node hostnames
763 default: '%stackname%-blockstorage-%index%'
764 ObjectStorageHostnameFormat:
766 description: Format for SwiftStorage node hostnames
767 default: '%stackname%-objectstorage-%index%'
768 CephStorageHostnameFormat:
770 description: Format for CephStorage node hostnames
771 default: '%stackname%-cephstorage-%index%'
773 # Identifiers to trigger tasks on nodes
778 Setting to a previously unused value during stack-update will trigger
779 package update on all nodes
784 Setting this to a unique value will re-run any deployment tasks which
785 perform configuration on a Heat stack-update.
787 # If you want to remove a specific node from a resource group, you can pass
788 # the node name or id as a <Group>RemovalPolicies parameter, for example:
789 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
790 ControllerRemovalPolicies:
794 List of resources to be removed from ControllerResourceGroup when
795 doing an update which requires removal of specific resources.
796 ComputeRemovalPolicies:
800 List of resources to be removed from ComputeResourceGroup when
801 doing an update which requires removal of specific resources.
802 BlockStorageRemovalPolicies:
806 List of resources to be removed from BlockStorageResourceGroup when
807 doing an update which requires removal of specific resources.
808 ObjectStorageRemovalPolicies:
812 List of resources to be removed from ObjectStorageResourceGroup when
813 doing an update which requires removal of specific resources.
814 CephStorageRemovalPolicies:
818 List of resources to be removed from CephStorageResourceGroup when
819 doing an update which requires removal of specific resources.
823 description: Do not use deprecated params, they will be removed.
825 - controllerExtraConfig
830 HeatAuthEncryptionKey:
831 type: OS::Heat::RandomString
834 type: OS::Heat::RandomString
839 type: OS::Heat::RandomString
844 type: OS::TripleO::EndpointMap
846 CloudName: {get_param: CloudName}
847 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
848 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
849 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
850 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
851 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
852 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
853 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
854 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
855 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
856 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
857 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
858 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
859 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
860 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
861 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
863 ControllerServiceChain:
864 type: OS::TripleO::Services
866 Services: {get_param: ControllerServices}
867 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
868 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
871 type: OS::Heat::ResourceGroup
874 count: {get_param: ControllerCount}
875 removal_policies: {get_param: ControllerRemovalPolicies}
877 type: OS::TripleO::Controller
879 AdminPassword: {get_param: AdminPassword}
880 AodhPassword: {get_param: AodhPassword}
881 CeilometerBackend: {get_param: CeilometerBackend}
882 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
883 CeilometerPassword: {get_param: CeilometerPassword}
884 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
885 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
886 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
887 CinderNfsServers: {get_param: CinderNfsServers}
888 CinderPassword: {get_param: CinderPassword}
889 CinderISCSIHelper: {get_param: CinderISCSIHelper}
890 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
891 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
892 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
893 CloudDomain: {get_param: CloudDomain}
894 ControlVirtualInterface: {get_param: ControlVirtualInterface}
895 controllerExtraConfig: {get_param: controllerExtraConfig}
896 CorosyncIPv6: {get_param: CorosyncIPv6}
897 Debug: {get_param: Debug}
898 EnableFencing: {get_param: EnableFencing}
899 ManageFirewall: {get_param: ManageFirewall}
900 PurgeFirewallRules: {get_param: PurgeFirewallRules}
901 EnableGalera: {get_param: EnableGalera}
902 EnableCephStorage: {get_param: ControllerEnableCephStorage}
903 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
904 ExtraConfig: {get_param: ExtraConfig}
905 FencingConfig: {get_param: FencingConfig}
906 Flavor: {get_param: OvercloudControlFlavor}
907 GnocchiPassword: {get_param: GnocchiPassword}
908 GnocchiBackend: {get_param: GnocchiBackend}
909 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
910 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
911 HeatPassword: {get_param: HeatPassword}
912 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
913 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
914 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
915 HorizonSecret: {get_resource: HorizonSecret}
916 Image: {get_param: controllerImage}
917 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
918 InstanceNameTemplate: {get_param: InstanceNameTemplate}
919 KeyName: {get_param: KeyName}
920 MemcachedIPv6: {get_param: MemcachedIPv6}
921 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
922 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
923 MysqlMaxConnections: {get_param: MysqlMaxConnections}
924 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
925 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
926 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
927 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
928 NeutronTenantMtu: {get_param: NeutronTenantMtu}
929 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
930 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
931 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
932 NeutronPublicInterface: {get_param: NeutronPublicInterface}
933 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
934 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
935 NeutronPassword: {get_param: NeutronPassword}
936 NeutronDVR: {get_param: NeutronDVR}
937 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
938 NeutronAgentMode: {get_param: NeutronAgentMode}
939 NeutronCorePlugin: {get_param: NeutronCorePlugin}
940 NeutronServicePlugins: {get_param: NeutronServicePlugins}
941 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
942 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
943 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
944 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
945 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
946 NeutronL3HA: {get_param: NeutronL3HA}
947 NeutronNetworkType: {get_param: NeutronNetworkType}
948 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
949 NovaIPv6: {get_param: NovaIPv6}
950 NovaPassword: {get_param: NovaPassword}
951 NtpServer: {get_param: NtpServer}
952 MongoDbNoJournal: {get_param: MongoDbNoJournal}
953 MongoDbIPv6: {get_param: MongoDbIPv6}
954 PcsdPassword: {get_resource: PcsdPassword}
955 PublicVirtualInterface: {get_param: PublicVirtualInterface}
956 RabbitPassword: {get_param: RabbitPassword}
957 RabbitUserName: {get_param: RabbitUserName}
958 RabbitCookie: {get_attr: [RabbitCookie, value]}
959 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
960 RabbitClientPort: {get_param: RabbitClientPort}
961 RabbitFDLimit: {get_param: RabbitFDLimit}
962 RabbitIPv6: {get_param: RabbitIPv6}
963 RedisPassword: {get_param: RedisPassword}
964 SaharaPassword: {get_param: SaharaPassword}
965 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
966 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
967 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
968 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
969 SwiftHashSuffix: {get_param: SwiftHashSuffix}
970 SwiftMountCheck: {get_param: SwiftMountCheck}
971 SwiftMinPartHours: {get_param: SwiftMinPartHours}
972 SwiftPartPower: {get_param: SwiftPartPower}
973 SwiftPassword: {get_param: SwiftPassword}
974 SwiftReplicas: { get_param: SwiftReplicas}
975 TimeZone: {get_param: TimeZone}
976 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
977 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
978 ServiceNetMap: {get_param: ServiceNetMap}
979 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
980 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
981 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
982 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
983 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
984 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
985 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
986 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
987 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
988 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
989 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
990 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
991 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
992 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
993 UpdateIdentifier: {get_param: UpdateIdentifier}
996 template: {get_param: ControllerHostnameFormat}
998 '%stackname%': {get_param: 'OS::stack_name'}
1000 ServerMetadata: {get_param: ServerMetadata}
1001 SchedulerHints: {get_param: ControllerSchedulerHints}
1002 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
1005 type: OS::Heat::ResourceGroup
1006 depends_on: Networks
1008 count: {get_param: ComputeCount}
1009 removal_policies: {get_param: ComputeRemovalPolicies}
1011 type: OS::TripleO::Compute
1013 AdminPassword: {get_param: AdminPassword}
1014 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1015 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1016 CeilometerPassword: {get_param: CeilometerPassword}
1017 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1018 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1019 Debug: {get_param: Debug}
1020 ExtraConfig: {get_param: ExtraConfig}
1021 Flavor: {get_param: OvercloudComputeFlavor}
1022 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1023 Image: {get_param: NovaImage}
1024 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1025 KeyName: {get_param: KeyName}
1026 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1027 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1028 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1029 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1030 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1031 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1032 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1033 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1034 NeutronNetworkType: {get_param: NeutronNetworkType}
1035 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1036 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1037 NeutronPassword: {get_param: NeutronPassword}
1038 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1039 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1040 NeutronDVR: {get_param: NeutronDVR}
1041 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1042 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1043 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1044 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1045 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1046 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1047 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1048 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1049 # L3 HA and Failover is not relevant for Computes, should be removed
1050 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1051 NeutronL3HA: {get_param: NeutronL3HA}
1052 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1053 NovaComputeDriver: {get_param: NovaComputeDriver}
1054 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1055 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1056 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1057 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1058 NovaIPv6: {get_param: NovaIPv6}
1059 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1060 NovaPassword: {get_param: NovaPassword}
1061 NovaOVSBridge: {get_param: NovaOVSBridge}
1062 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1063 NtpServer: {get_param: NtpServer}
1064 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1065 RabbitPassword: {get_param: RabbitPassword}
1066 RabbitUserName: {get_param: RabbitUserName}
1067 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1068 RabbitClientPort: {get_param: RabbitClientPort}
1069 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1070 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1071 ServiceNetMap: {get_param: ServiceNetMap}
1072 TimeZone: {get_param: TimeZone}
1073 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1074 UpdateIdentifier: {get_param: UpdateIdentifier}
1077 template: {get_param: ComputeHostnameFormat}
1079 '%stackname%': {get_param: 'OS::stack_name'}
1080 CloudDomain: {get_param: CloudDomain}
1081 ServerMetadata: {get_param: ServerMetadata}
1082 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1083 NodeIndex: '%index%'
1086 type: OS::Heat::ResourceGroup
1087 depends_on: Networks
1089 count: {get_param: BlockStorageCount}
1090 removal_policies: {get_param: BlockStorageRemovalPolicies}
1092 type: OS::TripleO::BlockStorage
1094 Debug: {get_param: Debug}
1095 Image: {get_param: BlockStorageImage}
1096 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1097 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1098 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1099 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1100 CinderPassword: {get_param: CinderPassword}
1101 KeyName: {get_param: KeyName}
1102 Flavor: {get_param: OvercloudBlockStorageFlavor}
1103 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1104 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1105 RabbitPassword: {get_param: RabbitPassword}
1106 RabbitUserName: {get_param: RabbitUserName}
1107 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1108 RabbitClientPort: {get_param: RabbitClientPort}
1109 TimeZone: {get_param: TimeZone}
1110 NtpServer: {get_param: NtpServer}
1111 UpdateIdentifier: {get_param: UpdateIdentifier}
1114 template: {get_param: BlockStorageHostnameFormat}
1116 '%stackname%': {get_param: 'OS::stack_name'}
1117 ServiceNetMap: {get_param: ServiceNetMap}
1118 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1119 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1120 ExtraConfig: {get_param: ExtraConfig}
1121 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1122 CloudDomain: {get_param: CloudDomain}
1123 ServerMetadata: {get_param: ServerMetadata}
1124 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1125 NodeIndex: '%index%'
1128 type: OS::Heat::ResourceGroup
1129 depends_on: Networks
1131 count: {get_param: ObjectStorageCount}
1132 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1134 type: OS::TripleO::ObjectStorage
1136 KeyName: {get_param: KeyName}
1137 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1138 HashSuffix: {get_param: SwiftHashSuffix}
1139 MountCheck: {get_param: SwiftMountCheck}
1140 MinPartHours: {get_param: SwiftMinPartHours}
1141 PartPower: {get_param: SwiftPartPower}
1142 Image: {get_param: SwiftStorageImage}
1143 Replicas: { get_param: SwiftReplicas}
1144 TimeZone: {get_param: TimeZone}
1145 NtpServer: {get_param: NtpServer}
1146 UpdateIdentifier: {get_param: UpdateIdentifier}
1147 ServiceNetMap: {get_param: ServiceNetMap}
1150 template: {get_param: ObjectStorageHostnameFormat}
1152 '%stackname%': {get_param: 'OS::stack_name'}
1153 ExtraConfig: {get_param: ExtraConfig}
1154 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1155 CloudDomain: {get_param: CloudDomain}
1156 ServerMetadata: {get_param: ServerMetadata}
1157 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1158 NodeIndex: '%index%'
1161 type: OS::Heat::ResourceGroup
1162 depends_on: Networks
1164 count: {get_param: CephStorageCount}
1165 removal_policies: {get_param: CephStorageRemovalPolicies}
1167 type: OS::TripleO::CephStorage
1169 Image: {get_param: CephStorageImage}
1170 KeyName: {get_param: KeyName}
1171 Flavor: {get_param: OvercloudCephStorageFlavor}
1172 NtpServer: {get_param: NtpServer}
1173 ServiceNetMap: {get_param: ServiceNetMap}
1174 TimeZone: {get_param: TimeZone}
1175 UpdateIdentifier: {get_param: UpdateIdentifier}
1178 template: {get_param: CephStorageHostnameFormat}
1180 '%stackname%': {get_param: 'OS::stack_name'}
1181 ExtraConfig: {get_param: ExtraConfig}
1182 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1183 CloudDomain: {get_param: CloudDomain}
1184 ServerMetadata: {get_param: ServerMetadata}
1185 SchedulerHints: {get_param: CephStorageSchedulerHints}
1186 NodeIndex: '%index%'
1188 ControllerIpListMap:
1189 type: OS::TripleO::Network::Ports::NetIpListMap
1191 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1192 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1193 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1194 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1195 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1196 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1197 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1200 type: OS::TripleO::AllNodes::SoftwareConfig
1202 compute_hosts: {get_attr: [Compute, hosts_entry]}
1203 controller_hosts: {get_attr: [Controller, hosts_entry]}
1204 controller_ips: {get_attr: [Controller, ip_address]}
1205 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1206 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1207 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1208 controller_names: {get_attr: [Controller, hostname]}
1209 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1210 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1211 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1212 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1213 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1214 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1215 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1216 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1217 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1218 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1219 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1220 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1221 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1222 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1223 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1224 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1225 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1226 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1227 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1228 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1229 DeployIdentifier: {get_param: DeployIdentifier}
1230 UpdateIdentifier: {get_param: UpdateIdentifier}
1233 type: OS::Heat::RandomString
1237 MysqlClusterUniquePart:
1238 type: OS::Heat::RandomString
1243 type: OS::Heat::RandomString
1246 salt: {get_param: RabbitCookieSalt}
1248 # creates the network architecture
1250 type: OS::TripleO::Network
1253 type: OS::Neutron::Port
1254 depends_on: Networks
1256 name: control_virtual_ip
1257 network: {get_param: NeutronControlPlaneID}
1258 fixed_ips: {get_param: ControlFixedIPs}
1259 replacement_policy: AUTO
1262 depends_on: Networks
1263 type: OS::TripleO::Network::Ports::RedisVipPort
1265 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1266 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1267 PortName: redis_virtual_ip
1268 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1271 # The public VIP is on the External net, falls back to ctlplane
1273 depends_on: Networks
1274 type: OS::TripleO::Network::Ports::ExternalVipPort
1276 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1277 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1278 PortName: public_virtual_ip
1279 FixedIPs: {get_param: PublicVirtualFixedIPs}
1281 InternalApiVirtualIP:
1282 depends_on: Networks
1283 type: OS::TripleO::Network::Ports::InternalApiVipPort
1285 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1286 PortName: internal_api_virtual_ip
1287 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1290 depends_on: Networks
1291 type: OS::TripleO::Network::Ports::StorageVipPort
1293 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1294 PortName: storage_virtual_ip
1295 FixedIPs: {get_param: StorageVirtualFixedIPs}
1297 StorageMgmtVirtualIP:
1298 depends_on: Networks
1299 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1301 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1302 PortName: storage_management_virtual_ip
1303 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1306 type: OS::TripleO::Network::Ports::NetVipMap
1308 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1309 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1310 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1311 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1312 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1313 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1314 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1315 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1316 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1317 # No tenant or management VIP required
1320 type: OS::TripleO::VipConfig
1323 type: OS::Heat::StructuredDeployments
1326 config: {get_resource: VipConfig}
1327 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1329 # service VIP mappings
1330 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1331 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1332 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1333 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1334 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1335 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1336 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1337 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1338 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1339 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1340 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1341 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1342 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1343 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1344 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1345 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1346 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1347 # direct configuration of Virtual IPs for each network
1348 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1349 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1350 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1351 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1352 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1353 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1355 ControllerBootstrapNodeConfig:
1356 type: OS::TripleO::BootstrapNode::SoftwareConfig
1358 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1359 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1361 ControllerBootstrapNodeDeployment:
1362 type: OS::Heat::StructuredDeployments
1364 name: ControllerBootstrapNodeDeployment
1365 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1366 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1368 ControllerSwiftDeployment:
1369 type: OS::Heat::StructuredDeployments
1371 name: ControllerSwiftDeployment
1372 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1373 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1375 ObjectStorageSwiftDeployment:
1376 type: OS::Heat::StructuredDeployments
1378 name: ObjectStorageSwiftDeployment
1379 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1380 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1382 SwiftDevicesAndProxyConfig:
1383 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1385 controller_swift_devices: {get_attr: [Controller, swift_device]}
1386 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1387 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1389 ComputeCephDeployment:
1390 type: OS::Heat::StructuredDeployments
1392 name: ComputeCephDeployment
1393 config: {get_attr: [CephClusterConfig, config_id]}
1394 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1396 ControllerCephDeployment:
1397 type: OS::Heat::StructuredDeployments
1399 name: ControllerCephDeployment
1400 config: {get_attr: [CephClusterConfig, config_id]}
1401 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1403 CephStorageCephDeployment:
1404 type: OS::Heat::StructuredDeployments
1406 name: CephStorageCephDeployment
1407 config: {get_attr: [CephClusterConfig, config_id]}
1408 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1411 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1413 ceph_storage_count: {get_param: CephStorageCount}
1414 ceph_fsid: {get_param: CephClusterFSID}
1415 ceph_mon_key: {get_param: CephMonKey}
1416 ceph_admin_key: {get_param: CephAdminKey}
1417 ceph_client_key: {get_param: CephClientKey}
1418 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1419 ceph_mon_names: {get_attr: [Controller, hostname]}
1420 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1422 ControllerClusterConfig:
1423 type: OS::Heat::StructuredConfig
1425 group: os-apply-config
1428 nodes: {get_attr: [Controller, corosync_node]}
1432 nodes: {get_attr: [Controller, hostname]}
1434 nodes: {get_attr: [Controller, corosync_node]}
1436 nodes: {get_attr: [Controller, corosync_node]}
1438 ControllerClusterDeployment:
1439 type: OS::Heat::StructuredDeployments
1441 name: ControllerClusterDeployment
1442 config: {get_resource: ControllerClusterConfig}
1443 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1445 ControllerAllNodesDeployment:
1446 type: OS::Heat::StructuredDeployments
1448 name: ControllerAllNodesDeployment
1449 config: {get_attr: [allNodesConfig, config_id]}
1450 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1452 ComputeAllNodesDeployment:
1453 type: OS::Heat::StructuredDeployments
1455 name: ComputeAllNodesDeployment
1456 config: {get_attr: [allNodesConfig, config_id]}
1457 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1459 BlockStorageAllNodesDeployment:
1460 type: OS::Heat::StructuredDeployments
1462 name: BlockStorageAllNodesDeployment
1463 config: {get_attr: [allNodesConfig, config_id]}
1464 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1466 ObjectStorageAllNodesDeployment:
1467 type: OS::Heat::StructuredDeployments
1469 name: ObjectStorageAllNodesDeployment
1470 config: {get_attr: [allNodesConfig, config_id]}
1471 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1473 CephStorageAllNodesDeployment:
1474 type: OS::Heat::StructuredDeployments
1476 name: CephStorageAllNodesDeployment
1477 config: {get_attr: [allNodesConfig, config_id]}
1478 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1480 # All Nodes Validations
1481 AllNodesValidationConfig:
1482 type: OS::TripleO::AllNodes::Validation
1487 - - {get_attr: [Controller, resource.0.external_ip_address]}
1488 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1489 - {get_attr: [Controller, resource.0.storage_ip_address]}
1490 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1491 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1493 ControllerAllNodesValidationDeployment:
1494 type: OS::Heat::StructuredDeployments
1495 depends_on: ControllerAllNodesDeployment
1497 name: ControllerAllNodesValidationDeployment
1498 config: {get_resource: AllNodesValidationConfig}
1499 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1501 ComputeAllNodesValidationDeployment:
1502 type: OS::Heat::StructuredDeployments
1503 depends_on: ComputeAllNodesDeployment
1505 name: ComputeAllNodesValidationDeployment
1506 config: {get_resource: AllNodesValidationConfig}
1507 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1509 BlockStorageAllNodesValidationDeployment:
1510 type: OS::Heat::StructuredDeployments
1511 depends_on: BlockStorageAllNodesDeployment
1513 name: BlockStorageAllNodesValidationDeployment
1514 config: {get_resource: AllNodesValidationConfig}
1515 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1517 ObjectStorageAllNodesValidationDeployment:
1518 type: OS::Heat::StructuredDeployments
1519 depends_on: ObjectStorageAllNodesDeployment
1521 name: ObjectStorageAllNodesValidationDeployment
1522 config: {get_resource: AllNodesValidationConfig}
1523 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1525 CephStorageAllNodesValidationDeployment:
1526 type: OS::Heat::StructuredDeployments
1527 depends_on: CephStorageAllNodesDeployment
1529 name: CephStorageAllNodesValidationDeployment
1530 config: {get_resource: AllNodesValidationConfig}
1531 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1534 type: OS::TripleO::Tasks::UpdateWorkflow
1536 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1537 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1538 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1539 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1540 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1542 deploy_identifier: {get_param: DeployIdentifier}
1543 update_identifier: {get_param: UpdateIdentifier}
1545 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1546 # the nested template may configure each role differently (or not at all)
1547 AllNodesExtraConfig:
1548 type: OS::TripleO::AllNodesExtraConfig
1551 - ComputeAllNodesValidationDeployment
1552 - BlockStorageAllNodesValidationDeployment
1553 - ObjectStorageAllNodesValidationDeployment
1554 - CephStorageAllNodesValidationDeployment
1555 - ControllerAllNodesValidationDeployment
1557 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1558 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1559 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1560 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1561 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1563 # Nested stack deployment runs after all other controller deployments
1564 ControllerNodesPostDeployment:
1565 type: OS::TripleO::ControllerPostDeployment
1566 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1568 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1569 NodeConfigIdentifiers:
1570 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1571 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1572 deployment_identifier: {get_param: DeployIdentifier}
1573 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1575 ComputeNodesPostDeployment:
1576 type: OS::TripleO::ComputePostDeployment
1577 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1579 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1580 NodeConfigIdentifiers:
1581 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1582 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1583 deployment_identifier: {get_param: DeployIdentifier}
1585 ObjectStorageNodesPostDeployment:
1586 type: OS::TripleO::ObjectStoragePostDeployment
1587 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1589 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1590 NodeConfigIdentifiers:
1591 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1592 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1593 deployment_identifier: {get_param: DeployIdentifier}
1595 BlockStorageNodesPostDeployment:
1596 type: OS::TripleO::BlockStoragePostDeployment
1597 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1599 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1600 NodeConfigIdentifiers:
1601 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1602 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1603 deployment_identifier: {get_param: DeployIdentifier}
1605 CephStorageNodesPostDeployment:
1606 type: OS::TripleO::CephStoragePostDeployment
1607 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1609 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1610 NodeConfigIdentifiers:
1611 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1612 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1613 deployment_identifier: {get_param: DeployIdentifier}
1617 description: URL for the Overcloud Keystone service
1618 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1620 description: Keystone Admin VIP endpoint
1621 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1623 description: Controller VIP for public API endpoints
1624 value: {get_attr: [VipMap, net_ip_map, external]}
1626 description: VIP for Aodh API internal endpoint
1627 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1628 CeilometerInternalVip:
1629 description: VIP for Ceilometer API internal endpoint
1630 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1632 description: VIP for Cinder API internal endpoint
1633 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1635 description: VIP for Glance API internal endpoint
1636 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1638 description: VIP for Gnocchi API internal endpoint
1639 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1641 description: VIP for Heat API internal endpoint
1642 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1643 KeystoneInternalVip:
1644 description: VIP for Keystone API internal endpoint
1645 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1647 description: VIP for Neutron API internal endpoint
1648 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1650 description: VIP for Nova API internal endpoint
1651 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1653 description: VIP for Sahara API internal endpoint
1654 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1656 description: VIP for Swift Proxy internal endpoint
1657 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1660 Mapping of the resources with the needed info for their endpoints.
1661 This includes the protocol used, the IP, port and also a full
1662 representation of the URI.
1663 value: {get_attr: [EndpointMap, endpoint_map]}
1666 The content that should be appended to your /etc/hosts if you want to get
1667 hostname-based access to the deployed nodes (useful for testing without
1669 value: {get_attr: [allNodesConfig, hosts_entries]}