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: Set to True to enable debugging on all services.
81 description: Syslog address where HAproxy will send its log
85 description: A list of IP/Hostname allowed to connect to horizon
86 type: comma_delimited_list
88 default: 'REBUILD_PRESERVE_EPHEMERAL'
89 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
91 InternalApiVirtualFixedIPs:
94 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
95 [{'ip_address':'1.2.3.4'}]
99 description: Name of an existing Nova key pair to enable SSH access to the instances
102 - custom_constraint: nova.keypair
103 NeutronExternalNetworkBridge:
104 description: Name of bridge used for external network traffic.
107 NeutronBridgeMappings:
109 The OVS logical->physical bridge mappings to use. See the Neutron
110 documentation for details. Defaults to mapping br-ex - the external
111 bridge on hosts - to a physical name 'datacentre' which can be used
112 to create provider networks (and we use this for the default floating
113 network) - if changing this either use different post-install network
114 scripts or be sure to keep 'datacentre' as a mapping network name.
115 type: comma_delimited_list
116 default: "datacentre:br-ex"
117 NeutronControlPlaneID:
120 description: Neutron ID or name for ctlplane network.
121 NeutronEnableIsolatedMetadata:
123 description: If True, DHCP provide metadata route to VM.
125 NeutronEnableTunnelling:
131 Enable/disable the L2 population feature in the Neutron agents.
134 type: comma_delimited_list
135 default: 'datacentre'
137 If set, flat networks to configure in neutron plugins. Defaults to
138 'datacentre' to permit external network creation.
141 description: The tenant network type for Neutron.
142 type: comma_delimited_list
144 description: The password for the neutron service account, used by neutron agents.
147 NeutronPublicInterface:
149 description: What interface to bridge onto br-ex for network nodes.
151 NeutronPublicInterfaceTag:
154 VLAN tag for creating a public VLAN. The tag will be used to
155 create an access port on the exterior bridge for each control plane node,
156 and that port will be given the IP address returned by neutron from the
157 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
158 overcloud.yaml to include the deployment of VLAN ports to the control
161 NeutronComputeAgentMode:
163 description: Agent mode for the neutron-l3-agent on the compute hosts
167 description: Agent mode for the neutron-l3-agent on the controller hosts
171 description: Whether to configure Neutron Distributed Virtual Routers
173 NeutronMetadataProxySharedSecret:
174 description: Shared secret to prevent spoofing
179 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
180 be at least 50 bytes smaller than the MTU on the physical network. This
181 value will be used to set the MTU on the virtual Ethernet device.
182 This value will be used to construct the NeutronDnsmasqOptions, since that
183 will determine the MTU that is assigned to the VM host through DHCP.
189 The tunnel types for the Neutron tenant network.
190 type: comma_delimited_list
191 NeutronTunnelIdRanges:
193 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
194 of GRE tunnel IDs that are available for tenant network allocation
195 default: ["1:4094", ]
196 type: comma_delimited_list
199 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
200 of VXLAN VNI IDs that are available for tenant network allocation
201 default: ["1:4094", ]
202 type: comma_delimited_list
206 The core plugin for Neutron. The value should be the entrypoint to be loaded
207 from neutron.core_plugins namespace.
209 NeutronServicePlugins:
210 default: "router,qos"
212 Comma-separated list of service plugin entrypoints to be loaded from the
213 neutron.service_plugins namespace.
214 type: comma_delimited_list
216 default: "vxlan,vlan,flat,gre"
218 Comma-separated list of network type driver entrypoints to be loaded.
219 type: comma_delimited_list
220 NeutronMechanismDrivers:
221 default: 'openvswitch'
223 The mechanism drivers for the Neutron tenant network.
224 type: comma_delimited_list
225 NeutronPluginExtensions:
226 default: "qos,port_security"
228 Comma-separated list of extensions enabled for the Neutron plugin.
229 type: comma_delimited_list
230 NeutronAgentExtensions:
233 Comma-separated list of extensions enabled for the Neutron agents.
234 type: comma_delimited_list
235 NeutronAllowL3AgentFailover:
237 description: Allow automatic l3-agent failover
241 description: Whether to enable l3-agent HA
243 NeutronDhcpAgentsPerNetwork:
246 description: The number of neutron dhcp agents to schedule per network
249 description: Enable IPv6 features in Nova
252 description: The password for the nova service account, used by nova-api.
257 description: Comma-separated list of ntp servers
258 type: comma_delimited_list
261 description: Should MongoDb journaling be disabled
265 description: Enable IPv6 if MongoDB VIP is IPv6
267 PublicVirtualFixedIPs:
270 Control the IP allocation for the PublicVirtualInterface port. E.g.
271 [{'ip_address':'1.2.3.4'}]
276 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
277 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
280 description: The username for RabbitMQ
284 description: The password for RabbitMQ
290 Rabbit client subscriber parameter to specify
291 an SSL connection to the RabbitMQ host.
295 description: Set rabbit subscriber port, change this if using SSL
297 # We need to set this as string because 'unlimited' is a valid setting
300 description: Configures RabbitMQ FD limit
302 SnmpdReadonlyUserName:
303 default: ro_snmp_user
304 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
306 SnmpdReadonlyUserPassword:
307 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
310 StorageVirtualFixedIPs:
313 Control the IP allocation for the StorageVirtualInterface port. E.g.
314 [{'ip_address':'1.2.3.4'}]
316 StorageMgmtVirtualFixedIPs:
319 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
320 [{'ip_address':'1.2.3.4'}]
324 description: The timezone to be set on nodes.
327 default: 'localdomain'
330 The DNS domain used for the hosts. This should match the dhcp_domain
331 configured in the Undercloud neutron. Defaults to localdomain.
335 Extra properties or metadata passed to Nova for the created nodes in
336 the overcloud. It's accessible via the Nova metadata API.
339 # Controller-specific params
341 description: The keystone auth secret.
344 CinderLVMLoopDeviceSize:
346 description: The size of the loopback file used by the cinder LVM driver.
348 CinderNfsMountOptions:
351 Mount options for NFS mounts used by Cinder NFS backend. Effective
352 when CinderEnableNfsBackend is true.
357 NFS servers used by Cinder NFS backend. Effective when
358 CinderEnableNfsBackend is true.
359 type: comma_delimited_list
361 description: The password for the cinder service account, used by cinder-api.
366 description: The iSCSI helper to use with cinder.
373 controllerExtraConfig:
376 Controller specific configuration to inject into the cluster. Same
377 structure as ExtraConfig.
381 default: overcloud-full
383 - custom_constraint: glance.image
384 OvercloudControlFlavor:
385 description: Flavor for control nodes to request when deploying.
389 - custom_constraint: nova.flavor
390 ControlVirtualInterface:
392 description: Interface where virtual ip will be assigned.
396 description: Whether to enable fencing in Pacemaker or not.
400 description: Whether to use Galera instead of regular MariaDB.
402 ControllerEnableCephStorage:
404 description: Whether to deploy Ceph Storage (OSD) on the Controller
406 ControllerEnableSwiftStorage:
408 description: Whether to enable Swift Storage on the Controller
410 ControllerSchedulerHints:
412 description: Optional scheduler hints to pass to nova
417 Additional configuration to inject into the cluster. The format required
418 may be implementation specific, e.g puppet hieradata. Any role specific
419 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
424 Pacemaker fencing configuration. The JSON should have
425 the following structure:
429 "agent": "AGENT_NAME",
430 "host_mac": "HOST_MAC_ADDRESS",
431 "params": {"PARAM_NAME": "PARAM_VALUE"}
439 "agent": "fence_xvm",
440 "host_mac": "52:54:00:aa:bb:cc",
442 "multicast_address": "225.0.0.12",
443 "port": "baremetal_0",
445 "manage_key_file": true,
446 "key_file": "/etc/fence_xvm.key",
447 "key_file_password": "abcdef"
454 description: The filepath of the file to use for logging messages from Glance.
457 GlanceNotifierStrategy:
458 description: Strategy to use for Glance notification queue
462 description: The password for the glance service account, used by the glance services.
467 description: The short name of the Glance backend to use. Should be one
468 of swift, rbd or file
471 - allowed_values: ['swift', 'file', 'rbd']
473 description: The password for the Heat service account, used by the Heat services.
476 HeatStackDomainAdminPassword:
477 description: Password for heat_domain_admin user.
480 InstanceNameTemplate:
481 default: 'instance-%08x'
482 description: Template string to be used to generate instance names
484 KeystoneCACertificate:
486 description: Keystone self-signed certificate authority certificate.
488 KeystoneSigningCertificate:
490 description: Keystone certificate for verifying token validity.
494 description: Keystone key for signing tokens.
497 KeystoneSSLCertificate:
499 description: Keystone certificate for verifying token validity.
501 KeystoneSSLCertificateKey:
503 description: Keystone key for signing tokens.
506 KeystoneNotificationDriver:
507 description: Comma-separated list of Oslo notification drivers used by Keystone
508 default: ['messaging']
509 type: comma_delimited_list
510 KeystoneNotificationFormat:
511 description: The Keystone notification format
515 - allowed_values: [ 'basic', 'cadf' ]
518 description: Whether to manage IPtables rules.
522 description: Whether IPtables rules should be purged before setting up the ones.
524 MysqlInnodbBufferPoolSize:
526 Specifies the size of the buffer pool in megabytes. Setting to
527 zero should be interpreted as "no value" and will defer to the
532 description: Configures MySQL max_connections config setting
535 NeutronDnsmasqOptions:
536 default: 'dhcp-option-force=26,%MTU%'
538 Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU
539 to be set to the value of NeutronTenantMtu, which should be set to account
542 NeutronPublicInterfaceDefaultRoute:
544 description: A custom default route for the NeutronPublicInterface.
546 NeutronPublicInterfaceIP:
548 description: A custom IP address to put onto the NeutronPublicInterface.
550 NeutronPublicInterfaceRawDevice:
552 description: If set, the public interface is a vlan with this device as the raw device.
554 PublicVirtualInterface:
557 Specifies the interface where the public-facing virtual ip will be assigned.
558 This should be int_public when a VLAN is being used.
561 description: A random string to be used as a salt when hashing to determine mappings in the ring.
565 description: The password for the swift service account, used by the swift proxy services.
570 description: Value of mount_check in Swift account/container/object -server.conf
575 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
578 description: Partition Power to use when building Swift rings
583 description: How many replicas to use in the swift rings.
585 description: The password for the sahara service account.
589 # Compute-specific params
590 CeilometerComputeAgent:
591 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
595 - allowed_values: ['', Present]
599 HypervisorNeutronPhysicalBridge:
602 An OVS bridge to create on each hypervisor. This defaults to br-ex the
603 same as the control plane nodes, as we have a uniform configuration of
604 the openvswitch agent. Typically should not need to be changed.
606 HypervisorNeutronPublicInterface:
608 description: What interface to add to the HypervisorNeutronPhysicalBridge.
610 NeutronNetworkVLANRanges:
611 default: 'datacentre:1:1000'
613 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
614 Neutron documentation for permitted values. Defaults to permitting any
615 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
616 type: comma_delimited_list
619 default: libvirt.LibvirtDriver
620 NovaComputeExtraConfig:
623 NovaCompute specific configuration to inject into the cluster. Same
624 structure as ExtraConfig.
626 NovaComputeLibvirtType:
629 NovaComputeLibvirtVifDriver:
631 description: Libvirt VIF driver configuration for the network
633 NovaComputeSchedulerHints:
635 description: Optional scheduler hints to pass to nova
637 NovaEnableRbdBackend:
639 description: Whether to enable or not the Rbd backend for Nova
643 default: overcloud-full
645 - custom_constraint: glance.image
648 description: Name of integration bridge used by Open vSwitch
650 NovaSecurityGroupAPI:
652 description: The full class name of the security API class
654 OvercloudComputeFlavor:
655 description: Use this flavor
659 - custom_constraint: nova.flavor
662 NeutronTenantNetwork: tenant
663 CeilometerApiNetwork: internal_api
664 MongoDbNetwork: internal_api
665 CinderApiNetwork: internal_api
666 CinderIscsiNetwork: storage
667 GlanceApiNetwork: storage
668 GlanceRegistryNetwork: internal_api
669 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
670 KeystonePublicApiNetwork: internal_api
671 NeutronApiNetwork: internal_api
672 HeatApiNetwork: internal_api
673 NovaApiNetwork: internal_api
674 NovaMetadataNetwork: internal_api
675 NovaVncProxyNetwork: internal_api
676 SwiftMgmtNetwork: storage_mgmt
677 SwiftProxyNetwork: storage
678 SaharaApiNetwork: internal_api
679 HorizonNetwork: internal_api
680 MemcachedNetwork: internal_api
681 RabbitMqNetwork: internal_api
682 RedisNetwork: internal_api
683 MysqlNetwork: internal_api
684 CephClusterNetwork: storage_mgmt
685 CephPublicNetwork: storage
686 ControllerHostnameResolveNetwork: internal_api
687 ComputeHostnameResolveNetwork: internal_api
688 BlockStorageHostnameResolveNetwork: internal_api
689 ObjectStorageHostnameResolveNetwork: internal_api
690 CephStorageHostnameResolveNetwork: storage
691 description: Mapping of service_name -> network name. Typically set
692 via parameter_defaults in the resource registry.
695 # Block storage specific parameters
700 default: overcloud-full
702 OvercloudBlockStorageFlavor:
703 description: Flavor for block storage nodes to request when deploying.
707 - custom_constraint: nova.flavor
708 BlockStorageExtraConfig:
711 BlockStorage specific configuration to inject into the cluster. Same
712 structure as ExtraConfig.
714 BlockStorageSchedulerHints:
716 description: Optional scheduler hints to pass to nova
720 # Object storage specific parameters
724 OvercloudSwiftStorageFlavor:
725 description: Flavor for Swift storage nodes to request when deploying.
729 - custom_constraint: nova.flavor
731 default: overcloud-full
733 ObjectStorageExtraConfig:
736 ObjectStorage specific configuration to inject into the cluster. Same
737 structure as ExtraConfig.
739 ObjectStorageSchedulerHints:
741 description: Optional scheduler hints to pass to nova
744 # Ceph storage specific parameters
749 default: overcloud-full
751 OvercloudCephStorageFlavor:
753 description: Flavor for Ceph storage nodes to request when deploying.
756 - custom_constraint: nova.flavor
757 CephStorageExtraConfig:
760 CephStorage specific configuration to inject into the cluster. Same
761 structure as ExtraConfig.
763 CephStorageSchedulerHints:
765 description: Optional scheduler hints to pass to nova
769 # Hostname format for each role
770 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
771 # and %stackname% is replaced with OS::stack_name in the template below.
772 # If you want to use the heat generated names, pass '' (empty string).
773 ControllerHostnameFormat:
775 description: Format for Controller node hostnames
776 default: '%stackname%-controller-%index%'
777 ComputeHostnameFormat:
779 description: Format for Compute node hostnames
780 default: '%stackname%-novacompute-%index%'
781 BlockStorageHostnameFormat:
783 description: Format for BlockStorage node hostnames
784 default: '%stackname%-blockstorage-%index%'
785 ObjectStorageHostnameFormat:
787 description: Format for SwiftStorage node hostnames
788 default: '%stackname%-objectstorage-%index%'
789 CephStorageHostnameFormat:
791 description: Format for CephStorage node hostnames
792 default: '%stackname%-cephstorage-%index%'
794 # Identifiers to trigger tasks on nodes
799 Setting to a previously unused value during stack-update will trigger
800 package update on all nodes
805 Setting this to a unique value will re-run any deployment tasks which
806 perform configuration on a Heat stack-update.
808 # If you want to remove a specific node from a resource group, you can pass
809 # the node name or id as a <Group>RemovalPolicies parameter, for example:
810 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
811 ControllerRemovalPolicies:
815 List of resources to be removed from ControllerResourceGroup when
816 doing an update which requires removal of specific resources.
817 ComputeRemovalPolicies:
821 List of resources to be removed from ComputeResourceGroup when
822 doing an update which requires removal of specific resources.
823 BlockStorageRemovalPolicies:
827 List of resources to be removed from BlockStorageResourceGroup when
828 doing an update which requires removal of specific resources.
829 ObjectStorageRemovalPolicies:
833 List of resources to be removed from ObjectStorageResourceGroup when
834 doing an update which requires removal of specific resources.
835 CephStorageRemovalPolicies:
839 List of resources to be removed from CephStorageResourceGroup when
840 doing an update which requires removal of specific resources.
845 HeatAuthEncryptionKey:
846 type: OS::Heat::RandomString
849 type: OS::Heat::RandomString
854 type: OS::Heat::RandomString
859 type: OS::TripleO::EndpointMap
861 CloudName: {get_param: CloudName}
862 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
863 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
864 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
865 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
866 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
867 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
868 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
869 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
870 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
871 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
872 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
873 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
874 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
877 type: OS::Heat::ResourceGroup
880 count: {get_param: ControllerCount}
881 removal_policies: {get_param: ControllerRemovalPolicies}
883 type: OS::TripleO::Controller
885 AdminPassword: {get_param: AdminPassword}
886 AdminToken: {get_param: AdminToken}
887 CeilometerBackend: {get_param: CeilometerBackend}
888 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
889 CeilometerPassword: {get_param: CeilometerPassword}
890 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
891 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
892 CinderNfsServers: {get_param: CinderNfsServers}
893 CinderPassword: {get_param: CinderPassword}
894 CinderISCSIHelper: {get_param: CinderISCSIHelper}
895 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
896 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
897 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
898 CloudDomain: {get_param: CloudDomain}
899 ControlVirtualInterface: {get_param: ControlVirtualInterface}
900 ControllerExtraConfig: {get_param: controllerExtraConfig}
901 Debug: {get_param: Debug}
902 EnableFencing: {get_param: EnableFencing}
903 ManageFirewall: {get_param: ManageFirewall}
904 PurgeFirewallRules: {get_param: PurgeFirewallRules}
905 EnableGalera: {get_param: EnableGalera}
906 EnableCephStorage: {get_param: ControllerEnableCephStorage}
907 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
908 ExtraConfig: {get_param: ExtraConfig}
909 FencingConfig: {get_param: FencingConfig}
910 Flavor: {get_param: OvercloudControlFlavor}
911 GlancePassword: {get_param: GlancePassword}
912 GlanceBackend: {get_param: GlanceBackend}
913 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
914 GlanceLogFile: {get_param: GlanceLogFile}
915 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
916 HeatPassword: {get_param: HeatPassword}
917 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
918 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
919 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
920 HorizonSecret: {get_resource: HorizonSecret}
921 Image: {get_param: controllerImage}
922 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
923 InstanceNameTemplate: {get_param: InstanceNameTemplate}
924 KeyName: {get_param: KeyName}
925 KeystoneCACertificate: {get_param: KeystoneCACertificate}
926 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
927 KeystoneSigningKey: {get_param: KeystoneSigningKey}
928 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
929 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
930 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
931 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
932 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
933 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
934 MysqlMaxConnections: {get_param: MysqlMaxConnections}
935 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
936 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
937 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
938 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
939 NeutronTenantMtu: {get_param: NeutronTenantMtu}
940 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
941 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
942 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
943 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
944 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
945 NeutronPublicInterface: {get_param: NeutronPublicInterface}
946 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
947 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
948 NeutronPassword: {get_param: NeutronPassword}
949 NeutronDnsmasqOptions:
951 template: {get_param: NeutronDnsmasqOptions}
953 '%MTU%': {get_param: NeutronTenantMtu}
954 NeutronDVR: {get_param: NeutronDVR}
955 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
956 NeutronAgentMode: {get_param: NeutronAgentMode}
957 NeutronCorePlugin: {get_param: NeutronCorePlugin}
958 NeutronServicePlugins: {get_param: NeutronServicePlugins}
959 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
960 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
961 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
962 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
963 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
964 NeutronL3HA: {get_param: NeutronL3HA}
965 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
966 NeutronNetworkType: {get_param: NeutronNetworkType}
967 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
968 NovaIPv6: {get_param: NovaIPv6}
969 NovaPassword: {get_param: NovaPassword}
970 NtpServer: {get_param: NtpServer}
971 MongoDbNoJournal: {get_param: MongoDbNoJournal}
972 MongoDbIPv6: {get_param: MongoDbIPv6}
973 PcsdPassword: {get_resource: PcsdPassword}
974 PublicVirtualInterface: {get_param: PublicVirtualInterface}
975 RabbitPassword: {get_param: RabbitPassword}
976 RabbitUserName: {get_param: RabbitUserName}
977 RabbitCookie: {get_attr: [RabbitCookie, value]}
978 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
979 RabbitClientPort: {get_param: RabbitClientPort}
980 RabbitFDLimit: {get_param: RabbitFDLimit}
981 SaharaPassword: {get_param: SaharaPassword}
982 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
983 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
984 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
985 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
986 SwiftHashSuffix: {get_param: SwiftHashSuffix}
987 SwiftMountCheck: {get_param: SwiftMountCheck}
988 SwiftMinPartHours: {get_param: SwiftMinPartHours}
989 SwiftPartPower: {get_param: SwiftPartPower}
990 SwiftPassword: {get_param: SwiftPassword}
991 SwiftReplicas: { get_param: SwiftReplicas}
992 TimeZone: {get_param: TimeZone}
993 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
994 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
995 ServiceNetMap: {get_param: ServiceNetMap}
996 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
997 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
998 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
999 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1000 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1001 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1002 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1003 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1004 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1005 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1006 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1007 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1008 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1009 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1010 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1011 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1012 UpdateIdentifier: {get_param: UpdateIdentifier}
1015 template: {get_param: ControllerHostnameFormat}
1017 '%stackname%': {get_param: 'OS::stack_name'}
1018 NodeIndex: '%index%'
1019 ServerMetadata: {get_param: ServerMetadata}
1020 SchedulerHints: {get_param: ControllerSchedulerHints}
1023 type: OS::Heat::ResourceGroup
1024 depends_on: Networks
1026 count: {get_param: ComputeCount}
1027 removal_policies: {get_param: ComputeRemovalPolicies}
1029 type: OS::TripleO::Compute
1031 AdminPassword: {get_param: AdminPassword}
1032 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1033 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1034 CeilometerPassword: {get_param: CeilometerPassword}
1035 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1036 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1037 Debug: {get_param: Debug}
1038 ExtraConfig: {get_param: ExtraConfig}
1039 Flavor: {get_param: OvercloudComputeFlavor}
1040 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1041 Image: {get_param: NovaImage}
1042 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1043 KeyName: {get_param: KeyName}
1044 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1045 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1046 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1047 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1048 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1049 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1050 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1051 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1052 NeutronNetworkType: {get_param: NeutronNetworkType}
1053 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1054 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1055 NeutronPassword: {get_param: NeutronPassword}
1056 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1057 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1058 NeutronDVR: {get_param: NeutronDVR}
1059 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1060 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1061 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1062 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1063 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1064 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1065 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1066 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1067 # L3 HA and Failover is not relevant for Computes, should be removed
1068 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1069 NeutronL3HA: {get_param: NeutronL3HA}
1070 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1071 NovaComputeDriver: {get_param: NovaComputeDriver}
1072 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1073 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1074 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1075 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1076 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1077 NovaPassword: {get_param: NovaPassword}
1078 NovaOVSBridge: {get_param: NovaOVSBridge}
1079 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1080 NtpServer: {get_param: NtpServer}
1081 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1082 RabbitPassword: {get_param: RabbitPassword}
1083 RabbitUserName: {get_param: RabbitUserName}
1084 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1085 RabbitClientPort: {get_param: RabbitClientPort}
1086 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1087 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1088 ServiceNetMap: {get_param: ServiceNetMap}
1089 TimeZone: {get_param: TimeZone}
1090 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1091 UpdateIdentifier: {get_param: UpdateIdentifier}
1094 template: {get_param: ComputeHostnameFormat}
1096 '%stackname%': {get_param: 'OS::stack_name'}
1097 CloudDomain: {get_param: CloudDomain}
1098 ServerMetadata: {get_param: ServerMetadata}
1099 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1102 type: OS::Heat::ResourceGroup
1103 depends_on: Networks
1105 count: {get_param: BlockStorageCount}
1106 removal_policies: {get_param: BlockStorageRemovalPolicies}
1108 type: OS::TripleO::BlockStorage
1110 Debug: {get_param: Debug}
1111 Image: {get_param: BlockStorageImage}
1112 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1113 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1114 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1115 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1116 CinderPassword: {get_param: CinderPassword}
1117 KeyName: {get_param: KeyName}
1118 Flavor: {get_param: OvercloudBlockStorageFlavor}
1119 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1120 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1121 RabbitPassword: {get_param: RabbitPassword}
1122 RabbitUserName: {get_param: RabbitUserName}
1123 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1124 RabbitClientPort: {get_param: RabbitClientPort}
1125 TimeZone: {get_param: TimeZone}
1126 NtpServer: {get_param: NtpServer}
1127 UpdateIdentifier: {get_param: UpdateIdentifier}
1130 template: {get_param: BlockStorageHostnameFormat}
1132 '%stackname%': {get_param: 'OS::stack_name'}
1133 ServiceNetMap: {get_param: ServiceNetMap}
1134 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1135 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1136 ExtraConfig: {get_param: ExtraConfig}
1137 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1138 CloudDomain: {get_param: CloudDomain}
1139 ServerMetadata: {get_param: ServerMetadata}
1140 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1143 type: OS::Heat::ResourceGroup
1144 depends_on: Networks
1146 count: {get_param: ObjectStorageCount}
1147 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1149 type: OS::TripleO::ObjectStorage
1151 KeyName: {get_param: KeyName}
1152 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1153 HashSuffix: {get_param: SwiftHashSuffix}
1154 MountCheck: {get_param: SwiftMountCheck}
1155 MinPartHours: {get_param: SwiftMinPartHours}
1156 PartPower: {get_param: SwiftPartPower}
1157 Image: {get_param: SwiftStorageImage}
1158 Replicas: { get_param: SwiftReplicas}
1159 TimeZone: {get_param: TimeZone}
1160 NtpServer: {get_param: NtpServer}
1161 UpdateIdentifier: {get_param: UpdateIdentifier}
1162 ServiceNetMap: {get_param: ServiceNetMap}
1165 template: {get_param: ObjectStorageHostnameFormat}
1167 '%stackname%': {get_param: 'OS::stack_name'}
1168 ExtraConfig: {get_param: ExtraConfig}
1169 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1170 CloudDomain: {get_param: CloudDomain}
1171 ServerMetadata: {get_param: ServerMetadata}
1172 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1175 type: OS::Heat::ResourceGroup
1176 depends_on: Networks
1178 count: {get_param: CephStorageCount}
1179 removal_policies: {get_param: CephStorageRemovalPolicies}
1181 type: OS::TripleO::CephStorage
1183 Image: {get_param: CephStorageImage}
1184 KeyName: {get_param: KeyName}
1185 Flavor: {get_param: OvercloudCephStorageFlavor}
1186 NtpServer: {get_param: NtpServer}
1187 ServiceNetMap: {get_param: ServiceNetMap}
1188 TimeZone: {get_param: TimeZone}
1189 UpdateIdentifier: {get_param: UpdateIdentifier}
1192 template: {get_param: CephStorageHostnameFormat}
1194 '%stackname%': {get_param: 'OS::stack_name'}
1195 ExtraConfig: {get_param: ExtraConfig}
1196 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1197 CloudDomain: {get_param: CloudDomain}
1198 ServerMetadata: {get_param: ServerMetadata}
1199 SchedulerHints: {get_param: CephStorageSchedulerHints}
1201 ControllerIpListMap:
1202 type: OS::TripleO::Network::Ports::NetIpListMap
1204 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1205 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1206 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1207 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1208 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1209 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1210 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1213 type: OS::TripleO::AllNodes::SoftwareConfig
1215 compute_hosts: {get_attr: [Compute, hosts_entry]}
1216 controller_hosts: {get_attr: [Controller, hosts_entry]}
1217 controller_ips: {get_attr: [Controller, ip_address]}
1218 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1219 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1220 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1221 controller_names: {get_attr: [Controller, hostname]}
1222 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1223 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1224 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1225 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1226 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1227 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1228 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1229 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1230 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1231 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1232 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1233 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1234 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1235 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1236 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1237 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1238 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1239 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1240 DeployIdentifier: {get_param: DeployIdentifier}
1241 UpdateIdentifier: {get_param: UpdateIdentifier}
1244 type: OS::Heat::RandomString
1248 MysqlClusterUniquePart:
1249 type: OS::Heat::RandomString
1254 type: OS::Heat::RandomString
1257 salt: {get_param: RabbitCookieSalt}
1259 # creates the network architecture
1261 type: OS::TripleO::Network
1264 type: OS::Neutron::Port
1265 depends_on: Networks
1267 name: control_virtual_ip
1268 network: {get_param: NeutronControlPlaneID}
1269 fixed_ips: {get_param: ControlFixedIPs}
1270 replacement_policy: AUTO
1273 depends_on: Networks
1274 type: OS::TripleO::Network::Ports::RedisVipPort
1276 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1277 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1278 PortName: redis_virtual_ip
1279 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1282 # The public VIP is on the External net, falls back to ctlplane
1284 depends_on: Networks
1285 type: OS::TripleO::Network::Ports::ExternalVipPort
1287 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1288 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1289 PortName: public_virtual_ip
1290 FixedIPs: {get_param: PublicVirtualFixedIPs}
1292 InternalApiVirtualIP:
1293 depends_on: Networks
1294 type: OS::TripleO::Network::Ports::InternalApiVipPort
1296 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1297 PortName: internal_api_virtual_ip
1298 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1301 depends_on: Networks
1302 type: OS::TripleO::Network::Ports::StorageVipPort
1304 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1305 PortName: storage_virtual_ip
1306 FixedIPs: {get_param: StorageVirtualFixedIPs}
1308 StorageMgmtVirtualIP:
1309 depends_on: Networks
1310 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1312 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1313 PortName: storage_management_virtual_ip
1314 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1317 type: OS::TripleO::Network::Ports::NetVipMap
1319 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1320 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1321 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1322 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1323 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1324 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1325 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1326 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1327 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1328 # No tenant or management VIP required
1331 type: OS::TripleO::VipConfig
1334 type: OS::Heat::StructuredDeployments
1337 config: {get_resource: VipConfig}
1338 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1340 # service VIP mappings
1341 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1342 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1343 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1344 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1345 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1346 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1347 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1348 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1349 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1350 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1351 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1352 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1353 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1354 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1355 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1356 # direct configuration of Virtual IPs for each network
1357 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1358 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1359 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1360 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1361 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1362 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1364 ControllerBootstrapNodeConfig:
1365 type: OS::TripleO::BootstrapNode::SoftwareConfig
1367 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1368 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1370 ControllerBootstrapNodeDeployment:
1371 type: OS::Heat::StructuredDeployments
1373 name: ControllerBootstrapNodeDeployment
1374 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1375 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1377 ControllerSwiftDeployment:
1378 type: OS::Heat::StructuredDeployments
1380 name: ControllerSwiftDeployment
1381 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1382 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1384 ObjectStorageSwiftDeployment:
1385 type: OS::Heat::StructuredDeployments
1387 name: ObjectStorageSwiftDeployment
1388 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1389 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1391 SwiftDevicesAndProxyConfig:
1392 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1394 controller_swift_devices: {get_attr: [Controller, swift_device]}
1395 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1396 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1398 ComputeCephDeployment:
1399 type: OS::Heat::StructuredDeployments
1401 name: ComputeCephDeployment
1402 config: {get_attr: [CephClusterConfig, config_id]}
1403 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1405 ControllerCephDeployment:
1406 type: OS::Heat::StructuredDeployments
1408 name: ControllerCephDeployment
1409 config: {get_attr: [CephClusterConfig, config_id]}
1410 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1412 CephStorageCephDeployment:
1413 type: OS::Heat::StructuredDeployments
1415 name: CephStorageCephDeployment
1416 config: {get_attr: [CephClusterConfig, config_id]}
1417 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1420 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1422 ceph_storage_count: {get_param: CephStorageCount}
1423 ceph_fsid: {get_param: CephClusterFSID}
1424 ceph_mon_key: {get_param: CephMonKey}
1425 ceph_admin_key: {get_param: CephAdminKey}
1426 ceph_client_key: {get_param: CephClientKey}
1427 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1428 ceph_mon_names: {get_attr: [Controller, hostname]}
1429 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1431 ControllerClusterConfig:
1432 type: OS::Heat::StructuredConfig
1434 group: os-apply-config
1437 nodes: {get_attr: [Controller, corosync_node]}
1441 nodes: {get_attr: [Controller, hostname]}
1443 nodes: {get_attr: [Controller, corosync_node]}
1445 nodes: {get_attr: [Controller, corosync_node]}
1447 ControllerClusterDeployment:
1448 type: OS::Heat::StructuredDeployments
1450 name: ControllerClusterDeployment
1451 config: {get_resource: ControllerClusterConfig}
1452 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1454 ControllerAllNodesDeployment:
1455 type: OS::Heat::StructuredDeployments
1457 name: ControllerAllNodesDeployment
1458 config: {get_attr: [allNodesConfig, config_id]}
1459 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1461 ComputeAllNodesDeployment:
1462 type: OS::Heat::StructuredDeployments
1464 name: ComputeAllNodesDeployment
1465 config: {get_attr: [allNodesConfig, config_id]}
1466 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1468 BlockStorageAllNodesDeployment:
1469 type: OS::Heat::StructuredDeployments
1471 name: BlockStorageAllNodesDeployment
1472 config: {get_attr: [allNodesConfig, config_id]}
1473 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1475 ObjectStorageAllNodesDeployment:
1476 type: OS::Heat::StructuredDeployments
1478 name: ObjectStorageAllNodesDeployment
1479 config: {get_attr: [allNodesConfig, config_id]}
1480 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1482 CephStorageAllNodesDeployment:
1483 type: OS::Heat::StructuredDeployments
1485 name: CephStorageAllNodesDeployment
1486 config: {get_attr: [allNodesConfig, config_id]}
1487 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1489 # All Nodes Validations
1490 AllNodesValidationConfig:
1491 type: OS::TripleO::AllNodes::Validation
1496 - - {get_attr: [Controller, resource.0.external_ip_address]}
1497 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1498 - {get_attr: [Controller, resource.0.storage_ip_address]}
1499 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1500 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1502 ControllerAllNodesValidationDeployment:
1503 type: OS::Heat::StructuredDeployments
1504 depends_on: ControllerAllNodesDeployment
1506 name: ControllerAllNodesValidationDeployment
1507 config: {get_resource: AllNodesValidationConfig}
1508 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1510 ComputeAllNodesValidationDeployment:
1511 type: OS::Heat::StructuredDeployments
1512 depends_on: ComputeAllNodesDeployment
1514 name: ComputeAllNodesValidationDeployment
1515 config: {get_resource: AllNodesValidationConfig}
1516 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1518 BlockStorageAllNodesValidationDeployment:
1519 type: OS::Heat::StructuredDeployments
1520 depends_on: BlockStorageAllNodesDeployment
1522 name: BlockStorageAllNodesValidationDeployment
1523 config: {get_resource: AllNodesValidationConfig}
1524 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1526 ObjectStorageAllNodesValidationDeployment:
1527 type: OS::Heat::StructuredDeployments
1528 depends_on: ObjectStorageAllNodesDeployment
1530 name: ObjectStorageAllNodesValidationDeployment
1531 config: {get_resource: AllNodesValidationConfig}
1532 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1534 CephStorageAllNodesValidationDeployment:
1535 type: OS::Heat::StructuredDeployments
1536 depends_on: CephStorageAllNodesDeployment
1538 name: CephStorageAllNodesValidationDeployment
1539 config: {get_resource: AllNodesValidationConfig}
1540 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1543 type: OS::TripleO::Tasks::UpdateWorkflow
1545 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1546 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1547 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1548 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1549 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1551 deploy_identifier: {get_param: DeployIdentifier}
1552 update_identifier: {get_param: UpdateIdentifier}
1554 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1555 # the nested template may configure each role differently (or not at all)
1556 AllNodesExtraConfig:
1557 type: OS::TripleO::AllNodesExtraConfig
1558 depends_on: 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 # Nested stack deployment runs after all other controller deployments
1567 ControllerNodesPostDeployment:
1568 type: OS::TripleO::ControllerPostDeployment
1569 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1571 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1572 NodeConfigIdentifiers:
1573 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1574 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1575 deployment_identifier: {get_param: DeployIdentifier}
1577 ComputeNodesPostDeployment:
1578 type: OS::TripleO::ComputePostDeployment
1579 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1581 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1582 NodeConfigIdentifiers:
1583 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1584 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1585 deployment_identifier: {get_param: DeployIdentifier}
1587 ObjectStorageNodesPostDeployment:
1588 type: OS::TripleO::ObjectStoragePostDeployment
1589 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1591 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1592 NodeConfigIdentifiers:
1593 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1594 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1595 deployment_identifier: {get_param: DeployIdentifier}
1597 BlockStorageNodesPostDeployment:
1598 type: OS::TripleO::BlockStoragePostDeployment
1599 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1601 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1602 NodeConfigIdentifiers:
1603 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1604 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1605 deployment_identifier: {get_param: DeployIdentifier}
1607 CephStorageNodesPostDeployment:
1608 type: OS::TripleO::CephStoragePostDeployment
1609 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1611 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1612 NodeConfigIdentifiers:
1613 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1614 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1615 deployment_identifier: {get_param: DeployIdentifier}
1619 description: URL for the Overcloud Keystone service
1620 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1622 description: Keystone Admin VIP endpoint
1623 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1625 description: Controller VIP for public API endpoints
1626 value: {get_attr: [VipMap, net_ip_map, external]}
1627 CeilometerInternalVip:
1628 description: VIP for Ceilometer API internal endpoint
1629 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1631 description: VIP for Cinder API internal endpoint
1632 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1634 description: VIP for Glance API internal endpoint
1635 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1637 description: VIP for Heat API internal endpoint
1638 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1639 KeystoneInternalVip:
1640 description: VIP for Keystone API internal endpoint
1641 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1643 description: VIP for Neutron API internal endpoint
1644 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1646 description: VIP for Nova API internal endpoint
1647 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1649 description: VIP for Sahara API internal endpoint
1650 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1652 description: VIP for Swift Proxy internal endpoint
1653 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1656 The content that should be appended to your /etc/hosts if you want to get
1657 hostname-based access to the deployed nodes (useful for testing without
1659 value: {get_attr: [allNodesConfig, hosts_entries]}