1 heat_template_version: 2015-04-30
4 Deploy an OpenStack environment, consisting of several node types (roles),
5 Controller, Compute, BlockStorage, SwiftStorage and CephStorage. The Storage
6 roles enable independent scaling of the storage components, but the minimal
7 deployment is one Controller and one Compute node.
10 # TODO(shadower): we should probably use the parameter groups to put
14 # Common parameters (not specific to a role)
16 description: The password for the keystone admin account, used for monitoring, querying neutron etc.
21 description: The ceilometer backend type.
23 CeilometerMeteringSecret:
24 description: Secret shared by the ceilometer services.
28 description: The password for the ceilometer service account.
31 # This has to be an UUID so for now we generate it outside the template
35 description: The Ceph cluster FSID. Must be a UUID.
38 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
43 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
46 CinderEnableNfsBackend:
48 description: Whether to enable or not the NFS backend for Cinder
52 description: The Ceph client key. Can be created with ceph-authtool --gen-print-key. Currently only used for external Ceph deployments to create the openstack user keyring.
58 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
59 CinderEnableIscsiBackend:
61 description: Whether to enable or not the Iscsi backend for Cinder
63 CinderEnableRbdBackend:
65 description: Whether to enable or not the Rbd backend for Cinder
69 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
73 description: Should be used for arbitrary ips.
77 description: Enable IPv6 in Corosync
81 description: Set to True to enable debugging on all services.
85 description: Syslog address where HAproxy will send its log
89 description: A list of IP/Hostname allowed to connect to horizon
90 type: comma_delimited_list
92 default: 'REBUILD_PRESERVE_EPHEMERAL'
93 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
95 InternalApiVirtualFixedIPs:
98 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
99 [{'ip_address':'1.2.3.4'}]
103 description: Name of an existing Nova key pair to enable SSH access to the instances
106 - custom_constraint: nova.keypair
107 NeutronExternalNetworkBridge:
108 description: Name of bridge used for external network traffic.
111 NeutronBridgeMappings:
113 The OVS logical->physical bridge mappings to use. See the Neutron
114 documentation for details. Defaults to mapping br-ex - the external
115 bridge on hosts - to a physical name 'datacentre' which can be used
116 to create provider networks (and we use this for the default floating
117 network) - if changing this either use different post-install network
118 scripts or be sure to keep 'datacentre' as a mapping network name.
119 type: comma_delimited_list
120 default: "datacentre:br-ex"
121 NeutronControlPlaneID:
124 description: Neutron ID or name for ctlplane network.
125 NeutronEnableIsolatedMetadata:
127 description: If True, DHCP provide metadata route to VM.
129 NeutronEnableTunnelling:
135 Enable/disable the L2 population feature in the Neutron agents.
138 type: comma_delimited_list
139 default: 'datacentre'
141 If set, flat networks to configure in neutron plugins. Defaults to
142 'datacentre' to permit external network creation.
145 description: The tenant network type for Neutron.
146 type: comma_delimited_list
148 description: The password for the neutron service account, used by neutron agents.
151 NeutronPublicInterface:
153 description: What interface to bridge onto br-ex for network nodes.
155 NeutronPublicInterfaceTag:
158 VLAN tag for creating a public VLAN. The tag will be used to
159 create an access port on the exterior bridge for each control plane node,
160 and that port will be given the IP address returned by neutron from the
161 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
162 overcloud.yaml to include the deployment of VLAN ports to the control
165 NeutronComputeAgentMode:
167 description: Agent mode for the neutron-l3-agent on the compute hosts
171 description: Agent mode for the neutron-l3-agent on the controller hosts
175 description: Whether to configure Neutron Distributed Virtual Routers
177 NeutronMetadataProxySharedSecret:
178 description: Shared secret to prevent spoofing
183 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
184 be at least 50 bytes smaller than the MTU on the physical network. This
185 value will be used to set the MTU on the virtual Ethernet device.
186 This value will be used to construct the NeutronDnsmasqOptions, since that
187 will determine the MTU that is assigned to the VM host through DHCP.
193 The tunnel types for the Neutron tenant network.
194 type: comma_delimited_list
195 NeutronTunnelIdRanges:
197 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
198 of GRE tunnel IDs that are available for tenant network allocation
199 default: ["1:4094", ]
200 type: comma_delimited_list
203 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
204 of VXLAN VNI IDs that are available for tenant network allocation
205 default: ["1:4094", ]
206 type: comma_delimited_list
210 The core plugin for Neutron. The value should be the entrypoint to be loaded
211 from neutron.core_plugins namespace.
213 NeutronServicePlugins:
214 default: "router,qos"
216 Comma-separated list of service plugin entrypoints to be loaded from the
217 neutron.service_plugins namespace.
218 type: comma_delimited_list
220 default: "vxlan,vlan,flat,gre"
222 Comma-separated list of network type driver entrypoints to be loaded.
223 type: comma_delimited_list
224 NeutronMechanismDrivers:
225 default: 'openvswitch'
227 The mechanism drivers for the Neutron tenant network.
228 type: comma_delimited_list
229 NeutronPluginExtensions:
230 default: "qos,port_security"
232 Comma-separated list of extensions enabled for the Neutron plugin.
233 type: comma_delimited_list
234 NeutronAgentExtensions:
237 Comma-separated list of extensions enabled for the Neutron agents.
238 type: comma_delimited_list
239 NeutronAllowL3AgentFailover:
241 description: Allow automatic l3-agent failover
245 description: Whether to enable l3-agent HA
247 NeutronDhcpAgentsPerNetwork:
250 description: The number of neutron dhcp agents to schedule per network
253 description: Enable IPv6 features in Nova
256 description: The password for the nova service account, used by nova-api.
261 description: Comma-separated list of ntp servers
262 type: comma_delimited_list
265 description: Should MongoDb journaling be disabled
269 description: Enable IPv6 if MongoDB VIP is IPv6
271 PublicVirtualFixedIPs:
274 Control the IP allocation for the PublicVirtualInterface port. E.g.
275 [{'ip_address':'1.2.3.4'}]
280 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
281 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
284 description: The username for RabbitMQ
288 description: The password for RabbitMQ
294 Rabbit client subscriber parameter to specify
295 an SSL connection to the RabbitMQ host.
299 description: Set rabbit subscriber port, change this if using SSL
301 # We need to set this as string because 'unlimited' is a valid setting
304 description: Configures RabbitMQ FD limit
308 description: Enable IPv6 in RabbitMQ
311 description: The password for Redis
314 SnmpdReadonlyUserName:
315 default: ro_snmp_user
316 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
318 SnmpdReadonlyUserPassword:
319 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
322 StorageVirtualFixedIPs:
325 Control the IP allocation for the StorageVirtualInterface port. E.g.
326 [{'ip_address':'1.2.3.4'}]
328 StorageMgmtVirtualFixedIPs:
331 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
332 [{'ip_address':'1.2.3.4'}]
336 description: The timezone to be set on nodes.
339 default: 'localdomain'
342 The DNS domain used for the hosts. This should match the dhcp_domain
343 configured in the Undercloud neutron. Defaults to localdomain.
347 Extra properties or metadata passed to Nova for the created nodes in
348 the overcloud. It's accessible via the Nova metadata API.
351 # Controller-specific params
353 description: The keystone auth secret.
356 CinderLVMLoopDeviceSize:
358 description: The size of the loopback file used by the cinder LVM driver.
360 CinderNfsMountOptions:
363 Mount options for NFS mounts used by Cinder NFS backend. Effective
364 when CinderEnableNfsBackend is true.
369 NFS servers used by Cinder NFS backend. Effective when
370 CinderEnableNfsBackend is true.
371 type: comma_delimited_list
373 description: The password for the cinder service account, used by cinder-api.
378 description: The iSCSI helper to use with cinder.
385 controllerExtraConfig:
388 Controller specific configuration to inject into the cluster. Same
389 structure as ExtraConfig.
393 default: overcloud-full
395 - custom_constraint: glance.image
396 OvercloudControlFlavor:
397 description: Flavor for control nodes to request when deploying.
401 - custom_constraint: nova.flavor
402 ControlVirtualInterface:
404 description: Interface where virtual ip will be assigned.
408 description: Whether to enable fencing in Pacemaker or not.
412 description: Whether to use Galera instead of regular MariaDB.
414 ControllerEnableCephStorage:
416 description: Whether to deploy Ceph Storage (OSD) on the Controller
418 ControllerEnableSwiftStorage:
420 description: Whether to enable Swift Storage on the Controller
422 ControllerSchedulerHints:
424 description: Optional scheduler hints to pass to nova
429 Additional configuration to inject into the cluster. The format required
430 may be implementation specific, e.g puppet hieradata. Any role specific
431 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
436 Pacemaker fencing configuration. The JSON should have
437 the following structure:
441 "agent": "AGENT_NAME",
442 "host_mac": "HOST_MAC_ADDRESS",
443 "params": {"PARAM_NAME": "PARAM_VALUE"}
451 "agent": "fence_xvm",
452 "host_mac": "52:54:00:aa:bb:cc",
454 "multicast_address": "225.0.0.12",
455 "port": "baremetal_0",
457 "manage_key_file": true,
458 "key_file": "/etc/fence_xvm.key",
459 "key_file_password": "abcdef"
466 description: The filepath of the file to use for logging messages from Glance.
469 GlanceNotifierStrategy:
470 description: Strategy to use for Glance notification queue
474 description: The password for the glance service account, used by the glance services.
479 description: The short name of the Glance backend to use. Should be one
480 of swift, rbd or file
483 - allowed_values: ['swift', 'file', 'rbd']
485 description: The password for the Heat service account, used by the Heat services.
488 HeatStackDomainAdminPassword:
489 description: Password for heat_stack_domain_admin user.
492 InstanceNameTemplate:
493 default: 'instance-%08x'
494 description: Template string to be used to generate instance names
496 KeystoneCACertificate:
498 description: Keystone self-signed certificate authority certificate.
500 KeystoneSigningCertificate:
502 description: Keystone certificate for verifying token validity.
506 description: Keystone key for signing tokens.
509 KeystoneSSLCertificate:
511 description: Keystone certificate for verifying token validity.
513 KeystoneSSLCertificateKey:
515 description: Keystone key for signing tokens.
518 KeystoneNotificationDriver:
519 description: Comma-separated list of Oslo notification drivers used by Keystone
520 default: ['messaging']
521 type: comma_delimited_list
522 KeystoneNotificationFormat:
523 description: The Keystone notification format
527 - allowed_values: [ 'basic', 'cadf' ]
530 description: Whether to manage IPtables rules.
534 description: Whether IPtables rules should be purged before setting up the ones.
536 MysqlInnodbBufferPoolSize:
538 Specifies the size of the buffer pool in megabytes. Setting to
539 zero should be interpreted as "no value" and will defer to the
544 description: Configures MySQL max_connections config setting
547 NeutronDnsmasqOptions:
548 default: 'dhcp-option-force=26,%MTU%'
550 Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU
551 to be set to the value of NeutronTenantMtu, which should be set to account
554 NeutronPublicInterfaceDefaultRoute:
556 description: A custom default route for the NeutronPublicInterface.
558 NeutronPublicInterfaceIP:
560 description: A custom IP address to put onto the NeutronPublicInterface.
562 NeutronPublicInterfaceRawDevice:
564 description: If set, the public interface is a vlan with this device as the raw device.
566 PublicVirtualInterface:
569 Specifies the interface where the public-facing virtual ip will be assigned.
570 This should be int_public when a VLAN is being used.
573 description: A random string to be used as a salt when hashing to determine mappings in the ring.
577 description: The password for the swift service account, used by the swift proxy services.
582 description: Value of mount_check in Swift account/container/object -server.conf
587 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
590 description: Partition Power to use when building Swift rings
595 description: How many replicas to use in the swift rings.
597 description: The password for the sahara service account.
601 # Compute-specific params
602 CeilometerComputeAgent:
603 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
607 - allowed_values: ['', Present]
611 HypervisorNeutronPhysicalBridge:
614 An OVS bridge to create on each hypervisor. This defaults to br-ex the
615 same as the control plane nodes, as we have a uniform configuration of
616 the openvswitch agent. Typically should not need to be changed.
618 HypervisorNeutronPublicInterface:
620 description: What interface to add to the HypervisorNeutronPhysicalBridge.
622 NeutronNetworkVLANRanges:
623 default: 'datacentre:1:1000'
625 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
626 Neutron documentation for permitted values. Defaults to permitting any
627 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
628 type: comma_delimited_list
631 default: libvirt.LibvirtDriver
632 NovaComputeExtraConfig:
635 NovaCompute specific configuration to inject into the cluster. Same
636 structure as ExtraConfig.
638 NovaComputeLibvirtType:
641 NovaComputeLibvirtVifDriver:
643 description: Libvirt VIF driver configuration for the network
645 NovaComputeSchedulerHints:
647 description: Optional scheduler hints to pass to nova
649 NovaEnableRbdBackend:
651 description: Whether to enable or not the Rbd backend for Nova
655 default: overcloud-full
657 - custom_constraint: glance.image
660 description: Name of integration bridge used by Open vSwitch
662 NovaSecurityGroupAPI:
664 description: The full class name of the security API class
666 OvercloudComputeFlavor:
667 description: Use this flavor
671 - custom_constraint: nova.flavor
674 NeutronTenantNetwork: tenant
675 CeilometerApiNetwork: internal_api
676 MongoDbNetwork: internal_api
677 CinderApiNetwork: internal_api
678 CinderIscsiNetwork: storage
679 GlanceApiNetwork: storage
680 GlanceRegistryNetwork: internal_api
681 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
682 KeystonePublicApiNetwork: internal_api
683 NeutronApiNetwork: internal_api
684 HeatApiNetwork: internal_api
685 NovaApiNetwork: internal_api
686 NovaMetadataNetwork: internal_api
687 NovaVncProxyNetwork: internal_api
688 SwiftMgmtNetwork: storage_mgmt
689 SwiftProxyNetwork: storage
690 SaharaApiNetwork: internal_api
691 HorizonNetwork: internal_api
692 MemcachedNetwork: internal_api
693 RabbitMqNetwork: internal_api
694 RedisNetwork: internal_api
695 MysqlNetwork: internal_api
696 CephClusterNetwork: storage_mgmt
697 CephPublicNetwork: storage
698 ControllerHostnameResolveNetwork: internal_api
699 ComputeHostnameResolveNetwork: internal_api
700 BlockStorageHostnameResolveNetwork: internal_api
701 ObjectStorageHostnameResolveNetwork: internal_api
702 CephStorageHostnameResolveNetwork: storage
703 description: Mapping of service_name -> network name. Typically set
704 via parameter_defaults in the resource registry.
707 # Block storage specific parameters
712 default: overcloud-full
714 OvercloudBlockStorageFlavor:
715 description: Flavor for block storage nodes to request when deploying.
719 - custom_constraint: nova.flavor
720 BlockStorageExtraConfig:
723 BlockStorage specific configuration to inject into the cluster. Same
724 structure as ExtraConfig.
726 BlockStorageSchedulerHints:
728 description: Optional scheduler hints to pass to nova
732 # Object storage specific parameters
736 OvercloudSwiftStorageFlavor:
737 description: Flavor for Swift storage nodes to request when deploying.
741 - custom_constraint: nova.flavor
743 default: overcloud-full
745 ObjectStorageExtraConfig:
748 ObjectStorage specific configuration to inject into the cluster. Same
749 structure as ExtraConfig.
751 ObjectStorageSchedulerHints:
753 description: Optional scheduler hints to pass to nova
756 # Ceph storage specific parameters
761 default: overcloud-full
763 OvercloudCephStorageFlavor:
765 description: Flavor for Ceph storage nodes to request when deploying.
768 - custom_constraint: nova.flavor
769 CephStorageExtraConfig:
772 CephStorage specific configuration to inject into the cluster. Same
773 structure as ExtraConfig.
775 CephStorageSchedulerHints:
777 description: Optional scheduler hints to pass to nova
781 # Hostname format for each role
782 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
783 # and %stackname% is replaced with OS::stack_name in the template below.
784 # If you want to use the heat generated names, pass '' (empty string).
785 ControllerHostnameFormat:
787 description: Format for Controller node hostnames
788 default: '%stackname%-controller-%index%'
789 ComputeHostnameFormat:
791 description: Format for Compute node hostnames
792 default: '%stackname%-novacompute-%index%'
793 BlockStorageHostnameFormat:
795 description: Format for BlockStorage node hostnames
796 default: '%stackname%-blockstorage-%index%'
797 ObjectStorageHostnameFormat:
799 description: Format for SwiftStorage node hostnames
800 default: '%stackname%-objectstorage-%index%'
801 CephStorageHostnameFormat:
803 description: Format for CephStorage node hostnames
804 default: '%stackname%-cephstorage-%index%'
806 # Identifiers to trigger tasks on nodes
811 Setting to a previously unused value during stack-update will trigger
812 package update on all nodes
817 Setting this to a unique value will re-run any deployment tasks which
818 perform configuration on a Heat stack-update.
820 # If you want to remove a specific node from a resource group, you can pass
821 # the node name or id as a <Group>RemovalPolicies parameter, for example:
822 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
823 ControllerRemovalPolicies:
827 List of resources to be removed from ControllerResourceGroup when
828 doing an update which requires removal of specific resources.
829 ComputeRemovalPolicies:
833 List of resources to be removed from ComputeResourceGroup when
834 doing an update which requires removal of specific resources.
835 BlockStorageRemovalPolicies:
839 List of resources to be removed from BlockStorageResourceGroup when
840 doing an update which requires removal of specific resources.
841 ObjectStorageRemovalPolicies:
845 List of resources to be removed from ObjectStorageResourceGroup when
846 doing an update which requires removal of specific resources.
847 CephStorageRemovalPolicies:
851 List of resources to be removed from CephStorageResourceGroup when
852 doing an update which requires removal of specific resources.
857 HeatAuthEncryptionKey:
858 type: OS::Heat::RandomString
861 type: OS::Heat::RandomString
866 type: OS::Heat::RandomString
871 type: OS::TripleO::EndpointMap
873 CloudName: {get_param: CloudName}
874 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
875 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
876 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
877 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
878 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
879 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
880 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
881 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
882 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
883 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
884 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
885 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
886 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
889 type: OS::Heat::ResourceGroup
892 count: {get_param: ControllerCount}
893 removal_policies: {get_param: ControllerRemovalPolicies}
895 type: OS::TripleO::Controller
897 AdminPassword: {get_param: AdminPassword}
898 AdminToken: {get_param: AdminToken}
899 CeilometerBackend: {get_param: CeilometerBackend}
900 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
901 CeilometerPassword: {get_param: CeilometerPassword}
902 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
903 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
904 CinderNfsServers: {get_param: CinderNfsServers}
905 CinderPassword: {get_param: CinderPassword}
906 CinderISCSIHelper: {get_param: CinderISCSIHelper}
907 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
908 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
909 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
910 CloudDomain: {get_param: CloudDomain}
911 ControlVirtualInterface: {get_param: ControlVirtualInterface}
912 ControllerExtraConfig: {get_param: controllerExtraConfig}
913 CorosyncIPv6: {get_param: CorosyncIPv6}
914 Debug: {get_param: Debug}
915 EnableFencing: {get_param: EnableFencing}
916 ManageFirewall: {get_param: ManageFirewall}
917 PurgeFirewallRules: {get_param: PurgeFirewallRules}
918 EnableGalera: {get_param: EnableGalera}
919 EnableCephStorage: {get_param: ControllerEnableCephStorage}
920 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
921 ExtraConfig: {get_param: ExtraConfig}
922 FencingConfig: {get_param: FencingConfig}
923 Flavor: {get_param: OvercloudControlFlavor}
924 GlancePassword: {get_param: GlancePassword}
925 GlanceBackend: {get_param: GlanceBackend}
926 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
927 GlanceLogFile: {get_param: GlanceLogFile}
928 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
929 HeatPassword: {get_param: HeatPassword}
930 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
931 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
932 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
933 HorizonSecret: {get_resource: HorizonSecret}
934 Image: {get_param: controllerImage}
935 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
936 InstanceNameTemplate: {get_param: InstanceNameTemplate}
937 KeyName: {get_param: KeyName}
938 KeystoneCACertificate: {get_param: KeystoneCACertificate}
939 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
940 KeystoneSigningKey: {get_param: KeystoneSigningKey}
941 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
942 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
943 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
944 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
945 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
946 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
947 MysqlMaxConnections: {get_param: MysqlMaxConnections}
948 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
949 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
950 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
951 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
952 NeutronTenantMtu: {get_param: NeutronTenantMtu}
953 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
954 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
955 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
956 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
957 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
958 NeutronPublicInterface: {get_param: NeutronPublicInterface}
959 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
960 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
961 NeutronPassword: {get_param: NeutronPassword}
962 NeutronDnsmasqOptions:
964 template: {get_param: NeutronDnsmasqOptions}
966 '%MTU%': {get_param: NeutronTenantMtu}
967 NeutronDVR: {get_param: NeutronDVR}
968 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
969 NeutronAgentMode: {get_param: NeutronAgentMode}
970 NeutronCorePlugin: {get_param: NeutronCorePlugin}
971 NeutronServicePlugins: {get_param: NeutronServicePlugins}
972 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
973 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
974 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
975 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
976 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
977 NeutronL3HA: {get_param: NeutronL3HA}
978 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
979 NeutronNetworkType: {get_param: NeutronNetworkType}
980 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
981 NovaIPv6: {get_param: NovaIPv6}
982 NovaPassword: {get_param: NovaPassword}
983 NtpServer: {get_param: NtpServer}
984 MongoDbNoJournal: {get_param: MongoDbNoJournal}
985 MongoDbIPv6: {get_param: MongoDbIPv6}
986 PcsdPassword: {get_resource: PcsdPassword}
987 PublicVirtualInterface: {get_param: PublicVirtualInterface}
988 RabbitPassword: {get_param: RabbitPassword}
989 RabbitUserName: {get_param: RabbitUserName}
990 RabbitCookie: {get_attr: [RabbitCookie, value]}
991 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
992 RabbitClientPort: {get_param: RabbitClientPort}
993 RabbitFDLimit: {get_param: RabbitFDLimit}
994 RabbitIPv6: {get_param: RabbitIPv6}
995 RedisPassword: {get_param: RedisPassword}
996 SaharaPassword: {get_param: SaharaPassword}
997 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
998 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
999 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
1000 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
1001 SwiftHashSuffix: {get_param: SwiftHashSuffix}
1002 SwiftMountCheck: {get_param: SwiftMountCheck}
1003 SwiftMinPartHours: {get_param: SwiftMinPartHours}
1004 SwiftPartPower: {get_param: SwiftPartPower}
1005 SwiftPassword: {get_param: SwiftPassword}
1006 SwiftReplicas: { get_param: SwiftReplicas}
1007 TimeZone: {get_param: TimeZone}
1008 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
1009 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
1010 ServiceNetMap: {get_param: ServiceNetMap}
1011 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1012 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1013 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1014 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1015 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1016 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1017 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1018 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1019 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1020 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1021 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1022 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1023 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1024 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1025 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1026 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1027 UpdateIdentifier: {get_param: UpdateIdentifier}
1030 template: {get_param: ControllerHostnameFormat}
1032 '%stackname%': {get_param: 'OS::stack_name'}
1033 NodeIndex: '%index%'
1034 ServerMetadata: {get_param: ServerMetadata}
1035 SchedulerHints: {get_param: ControllerSchedulerHints}
1038 type: OS::Heat::ResourceGroup
1039 depends_on: Networks
1041 count: {get_param: ComputeCount}
1042 removal_policies: {get_param: ComputeRemovalPolicies}
1044 type: OS::TripleO::Compute
1046 AdminPassword: {get_param: AdminPassword}
1047 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1048 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1049 CeilometerPassword: {get_param: CeilometerPassword}
1050 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1051 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1052 Debug: {get_param: Debug}
1053 ExtraConfig: {get_param: ExtraConfig}
1054 Flavor: {get_param: OvercloudComputeFlavor}
1055 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1056 Image: {get_param: NovaImage}
1057 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1058 KeyName: {get_param: KeyName}
1059 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1060 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1061 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1062 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1063 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1064 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1065 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1066 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1067 NeutronNetworkType: {get_param: NeutronNetworkType}
1068 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1069 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1070 NeutronPassword: {get_param: NeutronPassword}
1071 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1072 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1073 NeutronDVR: {get_param: NeutronDVR}
1074 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1075 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1076 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1077 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1078 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1079 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1080 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1081 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1082 # L3 HA and Failover is not relevant for Computes, should be removed
1083 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1084 NeutronL3HA: {get_param: NeutronL3HA}
1085 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1086 NovaComputeDriver: {get_param: NovaComputeDriver}
1087 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1088 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1089 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1090 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1091 NovaIPv6: {get_param: NovaIPv6}
1092 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1093 NovaPassword: {get_param: NovaPassword}
1094 NovaOVSBridge: {get_param: NovaOVSBridge}
1095 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1096 NtpServer: {get_param: NtpServer}
1097 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1098 RabbitPassword: {get_param: RabbitPassword}
1099 RabbitUserName: {get_param: RabbitUserName}
1100 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1101 RabbitClientPort: {get_param: RabbitClientPort}
1102 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1103 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1104 ServiceNetMap: {get_param: ServiceNetMap}
1105 TimeZone: {get_param: TimeZone}
1106 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1107 UpdateIdentifier: {get_param: UpdateIdentifier}
1110 template: {get_param: ComputeHostnameFormat}
1112 '%stackname%': {get_param: 'OS::stack_name'}
1113 CloudDomain: {get_param: CloudDomain}
1114 ServerMetadata: {get_param: ServerMetadata}
1115 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1116 NodeIndex: '%index%'
1119 type: OS::Heat::ResourceGroup
1120 depends_on: Networks
1122 count: {get_param: BlockStorageCount}
1123 removal_policies: {get_param: BlockStorageRemovalPolicies}
1125 type: OS::TripleO::BlockStorage
1127 Debug: {get_param: Debug}
1128 Image: {get_param: BlockStorageImage}
1129 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1130 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1131 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1132 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1133 CinderPassword: {get_param: CinderPassword}
1134 KeyName: {get_param: KeyName}
1135 Flavor: {get_param: OvercloudBlockStorageFlavor}
1136 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1137 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1138 RabbitPassword: {get_param: RabbitPassword}
1139 RabbitUserName: {get_param: RabbitUserName}
1140 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1141 RabbitClientPort: {get_param: RabbitClientPort}
1142 TimeZone: {get_param: TimeZone}
1143 NtpServer: {get_param: NtpServer}
1144 UpdateIdentifier: {get_param: UpdateIdentifier}
1147 template: {get_param: BlockStorageHostnameFormat}
1149 '%stackname%': {get_param: 'OS::stack_name'}
1150 ServiceNetMap: {get_param: ServiceNetMap}
1151 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1152 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1153 ExtraConfig: {get_param: ExtraConfig}
1154 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1155 CloudDomain: {get_param: CloudDomain}
1156 ServerMetadata: {get_param: ServerMetadata}
1157 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1158 NodeIndex: '%index%'
1161 type: OS::Heat::ResourceGroup
1162 depends_on: Networks
1164 count: {get_param: ObjectStorageCount}
1165 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1167 type: OS::TripleO::ObjectStorage
1169 KeyName: {get_param: KeyName}
1170 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1171 HashSuffix: {get_param: SwiftHashSuffix}
1172 MountCheck: {get_param: SwiftMountCheck}
1173 MinPartHours: {get_param: SwiftMinPartHours}
1174 PartPower: {get_param: SwiftPartPower}
1175 Image: {get_param: SwiftStorageImage}
1176 Replicas: { get_param: SwiftReplicas}
1177 TimeZone: {get_param: TimeZone}
1178 NtpServer: {get_param: NtpServer}
1179 UpdateIdentifier: {get_param: UpdateIdentifier}
1180 ServiceNetMap: {get_param: ServiceNetMap}
1183 template: {get_param: ObjectStorageHostnameFormat}
1185 '%stackname%': {get_param: 'OS::stack_name'}
1186 ExtraConfig: {get_param: ExtraConfig}
1187 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1188 CloudDomain: {get_param: CloudDomain}
1189 ServerMetadata: {get_param: ServerMetadata}
1190 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1191 NodeIndex: '%index%'
1194 type: OS::Heat::ResourceGroup
1195 depends_on: Networks
1197 count: {get_param: CephStorageCount}
1198 removal_policies: {get_param: CephStorageRemovalPolicies}
1200 type: OS::TripleO::CephStorage
1202 Image: {get_param: CephStorageImage}
1203 KeyName: {get_param: KeyName}
1204 Flavor: {get_param: OvercloudCephStorageFlavor}
1205 NtpServer: {get_param: NtpServer}
1206 ServiceNetMap: {get_param: ServiceNetMap}
1207 TimeZone: {get_param: TimeZone}
1208 UpdateIdentifier: {get_param: UpdateIdentifier}
1211 template: {get_param: CephStorageHostnameFormat}
1213 '%stackname%': {get_param: 'OS::stack_name'}
1214 ExtraConfig: {get_param: ExtraConfig}
1215 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1216 CloudDomain: {get_param: CloudDomain}
1217 ServerMetadata: {get_param: ServerMetadata}
1218 SchedulerHints: {get_param: CephStorageSchedulerHints}
1219 NodeIndex: '%index%'
1221 ControllerIpListMap:
1222 type: OS::TripleO::Network::Ports::NetIpListMap
1224 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1225 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1226 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1227 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1228 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1229 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1230 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1233 type: OS::TripleO::AllNodes::SoftwareConfig
1235 compute_hosts: {get_attr: [Compute, hosts_entry]}
1236 controller_hosts: {get_attr: [Controller, hosts_entry]}
1237 controller_ips: {get_attr: [Controller, ip_address]}
1238 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1239 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1240 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1241 controller_names: {get_attr: [Controller, hostname]}
1242 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1243 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1244 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1245 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1246 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1247 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1248 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1249 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1250 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1251 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1252 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1253 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1254 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1255 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1256 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1257 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1258 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1259 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1260 DeployIdentifier: {get_param: DeployIdentifier}
1261 UpdateIdentifier: {get_param: UpdateIdentifier}
1264 type: OS::Heat::RandomString
1268 MysqlClusterUniquePart:
1269 type: OS::Heat::RandomString
1274 type: OS::Heat::RandomString
1277 salt: {get_param: RabbitCookieSalt}
1279 # creates the network architecture
1281 type: OS::TripleO::Network
1284 type: OS::Neutron::Port
1285 depends_on: Networks
1287 name: control_virtual_ip
1288 network: {get_param: NeutronControlPlaneID}
1289 fixed_ips: {get_param: ControlFixedIPs}
1290 replacement_policy: AUTO
1293 depends_on: Networks
1294 type: OS::TripleO::Network::Ports::RedisVipPort
1296 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1297 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1298 PortName: redis_virtual_ip
1299 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1302 # The public VIP is on the External net, falls back to ctlplane
1304 depends_on: Networks
1305 type: OS::TripleO::Network::Ports::ExternalVipPort
1307 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1308 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1309 PortName: public_virtual_ip
1310 FixedIPs: {get_param: PublicVirtualFixedIPs}
1312 InternalApiVirtualIP:
1313 depends_on: Networks
1314 type: OS::TripleO::Network::Ports::InternalApiVipPort
1316 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1317 PortName: internal_api_virtual_ip
1318 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1321 depends_on: Networks
1322 type: OS::TripleO::Network::Ports::StorageVipPort
1324 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1325 PortName: storage_virtual_ip
1326 FixedIPs: {get_param: StorageVirtualFixedIPs}
1328 StorageMgmtVirtualIP:
1329 depends_on: Networks
1330 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1332 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1333 PortName: storage_management_virtual_ip
1334 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1337 type: OS::TripleO::Network::Ports::NetVipMap
1339 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1340 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1341 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1342 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1343 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1344 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1345 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1346 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1347 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1348 # No tenant or management VIP required
1351 type: OS::TripleO::VipConfig
1354 type: OS::Heat::StructuredDeployments
1357 config: {get_resource: VipConfig}
1358 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1360 # service VIP mappings
1361 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1362 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1363 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1364 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1365 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1366 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1367 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1368 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1369 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1370 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1371 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1372 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1373 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1374 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1375 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1376 # direct configuration of Virtual IPs for each network
1377 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1378 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1379 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1380 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1381 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1382 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1384 ControllerBootstrapNodeConfig:
1385 type: OS::TripleO::BootstrapNode::SoftwareConfig
1387 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1388 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1390 ControllerBootstrapNodeDeployment:
1391 type: OS::Heat::StructuredDeployments
1393 name: ControllerBootstrapNodeDeployment
1394 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1395 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1397 ControllerSwiftDeployment:
1398 type: OS::Heat::StructuredDeployments
1400 name: ControllerSwiftDeployment
1401 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1402 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1404 ObjectStorageSwiftDeployment:
1405 type: OS::Heat::StructuredDeployments
1407 name: ObjectStorageSwiftDeployment
1408 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1409 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1411 SwiftDevicesAndProxyConfig:
1412 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1414 controller_swift_devices: {get_attr: [Controller, swift_device]}
1415 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1416 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1418 ComputeCephDeployment:
1419 type: OS::Heat::StructuredDeployments
1421 name: ComputeCephDeployment
1422 config: {get_attr: [CephClusterConfig, config_id]}
1423 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1425 ControllerCephDeployment:
1426 type: OS::Heat::StructuredDeployments
1428 name: ControllerCephDeployment
1429 config: {get_attr: [CephClusterConfig, config_id]}
1430 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1432 CephStorageCephDeployment:
1433 type: OS::Heat::StructuredDeployments
1435 name: CephStorageCephDeployment
1436 config: {get_attr: [CephClusterConfig, config_id]}
1437 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1440 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1442 ceph_storage_count: {get_param: CephStorageCount}
1443 ceph_fsid: {get_param: CephClusterFSID}
1444 ceph_mon_key: {get_param: CephMonKey}
1445 ceph_admin_key: {get_param: CephAdminKey}
1446 ceph_client_key: {get_param: CephClientKey}
1447 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1448 ceph_mon_names: {get_attr: [Controller, hostname]}
1449 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1451 ControllerClusterConfig:
1452 type: OS::Heat::StructuredConfig
1454 group: os-apply-config
1457 nodes: {get_attr: [Controller, corosync_node]}
1461 nodes: {get_attr: [Controller, hostname]}
1463 nodes: {get_attr: [Controller, corosync_node]}
1465 nodes: {get_attr: [Controller, corosync_node]}
1467 ControllerClusterDeployment:
1468 type: OS::Heat::StructuredDeployments
1470 name: ControllerClusterDeployment
1471 config: {get_resource: ControllerClusterConfig}
1472 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1474 ControllerAllNodesDeployment:
1475 type: OS::Heat::StructuredDeployments
1477 name: ControllerAllNodesDeployment
1478 config: {get_attr: [allNodesConfig, config_id]}
1479 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1481 ComputeAllNodesDeployment:
1482 type: OS::Heat::StructuredDeployments
1484 name: ComputeAllNodesDeployment
1485 config: {get_attr: [allNodesConfig, config_id]}
1486 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1488 BlockStorageAllNodesDeployment:
1489 type: OS::Heat::StructuredDeployments
1491 name: BlockStorageAllNodesDeployment
1492 config: {get_attr: [allNodesConfig, config_id]}
1493 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1495 ObjectStorageAllNodesDeployment:
1496 type: OS::Heat::StructuredDeployments
1498 name: ObjectStorageAllNodesDeployment
1499 config: {get_attr: [allNodesConfig, config_id]}
1500 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1502 CephStorageAllNodesDeployment:
1503 type: OS::Heat::StructuredDeployments
1505 name: CephStorageAllNodesDeployment
1506 config: {get_attr: [allNodesConfig, config_id]}
1507 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1509 # All Nodes Validations
1510 AllNodesValidationConfig:
1511 type: OS::TripleO::AllNodes::Validation
1516 - - {get_attr: [Controller, resource.0.external_ip_address]}
1517 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1518 - {get_attr: [Controller, resource.0.storage_ip_address]}
1519 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1520 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1522 ControllerAllNodesValidationDeployment:
1523 type: OS::Heat::StructuredDeployments
1524 depends_on: ControllerAllNodesDeployment
1526 name: ControllerAllNodesValidationDeployment
1527 config: {get_resource: AllNodesValidationConfig}
1528 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1530 ComputeAllNodesValidationDeployment:
1531 type: OS::Heat::StructuredDeployments
1532 depends_on: ComputeAllNodesDeployment
1534 name: ComputeAllNodesValidationDeployment
1535 config: {get_resource: AllNodesValidationConfig}
1536 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1538 BlockStorageAllNodesValidationDeployment:
1539 type: OS::Heat::StructuredDeployments
1540 depends_on: BlockStorageAllNodesDeployment
1542 name: BlockStorageAllNodesValidationDeployment
1543 config: {get_resource: AllNodesValidationConfig}
1544 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1546 ObjectStorageAllNodesValidationDeployment:
1547 type: OS::Heat::StructuredDeployments
1548 depends_on: ObjectStorageAllNodesDeployment
1550 name: ObjectStorageAllNodesValidationDeployment
1551 config: {get_resource: AllNodesValidationConfig}
1552 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1554 CephStorageAllNodesValidationDeployment:
1555 type: OS::Heat::StructuredDeployments
1556 depends_on: CephStorageAllNodesDeployment
1558 name: CephStorageAllNodesValidationDeployment
1559 config: {get_resource: AllNodesValidationConfig}
1560 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1563 type: OS::TripleO::Tasks::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 deploy_identifier: {get_param: DeployIdentifier}
1572 update_identifier: {get_param: UpdateIdentifier}
1574 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1575 # the nested template may configure each role differently (or not at all)
1576 AllNodesExtraConfig:
1577 type: OS::TripleO::AllNodesExtraConfig
1580 - ComputeAllNodesValidationDeployment
1581 - BlockStorageAllNodesValidationDeployment
1582 - ObjectStorageAllNodesValidationDeployment
1583 - CephStorageAllNodesValidationDeployment
1584 - ControllerAllNodesValidationDeployment
1586 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1587 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1588 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1589 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1590 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1592 # Nested stack deployment runs after all other controller deployments
1593 ControllerNodesPostDeployment:
1594 type: OS::TripleO::ControllerPostDeployment
1595 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1597 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1598 NodeConfigIdentifiers:
1599 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1600 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1601 deployment_identifier: {get_param: DeployIdentifier}
1603 ComputeNodesPostDeployment:
1604 type: OS::TripleO::ComputePostDeployment
1605 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1607 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1608 NodeConfigIdentifiers:
1609 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1610 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1611 deployment_identifier: {get_param: DeployIdentifier}
1613 ObjectStorageNodesPostDeployment:
1614 type: OS::TripleO::ObjectStoragePostDeployment
1615 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1617 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1618 NodeConfigIdentifiers:
1619 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1620 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1621 deployment_identifier: {get_param: DeployIdentifier}
1623 BlockStorageNodesPostDeployment:
1624 type: OS::TripleO::BlockStoragePostDeployment
1625 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1627 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1628 NodeConfigIdentifiers:
1629 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1630 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1631 deployment_identifier: {get_param: DeployIdentifier}
1633 CephStorageNodesPostDeployment:
1634 type: OS::TripleO::CephStoragePostDeployment
1635 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1637 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1638 NodeConfigIdentifiers:
1639 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1640 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1641 deployment_identifier: {get_param: DeployIdentifier}
1645 description: URL for the Overcloud Keystone service
1646 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1648 description: Keystone Admin VIP endpoint
1649 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1651 description: Controller VIP for public API endpoints
1652 value: {get_attr: [VipMap, net_ip_map, external]}
1653 CeilometerInternalVip:
1654 description: VIP for Ceilometer API internal endpoint
1655 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1657 description: VIP for Cinder API internal endpoint
1658 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1660 description: VIP for Glance API internal endpoint
1661 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1663 description: VIP for Heat API internal endpoint
1664 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1665 KeystoneInternalVip:
1666 description: VIP for Keystone API internal endpoint
1667 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1669 description: VIP for Neutron API internal endpoint
1670 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1672 description: VIP for Nova API internal endpoint
1673 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1675 description: VIP for Sahara API internal endpoint
1676 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1678 description: VIP for Swift Proxy internal endpoint
1679 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1682 The content that should be appended to your /etc/hosts if you want to get
1683 hostname-based access to the deployed nodes (useful for testing without
1685 value: {get_attr: [allNodesConfig, hosts_entries]}