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
306 SnmpdReadonlyUserName:
307 default: ro_snmp_user
308 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
310 SnmpdReadonlyUserPassword:
311 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
314 StorageVirtualFixedIPs:
317 Control the IP allocation for the StorageVirtualInterface port. E.g.
318 [{'ip_address':'1.2.3.4'}]
320 StorageMgmtVirtualFixedIPs:
323 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
324 [{'ip_address':'1.2.3.4'}]
328 description: The timezone to be set on nodes.
331 default: 'localdomain'
334 The DNS domain used for the hosts. This should match the dhcp_domain
335 configured in the Undercloud neutron. Defaults to localdomain.
339 Extra properties or metadata passed to Nova for the created nodes in
340 the overcloud. It's accessible via the Nova metadata API.
343 # Controller-specific params
345 description: The keystone auth secret.
348 CinderLVMLoopDeviceSize:
350 description: The size of the loopback file used by the cinder LVM driver.
352 CinderNfsMountOptions:
355 Mount options for NFS mounts used by Cinder NFS backend. Effective
356 when CinderEnableNfsBackend is true.
361 NFS servers used by Cinder NFS backend. Effective when
362 CinderEnableNfsBackend is true.
363 type: comma_delimited_list
365 description: The password for the cinder service account, used by cinder-api.
370 description: The iSCSI helper to use with cinder.
377 controllerExtraConfig:
380 Controller specific configuration to inject into the cluster. Same
381 structure as ExtraConfig.
385 default: overcloud-full
387 - custom_constraint: glance.image
388 OvercloudControlFlavor:
389 description: Flavor for control nodes to request when deploying.
393 - custom_constraint: nova.flavor
394 ControlVirtualInterface:
396 description: Interface where virtual ip will be assigned.
400 description: Whether to enable fencing in Pacemaker or not.
404 description: Whether to use Galera instead of regular MariaDB.
406 ControllerEnableCephStorage:
408 description: Whether to deploy Ceph Storage (OSD) on the Controller
410 ControllerEnableSwiftStorage:
412 description: Whether to enable Swift Storage on the Controller
414 ControllerSchedulerHints:
416 description: Optional scheduler hints to pass to nova
421 Additional configuration to inject into the cluster. The format required
422 may be implementation specific, e.g puppet hieradata. Any role specific
423 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
428 Pacemaker fencing configuration. The JSON should have
429 the following structure:
433 "agent": "AGENT_NAME",
434 "host_mac": "HOST_MAC_ADDRESS",
435 "params": {"PARAM_NAME": "PARAM_VALUE"}
443 "agent": "fence_xvm",
444 "host_mac": "52:54:00:aa:bb:cc",
446 "multicast_address": "225.0.0.12",
447 "port": "baremetal_0",
449 "manage_key_file": true,
450 "key_file": "/etc/fence_xvm.key",
451 "key_file_password": "abcdef"
458 description: The filepath of the file to use for logging messages from Glance.
461 GlanceNotifierStrategy:
462 description: Strategy to use for Glance notification queue
466 description: The password for the glance service account, used by the glance services.
471 description: The short name of the Glance backend to use. Should be one
472 of swift, rbd or file
475 - allowed_values: ['swift', 'file', 'rbd']
477 description: The password for the Heat service account, used by the Heat services.
480 HeatStackDomainAdminPassword:
481 description: Password for heat_domain_admin user.
484 InstanceNameTemplate:
485 default: 'instance-%08x'
486 description: Template string to be used to generate instance names
488 KeystoneCACertificate:
490 description: Keystone self-signed certificate authority certificate.
492 KeystoneSigningCertificate:
494 description: Keystone certificate for verifying token validity.
498 description: Keystone key for signing tokens.
501 KeystoneSSLCertificate:
503 description: Keystone certificate for verifying token validity.
505 KeystoneSSLCertificateKey:
507 description: Keystone key for signing tokens.
510 KeystoneNotificationDriver:
511 description: Comma-separated list of Oslo notification drivers used by Keystone
512 default: ['messaging']
513 type: comma_delimited_list
514 KeystoneNotificationFormat:
515 description: The Keystone notification format
519 - allowed_values: [ 'basic', 'cadf' ]
522 description: Whether to manage IPtables rules.
526 description: Whether IPtables rules should be purged before setting up the ones.
528 MysqlInnodbBufferPoolSize:
530 Specifies the size of the buffer pool in megabytes. Setting to
531 zero should be interpreted as "no value" and will defer to the
536 description: Configures MySQL max_connections config setting
539 NeutronDnsmasqOptions:
540 default: 'dhcp-option-force=26,%MTU%'
542 Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU
543 to be set to the value of NeutronTenantMtu, which should be set to account
546 NeutronPublicInterfaceDefaultRoute:
548 description: A custom default route for the NeutronPublicInterface.
550 NeutronPublicInterfaceIP:
552 description: A custom IP address to put onto the NeutronPublicInterface.
554 NeutronPublicInterfaceRawDevice:
556 description: If set, the public interface is a vlan with this device as the raw device.
558 PublicVirtualInterface:
561 Specifies the interface where the public-facing virtual ip will be assigned.
562 This should be int_public when a VLAN is being used.
565 description: A random string to be used as a salt when hashing to determine mappings in the ring.
569 description: The password for the swift service account, used by the swift proxy services.
574 description: Value of mount_check in Swift account/container/object -server.conf
579 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
582 description: Partition Power to use when building Swift rings
587 description: How many replicas to use in the swift rings.
589 description: The password for the sahara service account.
593 # Compute-specific params
594 CeilometerComputeAgent:
595 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
599 - allowed_values: ['', Present]
603 HypervisorNeutronPhysicalBridge:
606 An OVS bridge to create on each hypervisor. This defaults to br-ex the
607 same as the control plane nodes, as we have a uniform configuration of
608 the openvswitch agent. Typically should not need to be changed.
610 HypervisorNeutronPublicInterface:
612 description: What interface to add to the HypervisorNeutronPhysicalBridge.
614 NeutronNetworkVLANRanges:
615 default: 'datacentre:1:1000'
617 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
618 Neutron documentation for permitted values. Defaults to permitting any
619 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
620 type: comma_delimited_list
623 default: libvirt.LibvirtDriver
624 NovaComputeExtraConfig:
627 NovaCompute specific configuration to inject into the cluster. Same
628 structure as ExtraConfig.
630 NovaComputeLibvirtType:
633 NovaComputeLibvirtVifDriver:
635 description: Libvirt VIF driver configuration for the network
637 NovaComputeSchedulerHints:
639 description: Optional scheduler hints to pass to nova
641 NovaEnableRbdBackend:
643 description: Whether to enable or not the Rbd backend for Nova
647 default: overcloud-full
649 - custom_constraint: glance.image
652 description: Name of integration bridge used by Open vSwitch
654 NovaSecurityGroupAPI:
656 description: The full class name of the security API class
658 OvercloudComputeFlavor:
659 description: Use this flavor
663 - custom_constraint: nova.flavor
666 NeutronTenantNetwork: tenant
667 CeilometerApiNetwork: internal_api
668 MongoDbNetwork: internal_api
669 CinderApiNetwork: internal_api
670 CinderIscsiNetwork: storage
671 GlanceApiNetwork: storage
672 GlanceRegistryNetwork: internal_api
673 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
674 KeystonePublicApiNetwork: internal_api
675 NeutronApiNetwork: internal_api
676 HeatApiNetwork: internal_api
677 NovaApiNetwork: internal_api
678 NovaMetadataNetwork: internal_api
679 NovaVncProxyNetwork: internal_api
680 SwiftMgmtNetwork: storage_mgmt
681 SwiftProxyNetwork: storage
682 SaharaApiNetwork: internal_api
683 HorizonNetwork: internal_api
684 MemcachedNetwork: internal_api
685 RabbitMqNetwork: internal_api
686 RedisNetwork: internal_api
687 MysqlNetwork: internal_api
688 CephClusterNetwork: storage_mgmt
689 CephPublicNetwork: storage
690 ControllerHostnameResolveNetwork: internal_api
691 ComputeHostnameResolveNetwork: internal_api
692 BlockStorageHostnameResolveNetwork: internal_api
693 ObjectStorageHostnameResolveNetwork: internal_api
694 CephStorageHostnameResolveNetwork: storage
695 description: Mapping of service_name -> network name. Typically set
696 via parameter_defaults in the resource registry.
699 # Block storage specific parameters
704 default: overcloud-full
706 OvercloudBlockStorageFlavor:
707 description: Flavor for block storage nodes to request when deploying.
711 - custom_constraint: nova.flavor
712 BlockStorageExtraConfig:
715 BlockStorage specific configuration to inject into the cluster. Same
716 structure as ExtraConfig.
718 BlockStorageSchedulerHints:
720 description: Optional scheduler hints to pass to nova
724 # Object storage specific parameters
728 OvercloudSwiftStorageFlavor:
729 description: Flavor for Swift storage nodes to request when deploying.
733 - custom_constraint: nova.flavor
735 default: overcloud-full
737 ObjectStorageExtraConfig:
740 ObjectStorage specific configuration to inject into the cluster. Same
741 structure as ExtraConfig.
743 ObjectStorageSchedulerHints:
745 description: Optional scheduler hints to pass to nova
748 # Ceph storage specific parameters
753 default: overcloud-full
755 OvercloudCephStorageFlavor:
757 description: Flavor for Ceph storage nodes to request when deploying.
760 - custom_constraint: nova.flavor
761 CephStorageExtraConfig:
764 CephStorage specific configuration to inject into the cluster. Same
765 structure as ExtraConfig.
767 CephStorageSchedulerHints:
769 description: Optional scheduler hints to pass to nova
773 # Hostname format for each role
774 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
775 # and %stackname% is replaced with OS::stack_name in the template below.
776 # If you want to use the heat generated names, pass '' (empty string).
777 ControllerHostnameFormat:
779 description: Format for Controller node hostnames
780 default: '%stackname%-controller-%index%'
781 ComputeHostnameFormat:
783 description: Format for Compute node hostnames
784 default: '%stackname%-novacompute-%index%'
785 BlockStorageHostnameFormat:
787 description: Format for BlockStorage node hostnames
788 default: '%stackname%-blockstorage-%index%'
789 ObjectStorageHostnameFormat:
791 description: Format for SwiftStorage node hostnames
792 default: '%stackname%-objectstorage-%index%'
793 CephStorageHostnameFormat:
795 description: Format for CephStorage node hostnames
796 default: '%stackname%-cephstorage-%index%'
798 # Identifiers to trigger tasks on nodes
803 Setting to a previously unused value during stack-update will trigger
804 package update on all nodes
809 Setting this to a unique value will re-run any deployment tasks which
810 perform configuration on a Heat stack-update.
812 # If you want to remove a specific node from a resource group, you can pass
813 # the node name or id as a <Group>RemovalPolicies parameter, for example:
814 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
815 ControllerRemovalPolicies:
819 List of resources to be removed from ControllerResourceGroup when
820 doing an update which requires removal of specific resources.
821 ComputeRemovalPolicies:
825 List of resources to be removed from ComputeResourceGroup when
826 doing an update which requires removal of specific resources.
827 BlockStorageRemovalPolicies:
831 List of resources to be removed from BlockStorageResourceGroup when
832 doing an update which requires removal of specific resources.
833 ObjectStorageRemovalPolicies:
837 List of resources to be removed from ObjectStorageResourceGroup when
838 doing an update which requires removal of specific resources.
839 CephStorageRemovalPolicies:
843 List of resources to be removed from CephStorageResourceGroup when
844 doing an update which requires removal of specific resources.
849 HeatAuthEncryptionKey:
850 type: OS::Heat::RandomString
853 type: OS::Heat::RandomString
858 type: OS::Heat::RandomString
863 type: OS::TripleO::EndpointMap
865 CloudName: {get_param: CloudName}
866 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
867 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
868 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
869 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
870 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
871 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
872 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
873 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
874 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
875 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
876 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
877 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
878 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
881 type: OS::Heat::ResourceGroup
884 count: {get_param: ControllerCount}
885 removal_policies: {get_param: ControllerRemovalPolicies}
887 type: OS::TripleO::Controller
889 AdminPassword: {get_param: AdminPassword}
890 AdminToken: {get_param: AdminToken}
891 CeilometerBackend: {get_param: CeilometerBackend}
892 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
893 CeilometerPassword: {get_param: CeilometerPassword}
894 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
895 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
896 CinderNfsServers: {get_param: CinderNfsServers}
897 CinderPassword: {get_param: CinderPassword}
898 CinderISCSIHelper: {get_param: CinderISCSIHelper}
899 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
900 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
901 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
902 CloudDomain: {get_param: CloudDomain}
903 ControlVirtualInterface: {get_param: ControlVirtualInterface}
904 ControllerExtraConfig: {get_param: controllerExtraConfig}
905 CorosyncIPv6: {get_param: CorosyncIPv6}
906 Debug: {get_param: Debug}
907 EnableFencing: {get_param: EnableFencing}
908 ManageFirewall: {get_param: ManageFirewall}
909 PurgeFirewallRules: {get_param: PurgeFirewallRules}
910 EnableGalera: {get_param: EnableGalera}
911 EnableCephStorage: {get_param: ControllerEnableCephStorage}
912 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
913 ExtraConfig: {get_param: ExtraConfig}
914 FencingConfig: {get_param: FencingConfig}
915 Flavor: {get_param: OvercloudControlFlavor}
916 GlancePassword: {get_param: GlancePassword}
917 GlanceBackend: {get_param: GlanceBackend}
918 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
919 GlanceLogFile: {get_param: GlanceLogFile}
920 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
921 HeatPassword: {get_param: HeatPassword}
922 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
923 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
924 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
925 HorizonSecret: {get_resource: HorizonSecret}
926 Image: {get_param: controllerImage}
927 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
928 InstanceNameTemplate: {get_param: InstanceNameTemplate}
929 KeyName: {get_param: KeyName}
930 KeystoneCACertificate: {get_param: KeystoneCACertificate}
931 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
932 KeystoneSigningKey: {get_param: KeystoneSigningKey}
933 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
934 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
935 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
936 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
937 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
938 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
939 MysqlMaxConnections: {get_param: MysqlMaxConnections}
940 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
941 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
942 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
943 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
944 NeutronTenantMtu: {get_param: NeutronTenantMtu}
945 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
946 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
947 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
948 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
949 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
950 NeutronPublicInterface: {get_param: NeutronPublicInterface}
951 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
952 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
953 NeutronPassword: {get_param: NeutronPassword}
954 NeutronDnsmasqOptions:
956 template: {get_param: NeutronDnsmasqOptions}
958 '%MTU%': {get_param: NeutronTenantMtu}
959 NeutronDVR: {get_param: NeutronDVR}
960 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
961 NeutronAgentMode: {get_param: NeutronAgentMode}
962 NeutronCorePlugin: {get_param: NeutronCorePlugin}
963 NeutronServicePlugins: {get_param: NeutronServicePlugins}
964 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
965 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
966 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
967 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
968 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
969 NeutronL3HA: {get_param: NeutronL3HA}
970 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
971 NeutronNetworkType: {get_param: NeutronNetworkType}
972 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
973 NovaIPv6: {get_param: NovaIPv6}
974 NovaPassword: {get_param: NovaPassword}
975 NtpServer: {get_param: NtpServer}
976 MongoDbNoJournal: {get_param: MongoDbNoJournal}
977 MongoDbIPv6: {get_param: MongoDbIPv6}
978 PcsdPassword: {get_resource: PcsdPassword}
979 PublicVirtualInterface: {get_param: PublicVirtualInterface}
980 RabbitPassword: {get_param: RabbitPassword}
981 RabbitUserName: {get_param: RabbitUserName}
982 RabbitCookie: {get_attr: [RabbitCookie, value]}
983 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
984 RabbitClientPort: {get_param: RabbitClientPort}
985 RabbitFDLimit: {get_param: RabbitFDLimit}
986 SaharaPassword: {get_param: SaharaPassword}
987 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
988 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
989 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
990 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
991 SwiftHashSuffix: {get_param: SwiftHashSuffix}
992 SwiftMountCheck: {get_param: SwiftMountCheck}
993 SwiftMinPartHours: {get_param: SwiftMinPartHours}
994 SwiftPartPower: {get_param: SwiftPartPower}
995 SwiftPassword: {get_param: SwiftPassword}
996 SwiftReplicas: { get_param: SwiftReplicas}
997 TimeZone: {get_param: TimeZone}
998 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
999 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
1000 ServiceNetMap: {get_param: ServiceNetMap}
1001 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1002 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1003 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1004 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1005 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1006 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1007 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1008 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1009 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1010 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1011 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1012 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1013 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1014 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1015 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1016 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1017 UpdateIdentifier: {get_param: UpdateIdentifier}
1020 template: {get_param: ControllerHostnameFormat}
1022 '%stackname%': {get_param: 'OS::stack_name'}
1023 NodeIndex: '%index%'
1024 ServerMetadata: {get_param: ServerMetadata}
1025 SchedulerHints: {get_param: ControllerSchedulerHints}
1028 type: OS::Heat::ResourceGroup
1029 depends_on: Networks
1031 count: {get_param: ComputeCount}
1032 removal_policies: {get_param: ComputeRemovalPolicies}
1034 type: OS::TripleO::Compute
1036 AdminPassword: {get_param: AdminPassword}
1037 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1038 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1039 CeilometerPassword: {get_param: CeilometerPassword}
1040 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1041 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1042 Debug: {get_param: Debug}
1043 ExtraConfig: {get_param: ExtraConfig}
1044 Flavor: {get_param: OvercloudComputeFlavor}
1045 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1046 Image: {get_param: NovaImage}
1047 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1048 KeyName: {get_param: KeyName}
1049 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1050 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1051 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1052 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1053 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1054 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1055 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1056 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1057 NeutronNetworkType: {get_param: NeutronNetworkType}
1058 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1059 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1060 NeutronPassword: {get_param: NeutronPassword}
1061 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1062 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1063 NeutronDVR: {get_param: NeutronDVR}
1064 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1065 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1066 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1067 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1068 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1069 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1070 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1071 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1072 # L3 HA and Failover is not relevant for Computes, should be removed
1073 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1074 NeutronL3HA: {get_param: NeutronL3HA}
1075 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1076 NovaComputeDriver: {get_param: NovaComputeDriver}
1077 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1078 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1079 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1080 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1081 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1082 NovaPassword: {get_param: NovaPassword}
1083 NovaOVSBridge: {get_param: NovaOVSBridge}
1084 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1085 NtpServer: {get_param: NtpServer}
1086 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1087 RabbitPassword: {get_param: RabbitPassword}
1088 RabbitUserName: {get_param: RabbitUserName}
1089 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1090 RabbitClientPort: {get_param: RabbitClientPort}
1091 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1092 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1093 ServiceNetMap: {get_param: ServiceNetMap}
1094 TimeZone: {get_param: TimeZone}
1095 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1096 UpdateIdentifier: {get_param: UpdateIdentifier}
1099 template: {get_param: ComputeHostnameFormat}
1101 '%stackname%': {get_param: 'OS::stack_name'}
1102 CloudDomain: {get_param: CloudDomain}
1103 ServerMetadata: {get_param: ServerMetadata}
1104 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1107 type: OS::Heat::ResourceGroup
1108 depends_on: Networks
1110 count: {get_param: BlockStorageCount}
1111 removal_policies: {get_param: BlockStorageRemovalPolicies}
1113 type: OS::TripleO::BlockStorage
1115 Debug: {get_param: Debug}
1116 Image: {get_param: BlockStorageImage}
1117 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1118 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1119 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1120 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1121 CinderPassword: {get_param: CinderPassword}
1122 KeyName: {get_param: KeyName}
1123 Flavor: {get_param: OvercloudBlockStorageFlavor}
1124 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1125 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1126 RabbitPassword: {get_param: RabbitPassword}
1127 RabbitUserName: {get_param: RabbitUserName}
1128 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1129 RabbitClientPort: {get_param: RabbitClientPort}
1130 TimeZone: {get_param: TimeZone}
1131 NtpServer: {get_param: NtpServer}
1132 UpdateIdentifier: {get_param: UpdateIdentifier}
1135 template: {get_param: BlockStorageHostnameFormat}
1137 '%stackname%': {get_param: 'OS::stack_name'}
1138 ServiceNetMap: {get_param: ServiceNetMap}
1139 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1140 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1141 ExtraConfig: {get_param: ExtraConfig}
1142 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1143 CloudDomain: {get_param: CloudDomain}
1144 ServerMetadata: {get_param: ServerMetadata}
1145 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1148 type: OS::Heat::ResourceGroup
1149 depends_on: Networks
1151 count: {get_param: ObjectStorageCount}
1152 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1154 type: OS::TripleO::ObjectStorage
1156 KeyName: {get_param: KeyName}
1157 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1158 HashSuffix: {get_param: SwiftHashSuffix}
1159 MountCheck: {get_param: SwiftMountCheck}
1160 MinPartHours: {get_param: SwiftMinPartHours}
1161 PartPower: {get_param: SwiftPartPower}
1162 Image: {get_param: SwiftStorageImage}
1163 Replicas: { get_param: SwiftReplicas}
1164 TimeZone: {get_param: TimeZone}
1165 NtpServer: {get_param: NtpServer}
1166 UpdateIdentifier: {get_param: UpdateIdentifier}
1167 ServiceNetMap: {get_param: ServiceNetMap}
1170 template: {get_param: ObjectStorageHostnameFormat}
1172 '%stackname%': {get_param: 'OS::stack_name'}
1173 ExtraConfig: {get_param: ExtraConfig}
1174 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1175 CloudDomain: {get_param: CloudDomain}
1176 ServerMetadata: {get_param: ServerMetadata}
1177 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1180 type: OS::Heat::ResourceGroup
1181 depends_on: Networks
1183 count: {get_param: CephStorageCount}
1184 removal_policies: {get_param: CephStorageRemovalPolicies}
1186 type: OS::TripleO::CephStorage
1188 Image: {get_param: CephStorageImage}
1189 KeyName: {get_param: KeyName}
1190 Flavor: {get_param: OvercloudCephStorageFlavor}
1191 NtpServer: {get_param: NtpServer}
1192 ServiceNetMap: {get_param: ServiceNetMap}
1193 TimeZone: {get_param: TimeZone}
1194 UpdateIdentifier: {get_param: UpdateIdentifier}
1197 template: {get_param: CephStorageHostnameFormat}
1199 '%stackname%': {get_param: 'OS::stack_name'}
1200 ExtraConfig: {get_param: ExtraConfig}
1201 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1202 CloudDomain: {get_param: CloudDomain}
1203 ServerMetadata: {get_param: ServerMetadata}
1204 SchedulerHints: {get_param: CephStorageSchedulerHints}
1206 ControllerIpListMap:
1207 type: OS::TripleO::Network::Ports::NetIpListMap
1209 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1210 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1211 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1212 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1213 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1214 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1215 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1218 type: OS::TripleO::AllNodes::SoftwareConfig
1220 compute_hosts: {get_attr: [Compute, hosts_entry]}
1221 controller_hosts: {get_attr: [Controller, hosts_entry]}
1222 controller_ips: {get_attr: [Controller, ip_address]}
1223 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1224 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1225 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1226 controller_names: {get_attr: [Controller, hostname]}
1227 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1228 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1229 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1230 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1231 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1232 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1233 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1234 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1235 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1236 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1237 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1238 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1239 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1240 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1241 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1242 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1243 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1244 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1245 DeployIdentifier: {get_param: DeployIdentifier}
1246 UpdateIdentifier: {get_param: UpdateIdentifier}
1249 type: OS::Heat::RandomString
1253 MysqlClusterUniquePart:
1254 type: OS::Heat::RandomString
1259 type: OS::Heat::RandomString
1262 salt: {get_param: RabbitCookieSalt}
1264 # creates the network architecture
1266 type: OS::TripleO::Network
1269 type: OS::Neutron::Port
1270 depends_on: Networks
1272 name: control_virtual_ip
1273 network: {get_param: NeutronControlPlaneID}
1274 fixed_ips: {get_param: ControlFixedIPs}
1275 replacement_policy: AUTO
1278 depends_on: Networks
1279 type: OS::TripleO::Network::Ports::RedisVipPort
1281 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1282 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1283 PortName: redis_virtual_ip
1284 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1287 # The public VIP is on the External net, falls back to ctlplane
1289 depends_on: Networks
1290 type: OS::TripleO::Network::Ports::ExternalVipPort
1292 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1293 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1294 PortName: public_virtual_ip
1295 FixedIPs: {get_param: PublicVirtualFixedIPs}
1297 InternalApiVirtualIP:
1298 depends_on: Networks
1299 type: OS::TripleO::Network::Ports::InternalApiVipPort
1301 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1302 PortName: internal_api_virtual_ip
1303 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1306 depends_on: Networks
1307 type: OS::TripleO::Network::Ports::StorageVipPort
1309 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1310 PortName: storage_virtual_ip
1311 FixedIPs: {get_param: StorageVirtualFixedIPs}
1313 StorageMgmtVirtualIP:
1314 depends_on: Networks
1315 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1317 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1318 PortName: storage_management_virtual_ip
1319 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1322 type: OS::TripleO::Network::Ports::NetVipMap
1324 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1325 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1326 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1327 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1328 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1329 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1330 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1331 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1332 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1333 # No tenant or management VIP required
1336 type: OS::TripleO::VipConfig
1339 type: OS::Heat::StructuredDeployments
1342 config: {get_resource: VipConfig}
1343 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1345 # service VIP mappings
1346 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1347 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1348 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1349 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1350 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1351 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1352 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1353 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1354 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1355 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1356 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1357 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1358 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1359 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1360 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1361 # direct configuration of Virtual IPs for each network
1362 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1363 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1364 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1365 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1366 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1367 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1369 ControllerBootstrapNodeConfig:
1370 type: OS::TripleO::BootstrapNode::SoftwareConfig
1372 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1373 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1375 ControllerBootstrapNodeDeployment:
1376 type: OS::Heat::StructuredDeployments
1378 name: ControllerBootstrapNodeDeployment
1379 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1380 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1382 ControllerSwiftDeployment:
1383 type: OS::Heat::StructuredDeployments
1385 name: ControllerSwiftDeployment
1386 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1387 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1389 ObjectStorageSwiftDeployment:
1390 type: OS::Heat::StructuredDeployments
1392 name: ObjectStorageSwiftDeployment
1393 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1394 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1396 SwiftDevicesAndProxyConfig:
1397 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1399 controller_swift_devices: {get_attr: [Controller, swift_device]}
1400 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1401 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1403 ComputeCephDeployment:
1404 type: OS::Heat::StructuredDeployments
1406 name: ComputeCephDeployment
1407 config: {get_attr: [CephClusterConfig, config_id]}
1408 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1410 ControllerCephDeployment:
1411 type: OS::Heat::StructuredDeployments
1413 name: ControllerCephDeployment
1414 config: {get_attr: [CephClusterConfig, config_id]}
1415 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1417 CephStorageCephDeployment:
1418 type: OS::Heat::StructuredDeployments
1420 name: CephStorageCephDeployment
1421 config: {get_attr: [CephClusterConfig, config_id]}
1422 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1425 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1427 ceph_storage_count: {get_param: CephStorageCount}
1428 ceph_fsid: {get_param: CephClusterFSID}
1429 ceph_mon_key: {get_param: CephMonKey}
1430 ceph_admin_key: {get_param: CephAdminKey}
1431 ceph_client_key: {get_param: CephClientKey}
1432 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1433 ceph_mon_names: {get_attr: [Controller, hostname]}
1434 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1436 ControllerClusterConfig:
1437 type: OS::Heat::StructuredConfig
1439 group: os-apply-config
1442 nodes: {get_attr: [Controller, corosync_node]}
1446 nodes: {get_attr: [Controller, hostname]}
1448 nodes: {get_attr: [Controller, corosync_node]}
1450 nodes: {get_attr: [Controller, corosync_node]}
1452 ControllerClusterDeployment:
1453 type: OS::Heat::StructuredDeployments
1455 name: ControllerClusterDeployment
1456 config: {get_resource: ControllerClusterConfig}
1457 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1459 ControllerAllNodesDeployment:
1460 type: OS::Heat::StructuredDeployments
1462 name: ControllerAllNodesDeployment
1463 config: {get_attr: [allNodesConfig, config_id]}
1464 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1466 ComputeAllNodesDeployment:
1467 type: OS::Heat::StructuredDeployments
1469 name: ComputeAllNodesDeployment
1470 config: {get_attr: [allNodesConfig, config_id]}
1471 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1473 BlockStorageAllNodesDeployment:
1474 type: OS::Heat::StructuredDeployments
1476 name: BlockStorageAllNodesDeployment
1477 config: {get_attr: [allNodesConfig, config_id]}
1478 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1480 ObjectStorageAllNodesDeployment:
1481 type: OS::Heat::StructuredDeployments
1483 name: ObjectStorageAllNodesDeployment
1484 config: {get_attr: [allNodesConfig, config_id]}
1485 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1487 CephStorageAllNodesDeployment:
1488 type: OS::Heat::StructuredDeployments
1490 name: CephStorageAllNodesDeployment
1491 config: {get_attr: [allNodesConfig, config_id]}
1492 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1494 # All Nodes Validations
1495 AllNodesValidationConfig:
1496 type: OS::TripleO::AllNodes::Validation
1501 - - {get_attr: [Controller, resource.0.external_ip_address]}
1502 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1503 - {get_attr: [Controller, resource.0.storage_ip_address]}
1504 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1505 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1507 ControllerAllNodesValidationDeployment:
1508 type: OS::Heat::StructuredDeployments
1509 depends_on: ControllerAllNodesDeployment
1511 name: ControllerAllNodesValidationDeployment
1512 config: {get_resource: AllNodesValidationConfig}
1513 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1515 ComputeAllNodesValidationDeployment:
1516 type: OS::Heat::StructuredDeployments
1517 depends_on: ComputeAllNodesDeployment
1519 name: ComputeAllNodesValidationDeployment
1520 config: {get_resource: AllNodesValidationConfig}
1521 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1523 BlockStorageAllNodesValidationDeployment:
1524 type: OS::Heat::StructuredDeployments
1525 depends_on: BlockStorageAllNodesDeployment
1527 name: BlockStorageAllNodesValidationDeployment
1528 config: {get_resource: AllNodesValidationConfig}
1529 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1531 ObjectStorageAllNodesValidationDeployment:
1532 type: OS::Heat::StructuredDeployments
1533 depends_on: ObjectStorageAllNodesDeployment
1535 name: ObjectStorageAllNodesValidationDeployment
1536 config: {get_resource: AllNodesValidationConfig}
1537 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1539 CephStorageAllNodesValidationDeployment:
1540 type: OS::Heat::StructuredDeployments
1541 depends_on: CephStorageAllNodesDeployment
1543 name: CephStorageAllNodesValidationDeployment
1544 config: {get_resource: AllNodesValidationConfig}
1545 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1548 type: OS::TripleO::Tasks::UpdateWorkflow
1550 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1551 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1552 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1553 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1554 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1556 deploy_identifier: {get_param: DeployIdentifier}
1557 update_identifier: {get_param: UpdateIdentifier}
1559 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1560 # the nested template may configure each role differently (or not at all)
1561 AllNodesExtraConfig:
1562 type: OS::TripleO::AllNodesExtraConfig
1563 depends_on: UpdateWorkflow
1565 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1566 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1567 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1568 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1569 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1571 # Nested stack deployment runs after all other controller deployments
1572 ControllerNodesPostDeployment:
1573 type: OS::TripleO::ControllerPostDeployment
1574 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1576 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1577 NodeConfigIdentifiers:
1578 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1579 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1580 deployment_identifier: {get_param: DeployIdentifier}
1582 ComputeNodesPostDeployment:
1583 type: OS::TripleO::ComputePostDeployment
1584 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1586 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1587 NodeConfigIdentifiers:
1588 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1589 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1590 deployment_identifier: {get_param: DeployIdentifier}
1592 ObjectStorageNodesPostDeployment:
1593 type: OS::TripleO::ObjectStoragePostDeployment
1594 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1596 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1597 NodeConfigIdentifiers:
1598 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1599 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1600 deployment_identifier: {get_param: DeployIdentifier}
1602 BlockStorageNodesPostDeployment:
1603 type: OS::TripleO::BlockStoragePostDeployment
1604 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1606 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1607 NodeConfigIdentifiers:
1608 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1609 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1610 deployment_identifier: {get_param: DeployIdentifier}
1612 CephStorageNodesPostDeployment:
1613 type: OS::TripleO::CephStoragePostDeployment
1614 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1616 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1617 NodeConfigIdentifiers:
1618 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1619 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1620 deployment_identifier: {get_param: DeployIdentifier}
1624 description: URL for the Overcloud Keystone service
1625 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1627 description: Keystone Admin VIP endpoint
1628 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1630 description: Controller VIP for public API endpoints
1631 value: {get_attr: [VipMap, net_ip_map, external]}
1632 CeilometerInternalVip:
1633 description: VIP for Ceilometer API internal endpoint
1634 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1636 description: VIP for Cinder API internal endpoint
1637 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1639 description: VIP for Glance API internal endpoint
1640 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1642 description: VIP for Heat API internal endpoint
1643 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1644 KeystoneInternalVip:
1645 description: VIP for Keystone API internal endpoint
1646 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1648 description: VIP for Neutron API internal endpoint
1649 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1651 description: VIP for Nova API internal endpoint
1652 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1654 description: VIP for Sahara API internal endpoint
1655 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1657 description: VIP for Swift Proxy internal endpoint
1658 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1661 The content that should be appended to your /etc/hosts if you want to get
1662 hostname-based access to the deployed nodes (useful for testing without
1664 value: {get_attr: [allNodesConfig, hosts_entries]}