1 heat_template_version: 2015-04-30
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.
21 description: The ceilometer backend type.
23 CeilometerMeteringSecret:
24 description: Secret shared by the ceilometer services.
28 description: The password for the ceilometer service account.
31 # This has to be an UUID so for now we generate it outside the template
35 description: The Ceph cluster FSID. Must be a UUID.
38 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
43 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
46 CinderEnableNfsBackend:
48 description: Whether to enable or not the NFS backend for Cinder
52 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.
58 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
59 CinderEnableIscsiBackend:
61 description: Whether to enable or not the Iscsi backend for Cinder
63 CinderEnableRbdBackend:
65 description: Whether to enable or not the Rbd backend for Cinder
69 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
73 description: Should be used for arbitrary ips.
77 description: Enable IPv6 in Corosync
81 description: Set to True to enable debugging on all services.
85 description: Syslog address where HAproxy will send its log
89 description: A list of IP/Hostname allowed to connect to horizon
90 type: comma_delimited_list
92 default: 'REBUILD_PRESERVE_EPHEMERAL'
93 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
95 InternalApiVirtualFixedIPs:
98 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
99 [{'ip_address':'1.2.3.4'}]
103 description: Name of an existing Nova key pair to enable SSH access to the instances
106 - custom_constraint: nova.keypair
107 NeutronExternalNetworkBridge:
108 description: Name of bridge used for external network traffic.
111 NeutronBridgeMappings:
113 The OVS logical->physical bridge mappings to use. See the Neutron
114 documentation for details. Defaults to mapping br-ex - the external
115 bridge on hosts - to a physical name 'datacentre' which can be used
116 to create provider networks (and we use this for the default floating
117 network) - if changing this either use different post-install network
118 scripts or be sure to keep 'datacentre' as a mapping network name.
119 type: comma_delimited_list
120 default: "datacentre:br-ex"
121 NeutronControlPlaneID:
124 description: Neutron ID or name for ctlplane network.
125 NeutronEnableIsolatedMetadata:
127 description: If True, DHCP provide metadata route to VM.
129 NeutronEnableTunnelling:
135 Enable/disable the L2 population feature in the Neutron agents.
138 type: comma_delimited_list
139 default: 'datacentre'
141 If set, flat networks to configure in neutron plugins. Defaults to
142 'datacentre' to permit external network creation.
145 description: The tenant network type for Neutron.
146 type: comma_delimited_list
148 description: The password for the neutron service account, used by neutron agents.
151 NeutronPublicInterface:
153 description: What interface to bridge onto br-ex for network nodes.
155 NeutronPublicInterfaceTag:
158 VLAN tag for creating a public VLAN. The tag will be used to
159 create an access port on the exterior bridge for each control plane node,
160 and that port will be given the IP address returned by neutron from the
161 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
162 overcloud.yaml to include the deployment of VLAN ports to the control
165 NeutronComputeAgentMode:
167 description: Agent mode for the neutron-l3-agent on the compute hosts
171 description: Agent mode for the neutron-l3-agent on the controller hosts
175 description: Whether to configure Neutron Distributed Virtual Routers
177 NeutronMetadataProxySharedSecret:
178 description: Shared secret to prevent spoofing
183 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
184 be at least 50 bytes smaller than the MTU on the physical network. This
185 value will be used to set the MTU on the virtual Ethernet device.
186 This value will be used to construct the NeutronDnsmasqOptions, since that
187 will determine the MTU that is assigned to the VM host through DHCP.
193 The tunnel types for the Neutron tenant network.
194 type: comma_delimited_list
195 NeutronTunnelIdRanges:
197 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
198 of GRE tunnel IDs that are available for tenant network allocation
199 default: ["1:4094", ]
200 type: comma_delimited_list
203 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
204 of VXLAN VNI IDs that are available for tenant network allocation
205 default: ["1:4094", ]
206 type: comma_delimited_list
210 The core plugin for Neutron. The value should be the entrypoint to be loaded
211 from neutron.core_plugins namespace.
213 NeutronServicePlugins:
214 default: "router,qos"
216 Comma-separated list of service plugin entrypoints to be loaded from the
217 neutron.service_plugins namespace.
218 type: comma_delimited_list
220 default: "vxlan,vlan,flat,gre"
222 Comma-separated list of network type driver entrypoints to be loaded.
223 type: comma_delimited_list
224 NeutronMechanismDrivers:
225 default: 'openvswitch'
227 The mechanism drivers for the Neutron tenant network.
228 type: comma_delimited_list
229 NeutronPluginExtensions:
230 default: "qos,port_security"
232 Comma-separated list of extensions enabled for the Neutron plugin.
233 type: comma_delimited_list
234 NeutronAgentExtensions:
237 Comma-separated list of extensions enabled for the Neutron agents.
238 type: comma_delimited_list
239 NeutronAllowL3AgentFailover:
241 description: Allow automatic l3-agent failover
245 description: Whether to enable l3-agent HA
247 NeutronDhcpAgentsPerNetwork:
250 description: The number of neutron dhcp agents to schedule per network
253 description: Enable IPv6 features in Nova
256 description: The password for the nova service account, used by nova-api.
261 description: Comma-separated list of ntp servers
262 type: comma_delimited_list
265 description: Should MongoDb journaling be disabled
269 description: Enable IPv6 if MongoDB VIP is IPv6
271 PublicVirtualFixedIPs:
274 Control the IP allocation for the PublicVirtualInterface port. E.g.
275 [{'ip_address':'1.2.3.4'}]
280 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
281 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
284 description: The username for RabbitMQ
288 description: The password for RabbitMQ
294 Rabbit client subscriber parameter to specify
295 an SSL connection to the RabbitMQ host.
299 description: Set rabbit subscriber port, change this if using SSL
301 # We need to set this as string because 'unlimited' is a valid setting
304 description: Configures RabbitMQ FD limit
308 description: Enable IPv6 in RabbitMQ
310 SnmpdReadonlyUserName:
311 default: ro_snmp_user
312 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
314 SnmpdReadonlyUserPassword:
315 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
318 StorageVirtualFixedIPs:
321 Control the IP allocation for the StorageVirtualInterface port. E.g.
322 [{'ip_address':'1.2.3.4'}]
324 StorageMgmtVirtualFixedIPs:
327 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
328 [{'ip_address':'1.2.3.4'}]
332 description: The timezone to be set on nodes.
335 default: 'localdomain'
338 The DNS domain used for the hosts. This should match the dhcp_domain
339 configured in the Undercloud neutron. Defaults to localdomain.
343 Extra properties or metadata passed to Nova for the created nodes in
344 the overcloud. It's accessible via the Nova metadata API.
347 # Controller-specific params
349 description: The keystone auth secret.
352 CinderLVMLoopDeviceSize:
354 description: The size of the loopback file used by the cinder LVM driver.
356 CinderNfsMountOptions:
359 Mount options for NFS mounts used by Cinder NFS backend. Effective
360 when CinderEnableNfsBackend is true.
365 NFS servers used by Cinder NFS backend. Effective when
366 CinderEnableNfsBackend is true.
367 type: comma_delimited_list
369 description: The password for the cinder service account, used by cinder-api.
374 description: The iSCSI helper to use with cinder.
381 controllerExtraConfig:
384 Controller specific configuration to inject into the cluster. Same
385 structure as ExtraConfig.
389 default: overcloud-full
391 - custom_constraint: glance.image
392 OvercloudControlFlavor:
393 description: Flavor for control nodes to request when deploying.
397 - custom_constraint: nova.flavor
398 ControlVirtualInterface:
400 description: Interface where virtual ip will be assigned.
404 description: Whether to enable fencing in Pacemaker or not.
408 description: Whether to use Galera instead of regular MariaDB.
410 ControllerEnableCephStorage:
412 description: Whether to deploy Ceph Storage (OSD) on the Controller
414 ControllerEnableSwiftStorage:
416 description: Whether to enable Swift Storage on the Controller
418 ControllerSchedulerHints:
420 description: Optional scheduler hints to pass to nova
425 Additional configuration to inject into the cluster. The format required
426 may be implementation specific, e.g puppet hieradata. Any role specific
427 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
432 Pacemaker fencing configuration. The JSON should have
433 the following structure:
437 "agent": "AGENT_NAME",
438 "host_mac": "HOST_MAC_ADDRESS",
439 "params": {"PARAM_NAME": "PARAM_VALUE"}
447 "agent": "fence_xvm",
448 "host_mac": "52:54:00:aa:bb:cc",
450 "multicast_address": "225.0.0.12",
451 "port": "baremetal_0",
453 "manage_key_file": true,
454 "key_file": "/etc/fence_xvm.key",
455 "key_file_password": "abcdef"
462 description: The filepath of the file to use for logging messages from Glance.
465 GlanceNotifierStrategy:
466 description: Strategy to use for Glance notification queue
470 description: The password for the glance service account, used by the glance services.
475 description: The short name of the Glance backend to use. Should be one
476 of swift, rbd or file
479 - allowed_values: ['swift', 'file', 'rbd']
481 description: The password for the Heat service account, used by the Heat services.
484 HeatStackDomainAdminPassword:
485 description: Password for heat_domain_admin user.
488 InstanceNameTemplate:
489 default: 'instance-%08x'
490 description: Template string to be used to generate instance names
492 KeystoneCACertificate:
494 description: Keystone self-signed certificate authority certificate.
496 KeystoneSigningCertificate:
498 description: Keystone certificate for verifying token validity.
502 description: Keystone key for signing tokens.
505 KeystoneSSLCertificate:
507 description: Keystone certificate for verifying token validity.
509 KeystoneSSLCertificateKey:
511 description: Keystone key for signing tokens.
514 KeystoneNotificationDriver:
515 description: Comma-separated list of Oslo notification drivers used by Keystone
516 default: ['messaging']
517 type: comma_delimited_list
518 KeystoneNotificationFormat:
519 description: The Keystone notification format
523 - allowed_values: [ 'basic', 'cadf' ]
526 description: Whether to manage IPtables rules.
530 description: Whether IPtables rules should be purged before setting up the ones.
532 MysqlInnodbBufferPoolSize:
534 Specifies the size of the buffer pool in megabytes. Setting to
535 zero should be interpreted as "no value" and will defer to the
540 description: Configures MySQL max_connections config setting
543 NeutronDnsmasqOptions:
544 default: 'dhcp-option-force=26,%MTU%'
546 Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU
547 to be set to the value of NeutronTenantMtu, which should be set to account
550 NeutronPublicInterfaceDefaultRoute:
552 description: A custom default route for the NeutronPublicInterface.
554 NeutronPublicInterfaceIP:
556 description: A custom IP address to put onto the NeutronPublicInterface.
558 NeutronPublicInterfaceRawDevice:
560 description: If set, the public interface is a vlan with this device as the raw device.
562 PublicVirtualInterface:
565 Specifies the interface where the public-facing virtual ip will be assigned.
566 This should be int_public when a VLAN is being used.
569 description: A random string to be used as a salt when hashing to determine mappings in the ring.
573 description: The password for the swift service account, used by the swift proxy services.
578 description: Value of mount_check in Swift account/container/object -server.conf
583 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
586 description: Partition Power to use when building Swift rings
591 description: How many replicas to use in the swift rings.
593 description: The password for the sahara service account.
597 # Compute-specific params
598 CeilometerComputeAgent:
599 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
603 - allowed_values: ['', Present]
607 HypervisorNeutronPhysicalBridge:
610 An OVS bridge to create on each hypervisor. This defaults to br-ex the
611 same as the control plane nodes, as we have a uniform configuration of
612 the openvswitch agent. Typically should not need to be changed.
614 HypervisorNeutronPublicInterface:
616 description: What interface to add to the HypervisorNeutronPhysicalBridge.
618 NeutronNetworkVLANRanges:
619 default: 'datacentre:1:1000'
621 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
622 Neutron documentation for permitted values. Defaults to permitting any
623 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
624 type: comma_delimited_list
627 default: libvirt.LibvirtDriver
628 NovaComputeExtraConfig:
631 NovaCompute specific configuration to inject into the cluster. Same
632 structure as ExtraConfig.
634 NovaComputeLibvirtType:
637 NovaComputeLibvirtVifDriver:
639 description: Libvirt VIF driver configuration for the network
641 NovaComputeSchedulerHints:
643 description: Optional scheduler hints to pass to nova
645 NovaEnableRbdBackend:
647 description: Whether to enable or not the Rbd backend for Nova
651 default: overcloud-full
653 - custom_constraint: glance.image
656 description: Name of integration bridge used by Open vSwitch
658 NovaSecurityGroupAPI:
660 description: The full class name of the security API class
662 OvercloudComputeFlavor:
663 description: Use this flavor
667 - custom_constraint: nova.flavor
670 NeutronTenantNetwork: tenant
671 CeilometerApiNetwork: internal_api
672 MongoDbNetwork: internal_api
673 CinderApiNetwork: internal_api
674 CinderIscsiNetwork: storage
675 GlanceApiNetwork: storage
676 GlanceRegistryNetwork: internal_api
677 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
678 KeystonePublicApiNetwork: internal_api
679 NeutronApiNetwork: internal_api
680 HeatApiNetwork: internal_api
681 NovaApiNetwork: internal_api
682 NovaMetadataNetwork: internal_api
683 NovaVncProxyNetwork: internal_api
684 SwiftMgmtNetwork: storage_mgmt
685 SwiftProxyNetwork: storage
686 SaharaApiNetwork: internal_api
687 HorizonNetwork: internal_api
688 MemcachedNetwork: internal_api
689 RabbitMqNetwork: internal_api
690 RedisNetwork: internal_api
691 MysqlNetwork: internal_api
692 CephClusterNetwork: storage_mgmt
693 CephPublicNetwork: storage
694 ControllerHostnameResolveNetwork: internal_api
695 ComputeHostnameResolveNetwork: internal_api
696 BlockStorageHostnameResolveNetwork: internal_api
697 ObjectStorageHostnameResolveNetwork: internal_api
698 CephStorageHostnameResolveNetwork: storage
699 description: Mapping of service_name -> network name. Typically set
700 via parameter_defaults in the resource registry.
703 # Block storage specific parameters
708 default: overcloud-full
710 OvercloudBlockStorageFlavor:
711 description: Flavor for block storage nodes to request when deploying.
715 - custom_constraint: nova.flavor
716 BlockStorageExtraConfig:
719 BlockStorage specific configuration to inject into the cluster. Same
720 structure as ExtraConfig.
722 BlockStorageSchedulerHints:
724 description: Optional scheduler hints to pass to nova
728 # Object storage specific parameters
732 OvercloudSwiftStorageFlavor:
733 description: Flavor for Swift storage nodes to request when deploying.
737 - custom_constraint: nova.flavor
739 default: overcloud-full
741 ObjectStorageExtraConfig:
744 ObjectStorage specific configuration to inject into the cluster. Same
745 structure as ExtraConfig.
747 ObjectStorageSchedulerHints:
749 description: Optional scheduler hints to pass to nova
752 # Ceph storage specific parameters
757 default: overcloud-full
759 OvercloudCephStorageFlavor:
761 description: Flavor for Ceph storage nodes to request when deploying.
764 - custom_constraint: nova.flavor
765 CephStorageExtraConfig:
768 CephStorage specific configuration to inject into the cluster. Same
769 structure as ExtraConfig.
771 CephStorageSchedulerHints:
773 description: Optional scheduler hints to pass to nova
777 # Hostname format for each role
778 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
779 # and %stackname% is replaced with OS::stack_name in the template below.
780 # If you want to use the heat generated names, pass '' (empty string).
781 ControllerHostnameFormat:
783 description: Format for Controller node hostnames
784 default: '%stackname%-controller-%index%'
785 ComputeHostnameFormat:
787 description: Format for Compute node hostnames
788 default: '%stackname%-novacompute-%index%'
789 BlockStorageHostnameFormat:
791 description: Format for BlockStorage node hostnames
792 default: '%stackname%-blockstorage-%index%'
793 ObjectStorageHostnameFormat:
795 description: Format for SwiftStorage node hostnames
796 default: '%stackname%-objectstorage-%index%'
797 CephStorageHostnameFormat:
799 description: Format for CephStorage node hostnames
800 default: '%stackname%-cephstorage-%index%'
802 # Identifiers to trigger tasks on nodes
807 Setting to a previously unused value during stack-update will trigger
808 package update on all nodes
813 Setting this to a unique value will re-run any deployment tasks which
814 perform configuration on a Heat stack-update.
816 # If you want to remove a specific node from a resource group, you can pass
817 # the node name or id as a <Group>RemovalPolicies parameter, for example:
818 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
819 ControllerRemovalPolicies:
823 List of resources to be removed from ControllerResourceGroup when
824 doing an update which requires removal of specific resources.
825 ComputeRemovalPolicies:
829 List of resources to be removed from ComputeResourceGroup when
830 doing an update which requires removal of specific resources.
831 BlockStorageRemovalPolicies:
835 List of resources to be removed from BlockStorageResourceGroup when
836 doing an update which requires removal of specific resources.
837 ObjectStorageRemovalPolicies:
841 List of resources to be removed from ObjectStorageResourceGroup when
842 doing an update which requires removal of specific resources.
843 CephStorageRemovalPolicies:
847 List of resources to be removed from CephStorageResourceGroup when
848 doing an update which requires removal of specific resources.
853 HeatAuthEncryptionKey:
854 type: OS::Heat::RandomString
857 type: OS::Heat::RandomString
862 type: OS::Heat::RandomString
867 type: OS::TripleO::EndpointMap
869 CloudName: {get_param: CloudName}
870 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
871 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
872 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
873 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
874 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
875 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
876 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
877 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
878 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
879 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
880 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
881 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
882 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
885 type: OS::Heat::ResourceGroup
888 count: {get_param: ControllerCount}
889 removal_policies: {get_param: ControllerRemovalPolicies}
891 type: OS::TripleO::Controller
893 AdminPassword: {get_param: AdminPassword}
894 AdminToken: {get_param: AdminToken}
895 CeilometerBackend: {get_param: CeilometerBackend}
896 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
897 CeilometerPassword: {get_param: CeilometerPassword}
898 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
899 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
900 CinderNfsServers: {get_param: CinderNfsServers}
901 CinderPassword: {get_param: CinderPassword}
902 CinderISCSIHelper: {get_param: CinderISCSIHelper}
903 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
904 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
905 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
906 CloudDomain: {get_param: CloudDomain}
907 ControlVirtualInterface: {get_param: ControlVirtualInterface}
908 ControllerExtraConfig: {get_param: controllerExtraConfig}
909 CorosyncIPv6: {get_param: CorosyncIPv6}
910 Debug: {get_param: Debug}
911 EnableFencing: {get_param: EnableFencing}
912 ManageFirewall: {get_param: ManageFirewall}
913 PurgeFirewallRules: {get_param: PurgeFirewallRules}
914 EnableGalera: {get_param: EnableGalera}
915 EnableCephStorage: {get_param: ControllerEnableCephStorage}
916 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
917 ExtraConfig: {get_param: ExtraConfig}
918 FencingConfig: {get_param: FencingConfig}
919 Flavor: {get_param: OvercloudControlFlavor}
920 GlancePassword: {get_param: GlancePassword}
921 GlanceBackend: {get_param: GlanceBackend}
922 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
923 GlanceLogFile: {get_param: GlanceLogFile}
924 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
925 HeatPassword: {get_param: HeatPassword}
926 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
927 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
928 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
929 HorizonSecret: {get_resource: HorizonSecret}
930 Image: {get_param: controllerImage}
931 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
932 InstanceNameTemplate: {get_param: InstanceNameTemplate}
933 KeyName: {get_param: KeyName}
934 KeystoneCACertificate: {get_param: KeystoneCACertificate}
935 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
936 KeystoneSigningKey: {get_param: KeystoneSigningKey}
937 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
938 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
939 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
940 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
941 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
942 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
943 MysqlMaxConnections: {get_param: MysqlMaxConnections}
944 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
945 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
946 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
947 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
948 NeutronTenantMtu: {get_param: NeutronTenantMtu}
949 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
950 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
951 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
952 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
953 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
954 NeutronPublicInterface: {get_param: NeutronPublicInterface}
955 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
956 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
957 NeutronPassword: {get_param: NeutronPassword}
958 NeutronDnsmasqOptions:
960 template: {get_param: NeutronDnsmasqOptions}
962 '%MTU%': {get_param: NeutronTenantMtu}
963 NeutronDVR: {get_param: NeutronDVR}
964 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
965 NeutronAgentMode: {get_param: NeutronAgentMode}
966 NeutronCorePlugin: {get_param: NeutronCorePlugin}
967 NeutronServicePlugins: {get_param: NeutronServicePlugins}
968 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
969 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
970 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
971 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
972 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
973 NeutronL3HA: {get_param: NeutronL3HA}
974 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
975 NeutronNetworkType: {get_param: NeutronNetworkType}
976 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
977 NovaIPv6: {get_param: NovaIPv6}
978 NovaPassword: {get_param: NovaPassword}
979 NtpServer: {get_param: NtpServer}
980 MongoDbNoJournal: {get_param: MongoDbNoJournal}
981 MongoDbIPv6: {get_param: MongoDbIPv6}
982 PcsdPassword: {get_resource: PcsdPassword}
983 PublicVirtualInterface: {get_param: PublicVirtualInterface}
984 RabbitPassword: {get_param: RabbitPassword}
985 RabbitUserName: {get_param: RabbitUserName}
986 RabbitCookie: {get_attr: [RabbitCookie, value]}
987 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
988 RabbitClientPort: {get_param: RabbitClientPort}
989 RabbitFDLimit: {get_param: RabbitFDLimit}
990 RabbitIPv6: {get_param: RabbitIPv6}
991 SaharaPassword: {get_param: SaharaPassword}
992 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
993 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
994 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
995 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
996 SwiftHashSuffix: {get_param: SwiftHashSuffix}
997 SwiftMountCheck: {get_param: SwiftMountCheck}
998 SwiftMinPartHours: {get_param: SwiftMinPartHours}
999 SwiftPartPower: {get_param: SwiftPartPower}
1000 SwiftPassword: {get_param: SwiftPassword}
1001 SwiftReplicas: { get_param: SwiftReplicas}
1002 TimeZone: {get_param: TimeZone}
1003 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
1004 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
1005 ServiceNetMap: {get_param: ServiceNetMap}
1006 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1007 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1008 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1009 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1010 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1011 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1012 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1013 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1014 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1015 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1016 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1017 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1018 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1019 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1020 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1021 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1022 UpdateIdentifier: {get_param: UpdateIdentifier}
1025 template: {get_param: ControllerHostnameFormat}
1027 '%stackname%': {get_param: 'OS::stack_name'}
1028 NodeIndex: '%index%'
1029 ServerMetadata: {get_param: ServerMetadata}
1030 SchedulerHints: {get_param: ControllerSchedulerHints}
1033 type: OS::Heat::ResourceGroup
1034 depends_on: Networks
1036 count: {get_param: ComputeCount}
1037 removal_policies: {get_param: ComputeRemovalPolicies}
1039 type: OS::TripleO::Compute
1041 AdminPassword: {get_param: AdminPassword}
1042 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1043 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1044 CeilometerPassword: {get_param: CeilometerPassword}
1045 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1046 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1047 Debug: {get_param: Debug}
1048 ExtraConfig: {get_param: ExtraConfig}
1049 Flavor: {get_param: OvercloudComputeFlavor}
1050 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1051 Image: {get_param: NovaImage}
1052 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1053 KeyName: {get_param: KeyName}
1054 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1055 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1056 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1057 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1058 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1059 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1060 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1061 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1062 NeutronNetworkType: {get_param: NeutronNetworkType}
1063 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1064 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1065 NeutronPassword: {get_param: NeutronPassword}
1066 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1067 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1068 NeutronDVR: {get_param: NeutronDVR}
1069 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1070 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1071 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1072 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1073 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1074 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1075 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1076 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1077 # L3 HA and Failover is not relevant for Computes, should be removed
1078 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1079 NeutronL3HA: {get_param: NeutronL3HA}
1080 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1081 NovaComputeDriver: {get_param: NovaComputeDriver}
1082 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1083 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1084 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1085 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1086 NovaIPv6: {get_param: NovaIPv6}
1087 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1088 NovaPassword: {get_param: NovaPassword}
1089 NovaOVSBridge: {get_param: NovaOVSBridge}
1090 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1091 NtpServer: {get_param: NtpServer}
1092 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1093 RabbitPassword: {get_param: RabbitPassword}
1094 RabbitUserName: {get_param: RabbitUserName}
1095 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1096 RabbitClientPort: {get_param: RabbitClientPort}
1097 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1098 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1099 ServiceNetMap: {get_param: ServiceNetMap}
1100 TimeZone: {get_param: TimeZone}
1101 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1102 UpdateIdentifier: {get_param: UpdateIdentifier}
1105 template: {get_param: ComputeHostnameFormat}
1107 '%stackname%': {get_param: 'OS::stack_name'}
1108 CloudDomain: {get_param: CloudDomain}
1109 ServerMetadata: {get_param: ServerMetadata}
1110 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1111 NodeIndex: '%index%'
1114 type: OS::Heat::ResourceGroup
1115 depends_on: Networks
1117 count: {get_param: BlockStorageCount}
1118 removal_policies: {get_param: BlockStorageRemovalPolicies}
1120 type: OS::TripleO::BlockStorage
1122 Debug: {get_param: Debug}
1123 Image: {get_param: BlockStorageImage}
1124 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1125 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1126 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1127 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1128 CinderPassword: {get_param: CinderPassword}
1129 KeyName: {get_param: KeyName}
1130 Flavor: {get_param: OvercloudBlockStorageFlavor}
1131 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1132 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1133 RabbitPassword: {get_param: RabbitPassword}
1134 RabbitUserName: {get_param: RabbitUserName}
1135 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1136 RabbitClientPort: {get_param: RabbitClientPort}
1137 TimeZone: {get_param: TimeZone}
1138 NtpServer: {get_param: NtpServer}
1139 UpdateIdentifier: {get_param: UpdateIdentifier}
1142 template: {get_param: BlockStorageHostnameFormat}
1144 '%stackname%': {get_param: 'OS::stack_name'}
1145 ServiceNetMap: {get_param: ServiceNetMap}
1146 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1147 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1148 ExtraConfig: {get_param: ExtraConfig}
1149 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1150 CloudDomain: {get_param: CloudDomain}
1151 ServerMetadata: {get_param: ServerMetadata}
1152 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1153 NodeIndex: '%index%'
1156 type: OS::Heat::ResourceGroup
1157 depends_on: Networks
1159 count: {get_param: ObjectStorageCount}
1160 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1162 type: OS::TripleO::ObjectStorage
1164 KeyName: {get_param: KeyName}
1165 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1166 HashSuffix: {get_param: SwiftHashSuffix}
1167 MountCheck: {get_param: SwiftMountCheck}
1168 MinPartHours: {get_param: SwiftMinPartHours}
1169 PartPower: {get_param: SwiftPartPower}
1170 Image: {get_param: SwiftStorageImage}
1171 Replicas: { get_param: SwiftReplicas}
1172 TimeZone: {get_param: TimeZone}
1173 NtpServer: {get_param: NtpServer}
1174 UpdateIdentifier: {get_param: UpdateIdentifier}
1175 ServiceNetMap: {get_param: ServiceNetMap}
1178 template: {get_param: ObjectStorageHostnameFormat}
1180 '%stackname%': {get_param: 'OS::stack_name'}
1181 ExtraConfig: {get_param: ExtraConfig}
1182 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1183 CloudDomain: {get_param: CloudDomain}
1184 ServerMetadata: {get_param: ServerMetadata}
1185 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1186 NodeIndex: '%index%'
1189 type: OS::Heat::ResourceGroup
1190 depends_on: Networks
1192 count: {get_param: CephStorageCount}
1193 removal_policies: {get_param: CephStorageRemovalPolicies}
1195 type: OS::TripleO::CephStorage
1197 Image: {get_param: CephStorageImage}
1198 KeyName: {get_param: KeyName}
1199 Flavor: {get_param: OvercloudCephStorageFlavor}
1200 NtpServer: {get_param: NtpServer}
1201 ServiceNetMap: {get_param: ServiceNetMap}
1202 TimeZone: {get_param: TimeZone}
1203 UpdateIdentifier: {get_param: UpdateIdentifier}
1206 template: {get_param: CephStorageHostnameFormat}
1208 '%stackname%': {get_param: 'OS::stack_name'}
1209 ExtraConfig: {get_param: ExtraConfig}
1210 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1211 CloudDomain: {get_param: CloudDomain}
1212 ServerMetadata: {get_param: ServerMetadata}
1213 SchedulerHints: {get_param: CephStorageSchedulerHints}
1214 NodeIndex: '%index%'
1216 ControllerIpListMap:
1217 type: OS::TripleO::Network::Ports::NetIpListMap
1219 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1220 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1221 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1222 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1223 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1224 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1225 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1228 type: OS::TripleO::AllNodes::SoftwareConfig
1230 compute_hosts: {get_attr: [Compute, hosts_entry]}
1231 controller_hosts: {get_attr: [Controller, hosts_entry]}
1232 controller_ips: {get_attr: [Controller, ip_address]}
1233 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1234 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1235 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1236 controller_names: {get_attr: [Controller, hostname]}
1237 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1238 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1239 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1240 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1241 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1242 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1243 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1244 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1245 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1246 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1247 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1248 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1249 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1250 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1251 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1252 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1253 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1254 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1255 DeployIdentifier: {get_param: DeployIdentifier}
1256 UpdateIdentifier: {get_param: UpdateIdentifier}
1259 type: OS::Heat::RandomString
1263 MysqlClusterUniquePart:
1264 type: OS::Heat::RandomString
1269 type: OS::Heat::RandomString
1272 salt: {get_param: RabbitCookieSalt}
1274 # creates the network architecture
1276 type: OS::TripleO::Network
1279 type: OS::Neutron::Port
1280 depends_on: Networks
1282 name: control_virtual_ip
1283 network: {get_param: NeutronControlPlaneID}
1284 fixed_ips: {get_param: ControlFixedIPs}
1285 replacement_policy: AUTO
1288 depends_on: Networks
1289 type: OS::TripleO::Network::Ports::RedisVipPort
1291 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1292 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1293 PortName: redis_virtual_ip
1294 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1297 # The public VIP is on the External net, falls back to ctlplane
1299 depends_on: Networks
1300 type: OS::TripleO::Network::Ports::ExternalVipPort
1302 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1303 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1304 PortName: public_virtual_ip
1305 FixedIPs: {get_param: PublicVirtualFixedIPs}
1307 InternalApiVirtualIP:
1308 depends_on: Networks
1309 type: OS::TripleO::Network::Ports::InternalApiVipPort
1311 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1312 PortName: internal_api_virtual_ip
1313 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1316 depends_on: Networks
1317 type: OS::TripleO::Network::Ports::StorageVipPort
1319 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1320 PortName: storage_virtual_ip
1321 FixedIPs: {get_param: StorageVirtualFixedIPs}
1323 StorageMgmtVirtualIP:
1324 depends_on: Networks
1325 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1327 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1328 PortName: storage_management_virtual_ip
1329 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1332 type: OS::TripleO::Network::Ports::NetVipMap
1334 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1335 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1336 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1337 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1338 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1339 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1340 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1341 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1342 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1343 # No tenant or management VIP required
1346 type: OS::TripleO::VipConfig
1349 type: OS::Heat::StructuredDeployments
1352 config: {get_resource: VipConfig}
1353 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1355 # service VIP mappings
1356 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1357 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1358 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1359 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1360 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1361 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1362 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1363 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1364 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1365 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1366 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1367 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1368 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1369 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1370 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1371 # direct configuration of Virtual IPs for each network
1372 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1373 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1374 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1375 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1376 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1377 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1379 ControllerBootstrapNodeConfig:
1380 type: OS::TripleO::BootstrapNode::SoftwareConfig
1382 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1383 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1385 ControllerBootstrapNodeDeployment:
1386 type: OS::Heat::StructuredDeployments
1388 name: ControllerBootstrapNodeDeployment
1389 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1390 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1392 ControllerSwiftDeployment:
1393 type: OS::Heat::StructuredDeployments
1395 name: ControllerSwiftDeployment
1396 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1397 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1399 ObjectStorageSwiftDeployment:
1400 type: OS::Heat::StructuredDeployments
1402 name: ObjectStorageSwiftDeployment
1403 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1404 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1406 SwiftDevicesAndProxyConfig:
1407 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1409 controller_swift_devices: {get_attr: [Controller, swift_device]}
1410 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1411 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1413 ComputeCephDeployment:
1414 type: OS::Heat::StructuredDeployments
1416 name: ComputeCephDeployment
1417 config: {get_attr: [CephClusterConfig, config_id]}
1418 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1420 ControllerCephDeployment:
1421 type: OS::Heat::StructuredDeployments
1423 name: ControllerCephDeployment
1424 config: {get_attr: [CephClusterConfig, config_id]}
1425 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1427 CephStorageCephDeployment:
1428 type: OS::Heat::StructuredDeployments
1430 name: CephStorageCephDeployment
1431 config: {get_attr: [CephClusterConfig, config_id]}
1432 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1435 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1437 ceph_storage_count: {get_param: CephStorageCount}
1438 ceph_fsid: {get_param: CephClusterFSID}
1439 ceph_mon_key: {get_param: CephMonKey}
1440 ceph_admin_key: {get_param: CephAdminKey}
1441 ceph_client_key: {get_param: CephClientKey}
1442 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1443 ceph_mon_names: {get_attr: [Controller, hostname]}
1444 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1446 ControllerClusterConfig:
1447 type: OS::Heat::StructuredConfig
1449 group: os-apply-config
1452 nodes: {get_attr: [Controller, corosync_node]}
1456 nodes: {get_attr: [Controller, hostname]}
1458 nodes: {get_attr: [Controller, corosync_node]}
1460 nodes: {get_attr: [Controller, corosync_node]}
1462 ControllerClusterDeployment:
1463 type: OS::Heat::StructuredDeployments
1465 name: ControllerClusterDeployment
1466 config: {get_resource: ControllerClusterConfig}
1467 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1469 ControllerAllNodesDeployment:
1470 type: OS::Heat::StructuredDeployments
1472 name: ControllerAllNodesDeployment
1473 config: {get_attr: [allNodesConfig, config_id]}
1474 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1476 ComputeAllNodesDeployment:
1477 type: OS::Heat::StructuredDeployments
1479 name: ComputeAllNodesDeployment
1480 config: {get_attr: [allNodesConfig, config_id]}
1481 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1483 BlockStorageAllNodesDeployment:
1484 type: OS::Heat::StructuredDeployments
1486 name: BlockStorageAllNodesDeployment
1487 config: {get_attr: [allNodesConfig, config_id]}
1488 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1490 ObjectStorageAllNodesDeployment:
1491 type: OS::Heat::StructuredDeployments
1493 name: ObjectStorageAllNodesDeployment
1494 config: {get_attr: [allNodesConfig, config_id]}
1495 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1497 CephStorageAllNodesDeployment:
1498 type: OS::Heat::StructuredDeployments
1500 name: CephStorageAllNodesDeployment
1501 config: {get_attr: [allNodesConfig, config_id]}
1502 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1504 # All Nodes Validations
1505 AllNodesValidationConfig:
1506 type: OS::TripleO::AllNodes::Validation
1511 - - {get_attr: [Controller, resource.0.external_ip_address]}
1512 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1513 - {get_attr: [Controller, resource.0.storage_ip_address]}
1514 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1515 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1517 ControllerAllNodesValidationDeployment:
1518 type: OS::Heat::StructuredDeployments
1519 depends_on: ControllerAllNodesDeployment
1521 name: ControllerAllNodesValidationDeployment
1522 config: {get_resource: AllNodesValidationConfig}
1523 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1525 ComputeAllNodesValidationDeployment:
1526 type: OS::Heat::StructuredDeployments
1527 depends_on: ComputeAllNodesDeployment
1529 name: ComputeAllNodesValidationDeployment
1530 config: {get_resource: AllNodesValidationConfig}
1531 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1533 BlockStorageAllNodesValidationDeployment:
1534 type: OS::Heat::StructuredDeployments
1535 depends_on: BlockStorageAllNodesDeployment
1537 name: BlockStorageAllNodesValidationDeployment
1538 config: {get_resource: AllNodesValidationConfig}
1539 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1541 ObjectStorageAllNodesValidationDeployment:
1542 type: OS::Heat::StructuredDeployments
1543 depends_on: ObjectStorageAllNodesDeployment
1545 name: ObjectStorageAllNodesValidationDeployment
1546 config: {get_resource: AllNodesValidationConfig}
1547 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1549 CephStorageAllNodesValidationDeployment:
1550 type: OS::Heat::StructuredDeployments
1551 depends_on: CephStorageAllNodesDeployment
1553 name: CephStorageAllNodesValidationDeployment
1554 config: {get_resource: AllNodesValidationConfig}
1555 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1558 type: OS::TripleO::Tasks::UpdateWorkflow
1560 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1561 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1562 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1563 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1564 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1566 deploy_identifier: {get_param: DeployIdentifier}
1567 update_identifier: {get_param: UpdateIdentifier}
1569 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1570 # the nested template may configure each role differently (or not at all)
1571 AllNodesExtraConfig:
1572 type: OS::TripleO::AllNodesExtraConfig
1575 - ComputeAllNodesValidationDeployment
1576 - BlockStorageAllNodesValidationDeployment
1577 - ObjectStorageAllNodesValidationDeployment
1578 - CephStorageAllNodesValidationDeployment
1579 - ControllerAllNodesValidationDeployment
1581 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1582 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1583 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1584 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1585 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1587 # Nested stack deployment runs after all other controller deployments
1588 ControllerNodesPostDeployment:
1589 type: OS::TripleO::ControllerPostDeployment
1590 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1592 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1593 NodeConfigIdentifiers:
1594 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1595 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1596 deployment_identifier: {get_param: DeployIdentifier}
1598 ComputeNodesPostDeployment:
1599 type: OS::TripleO::ComputePostDeployment
1600 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1602 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1603 NodeConfigIdentifiers:
1604 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1605 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1606 deployment_identifier: {get_param: DeployIdentifier}
1608 ObjectStorageNodesPostDeployment:
1609 type: OS::TripleO::ObjectStoragePostDeployment
1610 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1612 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1613 NodeConfigIdentifiers:
1614 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1615 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1616 deployment_identifier: {get_param: DeployIdentifier}
1618 BlockStorageNodesPostDeployment:
1619 type: OS::TripleO::BlockStoragePostDeployment
1620 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1622 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1623 NodeConfigIdentifiers:
1624 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1625 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1626 deployment_identifier: {get_param: DeployIdentifier}
1628 CephStorageNodesPostDeployment:
1629 type: OS::TripleO::CephStoragePostDeployment
1630 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1632 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1633 NodeConfigIdentifiers:
1634 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1635 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1636 deployment_identifier: {get_param: DeployIdentifier}
1640 description: URL for the Overcloud Keystone service
1641 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1643 description: Keystone Admin VIP endpoint
1644 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1646 description: Controller VIP for public API endpoints
1647 value: {get_attr: [VipMap, net_ip_map, external]}
1648 CeilometerInternalVip:
1649 description: VIP for Ceilometer API internal endpoint
1650 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1652 description: VIP for Cinder API internal endpoint
1653 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1655 description: VIP for Glance API internal endpoint
1656 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1658 description: VIP for Heat API internal endpoint
1659 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1660 KeystoneInternalVip:
1661 description: VIP for Keystone API internal endpoint
1662 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1664 description: VIP for Neutron API internal endpoint
1665 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1667 description: VIP for Nova API internal endpoint
1668 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1670 description: VIP for Sahara API internal endpoint
1671 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1673 description: VIP for Swift Proxy internal endpoint
1674 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1677 The content that should be appended to your /etc/hosts if you want to get
1678 hostname-based access to the deployed nodes (useful for testing without
1680 value: {get_attr: [allNodesConfig, hosts_entries]}