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
302 description: The password for Redis
305 SnmpdReadonlyUserName:
306 default: ro_snmp_user
307 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
309 SnmpdReadonlyUserPassword:
310 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
313 StorageVirtualFixedIPs:
316 Control the IP allocation for the StorageVirtualInterface port. E.g.
317 [{'ip_address':'1.2.3.4'}]
319 StorageMgmtVirtualFixedIPs:
322 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
323 [{'ip_address':'1.2.3.4'}]
327 description: The timezone to be set on nodes.
330 default: 'localdomain'
333 The DNS domain used for the hosts. This should match the dhcp_domain
334 configured in the Undercloud neutron. Defaults to localdomain.
338 Extra properties or metadata passed to Nova for the created nodes in
339 the overcloud. It's accessible via the Nova metadata API.
342 # Controller-specific params
343 CinderLVMLoopDeviceSize:
345 description: The size of the loopback file used by the cinder LVM driver.
347 CinderNfsMountOptions:
350 Mount options for NFS mounts used by Cinder NFS backend. Effective
351 when CinderEnableNfsBackend is true.
356 NFS servers used by Cinder NFS backend. Effective when
357 CinderEnableNfsBackend is true.
358 type: comma_delimited_list
360 description: The password for the cinder service account, used by cinder-api.
365 description: The iSCSI helper to use with cinder.
372 controllerExtraConfig:
375 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
379 default: overcloud-full
381 - custom_constraint: glance.image
382 OvercloudControlFlavor:
383 description: Flavor for control nodes to request when deploying.
387 - custom_constraint: nova.flavor
388 ControlVirtualInterface:
390 description: Interface where virtual ip will be assigned.
394 description: Whether to enable fencing in Pacemaker or not.
398 description: Whether to use Galera instead of regular MariaDB.
400 ControllerEnableCephStorage:
402 description: Whether to deploy Ceph Storage (OSD) on the Controller
404 ControllerEnableSwiftStorage:
406 description: Whether to enable Swift Storage on the Controller
408 ControllerSchedulerHints:
410 description: Optional scheduler hints to pass to nova
415 Additional configuration to inject into the cluster. The format required
416 may be implementation specific, e.g puppet hieradata. Any role specific
417 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
422 Pacemaker fencing configuration. The JSON should have
423 the following structure:
427 "agent": "AGENT_NAME",
428 "host_mac": "HOST_MAC_ADDRESS",
429 "params": {"PARAM_NAME": "PARAM_VALUE"}
437 "agent": "fence_xvm",
438 "host_mac": "52:54:00:aa:bb:cc",
440 "multicast_address": "225.0.0.12",
441 "port": "baremetal_0",
443 "manage_key_file": true,
444 "key_file": "/etc/fence_xvm.key",
445 "key_file_password": "abcdef"
453 description: The short name of the Gnocchi backend to use. Should be one
454 of swift, rbd or file
457 - allowed_values: ['swift', 'file', 'rbd']
458 GnocchiIndexerBackend:
460 description: The short name of the Gnocchi indexer backend to use.
463 description: The password for the gnocchi service account.
467 description: The password for the Heat service account, used by the Heat services.
470 HeatStackDomainAdminPassword:
471 description: Password for heat_stack_domain_admin user.
474 InstanceNameTemplate:
475 default: 'instance-%08x'
476 description: Template string to be used to generate instance names
480 description: Whether to manage IPtables rules.
484 description: Whether IPtables rules should be purged before setting up the ones.
486 MysqlInnodbBufferPoolSize:
488 Specifies the size of the buffer pool in megabytes. Setting to
489 zero should be interpreted as "no value" and will defer to the
494 description: Configures MySQL max_connections config setting
497 NeutronPublicInterfaceDefaultRoute:
499 description: A custom default route for the NeutronPublicInterface.
501 NeutronPublicInterfaceIP:
503 description: A custom IP address to put onto the NeutronPublicInterface.
505 NeutronPublicInterfaceRawDevice:
507 description: If set, the public interface is a vlan with this device as the raw device.
509 PublicVirtualInterface:
512 Specifies the interface where the public-facing virtual ip will be assigned.
513 This should be int_public when a VLAN is being used.
516 description: A random string to be used as a salt when hashing to determine mappings in the ring.
520 description: The password for the swift service account, used by the swift proxy services.
525 description: Value of mount_check in Swift account/container/object -server.conf
530 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
533 description: Partition Power to use when building Swift rings
538 description: How many replicas to use in the swift rings.
540 description: The password for the sahara service account.
544 # Compute-specific params
545 CeilometerComputeAgent:
546 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
550 - allowed_values: ['', Present]
554 HypervisorNeutronPhysicalBridge:
557 An OVS bridge to create on each hypervisor. This defaults to br-ex the
558 same as the control plane nodes, as we have a uniform configuration of
559 the openvswitch agent. Typically should not need to be changed.
561 HypervisorNeutronPublicInterface:
563 description: What interface to add to the HypervisorNeutronPhysicalBridge.
565 NeutronNetworkVLANRanges:
566 default: 'datacentre:1:1000'
568 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
569 Neutron documentation for permitted values. Defaults to permitting any
570 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
571 type: comma_delimited_list
574 default: libvirt.LibvirtDriver
575 NovaComputeExtraConfig:
578 NovaCompute specific configuration to inject into the cluster. Same
579 structure as ExtraConfig.
581 NovaComputeLibvirtType:
584 NovaComputeLibvirtVifDriver:
586 description: Libvirt VIF driver configuration for the network
588 NovaComputeSchedulerHints:
590 description: Optional scheduler hints to pass to nova
592 NovaEnableRbdBackend:
594 description: Whether to enable or not the Rbd backend for Nova
598 default: overcloud-full
600 - custom_constraint: glance.image
603 description: Name of integration bridge used by Open vSwitch
605 NovaSecurityGroupAPI:
607 description: The full class name of the security API class
609 OvercloudComputeFlavor:
610 description: Use this flavor
614 - custom_constraint: nova.flavor
617 NeutronTenantNetwork: tenant
618 CeilometerApiNetwork: internal_api
619 AodhApiNetwork: internal_api
620 GnocchiApiNetwork: internal_api
621 MongoDbNetwork: internal_api
622 CinderApiNetwork: internal_api
623 CinderIscsiNetwork: storage
624 GlanceApiNetwork: storage
625 GlanceRegistryNetwork: internal_api
626 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
627 KeystonePublicApiNetwork: internal_api
628 NeutronApiNetwork: internal_api
629 HeatApiNetwork: internal_api
630 NovaApiNetwork: internal_api
631 NovaMetadataNetwork: internal_api
632 NovaVncProxyNetwork: internal_api
633 SwiftMgmtNetwork: storage_mgmt
634 SwiftProxyNetwork: storage
635 SaharaApiNetwork: internal_api
636 HorizonNetwork: internal_api
637 MemcachedNetwork: internal_api
638 RabbitMqNetwork: internal_api
639 RedisNetwork: internal_api
640 MysqlNetwork: internal_api
641 CephClusterNetwork: storage_mgmt
642 CephPublicNetwork: storage
643 ControllerHostnameResolveNetwork: internal_api
644 ComputeHostnameResolveNetwork: internal_api
645 BlockStorageHostnameResolveNetwork: internal_api
646 ObjectStorageHostnameResolveNetwork: internal_api
647 CephStorageHostnameResolveNetwork: storage
648 description: Mapping of service_name -> network name. Typically set
649 via parameter_defaults in the resource registry.
654 - OS::TripleO::Services::Keystone
655 - OS::TripleO::Services::GlanceApi
656 - OS::TripleO::Services::GlanceRegistry
657 - OS::TripleO::Services::NeutronDhcpAgent
658 - OS::TripleO::Services::NeutronL3Agent
659 - OS::TripleO::Services::NeutronMetadataAgent
660 - OS::TripleO::Services::RabbitMQ
661 - OS::TripleO::Services::Loadbalancer
662 - OS::TripleO::Services::Memcached
663 description: A list of service resources (configured in the Heat
664 resource_registry) which represent nested stacks
665 for each service that should get installed on the Controllers.
666 type: comma_delimited_list
668 # Block storage specific parameters
673 default: overcloud-full
675 OvercloudBlockStorageFlavor:
676 description: Flavor for block storage nodes to request when deploying.
680 - custom_constraint: nova.flavor
681 BlockStorageExtraConfig:
684 BlockStorage specific configuration to inject into the cluster. Same
685 structure as ExtraConfig.
687 BlockStorageSchedulerHints:
689 description: Optional scheduler hints to pass to nova
693 # Object storage specific parameters
697 OvercloudSwiftStorageFlavor:
698 description: Flavor for Swift storage nodes to request when deploying.
702 - custom_constraint: nova.flavor
704 default: overcloud-full
706 ObjectStorageExtraConfig:
709 ObjectStorage specific configuration to inject into the cluster. Same
710 structure as ExtraConfig.
712 ObjectStorageSchedulerHints:
714 description: Optional scheduler hints to pass to nova
717 # Ceph storage specific parameters
722 default: overcloud-full
724 OvercloudCephStorageFlavor:
726 description: Flavor for Ceph storage nodes to request when deploying.
729 - custom_constraint: nova.flavor
730 CephStorageExtraConfig:
733 CephStorage specific configuration to inject into the cluster. Same
734 structure as ExtraConfig.
736 CephStorageSchedulerHints:
738 description: Optional scheduler hints to pass to nova
742 # Hostname format for each role
743 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
744 # and %stackname% is replaced with OS::stack_name in the template below.
745 # If you want to use the heat generated names, pass '' (empty string).
746 ControllerHostnameFormat:
748 description: Format for Controller node hostnames
749 default: '%stackname%-controller-%index%'
750 ComputeHostnameFormat:
752 description: Format for Compute node hostnames
753 default: '%stackname%-novacompute-%index%'
754 BlockStorageHostnameFormat:
756 description: Format for BlockStorage node hostnames
757 default: '%stackname%-blockstorage-%index%'
758 ObjectStorageHostnameFormat:
760 description: Format for SwiftStorage node hostnames
761 default: '%stackname%-objectstorage-%index%'
762 CephStorageHostnameFormat:
764 description: Format for CephStorage node hostnames
765 default: '%stackname%-cephstorage-%index%'
767 # Identifiers to trigger tasks on nodes
772 Setting to a previously unused value during stack-update will trigger
773 package update on all nodes
778 Setting this to a unique value will re-run any deployment tasks which
779 perform configuration on a Heat stack-update.
781 # If you want to remove a specific node from a resource group, you can pass
782 # the node name or id as a <Group>RemovalPolicies parameter, for example:
783 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
784 ControllerRemovalPolicies:
788 List of resources to be removed from ControllerResourceGroup when
789 doing an update which requires removal of specific resources.
790 ComputeRemovalPolicies:
794 List of resources to be removed from ComputeResourceGroup when
795 doing an update which requires removal of specific resources.
796 BlockStorageRemovalPolicies:
800 List of resources to be removed from BlockStorageResourceGroup when
801 doing an update which requires removal of specific resources.
802 ObjectStorageRemovalPolicies:
806 List of resources to be removed from ObjectStorageResourceGroup when
807 doing an update which requires removal of specific resources.
808 CephStorageRemovalPolicies:
812 List of resources to be removed from CephStorageResourceGroup when
813 doing an update which requires removal of specific resources.
817 description: Do not use deprecated params, they will be removed.
819 - controllerExtraConfig
824 HeatAuthEncryptionKey:
825 type: OS::Heat::RandomString
828 type: OS::Heat::RandomString
833 type: OS::Heat::RandomString
838 type: OS::TripleO::EndpointMap
840 CloudName: {get_param: CloudName}
841 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
842 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
843 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
844 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
845 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
846 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
847 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
848 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
849 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
850 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
851 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
852 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
853 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
854 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
855 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
857 ControllerServiceChain:
858 type: OS::TripleO::Services
860 Services: {get_param: ControllerServices}
861 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
862 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
865 type: OS::Heat::ResourceGroup
868 count: {get_param: ControllerCount}
869 removal_policies: {get_param: ControllerRemovalPolicies}
871 type: OS::TripleO::Controller
873 AdminPassword: {get_param: AdminPassword}
874 AodhPassword: {get_param: AodhPassword}
875 CeilometerBackend: {get_param: CeilometerBackend}
876 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
877 CeilometerPassword: {get_param: CeilometerPassword}
878 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
879 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
880 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
881 CinderNfsServers: {get_param: CinderNfsServers}
882 CinderPassword: {get_param: CinderPassword}
883 CinderISCSIHelper: {get_param: CinderISCSIHelper}
884 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
885 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
886 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
887 CloudDomain: {get_param: CloudDomain}
888 ControlVirtualInterface: {get_param: ControlVirtualInterface}
889 controllerExtraConfig: {get_param: controllerExtraConfig}
890 CorosyncIPv6: {get_param: CorosyncIPv6}
891 Debug: {get_param: Debug}
892 EnableFencing: {get_param: EnableFencing}
893 ManageFirewall: {get_param: ManageFirewall}
894 PurgeFirewallRules: {get_param: PurgeFirewallRules}
895 EnableGalera: {get_param: EnableGalera}
896 EnableCephStorage: {get_param: ControllerEnableCephStorage}
897 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
898 ExtraConfig: {get_param: ExtraConfig}
899 FencingConfig: {get_param: FencingConfig}
900 Flavor: {get_param: OvercloudControlFlavor}
901 GnocchiPassword: {get_param: GnocchiPassword}
902 GnocchiBackend: {get_param: GnocchiBackend}
903 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
904 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
905 HeatPassword: {get_param: HeatPassword}
906 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
907 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
908 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
909 HorizonSecret: {get_resource: HorizonSecret}
910 Image: {get_param: controllerImage}
911 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
912 InstanceNameTemplate: {get_param: InstanceNameTemplate}
913 KeyName: {get_param: KeyName}
914 MemcachedIPv6: {get_param: MemcachedIPv6}
915 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
916 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
917 MysqlMaxConnections: {get_param: MysqlMaxConnections}
918 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
919 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
920 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
921 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
922 NeutronTenantMtu: {get_param: NeutronTenantMtu}
923 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
924 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
925 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
926 NeutronPublicInterface: {get_param: NeutronPublicInterface}
927 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
928 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
929 NeutronPassword: {get_param: NeutronPassword}
930 NeutronDVR: {get_param: NeutronDVR}
931 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
932 NeutronAgentMode: {get_param: NeutronAgentMode}
933 NeutronCorePlugin: {get_param: NeutronCorePlugin}
934 NeutronServicePlugins: {get_param: NeutronServicePlugins}
935 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
936 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
937 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
938 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
939 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
940 NeutronL3HA: {get_param: NeutronL3HA}
941 NeutronNetworkType: {get_param: NeutronNetworkType}
942 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
943 NovaIPv6: {get_param: NovaIPv6}
944 NovaPassword: {get_param: NovaPassword}
945 NtpServer: {get_param: NtpServer}
946 MongoDbNoJournal: {get_param: MongoDbNoJournal}
947 MongoDbIPv6: {get_param: MongoDbIPv6}
948 PcsdPassword: {get_resource: PcsdPassword}
949 PublicVirtualInterface: {get_param: PublicVirtualInterface}
950 RabbitPassword: {get_param: RabbitPassword}
951 RabbitUserName: {get_param: RabbitUserName}
952 RabbitCookie: {get_attr: [RabbitCookie, value]}
953 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
954 RabbitClientPort: {get_param: RabbitClientPort}
955 RedisPassword: {get_param: RedisPassword}
956 SaharaPassword: {get_param: SaharaPassword}
957 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
958 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
959 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
960 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
961 SwiftHashSuffix: {get_param: SwiftHashSuffix}
962 SwiftMountCheck: {get_param: SwiftMountCheck}
963 SwiftMinPartHours: {get_param: SwiftMinPartHours}
964 SwiftPartPower: {get_param: SwiftPartPower}
965 SwiftPassword: {get_param: SwiftPassword}
966 SwiftReplicas: { get_param: SwiftReplicas}
967 TimeZone: {get_param: TimeZone}
968 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
969 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
970 ServiceNetMap: {get_param: ServiceNetMap}
971 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
972 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
973 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
974 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
975 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
976 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
977 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
978 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
979 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
980 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
981 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
982 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
983 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
984 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
985 UpdateIdentifier: {get_param: UpdateIdentifier}
988 template: {get_param: ControllerHostnameFormat}
990 '%stackname%': {get_param: 'OS::stack_name'}
992 ServerMetadata: {get_param: ServerMetadata}
993 SchedulerHints: {get_param: ControllerSchedulerHints}
994 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
997 type: OS::Heat::ResourceGroup
1000 count: {get_param: ComputeCount}
1001 removal_policies: {get_param: ComputeRemovalPolicies}
1003 type: OS::TripleO::Compute
1005 AdminPassword: {get_param: AdminPassword}
1006 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1007 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1008 CeilometerPassword: {get_param: CeilometerPassword}
1009 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1010 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1011 Debug: {get_param: Debug}
1012 ExtraConfig: {get_param: ExtraConfig}
1013 Flavor: {get_param: OvercloudComputeFlavor}
1014 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1015 Image: {get_param: NovaImage}
1016 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1017 KeyName: {get_param: KeyName}
1018 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1019 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1020 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1021 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1022 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1023 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1024 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1025 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1026 NeutronNetworkType: {get_param: NeutronNetworkType}
1027 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1028 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1029 NeutronPassword: {get_param: NeutronPassword}
1030 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1031 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1032 NeutronDVR: {get_param: NeutronDVR}
1033 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1034 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1035 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1036 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1037 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1038 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1039 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1040 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1041 # L3 HA and Failover is not relevant for Computes, should be removed
1042 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1043 NeutronL3HA: {get_param: NeutronL3HA}
1044 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1045 NovaComputeDriver: {get_param: NovaComputeDriver}
1046 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1047 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1048 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1049 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1050 NovaIPv6: {get_param: NovaIPv6}
1051 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1052 NovaPassword: {get_param: NovaPassword}
1053 NovaOVSBridge: {get_param: NovaOVSBridge}
1054 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1055 NtpServer: {get_param: NtpServer}
1056 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1057 RabbitPassword: {get_param: RabbitPassword}
1058 RabbitUserName: {get_param: RabbitUserName}
1059 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1060 RabbitClientPort: {get_param: RabbitClientPort}
1061 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1062 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1063 ServiceNetMap: {get_param: ServiceNetMap}
1064 TimeZone: {get_param: TimeZone}
1065 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1066 UpdateIdentifier: {get_param: UpdateIdentifier}
1069 template: {get_param: ComputeHostnameFormat}
1071 '%stackname%': {get_param: 'OS::stack_name'}
1072 CloudDomain: {get_param: CloudDomain}
1073 ServerMetadata: {get_param: ServerMetadata}
1074 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1075 NodeIndex: '%index%'
1078 type: OS::Heat::ResourceGroup
1079 depends_on: Networks
1081 count: {get_param: BlockStorageCount}
1082 removal_policies: {get_param: BlockStorageRemovalPolicies}
1084 type: OS::TripleO::BlockStorage
1086 Debug: {get_param: Debug}
1087 Image: {get_param: BlockStorageImage}
1088 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1089 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1090 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1091 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1092 CinderPassword: {get_param: CinderPassword}
1093 KeyName: {get_param: KeyName}
1094 Flavor: {get_param: OvercloudBlockStorageFlavor}
1095 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1096 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1097 RabbitPassword: {get_param: RabbitPassword}
1098 RabbitUserName: {get_param: RabbitUserName}
1099 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1100 RabbitClientPort: {get_param: RabbitClientPort}
1101 TimeZone: {get_param: TimeZone}
1102 NtpServer: {get_param: NtpServer}
1103 UpdateIdentifier: {get_param: UpdateIdentifier}
1106 template: {get_param: BlockStorageHostnameFormat}
1108 '%stackname%': {get_param: 'OS::stack_name'}
1109 ServiceNetMap: {get_param: ServiceNetMap}
1110 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1111 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1112 ExtraConfig: {get_param: ExtraConfig}
1113 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1114 CloudDomain: {get_param: CloudDomain}
1115 ServerMetadata: {get_param: ServerMetadata}
1116 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1117 NodeIndex: '%index%'
1120 type: OS::Heat::ResourceGroup
1121 depends_on: Networks
1123 count: {get_param: ObjectStorageCount}
1124 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1126 type: OS::TripleO::ObjectStorage
1128 KeyName: {get_param: KeyName}
1129 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1130 HashSuffix: {get_param: SwiftHashSuffix}
1131 MountCheck: {get_param: SwiftMountCheck}
1132 MinPartHours: {get_param: SwiftMinPartHours}
1133 PartPower: {get_param: SwiftPartPower}
1134 Image: {get_param: SwiftStorageImage}
1135 Replicas: { get_param: SwiftReplicas}
1136 TimeZone: {get_param: TimeZone}
1137 NtpServer: {get_param: NtpServer}
1138 UpdateIdentifier: {get_param: UpdateIdentifier}
1139 ServiceNetMap: {get_param: ServiceNetMap}
1142 template: {get_param: ObjectStorageHostnameFormat}
1144 '%stackname%': {get_param: 'OS::stack_name'}
1145 ExtraConfig: {get_param: ExtraConfig}
1146 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1147 CloudDomain: {get_param: CloudDomain}
1148 ServerMetadata: {get_param: ServerMetadata}
1149 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1150 NodeIndex: '%index%'
1153 type: OS::Heat::ResourceGroup
1154 depends_on: Networks
1156 count: {get_param: CephStorageCount}
1157 removal_policies: {get_param: CephStorageRemovalPolicies}
1159 type: OS::TripleO::CephStorage
1161 Image: {get_param: CephStorageImage}
1162 KeyName: {get_param: KeyName}
1163 Flavor: {get_param: OvercloudCephStorageFlavor}
1164 NtpServer: {get_param: NtpServer}
1165 ServiceNetMap: {get_param: ServiceNetMap}
1166 TimeZone: {get_param: TimeZone}
1167 UpdateIdentifier: {get_param: UpdateIdentifier}
1170 template: {get_param: CephStorageHostnameFormat}
1172 '%stackname%': {get_param: 'OS::stack_name'}
1173 ExtraConfig: {get_param: ExtraConfig}
1174 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1175 CloudDomain: {get_param: CloudDomain}
1176 ServerMetadata: {get_param: ServerMetadata}
1177 SchedulerHints: {get_param: CephStorageSchedulerHints}
1178 NodeIndex: '%index%'
1180 ControllerIpListMap:
1181 type: OS::TripleO::Network::Ports::NetIpListMap
1183 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1184 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1185 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1186 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1187 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1188 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1189 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1192 type: OS::TripleO::AllNodes::SoftwareConfig
1194 compute_hosts: {get_attr: [Compute, hosts_entry]}
1195 controller_hosts: {get_attr: [Controller, hosts_entry]}
1196 controller_ips: {get_attr: [Controller, ip_address]}
1197 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1198 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1199 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1200 controller_names: {get_attr: [Controller, hostname]}
1201 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1202 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1203 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1204 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1205 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1206 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1207 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1208 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1209 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1210 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1211 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1212 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1213 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1214 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1215 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1216 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1217 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1218 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1219 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1220 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1221 DeployIdentifier: {get_param: DeployIdentifier}
1222 UpdateIdentifier: {get_param: UpdateIdentifier}
1225 type: OS::Heat::RandomString
1229 MysqlClusterUniquePart:
1230 type: OS::Heat::RandomString
1235 type: OS::Heat::RandomString
1238 salt: {get_param: RabbitCookieSalt}
1240 # creates the network architecture
1242 type: OS::TripleO::Network
1245 type: OS::Neutron::Port
1246 depends_on: Networks
1248 name: control_virtual_ip
1249 network: {get_param: NeutronControlPlaneID}
1250 fixed_ips: {get_param: ControlFixedIPs}
1251 replacement_policy: AUTO
1254 depends_on: Networks
1255 type: OS::TripleO::Network::Ports::RedisVipPort
1257 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1258 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1259 PortName: redis_virtual_ip
1260 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1263 # The public VIP is on the External net, falls back to ctlplane
1265 depends_on: Networks
1266 type: OS::TripleO::Network::Ports::ExternalVipPort
1268 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1269 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1270 PortName: public_virtual_ip
1271 FixedIPs: {get_param: PublicVirtualFixedIPs}
1273 InternalApiVirtualIP:
1274 depends_on: Networks
1275 type: OS::TripleO::Network::Ports::InternalApiVipPort
1277 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1278 PortName: internal_api_virtual_ip
1279 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1282 depends_on: Networks
1283 type: OS::TripleO::Network::Ports::StorageVipPort
1285 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1286 PortName: storage_virtual_ip
1287 FixedIPs: {get_param: StorageVirtualFixedIPs}
1289 StorageMgmtVirtualIP:
1290 depends_on: Networks
1291 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1293 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1294 PortName: storage_management_virtual_ip
1295 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1298 type: OS::TripleO::Network::Ports::NetVipMap
1300 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1301 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1302 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1303 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1304 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1305 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1306 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1307 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1308 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1309 # No tenant or management VIP required
1312 type: OS::TripleO::VipConfig
1315 type: OS::Heat::StructuredDeployments
1318 config: {get_resource: VipConfig}
1319 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1321 # service VIP mappings
1322 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1323 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1324 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1325 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1326 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1327 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1328 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1329 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1330 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1331 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1332 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1333 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1334 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1335 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1336 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1337 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1338 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1339 # direct configuration of Virtual IPs for each network
1340 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1341 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1342 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1343 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1344 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1345 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1347 ControllerBootstrapNodeConfig:
1348 type: OS::TripleO::BootstrapNode::SoftwareConfig
1350 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1351 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1353 ControllerBootstrapNodeDeployment:
1354 type: OS::Heat::StructuredDeployments
1356 name: ControllerBootstrapNodeDeployment
1357 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1358 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1360 ControllerSwiftDeployment:
1361 type: OS::Heat::StructuredDeployments
1363 name: ControllerSwiftDeployment
1364 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1365 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1367 ObjectStorageSwiftDeployment:
1368 type: OS::Heat::StructuredDeployments
1370 name: ObjectStorageSwiftDeployment
1371 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1372 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1374 SwiftDevicesAndProxyConfig:
1375 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1377 controller_swift_devices: {get_attr: [Controller, swift_device]}
1378 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1379 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1381 ComputeCephDeployment:
1382 type: OS::Heat::StructuredDeployments
1384 name: ComputeCephDeployment
1385 config: {get_attr: [CephClusterConfig, config_id]}
1386 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1388 ControllerCephDeployment:
1389 type: OS::Heat::StructuredDeployments
1391 name: ControllerCephDeployment
1392 config: {get_attr: [CephClusterConfig, config_id]}
1393 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1395 CephStorageCephDeployment:
1396 type: OS::Heat::StructuredDeployments
1398 name: CephStorageCephDeployment
1399 config: {get_attr: [CephClusterConfig, config_id]}
1400 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1403 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1405 ceph_storage_count: {get_param: CephStorageCount}
1406 ceph_fsid: {get_param: CephClusterFSID}
1407 ceph_mon_key: {get_param: CephMonKey}
1408 ceph_admin_key: {get_param: CephAdminKey}
1409 ceph_client_key: {get_param: CephClientKey}
1410 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1411 ceph_mon_names: {get_attr: [Controller, hostname]}
1412 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1414 ControllerAllNodesDeployment:
1415 type: OS::Heat::StructuredDeployments
1417 name: ControllerAllNodesDeployment
1418 config: {get_attr: [allNodesConfig, config_id]}
1419 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1421 ComputeAllNodesDeployment:
1422 type: OS::Heat::StructuredDeployments
1424 name: ComputeAllNodesDeployment
1425 config: {get_attr: [allNodesConfig, config_id]}
1426 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1428 BlockStorageAllNodesDeployment:
1429 type: OS::Heat::StructuredDeployments
1431 name: BlockStorageAllNodesDeployment
1432 config: {get_attr: [allNodesConfig, config_id]}
1433 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1435 ObjectStorageAllNodesDeployment:
1436 type: OS::Heat::StructuredDeployments
1438 name: ObjectStorageAllNodesDeployment
1439 config: {get_attr: [allNodesConfig, config_id]}
1440 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1442 CephStorageAllNodesDeployment:
1443 type: OS::Heat::StructuredDeployments
1445 name: CephStorageAllNodesDeployment
1446 config: {get_attr: [allNodesConfig, config_id]}
1447 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1449 # All Nodes Validations
1450 AllNodesValidationConfig:
1451 type: OS::TripleO::AllNodes::Validation
1456 - - {get_attr: [Controller, resource.0.external_ip_address]}
1457 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1458 - {get_attr: [Controller, resource.0.storage_ip_address]}
1459 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1460 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1462 ControllerAllNodesValidationDeployment:
1463 type: OS::Heat::StructuredDeployments
1464 depends_on: ControllerAllNodesDeployment
1466 name: ControllerAllNodesValidationDeployment
1467 config: {get_resource: AllNodesValidationConfig}
1468 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1470 ComputeAllNodesValidationDeployment:
1471 type: OS::Heat::StructuredDeployments
1472 depends_on: ComputeAllNodesDeployment
1474 name: ComputeAllNodesValidationDeployment
1475 config: {get_resource: AllNodesValidationConfig}
1476 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1478 BlockStorageAllNodesValidationDeployment:
1479 type: OS::Heat::StructuredDeployments
1480 depends_on: BlockStorageAllNodesDeployment
1482 name: BlockStorageAllNodesValidationDeployment
1483 config: {get_resource: AllNodesValidationConfig}
1484 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1486 ObjectStorageAllNodesValidationDeployment:
1487 type: OS::Heat::StructuredDeployments
1488 depends_on: ObjectStorageAllNodesDeployment
1490 name: ObjectStorageAllNodesValidationDeployment
1491 config: {get_resource: AllNodesValidationConfig}
1492 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1494 CephStorageAllNodesValidationDeployment:
1495 type: OS::Heat::StructuredDeployments
1496 depends_on: CephStorageAllNodesDeployment
1498 name: CephStorageAllNodesValidationDeployment
1499 config: {get_resource: AllNodesValidationConfig}
1500 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1503 type: OS::TripleO::Tasks::UpdateWorkflow
1505 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1506 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1507 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1508 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1509 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1511 deploy_identifier: {get_param: DeployIdentifier}
1512 update_identifier: {get_param: UpdateIdentifier}
1514 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1515 # the nested template may configure each role differently (or not at all)
1516 AllNodesExtraConfig:
1517 type: OS::TripleO::AllNodesExtraConfig
1520 - ComputeAllNodesValidationDeployment
1521 - BlockStorageAllNodesValidationDeployment
1522 - ObjectStorageAllNodesValidationDeployment
1523 - CephStorageAllNodesValidationDeployment
1524 - ControllerAllNodesValidationDeployment
1526 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1527 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1528 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1529 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1530 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1532 # Nested stack deployment runs after all other controller deployments
1533 ControllerNodesPostDeployment:
1534 type: OS::TripleO::ControllerPostDeployment
1535 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1537 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1538 NodeConfigIdentifiers:
1539 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1540 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1541 deployment_identifier: {get_param: DeployIdentifier}
1542 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1544 ComputeNodesPostDeployment:
1545 type: OS::TripleO::ComputePostDeployment
1546 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1548 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1549 NodeConfigIdentifiers:
1550 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1551 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1552 deployment_identifier: {get_param: DeployIdentifier}
1554 ObjectStorageNodesPostDeployment:
1555 type: OS::TripleO::ObjectStoragePostDeployment
1556 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1558 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1559 NodeConfigIdentifiers:
1560 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1561 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1562 deployment_identifier: {get_param: DeployIdentifier}
1564 BlockStorageNodesPostDeployment:
1565 type: OS::TripleO::BlockStoragePostDeployment
1566 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1568 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1569 NodeConfigIdentifiers:
1570 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1571 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1572 deployment_identifier: {get_param: DeployIdentifier}
1574 CephStorageNodesPostDeployment:
1575 type: OS::TripleO::CephStoragePostDeployment
1576 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1578 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1579 NodeConfigIdentifiers:
1580 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1581 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1582 deployment_identifier: {get_param: DeployIdentifier}
1586 description: URL for the Overcloud Keystone service
1587 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1589 description: Keystone Admin VIP endpoint
1590 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1592 description: Controller VIP for public API endpoints
1593 value: {get_attr: [VipMap, net_ip_map, external]}
1595 description: VIP for Aodh API internal endpoint
1596 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1597 CeilometerInternalVip:
1598 description: VIP for Ceilometer API internal endpoint
1599 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1601 description: VIP for Cinder API internal endpoint
1602 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1604 description: VIP for Glance API internal endpoint
1605 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1607 description: VIP for Gnocchi API internal endpoint
1608 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1610 description: VIP for Heat API internal endpoint
1611 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1612 KeystoneInternalVip:
1613 description: VIP for Keystone API internal endpoint
1614 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1616 description: VIP for Neutron API internal endpoint
1617 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1619 description: VIP for Nova API internal endpoint
1620 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1622 description: VIP for Sahara API internal endpoint
1623 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1625 description: VIP for Swift Proxy internal endpoint
1626 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1629 Mapping of the resources with the needed info for their endpoints.
1630 This includes the protocol used, the IP, port and also a full
1631 representation of the URI.
1632 value: {get_attr: [EndpointMap, endpoint_map]}
1635 The content that should be appended to your /etc/hosts if you want to get
1636 hostname-based access to the deployed nodes (useful for testing without
1638 value: {get_attr: [allNodesConfig, hosts_entries]}