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 password for the aodh services.
26 description: The ceilometer backend type.
28 CeilometerMeteringSecret:
29 description: Secret shared by the ceilometer services.
33 description: The password for the ceilometer service account.
36 # This has to be an UUID so for now we generate it outside the template
40 description: The Ceph cluster FSID. Must be a UUID.
43 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
48 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
51 CinderEnableNfsBackend:
53 description: Whether to enable or not the NFS backend for Cinder
57 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.
63 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
64 CinderEnableIscsiBackend:
66 description: Whether to enable or not the Iscsi backend for Cinder
68 CinderEnableRbdBackend:
70 description: Whether to enable or not the Rbd backend for Cinder
74 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
78 description: Should be used for arbitrary ips.
82 description: Enable IPv6 in Corosync
86 description: Set to True to enable debugging on all services.
90 description: Syslog address where HAproxy will send its log
94 description: A list of IP/Hostname allowed to connect to horizon
95 type: comma_delimited_list
97 default: 'REBUILD_PRESERVE_EPHEMERAL'
98 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
100 InternalApiVirtualFixedIPs:
103 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
104 [{'ip_address':'1.2.3.4'}]
108 description: Name of an existing Nova key pair to enable SSH access to the instances
111 - custom_constraint: nova.keypair
114 description: Enable IPv6 features in Memcached.
116 NeutronExternalNetworkBridge:
117 description: Name of bridge used for external network traffic.
120 NeutronBridgeMappings:
122 The OVS logical->physical bridge mappings to use. See the Neutron
123 documentation for details. Defaults to mapping br-ex - the external
124 bridge on hosts - to a physical name 'datacentre' which can be used
125 to create provider networks (and we use this for the default floating
126 network) - if changing this either use different post-install network
127 scripts or be sure to keep 'datacentre' as a mapping network name.
128 type: comma_delimited_list
129 default: "datacentre:br-ex"
130 NeutronControlPlaneID:
133 description: Neutron ID or name for ctlplane network.
134 NeutronEnableIsolatedMetadata:
136 description: If True, DHCP provide metadata route to VM.
138 NeutronEnableTunnelling:
144 Enable/disable the L2 population feature in the Neutron agents.
147 type: comma_delimited_list
148 default: 'datacentre'
150 If set, flat networks to configure in neutron plugins. Defaults to
151 'datacentre' to permit external network creation.
154 description: The tenant network type for Neutron.
155 type: comma_delimited_list
157 description: The password for the neutron service account, used by neutron agents.
160 NeutronPublicInterface:
162 description: What interface to bridge onto br-ex for network nodes.
164 NeutronPublicInterfaceTag:
167 VLAN tag for creating a public VLAN. The tag will be used to
168 create an access port on the exterior bridge for each control plane node,
169 and that port will be given the IP address returned by neutron from the
170 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
171 overcloud.yaml to include the deployment of VLAN ports to the control
174 NeutronComputeAgentMode:
176 description: Agent mode for the neutron-l3-agent on the compute hosts
180 description: Agent mode for the neutron-l3-agent on the controller hosts
184 description: Whether to configure Neutron Distributed Virtual Routers
186 NeutronMetadataProxySharedSecret:
187 description: Shared secret to prevent spoofing
192 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
193 be at least 50 bytes smaller than the MTU on the physical network. This
194 value will be used to set the MTU on the virtual Ethernet device.
195 This value will be used to construct the NeutronDnsmasqOptions, since that
196 will determine the MTU that is assigned to the VM host through DHCP.
202 The tunnel types for the Neutron tenant network.
203 type: comma_delimited_list
204 NeutronTunnelIdRanges:
206 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
207 of GRE tunnel IDs that are available for tenant network allocation
208 default: ["1:4094", ]
209 type: comma_delimited_list
212 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
213 of VXLAN VNI IDs that are available for tenant network allocation
214 default: ["1:4094", ]
215 type: comma_delimited_list
219 The core plugin for Neutron. The value should be the entrypoint to be loaded
220 from neutron.core_plugins namespace.
222 NeutronServicePlugins:
223 default: "router,qos"
225 Comma-separated list of service plugin entrypoints to be loaded from the
226 neutron.service_plugins namespace.
227 type: comma_delimited_list
229 default: "vxlan,vlan,flat,gre"
231 Comma-separated list of network type driver entrypoints to be loaded.
232 type: comma_delimited_list
233 NeutronMechanismDrivers:
234 default: 'openvswitch'
236 The mechanism drivers for the Neutron tenant network.
237 type: comma_delimited_list
238 NeutronPluginExtensions:
239 default: "qos,port_security"
241 Comma-separated list of extensions enabled for the Neutron plugin.
242 type: comma_delimited_list
243 NeutronAgentExtensions:
246 Comma-separated list of extensions enabled for the Neutron agents.
247 type: comma_delimited_list
248 NeutronAllowL3AgentFailover:
250 description: Allow automatic l3-agent failover
254 description: Whether to enable l3-agent HA
256 NeutronDhcpAgentsPerNetwork:
259 description: The number of neutron dhcp agents to schedule per network
262 description: Enable IPv6 features in Nova
265 description: The password for the nova service account, used by nova-api.
270 description: Comma-separated list of ntp servers
271 type: comma_delimited_list
274 description: Should MongoDb journaling be disabled
278 description: Enable IPv6 if MongoDB VIP is IPv6
280 PublicVirtualFixedIPs:
283 Control the IP allocation for the PublicVirtualInterface port. E.g.
284 [{'ip_address':'1.2.3.4'}]
289 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
292 description: The username for RabbitMQ
295 description: The password for RabbitMQ
301 Rabbit client subscriber parameter to specify
302 an SSL connection to the RabbitMQ host.
306 description: Set rabbit subscriber port, change this if using SSL
308 # We need to set this as string because 'unlimited' is a valid setting
311 description: Configures RabbitMQ FD limit
315 description: Enable IPv6 in RabbitMQ
318 description: The password for Redis
321 SnmpdReadonlyUserName:
322 default: ro_snmp_user
323 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
325 SnmpdReadonlyUserPassword:
326 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
329 StorageVirtualFixedIPs:
332 Control the IP allocation for the StorageVirtualInterface port. E.g.
333 [{'ip_address':'1.2.3.4'}]
335 StorageMgmtVirtualFixedIPs:
338 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
339 [{'ip_address':'1.2.3.4'}]
343 description: The timezone to be set on nodes.
346 default: 'localdomain'
349 The DNS domain used for the hosts. This should match the dhcp_domain
350 configured in the Undercloud neutron. Defaults to localdomain.
354 Extra properties or metadata passed to Nova for the created nodes in
355 the overcloud. It's accessible via the Nova metadata API.
358 # Controller-specific params
360 description: The keystone auth secret.
363 CinderLVMLoopDeviceSize:
365 description: The size of the loopback file used by the cinder LVM driver.
367 CinderNfsMountOptions:
370 Mount options for NFS mounts used by Cinder NFS backend. Effective
371 when CinderEnableNfsBackend is true.
376 NFS servers used by Cinder NFS backend. Effective when
377 CinderEnableNfsBackend is true.
378 type: comma_delimited_list
380 description: The password for the cinder service account, used by cinder-api.
385 description: The iSCSI helper to use with cinder.
392 controllerExtraConfig:
395 Controller specific configuration to inject into the cluster. Same
396 structure as ExtraConfig.
400 default: overcloud-full
402 - custom_constraint: glance.image
403 OvercloudControlFlavor:
404 description: Flavor for control nodes to request when deploying.
408 - custom_constraint: nova.flavor
409 ControlVirtualInterface:
411 description: Interface where virtual ip will be assigned.
415 description: Whether to enable fencing in Pacemaker or not.
419 description: Whether to use Galera instead of regular MariaDB.
421 ControllerEnableCephStorage:
423 description: Whether to deploy Ceph Storage (OSD) on the Controller
425 ControllerEnableSwiftStorage:
427 description: Whether to enable Swift Storage on the Controller
429 ControllerSchedulerHints:
431 description: Optional scheduler hints to pass to nova
436 Additional configuration to inject into the cluster. The format required
437 may be implementation specific, e.g puppet hieradata. Any role specific
438 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
443 Pacemaker fencing configuration. The JSON should have
444 the following structure:
448 "agent": "AGENT_NAME",
449 "host_mac": "HOST_MAC_ADDRESS",
450 "params": {"PARAM_NAME": "PARAM_VALUE"}
458 "agent": "fence_xvm",
459 "host_mac": "52:54:00:aa:bb:cc",
461 "multicast_address": "225.0.0.12",
462 "port": "baremetal_0",
464 "manage_key_file": true,
465 "key_file": "/etc/fence_xvm.key",
466 "key_file_password": "abcdef"
473 description: The filepath of the file to use for logging messages from Glance.
476 GlanceNotifierStrategy:
477 description: Strategy to use for Glance notification queue
481 description: The password for the glance service account, used by the glance services.
486 description: The short name of the Glance backend to use. Should be one
487 of swift, rbd or file
490 - allowed_values: ['swift', 'file', 'rbd']
492 description: The password for the Heat service account, used by the Heat services.
495 HeatStackDomainAdminPassword:
496 description: Password for heat_stack_domain_admin user.
499 InstanceNameTemplate:
500 default: 'instance-%08x'
501 description: Template string to be used to generate instance names
503 KeystoneCACertificate:
505 description: Keystone self-signed certificate authority certificate.
507 KeystoneSigningCertificate:
509 description: Keystone certificate for verifying token validity.
513 description: Keystone key for signing tokens.
516 KeystoneSSLCertificate:
518 description: Keystone certificate for verifying token validity.
520 KeystoneSSLCertificateKey:
522 description: Keystone key for signing tokens.
525 KeystoneNotificationDriver:
526 description: Comma-separated list of Oslo notification drivers used by Keystone
527 default: ['messaging']
528 type: comma_delimited_list
529 KeystoneNotificationFormat:
530 description: The Keystone notification format
534 - allowed_values: [ 'basic', 'cadf' ]
537 description: Whether to manage IPtables rules.
541 description: Whether IPtables rules should be purged before setting up the ones.
543 MysqlInnodbBufferPoolSize:
545 Specifies the size of the buffer pool in megabytes. Setting to
546 zero should be interpreted as "no value" and will defer to the
551 description: Configures MySQL max_connections config setting
554 NeutronDnsmasqOptions:
555 default: 'dhcp-option-force=26,%MTU%'
557 Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU
558 to be set to the value of NeutronTenantMtu, which should be set to account
561 NeutronPublicInterfaceDefaultRoute:
563 description: A custom default route for the NeutronPublicInterface.
565 NeutronPublicInterfaceIP:
567 description: A custom IP address to put onto the NeutronPublicInterface.
569 NeutronPublicInterfaceRawDevice:
571 description: If set, the public interface is a vlan with this device as the raw device.
573 PublicVirtualInterface:
576 Specifies the interface where the public-facing virtual ip will be assigned.
577 This should be int_public when a VLAN is being used.
580 description: A random string to be used as a salt when hashing to determine mappings in the ring.
584 description: The password for the swift service account, used by the swift proxy services.
589 description: Value of mount_check in Swift account/container/object -server.conf
594 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
597 description: Partition Power to use when building Swift rings
602 description: How many replicas to use in the swift rings.
604 description: The password for the sahara service account.
608 # Compute-specific params
609 CeilometerComputeAgent:
610 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
614 - allowed_values: ['', Present]
618 HypervisorNeutronPhysicalBridge:
621 An OVS bridge to create on each hypervisor. This defaults to br-ex the
622 same as the control plane nodes, as we have a uniform configuration of
623 the openvswitch agent. Typically should not need to be changed.
625 HypervisorNeutronPublicInterface:
627 description: What interface to add to the HypervisorNeutronPhysicalBridge.
629 NeutronNetworkVLANRanges:
630 default: 'datacentre:1:1000'
632 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
633 Neutron documentation for permitted values. Defaults to permitting any
634 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
635 type: comma_delimited_list
638 default: libvirt.LibvirtDriver
639 NovaComputeExtraConfig:
642 NovaCompute specific configuration to inject into the cluster. Same
643 structure as ExtraConfig.
645 NovaComputeLibvirtType:
648 NovaComputeLibvirtVifDriver:
650 description: Libvirt VIF driver configuration for the network
652 NovaComputeSchedulerHints:
654 description: Optional scheduler hints to pass to nova
656 NovaEnableRbdBackend:
658 description: Whether to enable or not the Rbd backend for Nova
662 default: overcloud-full
664 - custom_constraint: glance.image
667 description: Name of integration bridge used by Open vSwitch
669 NovaSecurityGroupAPI:
671 description: The full class name of the security API class
673 OvercloudComputeFlavor:
674 description: Use this flavor
678 - custom_constraint: nova.flavor
681 NeutronTenantNetwork: tenant
682 CeilometerApiNetwork: internal_api
683 AodhApiNetwork: internal_api
684 MongoDbNetwork: internal_api
685 CinderApiNetwork: internal_api
686 CinderIscsiNetwork: storage
687 GlanceApiNetwork: storage
688 GlanceRegistryNetwork: internal_api
689 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
690 KeystonePublicApiNetwork: internal_api
691 NeutronApiNetwork: internal_api
692 HeatApiNetwork: internal_api
693 NovaApiNetwork: internal_api
694 NovaMetadataNetwork: internal_api
695 NovaVncProxyNetwork: internal_api
696 SwiftMgmtNetwork: storage_mgmt
697 SwiftProxyNetwork: storage
698 SaharaApiNetwork: internal_api
699 HorizonNetwork: internal_api
700 MemcachedNetwork: internal_api
701 RabbitMqNetwork: internal_api
702 RedisNetwork: internal_api
703 MysqlNetwork: internal_api
704 CephClusterNetwork: storage_mgmt
705 CephPublicNetwork: storage
706 ControllerHostnameResolveNetwork: internal_api
707 ComputeHostnameResolveNetwork: internal_api
708 BlockStorageHostnameResolveNetwork: internal_api
709 ObjectStorageHostnameResolveNetwork: internal_api
710 CephStorageHostnameResolveNetwork: storage
711 description: Mapping of service_name -> network name. Typically set
712 via parameter_defaults in the resource registry.
715 # Block storage specific parameters
720 default: overcloud-full
722 OvercloudBlockStorageFlavor:
723 description: Flavor for block storage nodes to request when deploying.
727 - custom_constraint: nova.flavor
728 BlockStorageExtraConfig:
731 BlockStorage specific configuration to inject into the cluster. Same
732 structure as ExtraConfig.
734 BlockStorageSchedulerHints:
736 description: Optional scheduler hints to pass to nova
740 # Object storage specific parameters
744 OvercloudSwiftStorageFlavor:
745 description: Flavor for Swift storage nodes to request when deploying.
749 - custom_constraint: nova.flavor
751 default: overcloud-full
753 ObjectStorageExtraConfig:
756 ObjectStorage specific configuration to inject into the cluster. Same
757 structure as ExtraConfig.
759 ObjectStorageSchedulerHints:
761 description: Optional scheduler hints to pass to nova
764 # Ceph storage specific parameters
769 default: overcloud-full
771 OvercloudCephStorageFlavor:
773 description: Flavor for Ceph storage nodes to request when deploying.
776 - custom_constraint: nova.flavor
777 CephStorageExtraConfig:
780 CephStorage specific configuration to inject into the cluster. Same
781 structure as ExtraConfig.
783 CephStorageSchedulerHints:
785 description: Optional scheduler hints to pass to nova
789 # Hostname format for each role
790 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
791 # and %stackname% is replaced with OS::stack_name in the template below.
792 # If you want to use the heat generated names, pass '' (empty string).
793 ControllerHostnameFormat:
795 description: Format for Controller node hostnames
796 default: '%stackname%-controller-%index%'
797 ComputeHostnameFormat:
799 description: Format for Compute node hostnames
800 default: '%stackname%-novacompute-%index%'
801 BlockStorageHostnameFormat:
803 description: Format for BlockStorage node hostnames
804 default: '%stackname%-blockstorage-%index%'
805 ObjectStorageHostnameFormat:
807 description: Format for SwiftStorage node hostnames
808 default: '%stackname%-objectstorage-%index%'
809 CephStorageHostnameFormat:
811 description: Format for CephStorage node hostnames
812 default: '%stackname%-cephstorage-%index%'
814 # Identifiers to trigger tasks on nodes
819 Setting to a previously unused value during stack-update will trigger
820 package update on all nodes
825 Setting this to a unique value will re-run any deployment tasks which
826 perform configuration on a Heat stack-update.
828 # If you want to remove a specific node from a resource group, you can pass
829 # the node name or id as a <Group>RemovalPolicies parameter, for example:
830 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
831 ControllerRemovalPolicies:
835 List of resources to be removed from ControllerResourceGroup when
836 doing an update which requires removal of specific resources.
837 ComputeRemovalPolicies:
841 List of resources to be removed from ComputeResourceGroup when
842 doing an update which requires removal of specific resources.
843 BlockStorageRemovalPolicies:
847 List of resources to be removed from BlockStorageResourceGroup when
848 doing an update which requires removal of specific resources.
849 ObjectStorageRemovalPolicies:
853 List of resources to be removed from ObjectStorageResourceGroup when
854 doing an update which requires removal of specific resources.
855 CephStorageRemovalPolicies:
859 List of resources to be removed from CephStorageResourceGroup when
860 doing an update which requires removal of specific resources.
865 HeatAuthEncryptionKey:
866 type: OS::Heat::RandomString
869 type: OS::Heat::RandomString
874 type: OS::Heat::RandomString
879 type: OS::TripleO::EndpointMap
881 CloudName: {get_param: CloudName}
882 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
883 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
884 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
885 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
886 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
887 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
888 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
889 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
890 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
891 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
892 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
893 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
894 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
897 type: OS::Heat::ResourceGroup
900 count: {get_param: ControllerCount}
901 removal_policies: {get_param: ControllerRemovalPolicies}
903 type: OS::TripleO::Controller
905 AdminPassword: {get_param: AdminPassword}
906 AdminToken: {get_param: AdminToken}
907 AodhPassword: {get_param: AodhPassword}
908 CeilometerBackend: {get_param: CeilometerBackend}
909 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
910 CeilometerPassword: {get_param: CeilometerPassword}
911 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
912 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
913 CinderNfsServers: {get_param: CinderNfsServers}
914 CinderPassword: {get_param: CinderPassword}
915 CinderISCSIHelper: {get_param: CinderISCSIHelper}
916 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
917 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
918 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
919 CloudDomain: {get_param: CloudDomain}
920 ControlVirtualInterface: {get_param: ControlVirtualInterface}
921 ControllerExtraConfig: {get_param: controllerExtraConfig}
922 CorosyncIPv6: {get_param: CorosyncIPv6}
923 Debug: {get_param: Debug}
924 EnableFencing: {get_param: EnableFencing}
925 ManageFirewall: {get_param: ManageFirewall}
926 PurgeFirewallRules: {get_param: PurgeFirewallRules}
927 EnableGalera: {get_param: EnableGalera}
928 EnableCephStorage: {get_param: ControllerEnableCephStorage}
929 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
930 ExtraConfig: {get_param: ExtraConfig}
931 FencingConfig: {get_param: FencingConfig}
932 Flavor: {get_param: OvercloudControlFlavor}
933 GlancePassword: {get_param: GlancePassword}
934 GlanceBackend: {get_param: GlanceBackend}
935 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
936 GlanceLogFile: {get_param: GlanceLogFile}
937 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
938 HeatPassword: {get_param: HeatPassword}
939 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
940 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
941 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
942 HorizonSecret: {get_resource: HorizonSecret}
943 Image: {get_param: controllerImage}
944 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
945 InstanceNameTemplate: {get_param: InstanceNameTemplate}
946 KeyName: {get_param: KeyName}
947 KeystoneCACertificate: {get_param: KeystoneCACertificate}
948 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
949 KeystoneSigningKey: {get_param: KeystoneSigningKey}
950 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
951 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
952 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
953 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
954 MemcachedIPv6: {get_param: MemcachedIPv6}
955 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
956 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
957 MysqlMaxConnections: {get_param: MysqlMaxConnections}
958 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
959 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
960 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
961 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
962 NeutronTenantMtu: {get_param: NeutronTenantMtu}
963 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
964 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
965 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
966 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
967 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
968 NeutronPublicInterface: {get_param: NeutronPublicInterface}
969 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
970 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
971 NeutronPassword: {get_param: NeutronPassword}
972 NeutronDnsmasqOptions:
974 template: {get_param: NeutronDnsmasqOptions}
976 '%MTU%': {get_param: NeutronTenantMtu}
977 NeutronDVR: {get_param: NeutronDVR}
978 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
979 NeutronAgentMode: {get_param: NeutronAgentMode}
980 NeutronCorePlugin: {get_param: NeutronCorePlugin}
981 NeutronServicePlugins: {get_param: NeutronServicePlugins}
982 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
983 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
984 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
985 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
986 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
987 NeutronL3HA: {get_param: NeutronL3HA}
988 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
989 NeutronNetworkType: {get_param: NeutronNetworkType}
990 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
991 NovaIPv6: {get_param: NovaIPv6}
992 NovaPassword: {get_param: NovaPassword}
993 NtpServer: {get_param: NtpServer}
994 MongoDbNoJournal: {get_param: MongoDbNoJournal}
995 MongoDbIPv6: {get_param: MongoDbIPv6}
996 PcsdPassword: {get_resource: PcsdPassword}
997 PublicVirtualInterface: {get_param: PublicVirtualInterface}
998 RabbitPassword: {get_param: RabbitPassword}
999 RabbitUserName: {get_param: RabbitUserName}
1000 RabbitCookie: {get_attr: [RabbitCookie, value]}
1001 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1002 RabbitClientPort: {get_param: RabbitClientPort}
1003 RabbitFDLimit: {get_param: RabbitFDLimit}
1004 RabbitIPv6: {get_param: RabbitIPv6}
1005 RedisPassword: {get_param: RedisPassword}
1006 SaharaPassword: {get_param: SaharaPassword}
1007 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1008 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1009 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
1010 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
1011 SwiftHashSuffix: {get_param: SwiftHashSuffix}
1012 SwiftMountCheck: {get_param: SwiftMountCheck}
1013 SwiftMinPartHours: {get_param: SwiftMinPartHours}
1014 SwiftPartPower: {get_param: SwiftPartPower}
1015 SwiftPassword: {get_param: SwiftPassword}
1016 SwiftReplicas: { get_param: SwiftReplicas}
1017 TimeZone: {get_param: TimeZone}
1018 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
1019 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
1020 ServiceNetMap: {get_param: ServiceNetMap}
1021 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1022 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1023 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1024 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1025 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1026 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1027 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1028 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1029 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1030 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1031 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1032 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1033 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1034 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1035 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1036 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1037 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1038 UpdateIdentifier: {get_param: UpdateIdentifier}
1041 template: {get_param: ControllerHostnameFormat}
1043 '%stackname%': {get_param: 'OS::stack_name'}
1044 NodeIndex: '%index%'
1045 ServerMetadata: {get_param: ServerMetadata}
1046 SchedulerHints: {get_param: ControllerSchedulerHints}
1049 type: OS::Heat::ResourceGroup
1050 depends_on: Networks
1052 count: {get_param: ComputeCount}
1053 removal_policies: {get_param: ComputeRemovalPolicies}
1055 type: OS::TripleO::Compute
1057 AdminPassword: {get_param: AdminPassword}
1058 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1059 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1060 CeilometerPassword: {get_param: CeilometerPassword}
1061 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1062 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1063 Debug: {get_param: Debug}
1064 ExtraConfig: {get_param: ExtraConfig}
1065 Flavor: {get_param: OvercloudComputeFlavor}
1066 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1067 Image: {get_param: NovaImage}
1068 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1069 KeyName: {get_param: KeyName}
1070 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1071 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1072 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1073 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1074 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1075 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1076 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1077 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1078 NeutronNetworkType: {get_param: NeutronNetworkType}
1079 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1080 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1081 NeutronPassword: {get_param: NeutronPassword}
1082 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1083 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1084 NeutronDVR: {get_param: NeutronDVR}
1085 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1086 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1087 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1088 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1089 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1090 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1091 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1092 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1093 # L3 HA and Failover is not relevant for Computes, should be removed
1094 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1095 NeutronL3HA: {get_param: NeutronL3HA}
1096 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1097 NovaComputeDriver: {get_param: NovaComputeDriver}
1098 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1099 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1100 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1101 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1102 NovaIPv6: {get_param: NovaIPv6}
1103 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1104 NovaPassword: {get_param: NovaPassword}
1105 NovaOVSBridge: {get_param: NovaOVSBridge}
1106 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1107 NtpServer: {get_param: NtpServer}
1108 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1109 RabbitPassword: {get_param: RabbitPassword}
1110 RabbitUserName: {get_param: RabbitUserName}
1111 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1112 RabbitClientPort: {get_param: RabbitClientPort}
1113 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1114 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1115 ServiceNetMap: {get_param: ServiceNetMap}
1116 TimeZone: {get_param: TimeZone}
1117 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1118 UpdateIdentifier: {get_param: UpdateIdentifier}
1121 template: {get_param: ComputeHostnameFormat}
1123 '%stackname%': {get_param: 'OS::stack_name'}
1124 CloudDomain: {get_param: CloudDomain}
1125 ServerMetadata: {get_param: ServerMetadata}
1126 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1127 NodeIndex: '%index%'
1130 type: OS::Heat::ResourceGroup
1131 depends_on: Networks
1133 count: {get_param: BlockStorageCount}
1134 removal_policies: {get_param: BlockStorageRemovalPolicies}
1136 type: OS::TripleO::BlockStorage
1138 Debug: {get_param: Debug}
1139 Image: {get_param: BlockStorageImage}
1140 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1141 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1142 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1143 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1144 CinderPassword: {get_param: CinderPassword}
1145 KeyName: {get_param: KeyName}
1146 Flavor: {get_param: OvercloudBlockStorageFlavor}
1147 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1148 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1149 RabbitPassword: {get_param: RabbitPassword}
1150 RabbitUserName: {get_param: RabbitUserName}
1151 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1152 RabbitClientPort: {get_param: RabbitClientPort}
1153 TimeZone: {get_param: TimeZone}
1154 NtpServer: {get_param: NtpServer}
1155 UpdateIdentifier: {get_param: UpdateIdentifier}
1158 template: {get_param: BlockStorageHostnameFormat}
1160 '%stackname%': {get_param: 'OS::stack_name'}
1161 ServiceNetMap: {get_param: ServiceNetMap}
1162 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1163 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1164 ExtraConfig: {get_param: ExtraConfig}
1165 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1166 CloudDomain: {get_param: CloudDomain}
1167 ServerMetadata: {get_param: ServerMetadata}
1168 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1169 NodeIndex: '%index%'
1172 type: OS::Heat::ResourceGroup
1173 depends_on: Networks
1175 count: {get_param: ObjectStorageCount}
1176 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1178 type: OS::TripleO::ObjectStorage
1180 KeyName: {get_param: KeyName}
1181 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1182 HashSuffix: {get_param: SwiftHashSuffix}
1183 MountCheck: {get_param: SwiftMountCheck}
1184 MinPartHours: {get_param: SwiftMinPartHours}
1185 PartPower: {get_param: SwiftPartPower}
1186 Image: {get_param: SwiftStorageImage}
1187 Replicas: { get_param: SwiftReplicas}
1188 TimeZone: {get_param: TimeZone}
1189 NtpServer: {get_param: NtpServer}
1190 UpdateIdentifier: {get_param: UpdateIdentifier}
1191 ServiceNetMap: {get_param: ServiceNetMap}
1194 template: {get_param: ObjectStorageHostnameFormat}
1196 '%stackname%': {get_param: 'OS::stack_name'}
1197 ExtraConfig: {get_param: ExtraConfig}
1198 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1199 CloudDomain: {get_param: CloudDomain}
1200 ServerMetadata: {get_param: ServerMetadata}
1201 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1202 NodeIndex: '%index%'
1205 type: OS::Heat::ResourceGroup
1206 depends_on: Networks
1208 count: {get_param: CephStorageCount}
1209 removal_policies: {get_param: CephStorageRemovalPolicies}
1211 type: OS::TripleO::CephStorage
1213 Image: {get_param: CephStorageImage}
1214 KeyName: {get_param: KeyName}
1215 Flavor: {get_param: OvercloudCephStorageFlavor}
1216 NtpServer: {get_param: NtpServer}
1217 ServiceNetMap: {get_param: ServiceNetMap}
1218 TimeZone: {get_param: TimeZone}
1219 UpdateIdentifier: {get_param: UpdateIdentifier}
1222 template: {get_param: CephStorageHostnameFormat}
1224 '%stackname%': {get_param: 'OS::stack_name'}
1225 ExtraConfig: {get_param: ExtraConfig}
1226 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1227 CloudDomain: {get_param: CloudDomain}
1228 ServerMetadata: {get_param: ServerMetadata}
1229 SchedulerHints: {get_param: CephStorageSchedulerHints}
1230 NodeIndex: '%index%'
1232 ControllerIpListMap:
1233 type: OS::TripleO::Network::Ports::NetIpListMap
1235 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1236 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1237 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1238 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1239 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1240 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1241 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1244 type: OS::TripleO::AllNodes::SoftwareConfig
1246 compute_hosts: {get_attr: [Compute, hosts_entry]}
1247 controller_hosts: {get_attr: [Controller, hosts_entry]}
1248 controller_ips: {get_attr: [Controller, ip_address]}
1249 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1250 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1251 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1252 controller_names: {get_attr: [Controller, hostname]}
1253 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1254 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1255 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1256 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1257 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1258 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1259 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1260 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1261 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1262 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1263 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1264 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1265 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1266 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1267 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1268 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1269 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1270 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1271 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1272 DeployIdentifier: {get_param: DeployIdentifier}
1273 UpdateIdentifier: {get_param: UpdateIdentifier}
1276 type: OS::Heat::RandomString
1280 MysqlClusterUniquePart:
1281 type: OS::Heat::RandomString
1286 type: OS::Heat::RandomString
1289 salt: {get_param: RabbitCookieSalt}
1291 # creates the network architecture
1293 type: OS::TripleO::Network
1296 type: OS::Neutron::Port
1297 depends_on: Networks
1299 name: control_virtual_ip
1300 network: {get_param: NeutronControlPlaneID}
1301 fixed_ips: {get_param: ControlFixedIPs}
1302 replacement_policy: AUTO
1305 depends_on: Networks
1306 type: OS::TripleO::Network::Ports::RedisVipPort
1308 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1309 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1310 PortName: redis_virtual_ip
1311 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1314 # The public VIP is on the External net, falls back to ctlplane
1316 depends_on: Networks
1317 type: OS::TripleO::Network::Ports::ExternalVipPort
1319 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1320 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1321 PortName: public_virtual_ip
1322 FixedIPs: {get_param: PublicVirtualFixedIPs}
1324 InternalApiVirtualIP:
1325 depends_on: Networks
1326 type: OS::TripleO::Network::Ports::InternalApiVipPort
1328 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1329 PortName: internal_api_virtual_ip
1330 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1333 depends_on: Networks
1334 type: OS::TripleO::Network::Ports::StorageVipPort
1336 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1337 PortName: storage_virtual_ip
1338 FixedIPs: {get_param: StorageVirtualFixedIPs}
1340 StorageMgmtVirtualIP:
1341 depends_on: Networks
1342 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1344 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1345 PortName: storage_management_virtual_ip
1346 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1349 type: OS::TripleO::Network::Ports::NetVipMap
1351 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1352 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1353 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1354 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1355 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1356 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1357 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1358 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1359 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1360 # No tenant or management VIP required
1363 type: OS::TripleO::VipConfig
1366 type: OS::Heat::StructuredDeployments
1369 config: {get_resource: VipConfig}
1370 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1372 # service VIP mappings
1373 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1374 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1375 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1376 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1377 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1378 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1379 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1380 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1381 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1382 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1383 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1384 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1385 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1386 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1387 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1388 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1389 # direct configuration of Virtual IPs for each network
1390 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1391 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1392 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1393 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1394 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1395 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1397 ControllerBootstrapNodeConfig:
1398 type: OS::TripleO::BootstrapNode::SoftwareConfig
1400 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1401 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1403 ControllerBootstrapNodeDeployment:
1404 type: OS::Heat::StructuredDeployments
1406 name: ControllerBootstrapNodeDeployment
1407 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1408 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1410 ControllerSwiftDeployment:
1411 type: OS::Heat::StructuredDeployments
1413 name: ControllerSwiftDeployment
1414 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1415 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1417 ObjectStorageSwiftDeployment:
1418 type: OS::Heat::StructuredDeployments
1420 name: ObjectStorageSwiftDeployment
1421 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1422 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1424 SwiftDevicesAndProxyConfig:
1425 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1427 controller_swift_devices: {get_attr: [Controller, swift_device]}
1428 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1429 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1431 ComputeCephDeployment:
1432 type: OS::Heat::StructuredDeployments
1434 name: ComputeCephDeployment
1435 config: {get_attr: [CephClusterConfig, config_id]}
1436 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1438 ControllerCephDeployment:
1439 type: OS::Heat::StructuredDeployments
1441 name: ControllerCephDeployment
1442 config: {get_attr: [CephClusterConfig, config_id]}
1443 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1445 CephStorageCephDeployment:
1446 type: OS::Heat::StructuredDeployments
1448 name: CephStorageCephDeployment
1449 config: {get_attr: [CephClusterConfig, config_id]}
1450 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1453 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1455 ceph_storage_count: {get_param: CephStorageCount}
1456 ceph_fsid: {get_param: CephClusterFSID}
1457 ceph_mon_key: {get_param: CephMonKey}
1458 ceph_admin_key: {get_param: CephAdminKey}
1459 ceph_client_key: {get_param: CephClientKey}
1460 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1461 ceph_mon_names: {get_attr: [Controller, hostname]}
1462 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1464 ControllerClusterConfig:
1465 type: OS::Heat::StructuredConfig
1467 group: os-apply-config
1470 nodes: {get_attr: [Controller, corosync_node]}
1474 nodes: {get_attr: [Controller, hostname]}
1476 nodes: {get_attr: [Controller, corosync_node]}
1478 nodes: {get_attr: [Controller, corosync_node]}
1480 ControllerClusterDeployment:
1481 type: OS::Heat::StructuredDeployments
1483 name: ControllerClusterDeployment
1484 config: {get_resource: ControllerClusterConfig}
1485 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1487 ControllerAllNodesDeployment:
1488 type: OS::Heat::StructuredDeployments
1490 name: ControllerAllNodesDeployment
1491 config: {get_attr: [allNodesConfig, config_id]}
1492 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1494 ComputeAllNodesDeployment:
1495 type: OS::Heat::StructuredDeployments
1497 name: ComputeAllNodesDeployment
1498 config: {get_attr: [allNodesConfig, config_id]}
1499 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1501 BlockStorageAllNodesDeployment:
1502 type: OS::Heat::StructuredDeployments
1504 name: BlockStorageAllNodesDeployment
1505 config: {get_attr: [allNodesConfig, config_id]}
1506 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1508 ObjectStorageAllNodesDeployment:
1509 type: OS::Heat::StructuredDeployments
1511 name: ObjectStorageAllNodesDeployment
1512 config: {get_attr: [allNodesConfig, config_id]}
1513 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1515 CephStorageAllNodesDeployment:
1516 type: OS::Heat::StructuredDeployments
1518 name: CephStorageAllNodesDeployment
1519 config: {get_attr: [allNodesConfig, config_id]}
1520 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1522 # All Nodes Validations
1523 AllNodesValidationConfig:
1524 type: OS::TripleO::AllNodes::Validation
1529 - - {get_attr: [Controller, resource.0.external_ip_address]}
1530 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1531 - {get_attr: [Controller, resource.0.storage_ip_address]}
1532 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1533 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1535 ControllerAllNodesValidationDeployment:
1536 type: OS::Heat::StructuredDeployments
1537 depends_on: ControllerAllNodesDeployment
1539 name: ControllerAllNodesValidationDeployment
1540 config: {get_resource: AllNodesValidationConfig}
1541 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1543 ComputeAllNodesValidationDeployment:
1544 type: OS::Heat::StructuredDeployments
1545 depends_on: ComputeAllNodesDeployment
1547 name: ComputeAllNodesValidationDeployment
1548 config: {get_resource: AllNodesValidationConfig}
1549 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1551 BlockStorageAllNodesValidationDeployment:
1552 type: OS::Heat::StructuredDeployments
1553 depends_on: BlockStorageAllNodesDeployment
1555 name: BlockStorageAllNodesValidationDeployment
1556 config: {get_resource: AllNodesValidationConfig}
1557 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1559 ObjectStorageAllNodesValidationDeployment:
1560 type: OS::Heat::StructuredDeployments
1561 depends_on: ObjectStorageAllNodesDeployment
1563 name: ObjectStorageAllNodesValidationDeployment
1564 config: {get_resource: AllNodesValidationConfig}
1565 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1567 CephStorageAllNodesValidationDeployment:
1568 type: OS::Heat::StructuredDeployments
1569 depends_on: CephStorageAllNodesDeployment
1571 name: CephStorageAllNodesValidationDeployment
1572 config: {get_resource: AllNodesValidationConfig}
1573 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1576 type: OS::TripleO::Tasks::UpdateWorkflow
1578 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1579 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1580 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1581 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1582 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1584 deploy_identifier: {get_param: DeployIdentifier}
1585 update_identifier: {get_param: UpdateIdentifier}
1587 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1588 # the nested template may configure each role differently (or not at all)
1589 AllNodesExtraConfig:
1590 type: OS::TripleO::AllNodesExtraConfig
1593 - ComputeAllNodesValidationDeployment
1594 - BlockStorageAllNodesValidationDeployment
1595 - ObjectStorageAllNodesValidationDeployment
1596 - CephStorageAllNodesValidationDeployment
1597 - ControllerAllNodesValidationDeployment
1599 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1600 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1601 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1602 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1603 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1605 # Nested stack deployment runs after all other controller deployments
1606 ControllerNodesPostDeployment:
1607 type: OS::TripleO::ControllerPostDeployment
1608 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1610 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1611 NodeConfigIdentifiers:
1612 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1613 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1614 deployment_identifier: {get_param: DeployIdentifier}
1616 ComputeNodesPostDeployment:
1617 type: OS::TripleO::ComputePostDeployment
1618 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1620 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1621 NodeConfigIdentifiers:
1622 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1623 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1624 deployment_identifier: {get_param: DeployIdentifier}
1626 ObjectStorageNodesPostDeployment:
1627 type: OS::TripleO::ObjectStoragePostDeployment
1628 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1630 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1631 NodeConfigIdentifiers:
1632 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1633 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1634 deployment_identifier: {get_param: DeployIdentifier}
1636 BlockStorageNodesPostDeployment:
1637 type: OS::TripleO::BlockStoragePostDeployment
1638 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1640 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1641 NodeConfigIdentifiers:
1642 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1643 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1644 deployment_identifier: {get_param: DeployIdentifier}
1646 CephStorageNodesPostDeployment:
1647 type: OS::TripleO::CephStoragePostDeployment
1648 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1650 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1651 NodeConfigIdentifiers:
1652 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1653 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1654 deployment_identifier: {get_param: DeployIdentifier}
1658 description: URL for the Overcloud Keystone service
1659 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1661 description: Keystone Admin VIP endpoint
1662 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1664 description: Controller VIP for public API endpoints
1665 value: {get_attr: [VipMap, net_ip_map, external]}
1667 description: VIP for Aodh API internal endpoint
1668 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1669 CeilometerInternalVip:
1670 description: VIP for Ceilometer API internal endpoint
1671 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1673 description: VIP for Cinder API internal endpoint
1674 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1676 description: VIP for Glance API internal endpoint
1677 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1679 description: VIP for Heat API internal endpoint
1680 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1681 KeystoneInternalVip:
1682 description: VIP for Keystone API internal endpoint
1683 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1685 description: VIP for Neutron API internal endpoint
1686 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1688 description: VIP for Nova API internal endpoint
1689 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1691 description: VIP for Sahara API internal endpoint
1692 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1694 description: VIP for Swift Proxy internal endpoint
1695 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1698 The content that should be appended to your /etc/hosts if you want to get
1699 hostname-based access to the deployed nodes (useful for testing without
1701 value: {get_attr: [allNodesConfig, hosts_entries]}