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 NeutronExternalNetworkBridge:
122 description: Name of bridge used for external network traffic.
125 NeutronBridgeMappings:
127 The OVS logical->physical bridge mappings to use. See the Neutron
128 documentation for details. Defaults to mapping br-ex - the external
129 bridge on hosts - to a physical name 'datacentre' which can be used
130 to create provider networks (and we use this for the default floating
131 network) - if changing this either use different post-install network
132 scripts or be sure to keep 'datacentre' as a mapping network name.
133 type: comma_delimited_list
134 default: "datacentre:br-ex"
135 NeutronControlPlaneID:
138 description: Neutron ID or name for ctlplane network.
139 NeutronEnableIsolatedMetadata:
141 description: If True, DHCP provide metadata route to VM.
143 NeutronEnableTunnelling:
149 Enable/disable the L2 population feature in the Neutron agents.
152 type: comma_delimited_list
153 default: 'datacentre'
155 If set, flat networks to configure in neutron plugins. Defaults to
156 'datacentre' to permit external network creation.
159 description: The tenant network type for Neutron.
160 type: comma_delimited_list
162 description: The password for the neutron service account, used by neutron agents.
165 NeutronPublicInterface:
167 description: What interface to bridge onto br-ex for network nodes.
169 NeutronPublicInterfaceTag:
172 VLAN tag for creating a public VLAN. The tag will be used to
173 create an access port on the exterior bridge for each control plane node,
174 and that port will be given the IP address returned by neutron from the
175 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
176 overcloud.yaml to include the deployment of VLAN ports to the control
179 NeutronComputeAgentMode:
181 description: Agent mode for the neutron-l3-agent on the compute hosts
185 description: Agent mode for the neutron-l3-agent on the controller hosts
189 description: Whether to configure Neutron Distributed Virtual Routers
191 NeutronMetadataProxySharedSecret:
192 description: Shared secret to prevent spoofing
197 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
198 be at least 50 bytes smaller than the MTU on the physical network. This
199 value will be used to set the MTU on the virtual Ethernet device.
200 This value will be used to construct the NeutronDnsmasqOptions, since that
201 will determine the MTU that is assigned to the VM host through DHCP.
207 The tunnel types for the Neutron tenant network.
208 type: comma_delimited_list
209 NeutronTunnelIdRanges:
211 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
212 of GRE tunnel IDs that are available for tenant network allocation
213 default: ["1:4094", ]
214 type: comma_delimited_list
217 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
218 of VXLAN VNI IDs that are available for tenant network allocation
219 default: ["1:4094", ]
220 type: comma_delimited_list
224 The core plugin for Neutron. The value should be the entrypoint to be loaded
225 from neutron.core_plugins namespace.
227 NeutronServicePlugins:
228 default: "router,qos"
230 Comma-separated list of service plugin entrypoints to be loaded from the
231 neutron.service_plugins namespace.
232 type: comma_delimited_list
234 default: "vxlan,vlan,flat,gre"
236 Comma-separated list of network type driver entrypoints to be loaded.
237 type: comma_delimited_list
238 NeutronMechanismDrivers:
239 default: 'openvswitch'
241 The mechanism drivers for the Neutron tenant network.
242 type: comma_delimited_list
243 NeutronPluginExtensions:
244 default: "qos,port_security"
246 Comma-separated list of extensions enabled for the Neutron plugin.
247 type: comma_delimited_list
248 NeutronAgentExtensions:
251 Comma-separated list of extensions enabled for the Neutron agents.
252 type: comma_delimited_list
253 NeutronAllowL3AgentFailover:
255 description: Allow automatic l3-agent failover
259 description: Whether to enable l3-agent HA
261 NeutronDhcpAgentsPerNetwork:
264 description: The number of neutron dhcp agents to schedule per network
267 description: Enable IPv6 features in Nova
270 description: The password for the nova service account, used by nova-api.
275 description: Comma-separated list of ntp servers
276 type: comma_delimited_list
279 description: Should MongoDb journaling be disabled
283 description: Enable IPv6 if MongoDB VIP is IPv6
285 PublicVirtualFixedIPs:
288 Control the IP allocation for the PublicVirtualInterface port. E.g.
289 [{'ip_address':'1.2.3.4'}]
294 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
297 description: The username for RabbitMQ
300 description: The password for RabbitMQ
306 Rabbit client subscriber parameter to specify
307 an SSL connection to the RabbitMQ host.
311 description: Set rabbit subscriber port, change this if using SSL
313 # We need to set this as string because 'unlimited' is a valid setting
316 description: Configures RabbitMQ FD limit
320 description: Enable IPv6 in RabbitMQ
323 description: The password for Redis
326 SnmpdReadonlyUserName:
327 default: ro_snmp_user
328 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
330 SnmpdReadonlyUserPassword:
331 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
334 StorageVirtualFixedIPs:
337 Control the IP allocation for the StorageVirtualInterface port. E.g.
338 [{'ip_address':'1.2.3.4'}]
340 StorageMgmtVirtualFixedIPs:
343 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
344 [{'ip_address':'1.2.3.4'}]
348 description: The timezone to be set on nodes.
351 default: 'localdomain'
354 The DNS domain used for the hosts. This should match the dhcp_domain
355 configured in the Undercloud neutron. Defaults to localdomain.
359 Extra properties or metadata passed to Nova for the created nodes in
360 the overcloud. It's accessible via the Nova metadata API.
363 # Controller-specific params
364 CinderLVMLoopDeviceSize:
366 description: The size of the loopback file used by the cinder LVM driver.
368 CinderNfsMountOptions:
371 Mount options for NFS mounts used by Cinder NFS backend. Effective
372 when CinderEnableNfsBackend is true.
377 NFS servers used by Cinder NFS backend. Effective when
378 CinderEnableNfsBackend is true.
379 type: comma_delimited_list
381 description: The password for the cinder service account, used by cinder-api.
386 description: The iSCSI helper to use with cinder.
393 controllerExtraConfig:
396 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
400 default: overcloud-full
402 - custom_constraint: glance.image
403 OvercloudControlFlavor:
404 description: Flavor for control nodes to request when deploying.
408 - custom_constraint: nova.flavor
409 ControlVirtualInterface:
411 description: Interface where virtual ip will be assigned.
415 description: Whether to enable fencing in Pacemaker or not.
419 description: Whether to use Galera instead of regular MariaDB.
421 ControllerEnableCephStorage:
423 description: Whether to deploy Ceph Storage (OSD) on the Controller
425 ControllerEnableSwiftStorage:
427 description: Whether to enable Swift Storage on the Controller
429 ControllerSchedulerHints:
431 description: Optional scheduler hints to pass to nova
436 Additional configuration to inject into the cluster. The format required
437 may be implementation specific, e.g puppet hieradata. Any role specific
438 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
443 Pacemaker fencing configuration. The JSON should have
444 the following structure:
448 "agent": "AGENT_NAME",
449 "host_mac": "HOST_MAC_ADDRESS",
450 "params": {"PARAM_NAME": "PARAM_VALUE"}
458 "agent": "fence_xvm",
459 "host_mac": "52:54:00:aa:bb:cc",
461 "multicast_address": "225.0.0.12",
462 "port": "baremetal_0",
464 "manage_key_file": true,
465 "key_file": "/etc/fence_xvm.key",
466 "key_file_password": "abcdef"
473 description: The filepath of the file to use for logging messages from Glance.
476 GlanceNotifierStrategy:
477 description: Strategy to use for Glance notification queue
481 description: The password for the glance service account, used by the glance services.
486 description: The short name of the Glance backend to use. Should be one
487 of swift, rbd or file
490 - allowed_values: ['swift', 'file', 'rbd']
493 description: The short name of the Gnocchi backend to use. Should be one
494 of swift, rbd or file
497 - allowed_values: ['swift', 'file', 'rbd']
498 GnocchiIndexerBackend:
500 description: The short name of the Gnocchi indexer backend to use.
503 description: The password for the gnocchi service account.
507 description: The password for the Heat service account, used by the Heat services.
510 HeatStackDomainAdminPassword:
511 description: Password for heat_stack_domain_admin user.
514 InstanceNameTemplate:
515 default: 'instance-%08x'
516 description: Template string to be used to generate instance names
520 description: Whether to manage IPtables rules.
524 description: Whether IPtables rules should be purged before setting up the ones.
526 MysqlInnodbBufferPoolSize:
528 Specifies the size of the buffer pool in megabytes. Setting to
529 zero should be interpreted as "no value" and will defer to the
534 description: Configures MySQL max_connections config setting
537 NeutronDnsmasqOptions:
538 default: 'dhcp-option-force=26,%MTU%'
540 Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU
541 to be set to the value of NeutronTenantMtu, which should be set to account
544 NeutronPublicInterfaceDefaultRoute:
546 description: A custom default route for the NeutronPublicInterface.
548 NeutronPublicInterfaceIP:
550 description: A custom IP address to put onto the NeutronPublicInterface.
552 NeutronPublicInterfaceRawDevice:
554 description: If set, the public interface is a vlan with this device as the raw device.
556 PublicVirtualInterface:
559 Specifies the interface where the public-facing virtual ip will be assigned.
560 This should be int_public when a VLAN is being used.
563 description: A random string to be used as a salt when hashing to determine mappings in the ring.
567 description: The password for the swift service account, used by the swift proxy services.
572 description: Value of mount_check in Swift account/container/object -server.conf
577 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
580 description: Partition Power to use when building Swift rings
585 description: How many replicas to use in the swift rings.
587 description: The password for the sahara service account.
591 # Compute-specific params
592 CeilometerComputeAgent:
593 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
597 - allowed_values: ['', Present]
601 HypervisorNeutronPhysicalBridge:
604 An OVS bridge to create on each hypervisor. This defaults to br-ex the
605 same as the control plane nodes, as we have a uniform configuration of
606 the openvswitch agent. Typically should not need to be changed.
608 HypervisorNeutronPublicInterface:
610 description: What interface to add to the HypervisorNeutronPhysicalBridge.
612 NeutronNetworkVLANRanges:
613 default: 'datacentre:1:1000'
615 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
616 Neutron documentation for permitted values. Defaults to permitting any
617 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
618 type: comma_delimited_list
621 default: libvirt.LibvirtDriver
622 NovaComputeExtraConfig:
625 NovaCompute specific configuration to inject into the cluster. Same
626 structure as ExtraConfig.
628 NovaComputeLibvirtType:
631 NovaComputeLibvirtVifDriver:
633 description: Libvirt VIF driver configuration for the network
635 NovaComputeSchedulerHints:
637 description: Optional scheduler hints to pass to nova
639 NovaEnableRbdBackend:
641 description: Whether to enable or not the Rbd backend for Nova
645 default: overcloud-full
647 - custom_constraint: glance.image
650 description: Name of integration bridge used by Open vSwitch
652 NovaSecurityGroupAPI:
654 description: The full class name of the security API class
656 OvercloudComputeFlavor:
657 description: Use this flavor
661 - custom_constraint: nova.flavor
664 NeutronTenantNetwork: tenant
665 CeilometerApiNetwork: internal_api
666 AodhApiNetwork: internal_api
667 GnocchiApiNetwork: internal_api
668 MongoDbNetwork: internal_api
669 CinderApiNetwork: internal_api
670 CinderIscsiNetwork: storage
671 GlanceApiNetwork: storage
672 GlanceRegistryNetwork: internal_api
673 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
674 KeystonePublicApiNetwork: internal_api
675 NeutronApiNetwork: internal_api
676 HeatApiNetwork: internal_api
677 NovaApiNetwork: internal_api
678 NovaMetadataNetwork: internal_api
679 NovaVncProxyNetwork: internal_api
680 SwiftMgmtNetwork: storage_mgmt
681 SwiftProxyNetwork: storage
682 SaharaApiNetwork: internal_api
683 HorizonNetwork: internal_api
684 MemcachedNetwork: internal_api
685 RabbitMqNetwork: internal_api
686 RedisNetwork: internal_api
687 MysqlNetwork: internal_api
688 CephClusterNetwork: storage_mgmt
689 CephPublicNetwork: storage
690 ControllerHostnameResolveNetwork: internal_api
691 ComputeHostnameResolveNetwork: internal_api
692 BlockStorageHostnameResolveNetwork: internal_api
693 ObjectStorageHostnameResolveNetwork: internal_api
694 CephStorageHostnameResolveNetwork: storage
695 description: Mapping of service_name -> network name. Typically set
696 via parameter_defaults in the resource registry.
701 - OS::TripleO::Services::Keystone
702 description: A list of service resources (configured in the Heat
703 resource_registry) which represent nested stacks
704 for each service that should get installed on the Controllers.
705 type: comma_delimited_list
707 # Block storage specific parameters
712 default: overcloud-full
714 OvercloudBlockStorageFlavor:
715 description: Flavor for block storage nodes to request when deploying.
719 - custom_constraint: nova.flavor
720 BlockStorageExtraConfig:
723 BlockStorage specific configuration to inject into the cluster. Same
724 structure as ExtraConfig.
726 BlockStorageSchedulerHints:
728 description: Optional scheduler hints to pass to nova
732 # Object storage specific parameters
736 OvercloudSwiftStorageFlavor:
737 description: Flavor for Swift storage nodes to request when deploying.
741 - custom_constraint: nova.flavor
743 default: overcloud-full
745 ObjectStorageExtraConfig:
748 ObjectStorage specific configuration to inject into the cluster. Same
749 structure as ExtraConfig.
751 ObjectStorageSchedulerHints:
753 description: Optional scheduler hints to pass to nova
756 # Ceph storage specific parameters
761 default: overcloud-full
763 OvercloudCephStorageFlavor:
765 description: Flavor for Ceph storage nodes to request when deploying.
768 - custom_constraint: nova.flavor
769 CephStorageExtraConfig:
772 CephStorage specific configuration to inject into the cluster. Same
773 structure as ExtraConfig.
775 CephStorageSchedulerHints:
777 description: Optional scheduler hints to pass to nova
781 # Hostname format for each role
782 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
783 # and %stackname% is replaced with OS::stack_name in the template below.
784 # If you want to use the heat generated names, pass '' (empty string).
785 ControllerHostnameFormat:
787 description: Format for Controller node hostnames
788 default: '%stackname%-controller-%index%'
789 ComputeHostnameFormat:
791 description: Format for Compute node hostnames
792 default: '%stackname%-novacompute-%index%'
793 BlockStorageHostnameFormat:
795 description: Format for BlockStorage node hostnames
796 default: '%stackname%-blockstorage-%index%'
797 ObjectStorageHostnameFormat:
799 description: Format for SwiftStorage node hostnames
800 default: '%stackname%-objectstorage-%index%'
801 CephStorageHostnameFormat:
803 description: Format for CephStorage node hostnames
804 default: '%stackname%-cephstorage-%index%'
806 # Identifiers to trigger tasks on nodes
811 Setting to a previously unused value during stack-update will trigger
812 package update on all nodes
817 Setting this to a unique value will re-run any deployment tasks which
818 perform configuration on a Heat stack-update.
820 # If you want to remove a specific node from a resource group, you can pass
821 # the node name or id as a <Group>RemovalPolicies parameter, for example:
822 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
823 ControllerRemovalPolicies:
827 List of resources to be removed from ControllerResourceGroup when
828 doing an update which requires removal of specific resources.
829 ComputeRemovalPolicies:
833 List of resources to be removed from ComputeResourceGroup when
834 doing an update which requires removal of specific resources.
835 BlockStorageRemovalPolicies:
839 List of resources to be removed from BlockStorageResourceGroup when
840 doing an update which requires removal of specific resources.
841 ObjectStorageRemovalPolicies:
845 List of resources to be removed from ObjectStorageResourceGroup when
846 doing an update which requires removal of specific resources.
847 CephStorageRemovalPolicies:
851 List of resources to be removed from CephStorageResourceGroup when
852 doing an update which requires removal of specific resources.
856 description: Do not use deprecated params, they will be removed.
858 - controllerExtraConfig
863 HeatAuthEncryptionKey:
864 type: OS::Heat::RandomString
867 type: OS::Heat::RandomString
872 type: OS::Heat::RandomString
877 type: OS::TripleO::EndpointMap
879 CloudName: {get_param: CloudName}
880 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
881 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
882 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
883 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
884 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
885 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
886 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
887 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
888 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
889 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
890 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
891 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
892 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
893 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
894 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
896 ControllerServiceChain:
897 type: OS::TripleO::Services
899 Services: {get_param: ControllerServices}
900 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
901 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
904 type: OS::Heat::ResourceGroup
907 count: {get_param: ControllerCount}
908 removal_policies: {get_param: ControllerRemovalPolicies}
910 type: OS::TripleO::Controller
912 AdminPassword: {get_param: AdminPassword}
913 AodhPassword: {get_param: AodhPassword}
914 CeilometerBackend: {get_param: CeilometerBackend}
915 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
916 CeilometerPassword: {get_param: CeilometerPassword}
917 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
918 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
919 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
920 CinderNfsServers: {get_param: CinderNfsServers}
921 CinderPassword: {get_param: CinderPassword}
922 CinderISCSIHelper: {get_param: CinderISCSIHelper}
923 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
924 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
925 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
926 CloudDomain: {get_param: CloudDomain}
927 ControlVirtualInterface: {get_param: ControlVirtualInterface}
928 controllerExtraConfig: {get_param: controllerExtraConfig}
929 CorosyncIPv6: {get_param: CorosyncIPv6}
930 Debug: {get_param: Debug}
931 EnableFencing: {get_param: EnableFencing}
932 ManageFirewall: {get_param: ManageFirewall}
933 PurgeFirewallRules: {get_param: PurgeFirewallRules}
934 EnableGalera: {get_param: EnableGalera}
935 EnableCephStorage: {get_param: ControllerEnableCephStorage}
936 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
937 ExtraConfig: {get_param: ExtraConfig}
938 FencingConfig: {get_param: FencingConfig}
939 Flavor: {get_param: OvercloudControlFlavor}
940 GlancePassword: {get_param: GlancePassword}
941 GlanceBackend: {get_param: GlanceBackend}
942 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
943 GlanceLogFile: {get_param: GlanceLogFile}
944 GnocchiPassword: {get_param: GnocchiPassword}
945 GnocchiBackend: {get_param: GnocchiBackend}
946 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
947 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
948 HeatPassword: {get_param: HeatPassword}
949 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
950 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
951 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
952 HorizonSecret: {get_resource: HorizonSecret}
953 Image: {get_param: controllerImage}
954 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
955 InstanceNameTemplate: {get_param: InstanceNameTemplate}
956 KeyName: {get_param: KeyName}
957 MemcachedIPv6: {get_param: MemcachedIPv6}
958 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
959 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
960 MysqlMaxConnections: {get_param: MysqlMaxConnections}
961 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
962 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
963 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
964 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
965 NeutronTenantMtu: {get_param: NeutronTenantMtu}
966 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
967 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
968 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
969 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
970 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
971 NeutronPublicInterface: {get_param: NeutronPublicInterface}
972 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
973 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
974 NeutronPassword: {get_param: NeutronPassword}
975 NeutronDnsmasqOptions:
977 template: {get_param: NeutronDnsmasqOptions}
979 '%MTU%': {get_param: NeutronTenantMtu}
980 NeutronDVR: {get_param: NeutronDVR}
981 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
982 NeutronAgentMode: {get_param: NeutronAgentMode}
983 NeutronCorePlugin: {get_param: NeutronCorePlugin}
984 NeutronServicePlugins: {get_param: NeutronServicePlugins}
985 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
986 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
987 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
988 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
989 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
990 NeutronL3HA: {get_param: NeutronL3HA}
991 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
992 NeutronNetworkType: {get_param: NeutronNetworkType}
993 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
994 NovaIPv6: {get_param: NovaIPv6}
995 NovaPassword: {get_param: NovaPassword}
996 NtpServer: {get_param: NtpServer}
997 MongoDbNoJournal: {get_param: MongoDbNoJournal}
998 MongoDbIPv6: {get_param: MongoDbIPv6}
999 PcsdPassword: {get_resource: PcsdPassword}
1000 PublicVirtualInterface: {get_param: PublicVirtualInterface}
1001 RabbitPassword: {get_param: RabbitPassword}
1002 RabbitUserName: {get_param: RabbitUserName}
1003 RabbitCookie: {get_attr: [RabbitCookie, value]}
1004 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1005 RabbitClientPort: {get_param: RabbitClientPort}
1006 RabbitFDLimit: {get_param: RabbitFDLimit}
1007 RabbitIPv6: {get_param: RabbitIPv6}
1008 RedisPassword: {get_param: RedisPassword}
1009 SaharaPassword: {get_param: SaharaPassword}
1010 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1011 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1012 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
1013 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
1014 SwiftHashSuffix: {get_param: SwiftHashSuffix}
1015 SwiftMountCheck: {get_param: SwiftMountCheck}
1016 SwiftMinPartHours: {get_param: SwiftMinPartHours}
1017 SwiftPartPower: {get_param: SwiftPartPower}
1018 SwiftPassword: {get_param: SwiftPassword}
1019 SwiftReplicas: { get_param: SwiftReplicas}
1020 TimeZone: {get_param: TimeZone}
1021 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
1022 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
1023 ServiceNetMap: {get_param: ServiceNetMap}
1024 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1025 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1026 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1027 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1028 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1029 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1030 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1031 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1032 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1033 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1034 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1035 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1036 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1037 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1038 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1039 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1040 UpdateIdentifier: {get_param: UpdateIdentifier}
1043 template: {get_param: ControllerHostnameFormat}
1045 '%stackname%': {get_param: 'OS::stack_name'}
1046 NodeIndex: '%index%'
1047 ServerMetadata: {get_param: ServerMetadata}
1048 SchedulerHints: {get_param: ControllerSchedulerHints}
1049 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
1052 type: OS::Heat::ResourceGroup
1053 depends_on: Networks
1055 count: {get_param: ComputeCount}
1056 removal_policies: {get_param: ComputeRemovalPolicies}
1058 type: OS::TripleO::Compute
1060 AdminPassword: {get_param: AdminPassword}
1061 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1062 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1063 CeilometerPassword: {get_param: CeilometerPassword}
1064 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1065 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1066 Debug: {get_param: Debug}
1067 ExtraConfig: {get_param: ExtraConfig}
1068 Flavor: {get_param: OvercloudComputeFlavor}
1069 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1070 Image: {get_param: NovaImage}
1071 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1072 KeyName: {get_param: KeyName}
1073 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1074 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1075 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1076 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1077 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1078 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1079 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1080 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1081 NeutronNetworkType: {get_param: NeutronNetworkType}
1082 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1083 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1084 NeutronPassword: {get_param: NeutronPassword}
1085 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1086 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1087 NeutronDVR: {get_param: NeutronDVR}
1088 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1089 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1090 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1091 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1092 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1093 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1094 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1095 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1096 # L3 HA and Failover is not relevant for Computes, should be removed
1097 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1098 NeutronL3HA: {get_param: NeutronL3HA}
1099 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1100 NovaComputeDriver: {get_param: NovaComputeDriver}
1101 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1102 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1103 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1104 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1105 NovaIPv6: {get_param: NovaIPv6}
1106 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1107 NovaPassword: {get_param: NovaPassword}
1108 NovaOVSBridge: {get_param: NovaOVSBridge}
1109 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1110 NtpServer: {get_param: NtpServer}
1111 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1112 RabbitPassword: {get_param: RabbitPassword}
1113 RabbitUserName: {get_param: RabbitUserName}
1114 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1115 RabbitClientPort: {get_param: RabbitClientPort}
1116 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1117 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1118 ServiceNetMap: {get_param: ServiceNetMap}
1119 TimeZone: {get_param: TimeZone}
1120 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1121 UpdateIdentifier: {get_param: UpdateIdentifier}
1124 template: {get_param: ComputeHostnameFormat}
1126 '%stackname%': {get_param: 'OS::stack_name'}
1127 CloudDomain: {get_param: CloudDomain}
1128 ServerMetadata: {get_param: ServerMetadata}
1129 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1130 NodeIndex: '%index%'
1133 type: OS::Heat::ResourceGroup
1134 depends_on: Networks
1136 count: {get_param: BlockStorageCount}
1137 removal_policies: {get_param: BlockStorageRemovalPolicies}
1139 type: OS::TripleO::BlockStorage
1141 Debug: {get_param: Debug}
1142 Image: {get_param: BlockStorageImage}
1143 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1144 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1145 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1146 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1147 CinderPassword: {get_param: CinderPassword}
1148 KeyName: {get_param: KeyName}
1149 Flavor: {get_param: OvercloudBlockStorageFlavor}
1150 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1151 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1152 RabbitPassword: {get_param: RabbitPassword}
1153 RabbitUserName: {get_param: RabbitUserName}
1154 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1155 RabbitClientPort: {get_param: RabbitClientPort}
1156 TimeZone: {get_param: TimeZone}
1157 NtpServer: {get_param: NtpServer}
1158 UpdateIdentifier: {get_param: UpdateIdentifier}
1161 template: {get_param: BlockStorageHostnameFormat}
1163 '%stackname%': {get_param: 'OS::stack_name'}
1164 ServiceNetMap: {get_param: ServiceNetMap}
1165 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1166 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1167 ExtraConfig: {get_param: ExtraConfig}
1168 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1169 CloudDomain: {get_param: CloudDomain}
1170 ServerMetadata: {get_param: ServerMetadata}
1171 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1172 NodeIndex: '%index%'
1175 type: OS::Heat::ResourceGroup
1176 depends_on: Networks
1178 count: {get_param: ObjectStorageCount}
1179 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1181 type: OS::TripleO::ObjectStorage
1183 KeyName: {get_param: KeyName}
1184 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1185 HashSuffix: {get_param: SwiftHashSuffix}
1186 MountCheck: {get_param: SwiftMountCheck}
1187 MinPartHours: {get_param: SwiftMinPartHours}
1188 PartPower: {get_param: SwiftPartPower}
1189 Image: {get_param: SwiftStorageImage}
1190 Replicas: { get_param: SwiftReplicas}
1191 TimeZone: {get_param: TimeZone}
1192 NtpServer: {get_param: NtpServer}
1193 UpdateIdentifier: {get_param: UpdateIdentifier}
1194 ServiceNetMap: {get_param: ServiceNetMap}
1197 template: {get_param: ObjectStorageHostnameFormat}
1199 '%stackname%': {get_param: 'OS::stack_name'}
1200 ExtraConfig: {get_param: ExtraConfig}
1201 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1202 CloudDomain: {get_param: CloudDomain}
1203 ServerMetadata: {get_param: ServerMetadata}
1204 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1205 NodeIndex: '%index%'
1208 type: OS::Heat::ResourceGroup
1209 depends_on: Networks
1211 count: {get_param: CephStorageCount}
1212 removal_policies: {get_param: CephStorageRemovalPolicies}
1214 type: OS::TripleO::CephStorage
1216 Image: {get_param: CephStorageImage}
1217 KeyName: {get_param: KeyName}
1218 Flavor: {get_param: OvercloudCephStorageFlavor}
1219 NtpServer: {get_param: NtpServer}
1220 ServiceNetMap: {get_param: ServiceNetMap}
1221 TimeZone: {get_param: TimeZone}
1222 UpdateIdentifier: {get_param: UpdateIdentifier}
1225 template: {get_param: CephStorageHostnameFormat}
1227 '%stackname%': {get_param: 'OS::stack_name'}
1228 ExtraConfig: {get_param: ExtraConfig}
1229 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1230 CloudDomain: {get_param: CloudDomain}
1231 ServerMetadata: {get_param: ServerMetadata}
1232 SchedulerHints: {get_param: CephStorageSchedulerHints}
1233 NodeIndex: '%index%'
1235 ControllerIpListMap:
1236 type: OS::TripleO::Network::Ports::NetIpListMap
1238 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1239 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1240 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1241 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1242 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1243 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1244 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1247 type: OS::TripleO::AllNodes::SoftwareConfig
1249 compute_hosts: {get_attr: [Compute, hosts_entry]}
1250 controller_hosts: {get_attr: [Controller, hosts_entry]}
1251 controller_ips: {get_attr: [Controller, ip_address]}
1252 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1253 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1254 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1255 controller_names: {get_attr: [Controller, hostname]}
1256 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1257 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1258 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1259 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1260 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1261 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1262 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1263 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1264 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1265 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1266 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1267 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1268 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1269 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1270 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1271 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1272 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1273 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1274 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1275 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1276 DeployIdentifier: {get_param: DeployIdentifier}
1277 UpdateIdentifier: {get_param: UpdateIdentifier}
1280 type: OS::Heat::RandomString
1284 MysqlClusterUniquePart:
1285 type: OS::Heat::RandomString
1290 type: OS::Heat::RandomString
1293 salt: {get_param: RabbitCookieSalt}
1295 # creates the network architecture
1297 type: OS::TripleO::Network
1300 type: OS::Neutron::Port
1301 depends_on: Networks
1303 name: control_virtual_ip
1304 network: {get_param: NeutronControlPlaneID}
1305 fixed_ips: {get_param: ControlFixedIPs}
1306 replacement_policy: AUTO
1309 depends_on: Networks
1310 type: OS::TripleO::Network::Ports::RedisVipPort
1312 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1313 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1314 PortName: redis_virtual_ip
1315 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1318 # The public VIP is on the External net, falls back to ctlplane
1320 depends_on: Networks
1321 type: OS::TripleO::Network::Ports::ExternalVipPort
1323 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1324 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1325 PortName: public_virtual_ip
1326 FixedIPs: {get_param: PublicVirtualFixedIPs}
1328 InternalApiVirtualIP:
1329 depends_on: Networks
1330 type: OS::TripleO::Network::Ports::InternalApiVipPort
1332 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1333 PortName: internal_api_virtual_ip
1334 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1337 depends_on: Networks
1338 type: OS::TripleO::Network::Ports::StorageVipPort
1340 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1341 PortName: storage_virtual_ip
1342 FixedIPs: {get_param: StorageVirtualFixedIPs}
1344 StorageMgmtVirtualIP:
1345 depends_on: Networks
1346 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1348 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1349 PortName: storage_management_virtual_ip
1350 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1353 type: OS::TripleO::Network::Ports::NetVipMap
1355 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1356 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1357 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1358 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1359 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1360 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1361 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1362 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1363 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1364 # No tenant or management VIP required
1367 type: OS::TripleO::VipConfig
1370 type: OS::Heat::StructuredDeployments
1373 config: {get_resource: VipConfig}
1374 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1376 # service VIP mappings
1377 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1378 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1379 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1380 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1381 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1382 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1383 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1384 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1385 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1386 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1387 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1388 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1389 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1390 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1391 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1392 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1393 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1394 # direct configuration of Virtual IPs for each network
1395 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1396 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1397 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1398 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1399 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1400 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1402 ControllerBootstrapNodeConfig:
1403 type: OS::TripleO::BootstrapNode::SoftwareConfig
1405 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1406 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1408 ControllerBootstrapNodeDeployment:
1409 type: OS::Heat::StructuredDeployments
1411 name: ControllerBootstrapNodeDeployment
1412 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1413 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1415 ControllerSwiftDeployment:
1416 type: OS::Heat::StructuredDeployments
1418 name: ControllerSwiftDeployment
1419 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1420 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1422 ObjectStorageSwiftDeployment:
1423 type: OS::Heat::StructuredDeployments
1425 name: ObjectStorageSwiftDeployment
1426 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1427 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1429 SwiftDevicesAndProxyConfig:
1430 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1432 controller_swift_devices: {get_attr: [Controller, swift_device]}
1433 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1434 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1436 ComputeCephDeployment:
1437 type: OS::Heat::StructuredDeployments
1439 name: ComputeCephDeployment
1440 config: {get_attr: [CephClusterConfig, config_id]}
1441 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1443 ControllerCephDeployment:
1444 type: OS::Heat::StructuredDeployments
1446 name: ControllerCephDeployment
1447 config: {get_attr: [CephClusterConfig, config_id]}
1448 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1450 CephStorageCephDeployment:
1451 type: OS::Heat::StructuredDeployments
1453 name: CephStorageCephDeployment
1454 config: {get_attr: [CephClusterConfig, config_id]}
1455 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1458 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1460 ceph_storage_count: {get_param: CephStorageCount}
1461 ceph_fsid: {get_param: CephClusterFSID}
1462 ceph_mon_key: {get_param: CephMonKey}
1463 ceph_admin_key: {get_param: CephAdminKey}
1464 ceph_client_key: {get_param: CephClientKey}
1465 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1466 ceph_mon_names: {get_attr: [Controller, hostname]}
1467 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1469 ControllerClusterConfig:
1470 type: OS::Heat::StructuredConfig
1472 group: os-apply-config
1475 nodes: {get_attr: [Controller, corosync_node]}
1479 nodes: {get_attr: [Controller, hostname]}
1481 nodes: {get_attr: [Controller, corosync_node]}
1483 nodes: {get_attr: [Controller, corosync_node]}
1485 ControllerClusterDeployment:
1486 type: OS::Heat::StructuredDeployments
1488 name: ControllerClusterDeployment
1489 config: {get_resource: ControllerClusterConfig}
1490 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1492 ControllerAllNodesDeployment:
1493 type: OS::Heat::StructuredDeployments
1495 name: ControllerAllNodesDeployment
1496 config: {get_attr: [allNodesConfig, config_id]}
1497 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1499 ComputeAllNodesDeployment:
1500 type: OS::Heat::StructuredDeployments
1502 name: ComputeAllNodesDeployment
1503 config: {get_attr: [allNodesConfig, config_id]}
1504 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1506 BlockStorageAllNodesDeployment:
1507 type: OS::Heat::StructuredDeployments
1509 name: BlockStorageAllNodesDeployment
1510 config: {get_attr: [allNodesConfig, config_id]}
1511 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1513 ObjectStorageAllNodesDeployment:
1514 type: OS::Heat::StructuredDeployments
1516 name: ObjectStorageAllNodesDeployment
1517 config: {get_attr: [allNodesConfig, config_id]}
1518 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1520 CephStorageAllNodesDeployment:
1521 type: OS::Heat::StructuredDeployments
1523 name: CephStorageAllNodesDeployment
1524 config: {get_attr: [allNodesConfig, config_id]}
1525 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1527 # All Nodes Validations
1528 AllNodesValidationConfig:
1529 type: OS::TripleO::AllNodes::Validation
1534 - - {get_attr: [Controller, resource.0.external_ip_address]}
1535 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1536 - {get_attr: [Controller, resource.0.storage_ip_address]}
1537 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1538 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1540 ControllerAllNodesValidationDeployment:
1541 type: OS::Heat::StructuredDeployments
1542 depends_on: ControllerAllNodesDeployment
1544 name: ControllerAllNodesValidationDeployment
1545 config: {get_resource: AllNodesValidationConfig}
1546 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1548 ComputeAllNodesValidationDeployment:
1549 type: OS::Heat::StructuredDeployments
1550 depends_on: ComputeAllNodesDeployment
1552 name: ComputeAllNodesValidationDeployment
1553 config: {get_resource: AllNodesValidationConfig}
1554 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1556 BlockStorageAllNodesValidationDeployment:
1557 type: OS::Heat::StructuredDeployments
1558 depends_on: BlockStorageAllNodesDeployment
1560 name: BlockStorageAllNodesValidationDeployment
1561 config: {get_resource: AllNodesValidationConfig}
1562 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1564 ObjectStorageAllNodesValidationDeployment:
1565 type: OS::Heat::StructuredDeployments
1566 depends_on: ObjectStorageAllNodesDeployment
1568 name: ObjectStorageAllNodesValidationDeployment
1569 config: {get_resource: AllNodesValidationConfig}
1570 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1572 CephStorageAllNodesValidationDeployment:
1573 type: OS::Heat::StructuredDeployments
1574 depends_on: CephStorageAllNodesDeployment
1576 name: CephStorageAllNodesValidationDeployment
1577 config: {get_resource: AllNodesValidationConfig}
1578 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1581 type: OS::TripleO::Tasks::UpdateWorkflow
1583 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1584 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1585 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1586 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1587 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1589 deploy_identifier: {get_param: DeployIdentifier}
1590 update_identifier: {get_param: UpdateIdentifier}
1592 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1593 # the nested template may configure each role differently (or not at all)
1594 AllNodesExtraConfig:
1595 type: OS::TripleO::AllNodesExtraConfig
1598 - ComputeAllNodesValidationDeployment
1599 - BlockStorageAllNodesValidationDeployment
1600 - ObjectStorageAllNodesValidationDeployment
1601 - CephStorageAllNodesValidationDeployment
1602 - ControllerAllNodesValidationDeployment
1604 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1605 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1606 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1607 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1608 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1610 # Nested stack deployment runs after all other controller deployments
1611 ControllerNodesPostDeployment:
1612 type: OS::TripleO::ControllerPostDeployment
1613 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1615 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1616 NodeConfigIdentifiers:
1617 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1618 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1619 deployment_identifier: {get_param: DeployIdentifier}
1620 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1622 ComputeNodesPostDeployment:
1623 type: OS::TripleO::ComputePostDeployment
1624 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1626 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1627 NodeConfigIdentifiers:
1628 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1629 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1630 deployment_identifier: {get_param: DeployIdentifier}
1632 ObjectStorageNodesPostDeployment:
1633 type: OS::TripleO::ObjectStoragePostDeployment
1634 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1636 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1637 NodeConfigIdentifiers:
1638 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1639 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1640 deployment_identifier: {get_param: DeployIdentifier}
1642 BlockStorageNodesPostDeployment:
1643 type: OS::TripleO::BlockStoragePostDeployment
1644 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1646 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1647 NodeConfigIdentifiers:
1648 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1649 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1650 deployment_identifier: {get_param: DeployIdentifier}
1652 CephStorageNodesPostDeployment:
1653 type: OS::TripleO::CephStoragePostDeployment
1654 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1656 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1657 NodeConfigIdentifiers:
1658 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1659 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1660 deployment_identifier: {get_param: DeployIdentifier}
1664 description: URL for the Overcloud Keystone service
1665 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1667 description: Keystone Admin VIP endpoint
1668 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1670 description: Controller VIP for public API endpoints
1671 value: {get_attr: [VipMap, net_ip_map, external]}
1673 description: VIP for Aodh API internal endpoint
1674 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1675 CeilometerInternalVip:
1676 description: VIP for Ceilometer API internal endpoint
1677 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1679 description: VIP for Cinder API internal endpoint
1680 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1682 description: VIP for Glance API internal endpoint
1683 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1685 description: VIP for Gnocchi API internal endpoint
1686 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1688 description: VIP for Heat API internal endpoint
1689 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1690 KeystoneInternalVip:
1691 description: VIP for Keystone API internal endpoint
1692 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1694 description: VIP for Neutron API internal endpoint
1695 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1697 description: VIP for Nova API internal endpoint
1698 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1700 description: VIP for Sahara API internal endpoint
1701 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1703 description: VIP for Swift Proxy internal endpoint
1704 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1707 Mapping of the resources with the needed info for their endpoints.
1708 This includes the protocol used, the IP, port and also a full
1709 representation of the URI.
1710 value: {get_attr: [EndpointMap, endpoint_map]}
1713 The content that should be appended to your /etc/hosts if you want to get
1714 hostname-based access to the deployed nodes (useful for testing without
1716 value: {get_attr: [allNodesConfig, hosts_entries]}