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.
466 InstanceNameTemplate:
467 default: 'instance-%08x'
468 description: Template string to be used to generate instance names
472 description: Whether to manage IPtables rules.
476 description: Whether IPtables rules should be purged before setting up the ones.
478 MysqlInnodbBufferPoolSize:
480 Specifies the size of the buffer pool in megabytes. Setting to
481 zero should be interpreted as "no value" and will defer to the
486 description: Configures MySQL max_connections config setting
489 NeutronPublicInterfaceDefaultRoute:
491 description: A custom default route for the NeutronPublicInterface.
493 NeutronPublicInterfaceIP:
495 description: A custom IP address to put onto the NeutronPublicInterface.
497 NeutronPublicInterfaceRawDevice:
499 description: If set, the public interface is a vlan with this device as the raw device.
501 PublicVirtualInterface:
504 Specifies the interface where the public-facing virtual ip will be assigned.
505 This should be int_public when a VLAN is being used.
508 description: A random string to be used as a salt when hashing to determine mappings in the ring.
513 description: Value of mount_check in Swift account/container/object -server.conf
518 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
521 description: Partition Power to use when building Swift rings
526 description: How many replicas to use in the swift rings.
528 description: The password for the sahara service account.
532 # Compute-specific params
533 CeilometerComputeAgent:
534 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
538 - allowed_values: ['', Present]
542 HypervisorNeutronPhysicalBridge:
545 An OVS bridge to create on each hypervisor. This defaults to br-ex the
546 same as the control plane nodes, as we have a uniform configuration of
547 the openvswitch agent. Typically should not need to be changed.
549 HypervisorNeutronPublicInterface:
551 description: What interface to add to the HypervisorNeutronPhysicalBridge.
553 NeutronNetworkVLANRanges:
554 default: 'datacentre:1:1000'
556 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
557 Neutron documentation for permitted values. Defaults to permitting any
558 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
559 type: comma_delimited_list
562 default: libvirt.LibvirtDriver
563 NovaComputeExtraConfig:
566 NovaCompute specific configuration to inject into the cluster. Same
567 structure as ExtraConfig.
569 NovaComputeLibvirtType:
572 NovaComputeLibvirtVifDriver:
574 description: Libvirt VIF driver configuration for the network
576 NovaComputeSchedulerHints:
578 description: Optional scheduler hints to pass to nova
580 NovaEnableRbdBackend:
582 description: Whether to enable or not the Rbd backend for Nova
586 default: overcloud-full
588 - custom_constraint: glance.image
591 description: Name of integration bridge used by Open vSwitch
593 NovaSecurityGroupAPI:
595 description: The full class name of the security API class
597 OvercloudComputeFlavor:
598 description: Use this flavor
602 - custom_constraint: nova.flavor
605 NeutronTenantNetwork: tenant
606 CeilometerApiNetwork: internal_api
607 AodhApiNetwork: internal_api
608 GnocchiApiNetwork: internal_api
609 MongoDbNetwork: internal_api
610 CinderApiNetwork: internal_api
611 CinderIscsiNetwork: storage
612 GlanceApiNetwork: storage
613 GlanceRegistryNetwork: internal_api
614 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
615 KeystonePublicApiNetwork: internal_api
616 NeutronApiNetwork: internal_api
617 HeatApiNetwork: internal_api
618 NovaApiNetwork: internal_api
619 NovaMetadataNetwork: internal_api
620 NovaVncProxyNetwork: internal_api
621 SwiftMgmtNetwork: storage_mgmt
622 SwiftProxyNetwork: storage
623 SaharaApiNetwork: internal_api
624 HorizonNetwork: internal_api
625 MemcachedNetwork: internal_api
626 RabbitMqNetwork: internal_api
627 RedisNetwork: internal_api
628 MysqlNetwork: internal_api
629 CephClusterNetwork: storage_mgmt
630 CephPublicNetwork: storage
631 ControllerHostnameResolveNetwork: internal_api
632 ComputeHostnameResolveNetwork: internal_api
633 BlockStorageHostnameResolveNetwork: internal_api
634 ObjectStorageHostnameResolveNetwork: internal_api
635 CephStorageHostnameResolveNetwork: storage
636 description: Mapping of service_name -> network name. Typically set
637 via parameter_defaults in the resource registry.
642 - OS::TripleO::Services::Keystone
643 - OS::TripleO::Services::GlanceApi
644 - OS::TripleO::Services::GlanceRegistry
645 - OS::TripleO::Services::HeatApi
646 - OS::TripleO::Services::HeatApiCfn
647 - OS::TripleO::Services::HeatApiCloudwatch
648 - OS::TripleO::Services::HeatEngine
649 - OS::TripleO::Services::NeutronDhcpAgent
650 - OS::TripleO::Services::NeutronL3Agent
651 - OS::TripleO::Services::NeutronMetadataAgent
652 - OS::TripleO::Services::RabbitMQ
653 - OS::TripleO::Services::Loadbalancer
654 - OS::TripleO::Services::Memcached
655 - OS::TripleO::Services::SwiftProxy
656 description: A list of service resources (configured in the Heat
657 resource_registry) which represent nested stacks
658 for each service that should get installed on the Controllers.
659 type: comma_delimited_list
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 Compute Nodes.
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
716 ObjectStorageServices:
718 description: A list of service resources (configured in the Heat
719 resource_registry) which represent nested stacks
720 for each service that should get installed on the ObjectStorage nodes.
721 Note this role currently only supports steps 2, 3 and 4 configuration.
722 type: comma_delimited_list
725 # Ceph storage specific parameters
730 default: overcloud-full
732 OvercloudCephStorageFlavor:
734 description: Flavor for Ceph storage nodes to request when deploying.
737 - custom_constraint: nova.flavor
738 CephStorageExtraConfig:
741 CephStorage specific configuration to inject into the cluster. Same
742 structure as ExtraConfig.
744 CephStorageSchedulerHints:
746 description: Optional scheduler hints to pass to nova
750 description: A list of service resources (configured in the Heat
751 resource_registry) which represent nested stacks
752 for each service that should get installed on the CephStorage nodes.
753 type: comma_delimited_list
755 # Hostname format for each role
756 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
757 # and %stackname% is replaced with OS::stack_name in the template below.
758 # If you want to use the heat generated names, pass '' (empty string).
759 ControllerHostnameFormat:
761 description: Format for Controller node hostnames
762 default: '%stackname%-controller-%index%'
763 ComputeHostnameFormat:
765 description: Format for Compute node hostnames
766 default: '%stackname%-novacompute-%index%'
767 BlockStorageHostnameFormat:
769 description: Format for BlockStorage node hostnames
770 default: '%stackname%-blockstorage-%index%'
771 ObjectStorageHostnameFormat:
773 description: Format for SwiftStorage node hostnames
774 default: '%stackname%-objectstorage-%index%'
775 CephStorageHostnameFormat:
777 description: Format for CephStorage node hostnames
778 default: '%stackname%-cephstorage-%index%'
780 # Identifiers to trigger tasks on nodes
785 Setting to a previously unused value during stack-update will trigger
786 package update on all nodes
791 Setting this to a unique value will re-run any deployment tasks which
792 perform configuration on a Heat stack-update.
794 # If you want to remove a specific node from a resource group, you can pass
795 # the node name or id as a <Group>RemovalPolicies parameter, for example:
796 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
797 ControllerRemovalPolicies:
801 List of resources to be removed from ControllerResourceGroup when
802 doing an update which requires removal of specific resources.
803 ComputeRemovalPolicies:
807 List of resources to be removed from ComputeResourceGroup when
808 doing an update which requires removal of specific resources.
809 BlockStorageRemovalPolicies:
813 List of resources to be removed from BlockStorageResourceGroup when
814 doing an update which requires removal of specific resources.
815 ObjectStorageRemovalPolicies:
819 List of resources to be removed from ObjectStorageResourceGroup when
820 doing an update which requires removal of specific resources.
821 CephStorageRemovalPolicies:
825 List of resources to be removed from CephStorageResourceGroup when
826 doing an update which requires removal of specific resources.
830 description: Do not use deprecated params, they will be removed.
832 - controllerExtraConfig
837 HeatAuthEncryptionKey:
838 type: OS::Heat::RandomString
841 type: OS::Heat::RandomString
846 type: OS::Heat::RandomString
851 type: OS::TripleO::EndpointMap
853 CloudName: {get_param: CloudName}
854 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
855 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
856 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
857 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
858 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
859 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
860 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
861 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
862 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
863 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
864 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
865 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
866 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
867 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
868 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
870 ControllerServiceChain:
871 type: OS::TripleO::Services
874 Services: {get_param: ControllerServices}
875 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
878 type: OS::Heat::ResourceGroup
881 count: {get_param: ControllerCount}
882 removal_policies: {get_param: ControllerRemovalPolicies}
884 type: OS::TripleO::Controller
886 AdminPassword: {get_param: AdminPassword}
887 AodhPassword: {get_param: AodhPassword}
888 CeilometerBackend: {get_param: CeilometerBackend}
889 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
890 CeilometerPassword: {get_param: CeilometerPassword}
891 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
892 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
893 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
894 CinderNfsServers: {get_param: CinderNfsServers}
895 CinderPassword: {get_param: CinderPassword}
896 CinderISCSIHelper: {get_param: CinderISCSIHelper}
897 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
898 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
899 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
900 CloudDomain: {get_param: CloudDomain}
901 ControlVirtualInterface: {get_param: ControlVirtualInterface}
902 controllerExtraConfig: {get_param: controllerExtraConfig}
903 CorosyncIPv6: {get_param: CorosyncIPv6}
904 Debug: {get_param: Debug}
905 EnableFencing: {get_param: EnableFencing}
906 ManageFirewall: {get_param: ManageFirewall}
907 PurgeFirewallRules: {get_param: PurgeFirewallRules}
908 EnableGalera: {get_param: EnableGalera}
909 EnableCephStorage: {get_param: ControllerEnableCephStorage}
910 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
911 ExtraConfig: {get_param: ExtraConfig}
912 FencingConfig: {get_param: FencingConfig}
913 Flavor: {get_param: OvercloudControlFlavor}
914 GnocchiPassword: {get_param: GnocchiPassword}
915 GnocchiBackend: {get_param: GnocchiBackend}
916 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
917 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
918 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
919 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
920 HorizonSecret: {get_resource: HorizonSecret}
921 Image: {get_param: controllerImage}
922 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
923 InstanceNameTemplate: {get_param: InstanceNameTemplate}
924 KeyName: {get_param: KeyName}
925 MemcachedIPv6: {get_param: MemcachedIPv6}
926 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
927 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
928 MysqlMaxConnections: {get_param: MysqlMaxConnections}
929 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
930 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
931 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
932 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
933 NeutronTenantMtu: {get_param: NeutronTenantMtu}
934 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
935 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
936 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
937 NeutronPublicInterface: {get_param: NeutronPublicInterface}
938 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
939 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
940 NeutronPassword: {get_param: NeutronPassword}
941 NeutronDVR: {get_param: NeutronDVR}
942 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
943 NeutronAgentMode: {get_param: NeutronAgentMode}
944 NeutronCorePlugin: {get_param: NeutronCorePlugin}
945 NeutronServicePlugins: {get_param: NeutronServicePlugins}
946 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
947 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
948 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
949 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
950 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
951 NeutronL3HA: {get_param: NeutronL3HA}
952 NeutronNetworkType: {get_param: NeutronNetworkType}
953 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
954 NovaIPv6: {get_param: NovaIPv6}
955 NovaPassword: {get_param: NovaPassword}
956 NtpServer: {get_param: NtpServer}
957 MongoDbNoJournal: {get_param: MongoDbNoJournal}
958 MongoDbIPv6: {get_param: MongoDbIPv6}
959 PcsdPassword: {get_resource: PcsdPassword}
960 PublicVirtualInterface: {get_param: PublicVirtualInterface}
961 RabbitPassword: {get_param: RabbitPassword}
962 RabbitUserName: {get_param: RabbitUserName}
963 RabbitCookie: {get_attr: [RabbitCookie, value]}
964 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
965 RabbitClientPort: {get_param: RabbitClientPort}
966 RedisPassword: {get_param: RedisPassword}
967 SaharaPassword: {get_param: SaharaPassword}
968 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
969 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
970 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
971 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
972 SwiftHashSuffix: {get_param: SwiftHashSuffix}
973 SwiftMountCheck: {get_param: SwiftMountCheck}
974 SwiftMinPartHours: {get_param: SwiftMinPartHours}
975 SwiftPartPower: {get_param: SwiftPartPower}
976 SwiftReplicas: { get_param: SwiftReplicas}
977 TimeZone: {get_param: TimeZone}
978 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
979 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
980 ServiceNetMap: {get_param: ServiceNetMap}
981 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
982 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
983 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
984 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
985 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
986 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
987 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
988 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
989 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
990 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
991 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
992 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
993 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
994 UpdateIdentifier: {get_param: UpdateIdentifier}
997 template: {get_param: ControllerHostnameFormat}
999 '%stackname%': {get_param: 'OS::stack_name'}
1000 NodeIndex: '%index%'
1001 ServerMetadata: {get_param: ServerMetadata}
1002 SchedulerHints: {get_param: ControllerSchedulerHints}
1003 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
1005 ComputeServiceChain:
1006 type: OS::TripleO::Services
1008 Services: {get_param: ComputeServices}
1009 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1012 type: OS::Heat::ResourceGroup
1013 depends_on: Networks
1015 count: {get_param: ComputeCount}
1016 removal_policies: {get_param: ComputeRemovalPolicies}
1018 type: OS::TripleO::Compute
1020 AdminPassword: {get_param: AdminPassword}
1021 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1022 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1023 CeilometerPassword: {get_param: CeilometerPassword}
1024 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1025 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1026 Debug: {get_param: Debug}
1027 ExtraConfig: {get_param: ExtraConfig}
1028 Flavor: {get_param: OvercloudComputeFlavor}
1029 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1030 Image: {get_param: NovaImage}
1031 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1032 KeyName: {get_param: KeyName}
1033 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1034 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1035 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1036 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1037 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1038 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1039 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1040 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1041 NeutronNetworkType: {get_param: NeutronNetworkType}
1042 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1043 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1044 NeutronPassword: {get_param: NeutronPassword}
1045 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1046 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1047 NeutronDVR: {get_param: NeutronDVR}
1048 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1049 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1050 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1051 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1052 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1053 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1054 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1055 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1056 # L3 HA and Failover is not relevant for Computes, should be removed
1057 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1058 NeutronL3HA: {get_param: NeutronL3HA}
1059 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1060 NovaComputeDriver: {get_param: NovaComputeDriver}
1061 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1062 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1063 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1064 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1065 NovaIPv6: {get_param: NovaIPv6}
1066 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1067 NovaPassword: {get_param: NovaPassword}
1068 NovaOVSBridge: {get_param: NovaOVSBridge}
1069 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1070 NtpServer: {get_param: NtpServer}
1071 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1072 RabbitPassword: {get_param: RabbitPassword}
1073 RabbitUserName: {get_param: RabbitUserName}
1074 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1075 RabbitClientPort: {get_param: RabbitClientPort}
1076 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1077 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1078 ServiceNetMap: {get_param: ServiceNetMap}
1079 TimeZone: {get_param: TimeZone}
1080 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1081 UpdateIdentifier: {get_param: UpdateIdentifier}
1084 template: {get_param: ComputeHostnameFormat}
1086 '%stackname%': {get_param: 'OS::stack_name'}
1087 CloudDomain: {get_param: CloudDomain}
1088 ServerMetadata: {get_param: ServerMetadata}
1089 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1090 NodeIndex: '%index%'
1091 ServiceConfigSettings: {get_attr: [ComputeServiceChain, config_settings]}
1095 type: OS::Heat::ResourceGroup
1096 depends_on: Networks
1098 count: {get_param: BlockStorageCount}
1099 removal_policies: {get_param: BlockStorageRemovalPolicies}
1101 type: OS::TripleO::BlockStorage
1103 Debug: {get_param: Debug}
1104 Image: {get_param: BlockStorageImage}
1105 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1106 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1107 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1108 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1109 CinderPassword: {get_param: CinderPassword}
1110 KeyName: {get_param: KeyName}
1111 Flavor: {get_param: OvercloudBlockStorageFlavor}
1112 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1113 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1114 RabbitPassword: {get_param: RabbitPassword}
1115 RabbitUserName: {get_param: RabbitUserName}
1116 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1117 RabbitClientPort: {get_param: RabbitClientPort}
1118 TimeZone: {get_param: TimeZone}
1119 NtpServer: {get_param: NtpServer}
1120 UpdateIdentifier: {get_param: UpdateIdentifier}
1123 template: {get_param: BlockStorageHostnameFormat}
1125 '%stackname%': {get_param: 'OS::stack_name'}
1126 ServiceNetMap: {get_param: ServiceNetMap}
1127 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1128 ExtraConfig: {get_param: ExtraConfig}
1129 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1130 CloudDomain: {get_param: CloudDomain}
1131 ServerMetadata: {get_param: ServerMetadata}
1132 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1133 NodeIndex: '%index%'
1135 ObjectStorageServiceChain:
1136 type: OS::TripleO::Services
1138 Services: {get_param: ObjectStorageServices}
1139 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1142 type: OS::Heat::ResourceGroup
1143 depends_on: Networks
1145 count: {get_param: ObjectStorageCount}
1146 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1148 type: OS::TripleO::ObjectStorage
1150 KeyName: {get_param: KeyName}
1151 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1152 HashSuffix: {get_param: SwiftHashSuffix}
1153 MountCheck: {get_param: SwiftMountCheck}
1154 MinPartHours: {get_param: SwiftMinPartHours}
1155 PartPower: {get_param: SwiftPartPower}
1156 Image: {get_param: SwiftStorageImage}
1157 Replicas: { get_param: SwiftReplicas}
1158 TimeZone: {get_param: TimeZone}
1159 NtpServer: {get_param: NtpServer}
1160 UpdateIdentifier: {get_param: UpdateIdentifier}
1161 ServiceNetMap: {get_param: ServiceNetMap}
1164 template: {get_param: ObjectStorageHostnameFormat}
1166 '%stackname%': {get_param: 'OS::stack_name'}
1167 ExtraConfig: {get_param: ExtraConfig}
1168 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1169 CloudDomain: {get_param: CloudDomain}
1170 ServerMetadata: {get_param: ServerMetadata}
1171 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1172 NodeIndex: '%index%'
1173 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, config_settings]}
1175 CephStorageServiceChain:
1176 type: OS::TripleO::Services
1178 Services: {get_param: CephStorageServices}
1179 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1182 type: OS::Heat::ResourceGroup
1183 depends_on: Networks
1185 count: {get_param: CephStorageCount}
1186 removal_policies: {get_param: CephStorageRemovalPolicies}
1188 type: OS::TripleO::CephStorage
1190 Image: {get_param: CephStorageImage}
1191 KeyName: {get_param: KeyName}
1192 Flavor: {get_param: OvercloudCephStorageFlavor}
1193 NtpServer: {get_param: NtpServer}
1194 ServiceNetMap: {get_param: ServiceNetMap}
1195 TimeZone: {get_param: TimeZone}
1196 UpdateIdentifier: {get_param: UpdateIdentifier}
1199 template: {get_param: CephStorageHostnameFormat}
1201 '%stackname%': {get_param: 'OS::stack_name'}
1202 ExtraConfig: {get_param: ExtraConfig}
1203 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1204 CloudDomain: {get_param: CloudDomain}
1205 ServerMetadata: {get_param: ServerMetadata}
1206 SchedulerHints: {get_param: CephStorageSchedulerHints}
1207 NodeIndex: '%index%'
1208 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1210 ControllerIpListMap:
1211 type: OS::TripleO::Network::Ports::NetIpListMap
1213 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1214 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1215 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1216 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1217 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1218 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1219 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1222 type: OS::TripleO::AllNodes::SoftwareConfig
1224 compute_hosts: {get_attr: [Compute, hosts_entry]}
1225 controller_hosts: {get_attr: [Controller, hosts_entry]}
1226 controller_ips: {get_attr: [Controller, ip_address]}
1227 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1228 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1229 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1230 controller_names: {get_attr: [Controller, hostname]}
1231 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1232 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1233 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1234 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1235 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1236 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1237 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1238 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1239 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1240 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1241 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1242 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1243 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1244 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1245 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1246 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1247 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1248 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1249 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1250 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1251 DeployIdentifier: {get_param: DeployIdentifier}
1252 UpdateIdentifier: {get_param: UpdateIdentifier}
1255 type: OS::Heat::RandomString
1259 MysqlClusterUniquePart:
1260 type: OS::Heat::RandomString
1265 type: OS::Heat::RandomString
1268 salt: {get_param: RabbitCookieSalt}
1270 # creates the network architecture
1272 type: OS::TripleO::Network
1275 type: OS::Neutron::Port
1276 depends_on: Networks
1278 name: control_virtual_ip
1279 network: {get_param: NeutronControlPlaneID}
1280 fixed_ips: {get_param: ControlFixedIPs}
1281 replacement_policy: AUTO
1284 depends_on: Networks
1285 type: OS::TripleO::Network::Ports::RedisVipPort
1287 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1288 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1289 PortName: redis_virtual_ip
1290 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1293 # The public VIP is on the External net, falls back to ctlplane
1295 depends_on: Networks
1296 type: OS::TripleO::Network::Ports::ExternalVipPort
1298 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1299 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1300 PortName: public_virtual_ip
1301 FixedIPs: {get_param: PublicVirtualFixedIPs}
1303 InternalApiVirtualIP:
1304 depends_on: Networks
1305 type: OS::TripleO::Network::Ports::InternalApiVipPort
1307 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1308 PortName: internal_api_virtual_ip
1309 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1312 depends_on: Networks
1313 type: OS::TripleO::Network::Ports::StorageVipPort
1315 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1316 PortName: storage_virtual_ip
1317 FixedIPs: {get_param: StorageVirtualFixedIPs}
1319 StorageMgmtVirtualIP:
1320 depends_on: Networks
1321 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1323 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1324 PortName: storage_management_virtual_ip
1325 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1328 type: OS::TripleO::Network::Ports::NetVipMap
1330 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1331 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1332 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1333 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1334 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1335 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1336 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1337 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1338 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1339 # No tenant or management VIP required
1342 type: OS::TripleO::VipConfig
1345 type: OS::Heat::StructuredDeployments
1348 config: {get_resource: VipConfig}
1349 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1351 # service VIP mappings
1352 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1353 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1354 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1355 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1356 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1357 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1358 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1359 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1360 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1361 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1362 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1363 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1364 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1365 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1366 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1367 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1368 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1369 # direct configuration of Virtual IPs for each network
1370 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1371 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1372 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1373 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1374 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1375 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1377 ControllerBootstrapNodeConfig:
1378 type: OS::TripleO::BootstrapNode::SoftwareConfig
1380 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1381 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1383 ControllerBootstrapNodeDeployment:
1384 type: OS::Heat::StructuredDeployments
1386 name: ControllerBootstrapNodeDeployment
1387 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1388 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1390 ControllerSwiftDeployment:
1391 type: OS::Heat::StructuredDeployments
1393 name: ControllerSwiftDeployment
1394 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1395 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1397 ObjectStorageSwiftDeployment:
1398 type: OS::Heat::StructuredDeployments
1400 name: ObjectStorageSwiftDeployment
1401 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1402 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1404 SwiftDevicesAndProxyConfig:
1405 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1407 controller_swift_devices: {get_attr: [Controller, swift_device]}
1408 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1409 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1411 ComputeCephDeployment:
1412 type: OS::Heat::StructuredDeployments
1414 name: ComputeCephDeployment
1415 config: {get_attr: [CephClusterConfig, config_id]}
1416 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1418 ControllerCephDeployment:
1419 type: OS::Heat::StructuredDeployments
1421 name: ControllerCephDeployment
1422 config: {get_attr: [CephClusterConfig, config_id]}
1423 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1425 CephStorageCephDeployment:
1426 type: OS::Heat::StructuredDeployments
1428 name: CephStorageCephDeployment
1429 config: {get_attr: [CephClusterConfig, config_id]}
1430 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1433 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1435 ceph_storage_count: {get_param: CephStorageCount}
1436 ceph_fsid: {get_param: CephClusterFSID}
1437 ceph_mon_key: {get_param: CephMonKey}
1438 ceph_admin_key: {get_param: CephAdminKey}
1439 ceph_client_key: {get_param: CephClientKey}
1440 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1441 ceph_mon_names: {get_attr: [Controller, hostname]}
1442 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1444 ControllerAllNodesDeployment:
1445 type: OS::Heat::StructuredDeployments
1447 name: ControllerAllNodesDeployment
1448 config: {get_attr: [allNodesConfig, config_id]}
1449 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1451 ComputeAllNodesDeployment:
1452 type: OS::Heat::StructuredDeployments
1454 name: ComputeAllNodesDeployment
1455 config: {get_attr: [allNodesConfig, config_id]}
1456 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1458 BlockStorageAllNodesDeployment:
1459 type: OS::Heat::StructuredDeployments
1461 name: BlockStorageAllNodesDeployment
1462 config: {get_attr: [allNodesConfig, config_id]}
1463 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1465 ObjectStorageAllNodesDeployment:
1466 type: OS::Heat::StructuredDeployments
1468 name: ObjectStorageAllNodesDeployment
1469 config: {get_attr: [allNodesConfig, config_id]}
1470 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1472 CephStorageAllNodesDeployment:
1473 type: OS::Heat::StructuredDeployments
1475 name: CephStorageAllNodesDeployment
1476 config: {get_attr: [allNodesConfig, config_id]}
1477 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1479 # All Nodes Validations
1480 AllNodesValidationConfig:
1481 type: OS::TripleO::AllNodes::Validation
1486 - - {get_attr: [Controller, resource.0.external_ip_address]}
1487 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1488 - {get_attr: [Controller, resource.0.storage_ip_address]}
1489 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1490 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1492 ControllerAllNodesValidationDeployment:
1493 type: OS::Heat::StructuredDeployments
1494 depends_on: ControllerAllNodesDeployment
1496 name: ControllerAllNodesValidationDeployment
1497 config: {get_resource: AllNodesValidationConfig}
1498 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1500 ComputeAllNodesValidationDeployment:
1501 type: OS::Heat::StructuredDeployments
1502 depends_on: ComputeAllNodesDeployment
1504 name: ComputeAllNodesValidationDeployment
1505 config: {get_resource: AllNodesValidationConfig}
1506 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1508 BlockStorageAllNodesValidationDeployment:
1509 type: OS::Heat::StructuredDeployments
1510 depends_on: BlockStorageAllNodesDeployment
1512 name: BlockStorageAllNodesValidationDeployment
1513 config: {get_resource: AllNodesValidationConfig}
1514 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1516 ObjectStorageAllNodesValidationDeployment:
1517 type: OS::Heat::StructuredDeployments
1518 depends_on: ObjectStorageAllNodesDeployment
1520 name: ObjectStorageAllNodesValidationDeployment
1521 config: {get_resource: AllNodesValidationConfig}
1522 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1524 CephStorageAllNodesValidationDeployment:
1525 type: OS::Heat::StructuredDeployments
1526 depends_on: CephStorageAllNodesDeployment
1528 name: CephStorageAllNodesValidationDeployment
1529 config: {get_resource: AllNodesValidationConfig}
1530 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1533 type: OS::TripleO::Tasks::UpdateWorkflow
1535 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1536 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1537 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1538 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1539 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1541 deploy_identifier: {get_param: DeployIdentifier}
1542 update_identifier: {get_param: UpdateIdentifier}
1544 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1545 # the nested template may configure each role differently (or not at all)
1546 AllNodesExtraConfig:
1547 type: OS::TripleO::AllNodesExtraConfig
1550 - ComputeAllNodesValidationDeployment
1551 - BlockStorageAllNodesValidationDeployment
1552 - ObjectStorageAllNodesValidationDeployment
1553 - CephStorageAllNodesValidationDeployment
1554 - ControllerAllNodesValidationDeployment
1556 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1557 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1558 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1559 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1560 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1562 # Nested stack deployment runs after all other controller deployments
1563 ControllerNodesPostDeployment:
1564 type: OS::TripleO::ControllerPostDeployment
1565 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1567 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1568 NodeConfigIdentifiers:
1569 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1570 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1571 deployment_identifier: {get_param: DeployIdentifier}
1572 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1574 ComputeNodesPostDeployment:
1575 type: OS::TripleO::ComputePostDeployment
1576 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1578 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1579 NodeConfigIdentifiers:
1580 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1581 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1582 deployment_identifier: {get_param: DeployIdentifier}
1583 StepConfig: {get_attr: [ComputeServiceChain, step_config]}
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}
1594 StepConfig: {get_attr: [ObjectStorageServiceChain, step_config]}
1596 BlockStorageNodesPostDeployment:
1597 type: OS::TripleO::BlockStoragePostDeployment
1598 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1600 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1601 NodeConfigIdentifiers:
1602 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1603 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1604 deployment_identifier: {get_param: DeployIdentifier}
1606 CephStorageNodesPostDeployment:
1607 type: OS::TripleO::CephStoragePostDeployment
1608 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1610 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1611 NodeConfigIdentifiers:
1612 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1613 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1614 deployment_identifier: {get_param: DeployIdentifier}
1615 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1619 description: URL for the Overcloud Keystone service
1620 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1622 description: Keystone Admin VIP endpoint
1623 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1625 description: Controller VIP for public API endpoints
1626 value: {get_attr: [VipMap, net_ip_map, external]}
1628 description: VIP for Aodh API internal endpoint
1629 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1630 CeilometerInternalVip:
1631 description: VIP for Ceilometer API internal endpoint
1632 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1634 description: VIP for Cinder API internal endpoint
1635 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1637 description: VIP for Glance API internal endpoint
1638 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1640 description: VIP for Gnocchi API internal endpoint
1641 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1643 description: VIP for Heat API internal endpoint
1644 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1645 KeystoneInternalVip:
1646 description: VIP for Keystone API internal endpoint
1647 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1649 description: VIP for Neutron API internal endpoint
1650 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1652 description: VIP for Nova API internal endpoint
1653 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1655 description: VIP for Sahara API internal endpoint
1656 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1658 description: VIP for Swift Proxy internal endpoint
1659 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1662 Mapping of the resources with the needed info for their endpoints.
1663 This includes the protocol used, the IP, port and also a full
1664 representation of the URI.
1665 value: {get_attr: [EndpointMap, endpoint_map]}
1668 The content that should be appended to your /etc/hosts if you want to get
1669 hostname-based access to the deployed nodes (useful for testing without
1671 value: {get_attr: [allNodesConfig, hosts_entries]}