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 # Compute-specific params
529 CeilometerComputeAgent:
530 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
534 - allowed_values: ['', Present]
538 HypervisorNeutronPhysicalBridge:
541 An OVS bridge to create on each hypervisor. This defaults to br-ex the
542 same as the control plane nodes, as we have a uniform configuration of
543 the openvswitch agent. Typically should not need to be changed.
545 HypervisorNeutronPublicInterface:
547 description: What interface to add to the HypervisorNeutronPhysicalBridge.
549 NeutronNetworkVLANRanges:
550 default: 'datacentre:1:1000'
552 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
553 Neutron documentation for permitted values. Defaults to permitting any
554 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
555 type: comma_delimited_list
558 default: libvirt.LibvirtDriver
559 NovaComputeExtraConfig:
562 NovaCompute specific configuration to inject into the cluster. Same
563 structure as ExtraConfig.
565 NovaComputeLibvirtType:
568 NovaComputeLibvirtVifDriver:
570 description: Libvirt VIF driver configuration for the network
572 NovaComputeSchedulerHints:
574 description: Optional scheduler hints to pass to nova
576 NovaEnableRbdBackend:
578 description: Whether to enable or not the Rbd backend for Nova
582 default: overcloud-full
584 - custom_constraint: glance.image
587 description: Name of integration bridge used by Open vSwitch
589 NovaSecurityGroupAPI:
591 description: The full class name of the security API class
593 OvercloudComputeFlavor:
594 description: Use this flavor
598 - custom_constraint: nova.flavor
601 NeutronTenantNetwork: tenant
602 CeilometerApiNetwork: internal_api
603 AodhApiNetwork: internal_api
604 GnocchiApiNetwork: internal_api
605 MongoDbNetwork: internal_api
606 CinderApiNetwork: internal_api
607 CinderIscsiNetwork: storage
608 GlanceApiNetwork: storage
609 GlanceRegistryNetwork: internal_api
610 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
611 KeystonePublicApiNetwork: internal_api
612 NeutronApiNetwork: internal_api
613 HeatApiNetwork: internal_api
614 NovaApiNetwork: internal_api
615 NovaMetadataNetwork: internal_api
616 NovaVncProxyNetwork: internal_api
617 SwiftMgmtNetwork: storage_mgmt
618 SwiftProxyNetwork: storage
619 SaharaApiNetwork: internal_api
620 HorizonNetwork: internal_api
621 MemcachedNetwork: internal_api
622 RabbitMqNetwork: internal_api
623 RedisNetwork: internal_api
624 MysqlNetwork: internal_api
625 CephClusterNetwork: storage_mgmt
626 CephPublicNetwork: storage
627 ControllerHostnameResolveNetwork: internal_api
628 ComputeHostnameResolveNetwork: internal_api
629 BlockStorageHostnameResolveNetwork: internal_api
630 ObjectStorageHostnameResolveNetwork: internal_api
631 CephStorageHostnameResolveNetwork: storage
632 description: Mapping of service_name -> network name. Typically set
633 via parameter_defaults in the resource registry.
638 - OS::TripleO::Services::Keystone
639 - OS::TripleO::Services::GlanceApi
640 - OS::TripleO::Services::GlanceRegistry
641 - OS::TripleO::Services::HeatApi
642 - OS::TripleO::Services::HeatApiCfn
643 - OS::TripleO::Services::HeatApiCloudwatch
644 - OS::TripleO::Services::HeatEngine
645 - OS::TripleO::Services::NeutronDhcpAgent
646 - OS::TripleO::Services::NeutronL3Agent
647 - OS::TripleO::Services::NeutronMetadataAgent
648 - OS::TripleO::Services::RabbitMQ
649 - OS::TripleO::Services::Loadbalancer
650 - OS::TripleO::Services::Memcached
651 - OS::TripleO::Services::SwiftProxy
652 - OS::TripleO::Services::Redis
653 description: A list of service resources (configured in the Heat
654 resource_registry) which represent nested stacks
655 for each service that should get installed on the Controllers.
656 type: comma_delimited_list
660 description: A list of service resources (configured in the Heat
661 resource_registry) which represent nested stacks
662 for each service that should get installed on the Compute Nodes.
663 type: comma_delimited_list
665 # Block storage specific parameters
670 default: overcloud-full
672 OvercloudBlockStorageFlavor:
673 description: Flavor for block storage nodes to request when deploying.
677 - custom_constraint: nova.flavor
678 BlockStorageExtraConfig:
681 BlockStorage specific configuration to inject into the cluster. Same
682 structure as ExtraConfig.
684 BlockStorageSchedulerHints:
686 description: Optional scheduler hints to pass to nova
690 # Object storage specific parameters
694 OvercloudSwiftStorageFlavor:
695 description: Flavor for Swift storage nodes to request when deploying.
699 - custom_constraint: nova.flavor
701 default: overcloud-full
703 ObjectStorageExtraConfig:
706 ObjectStorage specific configuration to inject into the cluster. Same
707 structure as ExtraConfig.
709 ObjectStorageSchedulerHints:
711 description: Optional scheduler hints to pass to nova
713 ObjectStorageServices:
715 description: A list of service resources (configured in the Heat
716 resource_registry) which represent nested stacks
717 for each service that should get installed on the ObjectStorage nodes.
718 Note this role currently only supports steps 2, 3 and 4 configuration.
719 type: comma_delimited_list
722 # Ceph storage specific parameters
727 default: overcloud-full
729 OvercloudCephStorageFlavor:
731 description: Flavor for Ceph storage nodes to request when deploying.
734 - custom_constraint: nova.flavor
735 CephStorageExtraConfig:
738 CephStorage specific configuration to inject into the cluster. Same
739 structure as ExtraConfig.
741 CephStorageSchedulerHints:
743 description: Optional scheduler hints to pass to nova
747 description: A list of service resources (configured in the Heat
748 resource_registry) which represent nested stacks
749 for each service that should get installed on the CephStorage nodes.
750 type: comma_delimited_list
752 # Hostname format for each role
753 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
754 # and %stackname% is replaced with OS::stack_name in the template below.
755 # If you want to use the heat generated names, pass '' (empty string).
756 ControllerHostnameFormat:
758 description: Format for Controller node hostnames
759 default: '%stackname%-controller-%index%'
760 ComputeHostnameFormat:
762 description: Format for Compute node hostnames
763 default: '%stackname%-novacompute-%index%'
764 BlockStorageHostnameFormat:
766 description: Format for BlockStorage node hostnames
767 default: '%stackname%-blockstorage-%index%'
768 ObjectStorageHostnameFormat:
770 description: Format for SwiftStorage node hostnames
771 default: '%stackname%-objectstorage-%index%'
772 CephStorageHostnameFormat:
774 description: Format for CephStorage node hostnames
775 default: '%stackname%-cephstorage-%index%'
777 # Identifiers to trigger tasks on nodes
782 Setting to a previously unused value during stack-update will trigger
783 package update on all nodes
788 Setting this to a unique value will re-run any deployment tasks which
789 perform configuration on a Heat stack-update.
791 # If you want to remove a specific node from a resource group, you can pass
792 # the node name or id as a <Group>RemovalPolicies parameter, for example:
793 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
794 ControllerRemovalPolicies:
798 List of resources to be removed from ControllerResourceGroup when
799 doing an update which requires removal of specific resources.
800 ComputeRemovalPolicies:
804 List of resources to be removed from ComputeResourceGroup when
805 doing an update which requires removal of specific resources.
806 BlockStorageRemovalPolicies:
810 List of resources to be removed from BlockStorageResourceGroup when
811 doing an update which requires removal of specific resources.
812 ObjectStorageRemovalPolicies:
816 List of resources to be removed from ObjectStorageResourceGroup when
817 doing an update which requires removal of specific resources.
818 CephStorageRemovalPolicies:
822 List of resources to be removed from CephStorageResourceGroup when
823 doing an update which requires removal of specific resources.
827 description: Do not use deprecated params, they will be removed.
829 - controllerExtraConfig
834 HeatAuthEncryptionKey:
835 type: OS::Heat::RandomString
838 type: OS::Heat::RandomString
843 type: OS::Heat::RandomString
848 type: OS::TripleO::EndpointMap
850 CloudName: {get_param: CloudName}
851 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
852 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
853 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
854 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
855 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
856 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
857 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
858 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
859 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
860 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
861 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
862 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
863 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
864 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
865 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
867 ControllerServiceChain:
868 type: OS::TripleO::Services
871 Services: {get_param: ControllerServices}
872 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
875 type: OS::Heat::ResourceGroup
878 count: {get_param: ControllerCount}
879 removal_policies: {get_param: ControllerRemovalPolicies}
881 type: OS::TripleO::Controller
883 AdminPassword: {get_param: AdminPassword}
884 AodhPassword: {get_param: AodhPassword}
885 CeilometerBackend: {get_param: CeilometerBackend}
886 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
887 CeilometerPassword: {get_param: CeilometerPassword}
888 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
889 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
890 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
891 CinderNfsServers: {get_param: CinderNfsServers}
892 CinderPassword: {get_param: CinderPassword}
893 CinderISCSIHelper: {get_param: CinderISCSIHelper}
894 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
895 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
896 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
897 CloudDomain: {get_param: CloudDomain}
898 ControlVirtualInterface: {get_param: ControlVirtualInterface}
899 controllerExtraConfig: {get_param: controllerExtraConfig}
900 CorosyncIPv6: {get_param: CorosyncIPv6}
901 Debug: {get_param: Debug}
902 EnableFencing: {get_param: EnableFencing}
903 ManageFirewall: {get_param: ManageFirewall}
904 PurgeFirewallRules: {get_param: PurgeFirewallRules}
905 EnableGalera: {get_param: EnableGalera}
906 EnableCephStorage: {get_param: ControllerEnableCephStorage}
907 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
908 ExtraConfig: {get_param: ExtraConfig}
909 FencingConfig: {get_param: FencingConfig}
910 Flavor: {get_param: OvercloudControlFlavor}
911 GnocchiPassword: {get_param: GnocchiPassword}
912 GnocchiBackend: {get_param: GnocchiBackend}
913 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
914 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
915 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
916 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
917 HorizonSecret: {get_resource: HorizonSecret}
918 Image: {get_param: controllerImage}
919 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
920 InstanceNameTemplate: {get_param: InstanceNameTemplate}
921 KeyName: {get_param: KeyName}
922 MemcachedIPv6: {get_param: MemcachedIPv6}
923 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
924 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
925 MysqlMaxConnections: {get_param: MysqlMaxConnections}
926 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
927 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
928 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
929 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
930 NeutronTenantMtu: {get_param: NeutronTenantMtu}
931 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
932 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
933 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
934 NeutronPublicInterface: {get_param: NeutronPublicInterface}
935 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
936 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
937 NeutronPassword: {get_param: NeutronPassword}
938 NeutronDVR: {get_param: NeutronDVR}
939 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
940 NeutronAgentMode: {get_param: NeutronAgentMode}
941 NeutronCorePlugin: {get_param: NeutronCorePlugin}
942 NeutronServicePlugins: {get_param: NeutronServicePlugins}
943 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
944 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
945 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
946 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
947 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
948 NeutronL3HA: {get_param: NeutronL3HA}
949 NeutronNetworkType: {get_param: NeutronNetworkType}
950 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
951 NovaIPv6: {get_param: NovaIPv6}
952 NovaPassword: {get_param: NovaPassword}
953 NtpServer: {get_param: NtpServer}
954 MongoDbNoJournal: {get_param: MongoDbNoJournal}
955 MongoDbIPv6: {get_param: MongoDbIPv6}
956 PcsdPassword: {get_resource: PcsdPassword}
957 PublicVirtualInterface: {get_param: PublicVirtualInterface}
958 RabbitPassword: {get_param: RabbitPassword}
959 RabbitUserName: {get_param: RabbitUserName}
960 RabbitCookie: {get_attr: [RabbitCookie, value]}
961 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
962 RabbitClientPort: {get_param: RabbitClientPort}
963 RedisPassword: {get_param: RedisPassword}
964 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
965 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
966 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
967 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
968 SwiftHashSuffix: {get_param: SwiftHashSuffix}
969 SwiftMountCheck: {get_param: SwiftMountCheck}
970 SwiftMinPartHours: {get_param: SwiftMinPartHours}
971 SwiftPartPower: {get_param: SwiftPartPower}
972 SwiftReplicas: { get_param: SwiftReplicas}
973 TimeZone: {get_param: TimeZone}
974 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
975 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
976 ServiceNetMap: {get_param: ServiceNetMap}
977 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
978 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
979 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
980 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
981 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
982 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
983 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
984 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
985 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
986 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
987 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
988 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
989 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
990 UpdateIdentifier: {get_param: UpdateIdentifier}
993 template: {get_param: ControllerHostnameFormat}
995 '%stackname%': {get_param: 'OS::stack_name'}
997 ServerMetadata: {get_param: ServerMetadata}
998 SchedulerHints: {get_param: ControllerSchedulerHints}
999 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
1001 ComputeServiceChain:
1002 type: OS::TripleO::Services
1004 Services: {get_param: ComputeServices}
1005 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1008 type: OS::Heat::ResourceGroup
1009 depends_on: Networks
1011 count: {get_param: ComputeCount}
1012 removal_policies: {get_param: ComputeRemovalPolicies}
1014 type: OS::TripleO::Compute
1016 AdminPassword: {get_param: AdminPassword}
1017 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1018 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1019 CeilometerPassword: {get_param: CeilometerPassword}
1020 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1021 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1022 Debug: {get_param: Debug}
1023 ExtraConfig: {get_param: ExtraConfig}
1024 Flavor: {get_param: OvercloudComputeFlavor}
1025 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1026 Image: {get_param: NovaImage}
1027 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1028 KeyName: {get_param: KeyName}
1029 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1030 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1031 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1032 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1033 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1034 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1035 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1036 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1037 NeutronNetworkType: {get_param: NeutronNetworkType}
1038 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1039 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1040 NeutronPassword: {get_param: NeutronPassword}
1041 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1042 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1043 NeutronDVR: {get_param: NeutronDVR}
1044 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1045 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1046 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1047 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1048 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1049 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1050 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1051 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1052 # L3 HA and Failover is not relevant for Computes, should be removed
1053 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1054 NeutronL3HA: {get_param: NeutronL3HA}
1055 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1056 NovaComputeDriver: {get_param: NovaComputeDriver}
1057 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1058 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1059 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1060 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1061 NovaIPv6: {get_param: NovaIPv6}
1062 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1063 NovaPassword: {get_param: NovaPassword}
1064 NovaOVSBridge: {get_param: NovaOVSBridge}
1065 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1066 NtpServer: {get_param: NtpServer}
1067 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1068 RabbitPassword: {get_param: RabbitPassword}
1069 RabbitUserName: {get_param: RabbitUserName}
1070 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1071 RabbitClientPort: {get_param: RabbitClientPort}
1072 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1073 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1074 ServiceNetMap: {get_param: ServiceNetMap}
1075 TimeZone: {get_param: TimeZone}
1076 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1077 UpdateIdentifier: {get_param: UpdateIdentifier}
1080 template: {get_param: ComputeHostnameFormat}
1082 '%stackname%': {get_param: 'OS::stack_name'}
1083 CloudDomain: {get_param: CloudDomain}
1084 ServerMetadata: {get_param: ServerMetadata}
1085 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1086 NodeIndex: '%index%'
1087 ServiceConfigSettings: {get_attr: [ComputeServiceChain, config_settings]}
1091 type: OS::Heat::ResourceGroup
1092 depends_on: Networks
1094 count: {get_param: BlockStorageCount}
1095 removal_policies: {get_param: BlockStorageRemovalPolicies}
1097 type: OS::TripleO::BlockStorage
1099 Debug: {get_param: Debug}
1100 Image: {get_param: BlockStorageImage}
1101 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1102 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1103 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1104 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1105 CinderPassword: {get_param: CinderPassword}
1106 KeyName: {get_param: KeyName}
1107 Flavor: {get_param: OvercloudBlockStorageFlavor}
1108 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1109 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1110 RabbitPassword: {get_param: RabbitPassword}
1111 RabbitUserName: {get_param: RabbitUserName}
1112 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1113 RabbitClientPort: {get_param: RabbitClientPort}
1114 TimeZone: {get_param: TimeZone}
1115 NtpServer: {get_param: NtpServer}
1116 UpdateIdentifier: {get_param: UpdateIdentifier}
1119 template: {get_param: BlockStorageHostnameFormat}
1121 '%stackname%': {get_param: 'OS::stack_name'}
1122 ServiceNetMap: {get_param: ServiceNetMap}
1123 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1124 ExtraConfig: {get_param: ExtraConfig}
1125 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1126 CloudDomain: {get_param: CloudDomain}
1127 ServerMetadata: {get_param: ServerMetadata}
1128 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1129 NodeIndex: '%index%'
1131 ObjectStorageServiceChain:
1132 type: OS::TripleO::Services
1134 Services: {get_param: ObjectStorageServices}
1135 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1138 type: OS::Heat::ResourceGroup
1139 depends_on: Networks
1141 count: {get_param: ObjectStorageCount}
1142 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1144 type: OS::TripleO::ObjectStorage
1146 KeyName: {get_param: KeyName}
1147 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1148 HashSuffix: {get_param: SwiftHashSuffix}
1149 MountCheck: {get_param: SwiftMountCheck}
1150 MinPartHours: {get_param: SwiftMinPartHours}
1151 PartPower: {get_param: SwiftPartPower}
1152 Image: {get_param: SwiftStorageImage}
1153 Replicas: { get_param: SwiftReplicas}
1154 TimeZone: {get_param: TimeZone}
1155 NtpServer: {get_param: NtpServer}
1156 UpdateIdentifier: {get_param: UpdateIdentifier}
1157 ServiceNetMap: {get_param: ServiceNetMap}
1160 template: {get_param: ObjectStorageHostnameFormat}
1162 '%stackname%': {get_param: 'OS::stack_name'}
1163 ExtraConfig: {get_param: ExtraConfig}
1164 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1165 CloudDomain: {get_param: CloudDomain}
1166 ServerMetadata: {get_param: ServerMetadata}
1167 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1168 NodeIndex: '%index%'
1169 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, config_settings]}
1171 CephStorageServiceChain:
1172 type: OS::TripleO::Services
1174 Services: {get_param: CephStorageServices}
1175 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1178 type: OS::Heat::ResourceGroup
1179 depends_on: Networks
1181 count: {get_param: CephStorageCount}
1182 removal_policies: {get_param: CephStorageRemovalPolicies}
1184 type: OS::TripleO::CephStorage
1186 Image: {get_param: CephStorageImage}
1187 KeyName: {get_param: KeyName}
1188 Flavor: {get_param: OvercloudCephStorageFlavor}
1189 NtpServer: {get_param: NtpServer}
1190 ServiceNetMap: {get_param: ServiceNetMap}
1191 TimeZone: {get_param: TimeZone}
1192 UpdateIdentifier: {get_param: UpdateIdentifier}
1195 template: {get_param: CephStorageHostnameFormat}
1197 '%stackname%': {get_param: 'OS::stack_name'}
1198 ExtraConfig: {get_param: ExtraConfig}
1199 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1200 CloudDomain: {get_param: CloudDomain}
1201 ServerMetadata: {get_param: ServerMetadata}
1202 SchedulerHints: {get_param: CephStorageSchedulerHints}
1203 NodeIndex: '%index%'
1204 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1206 ControllerIpListMap:
1207 type: OS::TripleO::Network::Ports::NetIpListMap
1209 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1210 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1211 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1212 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1213 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1214 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1215 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1218 type: OS::TripleO::AllNodes::SoftwareConfig
1220 compute_hosts: {get_attr: [Compute, hosts_entry]}
1221 controller_hosts: {get_attr: [Controller, hosts_entry]}
1222 controller_ips: {get_attr: [Controller, ip_address]}
1223 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1224 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1225 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1226 controller_names: {get_attr: [Controller, hostname]}
1227 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1228 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1229 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1230 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1231 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1232 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1233 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1234 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1235 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1236 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1237 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1238 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1239 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1240 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1241 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1242 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1243 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1244 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1245 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1246 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1247 DeployIdentifier: {get_param: DeployIdentifier}
1248 UpdateIdentifier: {get_param: UpdateIdentifier}
1251 type: OS::Heat::RandomString
1255 MysqlClusterUniquePart:
1256 type: OS::Heat::RandomString
1261 type: OS::Heat::RandomString
1264 salt: {get_param: RabbitCookieSalt}
1266 # creates the network architecture
1268 type: OS::TripleO::Network
1271 type: OS::Neutron::Port
1272 depends_on: Networks
1274 name: control_virtual_ip
1275 network: {get_param: NeutronControlPlaneID}
1276 fixed_ips: {get_param: ControlFixedIPs}
1277 replacement_policy: AUTO
1280 depends_on: Networks
1281 type: OS::TripleO::Network::Ports::RedisVipPort
1283 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1284 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1285 PortName: redis_virtual_ip
1286 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1289 # The public VIP is on the External net, falls back to ctlplane
1291 depends_on: Networks
1292 type: OS::TripleO::Network::Ports::ExternalVipPort
1294 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1295 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1296 PortName: public_virtual_ip
1297 FixedIPs: {get_param: PublicVirtualFixedIPs}
1299 InternalApiVirtualIP:
1300 depends_on: Networks
1301 type: OS::TripleO::Network::Ports::InternalApiVipPort
1303 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1304 PortName: internal_api_virtual_ip
1305 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1308 depends_on: Networks
1309 type: OS::TripleO::Network::Ports::StorageVipPort
1311 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1312 PortName: storage_virtual_ip
1313 FixedIPs: {get_param: StorageVirtualFixedIPs}
1315 StorageMgmtVirtualIP:
1316 depends_on: Networks
1317 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1319 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1320 PortName: storage_management_virtual_ip
1321 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1324 type: OS::TripleO::Network::Ports::NetVipMap
1326 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1327 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1328 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1329 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1330 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1331 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1332 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1333 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1334 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1335 # No tenant or management VIP required
1338 type: OS::TripleO::VipConfig
1341 type: OS::Heat::StructuredDeployments
1344 config: {get_resource: VipConfig}
1345 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1347 # service VIP mappings
1348 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1349 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1350 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1351 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1352 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1353 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1354 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1355 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1356 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1357 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1358 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1359 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1360 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1361 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1362 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1363 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1364 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1365 # direct configuration of Virtual IPs for each network
1366 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1367 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1368 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1369 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1370 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1371 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1373 ControllerBootstrapNodeConfig:
1374 type: OS::TripleO::BootstrapNode::SoftwareConfig
1376 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1377 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1379 ControllerBootstrapNodeDeployment:
1380 type: OS::Heat::StructuredDeployments
1382 name: ControllerBootstrapNodeDeployment
1383 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1384 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1386 ControllerSwiftDeployment:
1387 type: OS::Heat::StructuredDeployments
1389 name: ControllerSwiftDeployment
1390 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1391 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1393 ObjectStorageSwiftDeployment:
1394 type: OS::Heat::StructuredDeployments
1396 name: ObjectStorageSwiftDeployment
1397 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1398 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1400 SwiftDevicesAndProxyConfig:
1401 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1403 controller_swift_devices: {get_attr: [Controller, swift_device]}
1404 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1405 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1407 ComputeCephDeployment:
1408 type: OS::Heat::StructuredDeployments
1410 name: ComputeCephDeployment
1411 config: {get_attr: [CephClusterConfig, config_id]}
1412 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1414 ControllerCephDeployment:
1415 type: OS::Heat::StructuredDeployments
1417 name: ControllerCephDeployment
1418 config: {get_attr: [CephClusterConfig, config_id]}
1419 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1421 CephStorageCephDeployment:
1422 type: OS::Heat::StructuredDeployments
1424 name: CephStorageCephDeployment
1425 config: {get_attr: [CephClusterConfig, config_id]}
1426 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1429 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1431 ceph_storage_count: {get_param: CephStorageCount}
1432 ceph_fsid: {get_param: CephClusterFSID}
1433 ceph_mon_key: {get_param: CephMonKey}
1434 ceph_admin_key: {get_param: CephAdminKey}
1435 ceph_client_key: {get_param: CephClientKey}
1436 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1437 ceph_mon_names: {get_attr: [Controller, hostname]}
1438 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1440 ControllerAllNodesDeployment:
1441 type: OS::Heat::StructuredDeployments
1443 name: ControllerAllNodesDeployment
1444 config: {get_attr: [allNodesConfig, config_id]}
1445 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1447 ComputeAllNodesDeployment:
1448 type: OS::Heat::StructuredDeployments
1450 name: ComputeAllNodesDeployment
1451 config: {get_attr: [allNodesConfig, config_id]}
1452 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1454 BlockStorageAllNodesDeployment:
1455 type: OS::Heat::StructuredDeployments
1457 name: BlockStorageAllNodesDeployment
1458 config: {get_attr: [allNodesConfig, config_id]}
1459 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1461 ObjectStorageAllNodesDeployment:
1462 type: OS::Heat::StructuredDeployments
1464 name: ObjectStorageAllNodesDeployment
1465 config: {get_attr: [allNodesConfig, config_id]}
1466 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1468 CephStorageAllNodesDeployment:
1469 type: OS::Heat::StructuredDeployments
1471 name: CephStorageAllNodesDeployment
1472 config: {get_attr: [allNodesConfig, config_id]}
1473 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1475 # All Nodes Validations
1476 AllNodesValidationConfig:
1477 type: OS::TripleO::AllNodes::Validation
1482 - - {get_attr: [Controller, resource.0.external_ip_address]}
1483 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1484 - {get_attr: [Controller, resource.0.storage_ip_address]}
1485 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1486 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1488 ControllerAllNodesValidationDeployment:
1489 type: OS::Heat::StructuredDeployments
1490 depends_on: ControllerAllNodesDeployment
1492 name: ControllerAllNodesValidationDeployment
1493 config: {get_resource: AllNodesValidationConfig}
1494 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1496 ComputeAllNodesValidationDeployment:
1497 type: OS::Heat::StructuredDeployments
1498 depends_on: ComputeAllNodesDeployment
1500 name: ComputeAllNodesValidationDeployment
1501 config: {get_resource: AllNodesValidationConfig}
1502 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1504 BlockStorageAllNodesValidationDeployment:
1505 type: OS::Heat::StructuredDeployments
1506 depends_on: BlockStorageAllNodesDeployment
1508 name: BlockStorageAllNodesValidationDeployment
1509 config: {get_resource: AllNodesValidationConfig}
1510 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1512 ObjectStorageAllNodesValidationDeployment:
1513 type: OS::Heat::StructuredDeployments
1514 depends_on: ObjectStorageAllNodesDeployment
1516 name: ObjectStorageAllNodesValidationDeployment
1517 config: {get_resource: AllNodesValidationConfig}
1518 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1520 CephStorageAllNodesValidationDeployment:
1521 type: OS::Heat::StructuredDeployments
1522 depends_on: CephStorageAllNodesDeployment
1524 name: CephStorageAllNodesValidationDeployment
1525 config: {get_resource: AllNodesValidationConfig}
1526 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1529 type: OS::TripleO::Tasks::UpdateWorkflow
1531 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1532 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1533 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1534 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1535 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1537 deploy_identifier: {get_param: DeployIdentifier}
1538 update_identifier: {get_param: UpdateIdentifier}
1540 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1541 # the nested template may configure each role differently (or not at all)
1542 AllNodesExtraConfig:
1543 type: OS::TripleO::AllNodesExtraConfig
1546 - ComputeAllNodesValidationDeployment
1547 - BlockStorageAllNodesValidationDeployment
1548 - ObjectStorageAllNodesValidationDeployment
1549 - CephStorageAllNodesValidationDeployment
1550 - ControllerAllNodesValidationDeployment
1552 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1553 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1554 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1555 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1556 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1558 # Nested stack deployment runs after all other controller deployments
1559 ControllerNodesPostDeployment:
1560 type: OS::TripleO::ControllerPostDeployment
1561 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1563 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1564 NodeConfigIdentifiers:
1565 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1566 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1567 deployment_identifier: {get_param: DeployIdentifier}
1568 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1570 ComputeNodesPostDeployment:
1571 type: OS::TripleO::ComputePostDeployment
1572 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1574 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1575 NodeConfigIdentifiers:
1576 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1577 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1578 deployment_identifier: {get_param: DeployIdentifier}
1579 StepConfig: {get_attr: [ComputeServiceChain, step_config]}
1581 ObjectStorageNodesPostDeployment:
1582 type: OS::TripleO::ObjectStoragePostDeployment
1583 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1585 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1586 NodeConfigIdentifiers:
1587 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1588 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1589 deployment_identifier: {get_param: DeployIdentifier}
1590 StepConfig: {get_attr: [ObjectStorageServiceChain, step_config]}
1592 BlockStorageNodesPostDeployment:
1593 type: OS::TripleO::BlockStoragePostDeployment
1594 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1596 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1597 NodeConfigIdentifiers:
1598 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1599 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1600 deployment_identifier: {get_param: DeployIdentifier}
1602 CephStorageNodesPostDeployment:
1603 type: OS::TripleO::CephStoragePostDeployment
1604 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1606 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1607 NodeConfigIdentifiers:
1608 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1609 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1610 deployment_identifier: {get_param: DeployIdentifier}
1611 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1615 description: URL for the Overcloud Keystone service
1616 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1618 description: Keystone Admin VIP endpoint
1619 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1621 description: Controller VIP for public API endpoints
1622 value: {get_attr: [VipMap, net_ip_map, external]}
1624 description: VIP for Aodh API internal endpoint
1625 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1626 CeilometerInternalVip:
1627 description: VIP for Ceilometer API internal endpoint
1628 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1630 description: VIP for Cinder API internal endpoint
1631 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1633 description: VIP for Glance API internal endpoint
1634 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1636 description: VIP for Gnocchi API internal endpoint
1637 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1639 description: VIP for Heat API internal endpoint
1640 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1641 KeystoneInternalVip:
1642 description: VIP for Keystone API internal endpoint
1643 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1645 description: VIP for Neutron API internal endpoint
1646 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1648 description: VIP for Nova API internal endpoint
1649 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1651 description: VIP for Sahara API internal endpoint
1652 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1654 description: VIP for Swift Proxy internal endpoint
1655 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1658 Mapping of the resources with the needed info for their endpoints.
1659 This includes the protocol used, the IP, port and also a full
1660 representation of the URI.
1661 value: {get_attr: [EndpointMap, endpoint_map]}
1664 The content that should be appended to your /etc/hosts if you want to get
1665 hostname-based access to the deployed nodes (useful for testing without
1667 value: {get_attr: [allNodesConfig, hosts_entries]}