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}
1113 type: OS::Heat::ResourceGroup
1114 depends_on: Networks
1116 count: {get_param: BlockStorageCount}
1117 removal_policies: {get_param: BlockStorageRemovalPolicies}
1119 type: OS::TripleO::BlockStorage
1121 Debug: {get_param: Debug}
1122 Image: {get_param: BlockStorageImage}
1123 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1124 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1125 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1126 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1127 CinderPassword: {get_param: CinderPassword}
1128 KeyName: {get_param: KeyName}
1129 Flavor: {get_param: OvercloudBlockStorageFlavor}
1130 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1131 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1132 RabbitPassword: {get_param: RabbitPassword}
1133 RabbitUserName: {get_param: RabbitUserName}
1134 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1135 RabbitClientPort: {get_param: RabbitClientPort}
1136 TimeZone: {get_param: TimeZone}
1137 NtpServer: {get_param: NtpServer}
1138 UpdateIdentifier: {get_param: UpdateIdentifier}
1141 template: {get_param: BlockStorageHostnameFormat}
1143 '%stackname%': {get_param: 'OS::stack_name'}
1144 ServiceNetMap: {get_param: ServiceNetMap}
1145 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1146 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1147 ExtraConfig: {get_param: ExtraConfig}
1148 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1149 CloudDomain: {get_param: CloudDomain}
1150 ServerMetadata: {get_param: ServerMetadata}
1151 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1154 type: OS::Heat::ResourceGroup
1155 depends_on: Networks
1157 count: {get_param: ObjectStorageCount}
1158 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1160 type: OS::TripleO::ObjectStorage
1162 KeyName: {get_param: KeyName}
1163 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1164 HashSuffix: {get_param: SwiftHashSuffix}
1165 MountCheck: {get_param: SwiftMountCheck}
1166 MinPartHours: {get_param: SwiftMinPartHours}
1167 PartPower: {get_param: SwiftPartPower}
1168 Image: {get_param: SwiftStorageImage}
1169 Replicas: { get_param: SwiftReplicas}
1170 TimeZone: {get_param: TimeZone}
1171 NtpServer: {get_param: NtpServer}
1172 UpdateIdentifier: {get_param: UpdateIdentifier}
1173 ServiceNetMap: {get_param: ServiceNetMap}
1176 template: {get_param: ObjectStorageHostnameFormat}
1178 '%stackname%': {get_param: 'OS::stack_name'}
1179 ExtraConfig: {get_param: ExtraConfig}
1180 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1181 CloudDomain: {get_param: CloudDomain}
1182 ServerMetadata: {get_param: ServerMetadata}
1183 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1186 type: OS::Heat::ResourceGroup
1187 depends_on: Networks
1189 count: {get_param: CephStorageCount}
1190 removal_policies: {get_param: CephStorageRemovalPolicies}
1192 type: OS::TripleO::CephStorage
1194 Image: {get_param: CephStorageImage}
1195 KeyName: {get_param: KeyName}
1196 Flavor: {get_param: OvercloudCephStorageFlavor}
1197 NtpServer: {get_param: NtpServer}
1198 ServiceNetMap: {get_param: ServiceNetMap}
1199 TimeZone: {get_param: TimeZone}
1200 UpdateIdentifier: {get_param: UpdateIdentifier}
1203 template: {get_param: CephStorageHostnameFormat}
1205 '%stackname%': {get_param: 'OS::stack_name'}
1206 ExtraConfig: {get_param: ExtraConfig}
1207 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1208 CloudDomain: {get_param: CloudDomain}
1209 ServerMetadata: {get_param: ServerMetadata}
1210 SchedulerHints: {get_param: CephStorageSchedulerHints}
1212 ControllerIpListMap:
1213 type: OS::TripleO::Network::Ports::NetIpListMap
1215 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1216 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1217 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1218 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1219 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1220 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1221 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1224 type: OS::TripleO::AllNodes::SoftwareConfig
1226 compute_hosts: {get_attr: [Compute, hosts_entry]}
1227 controller_hosts: {get_attr: [Controller, hosts_entry]}
1228 controller_ips: {get_attr: [Controller, ip_address]}
1229 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1230 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1231 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1232 controller_names: {get_attr: [Controller, hostname]}
1233 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1234 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1235 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1236 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1237 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1238 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1239 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1240 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1241 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1242 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1243 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1244 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1245 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1246 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1247 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1248 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1249 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1250 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1251 DeployIdentifier: {get_param: DeployIdentifier}
1252 UpdateIdentifier: {get_param: UpdateIdentifier}
1255 type: OS::Heat::RandomString
1259 MysqlClusterUniquePart:
1260 type: OS::Heat::RandomString
1265 type: OS::Heat::RandomString
1268 salt: {get_param: RabbitCookieSalt}
1270 # creates the network architecture
1272 type: OS::TripleO::Network
1275 type: OS::Neutron::Port
1276 depends_on: Networks
1278 name: control_virtual_ip
1279 network: {get_param: NeutronControlPlaneID}
1280 fixed_ips: {get_param: ControlFixedIPs}
1281 replacement_policy: AUTO
1284 depends_on: Networks
1285 type: OS::TripleO::Network::Ports::RedisVipPort
1287 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1288 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1289 PortName: redis_virtual_ip
1290 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1293 # The public VIP is on the External net, falls back to ctlplane
1295 depends_on: Networks
1296 type: OS::TripleO::Network::Ports::ExternalVipPort
1298 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1299 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1300 PortName: public_virtual_ip
1301 FixedIPs: {get_param: PublicVirtualFixedIPs}
1303 InternalApiVirtualIP:
1304 depends_on: Networks
1305 type: OS::TripleO::Network::Ports::InternalApiVipPort
1307 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1308 PortName: internal_api_virtual_ip
1309 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1312 depends_on: Networks
1313 type: OS::TripleO::Network::Ports::StorageVipPort
1315 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1316 PortName: storage_virtual_ip
1317 FixedIPs: {get_param: StorageVirtualFixedIPs}
1319 StorageMgmtVirtualIP:
1320 depends_on: Networks
1321 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1323 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1324 PortName: storage_management_virtual_ip
1325 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1328 type: OS::TripleO::Network::Ports::NetVipMap
1330 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1331 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1332 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1333 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1334 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1335 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1336 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1337 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1338 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1339 # No tenant or management VIP required
1342 type: OS::TripleO::VipConfig
1345 type: OS::Heat::StructuredDeployments
1348 config: {get_resource: VipConfig}
1349 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1351 # service VIP mappings
1352 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1353 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1354 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1355 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1356 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1357 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1358 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1359 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1360 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1361 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1362 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1363 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1364 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1365 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1366 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1367 # direct configuration of Virtual IPs for each network
1368 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1369 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1370 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1371 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1372 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1373 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1375 ControllerBootstrapNodeConfig:
1376 type: OS::TripleO::BootstrapNode::SoftwareConfig
1378 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1379 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1381 ControllerBootstrapNodeDeployment:
1382 type: OS::Heat::StructuredDeployments
1384 name: ControllerBootstrapNodeDeployment
1385 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1386 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1388 ControllerSwiftDeployment:
1389 type: OS::Heat::StructuredDeployments
1391 name: ControllerSwiftDeployment
1392 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1393 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1395 ObjectStorageSwiftDeployment:
1396 type: OS::Heat::StructuredDeployments
1398 name: ObjectStorageSwiftDeployment
1399 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1400 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1402 SwiftDevicesAndProxyConfig:
1403 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1405 controller_swift_devices: {get_attr: [Controller, swift_device]}
1406 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1407 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1409 ComputeCephDeployment:
1410 type: OS::Heat::StructuredDeployments
1412 name: ComputeCephDeployment
1413 config: {get_attr: [CephClusterConfig, config_id]}
1414 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1416 ControllerCephDeployment:
1417 type: OS::Heat::StructuredDeployments
1419 name: ControllerCephDeployment
1420 config: {get_attr: [CephClusterConfig, config_id]}
1421 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1423 CephStorageCephDeployment:
1424 type: OS::Heat::StructuredDeployments
1426 name: CephStorageCephDeployment
1427 config: {get_attr: [CephClusterConfig, config_id]}
1428 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1431 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1433 ceph_storage_count: {get_param: CephStorageCount}
1434 ceph_fsid: {get_param: CephClusterFSID}
1435 ceph_mon_key: {get_param: CephMonKey}
1436 ceph_admin_key: {get_param: CephAdminKey}
1437 ceph_client_key: {get_param: CephClientKey}
1438 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1439 ceph_mon_names: {get_attr: [Controller, hostname]}
1440 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1442 ControllerClusterConfig:
1443 type: OS::Heat::StructuredConfig
1445 group: os-apply-config
1448 nodes: {get_attr: [Controller, corosync_node]}
1452 nodes: {get_attr: [Controller, hostname]}
1454 nodes: {get_attr: [Controller, corosync_node]}
1456 nodes: {get_attr: [Controller, corosync_node]}
1458 ControllerClusterDeployment:
1459 type: OS::Heat::StructuredDeployments
1461 name: ControllerClusterDeployment
1462 config: {get_resource: ControllerClusterConfig}
1463 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1465 ControllerAllNodesDeployment:
1466 type: OS::Heat::StructuredDeployments
1468 name: ControllerAllNodesDeployment
1469 config: {get_attr: [allNodesConfig, config_id]}
1470 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1472 ComputeAllNodesDeployment:
1473 type: OS::Heat::StructuredDeployments
1475 name: ComputeAllNodesDeployment
1476 config: {get_attr: [allNodesConfig, config_id]}
1477 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1479 BlockStorageAllNodesDeployment:
1480 type: OS::Heat::StructuredDeployments
1482 name: BlockStorageAllNodesDeployment
1483 config: {get_attr: [allNodesConfig, config_id]}
1484 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1486 ObjectStorageAllNodesDeployment:
1487 type: OS::Heat::StructuredDeployments
1489 name: ObjectStorageAllNodesDeployment
1490 config: {get_attr: [allNodesConfig, config_id]}
1491 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1493 CephStorageAllNodesDeployment:
1494 type: OS::Heat::StructuredDeployments
1496 name: CephStorageAllNodesDeployment
1497 config: {get_attr: [allNodesConfig, config_id]}
1498 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1500 # All Nodes Validations
1501 AllNodesValidationConfig:
1502 type: OS::TripleO::AllNodes::Validation
1507 - - {get_attr: [Controller, resource.0.external_ip_address]}
1508 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1509 - {get_attr: [Controller, resource.0.storage_ip_address]}
1510 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1511 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1513 ControllerAllNodesValidationDeployment:
1514 type: OS::Heat::StructuredDeployments
1515 depends_on: ControllerAllNodesDeployment
1517 name: ControllerAllNodesValidationDeployment
1518 config: {get_resource: AllNodesValidationConfig}
1519 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1521 ComputeAllNodesValidationDeployment:
1522 type: OS::Heat::StructuredDeployments
1523 depends_on: ComputeAllNodesDeployment
1525 name: ComputeAllNodesValidationDeployment
1526 config: {get_resource: AllNodesValidationConfig}
1527 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1529 BlockStorageAllNodesValidationDeployment:
1530 type: OS::Heat::StructuredDeployments
1531 depends_on: BlockStorageAllNodesDeployment
1533 name: BlockStorageAllNodesValidationDeployment
1534 config: {get_resource: AllNodesValidationConfig}
1535 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1537 ObjectStorageAllNodesValidationDeployment:
1538 type: OS::Heat::StructuredDeployments
1539 depends_on: ObjectStorageAllNodesDeployment
1541 name: ObjectStorageAllNodesValidationDeployment
1542 config: {get_resource: AllNodesValidationConfig}
1543 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1545 CephStorageAllNodesValidationDeployment:
1546 type: OS::Heat::StructuredDeployments
1547 depends_on: CephStorageAllNodesDeployment
1549 name: CephStorageAllNodesValidationDeployment
1550 config: {get_resource: AllNodesValidationConfig}
1551 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1554 type: OS::TripleO::Tasks::UpdateWorkflow
1556 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1557 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1558 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1559 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1560 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1562 deploy_identifier: {get_param: DeployIdentifier}
1563 update_identifier: {get_param: UpdateIdentifier}
1565 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1566 # the nested template may configure each role differently (or not at all)
1567 AllNodesExtraConfig:
1568 type: OS::TripleO::AllNodesExtraConfig
1571 - ComputeAllNodesValidationDeployment
1572 - BlockStorageAllNodesValidationDeployment
1573 - ObjectStorageAllNodesValidationDeployment
1574 - CephStorageAllNodesValidationDeployment
1575 - ControllerAllNodesValidationDeployment
1577 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1578 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1579 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1580 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1581 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1583 # Nested stack deployment runs after all other controller deployments
1584 ControllerNodesPostDeployment:
1585 type: OS::TripleO::ControllerPostDeployment
1586 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1588 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1589 NodeConfigIdentifiers:
1590 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1591 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1592 deployment_identifier: {get_param: DeployIdentifier}
1594 ComputeNodesPostDeployment:
1595 type: OS::TripleO::ComputePostDeployment
1596 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1598 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1599 NodeConfigIdentifiers:
1600 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1601 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1602 deployment_identifier: {get_param: DeployIdentifier}
1604 ObjectStorageNodesPostDeployment:
1605 type: OS::TripleO::ObjectStoragePostDeployment
1606 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1608 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1609 NodeConfigIdentifiers:
1610 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1611 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1612 deployment_identifier: {get_param: DeployIdentifier}
1614 BlockStorageNodesPostDeployment:
1615 type: OS::TripleO::BlockStoragePostDeployment
1616 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1618 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1619 NodeConfigIdentifiers:
1620 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1621 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1622 deployment_identifier: {get_param: DeployIdentifier}
1624 CephStorageNodesPostDeployment:
1625 type: OS::TripleO::CephStoragePostDeployment
1626 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1628 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1629 NodeConfigIdentifiers:
1630 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1631 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1632 deployment_identifier: {get_param: DeployIdentifier}
1636 description: URL for the Overcloud Keystone service
1637 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1639 description: Keystone Admin VIP endpoint
1640 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1642 description: Controller VIP for public API endpoints
1643 value: {get_attr: [VipMap, net_ip_map, external]}
1644 CeilometerInternalVip:
1645 description: VIP for Ceilometer API internal endpoint
1646 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1648 description: VIP for Cinder API internal endpoint
1649 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1651 description: VIP for Glance API internal endpoint
1652 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1654 description: VIP for Heat API internal endpoint
1655 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1656 KeystoneInternalVip:
1657 description: VIP for Keystone API internal endpoint
1658 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1660 description: VIP for Neutron API internal endpoint
1661 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1663 description: VIP for Nova API internal endpoint
1664 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1666 description: VIP for Sahara API internal endpoint
1667 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1669 description: VIP for Swift Proxy internal endpoint
1670 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1673 The content that should be appended to your /etc/hosts if you want to get
1674 hostname-based access to the deployed nodes (useful for testing without
1676 value: {get_attr: [allNodesConfig, hosts_entries]}