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
112 NeutronExternalNetworkBridge:
113 description: Name of bridge used for external network traffic.
116 NeutronBridgeMappings:
118 The OVS logical->physical bridge mappings to use. See the Neutron
119 documentation for details. Defaults to mapping br-ex - the external
120 bridge on hosts - to a physical name 'datacentre' which can be used
121 to create provider networks (and we use this for the default floating
122 network) - if changing this either use different post-install network
123 scripts or be sure to keep 'datacentre' as a mapping network name.
124 type: comma_delimited_list
125 default: "datacentre:br-ex"
126 NeutronControlPlaneID:
129 description: Neutron ID or name for ctlplane network.
130 NeutronEnableIsolatedMetadata:
132 description: If True, DHCP provide metadata route to VM.
134 NeutronEnableTunnelling:
140 Enable/disable the L2 population feature in the Neutron agents.
143 type: comma_delimited_list
144 default: 'datacentre'
146 If set, flat networks to configure in neutron plugins. Defaults to
147 'datacentre' to permit external network creation.
150 description: The tenant network type for Neutron.
151 type: comma_delimited_list
153 description: The password for the neutron service account, used by neutron agents.
156 NeutronPublicInterface:
158 description: What interface to bridge onto br-ex for network nodes.
160 NeutronPublicInterfaceTag:
163 VLAN tag for creating a public VLAN. The tag will be used to
164 create an access port on the exterior bridge for each control plane node,
165 and that port will be given the IP address returned by neutron from the
166 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
167 overcloud.yaml to include the deployment of VLAN ports to the control
170 NeutronComputeAgentMode:
172 description: Agent mode for the neutron-l3-agent on the compute hosts
176 description: Agent mode for the neutron-l3-agent on the controller hosts
180 description: Whether to configure Neutron Distributed Virtual Routers
182 NeutronMetadataProxySharedSecret:
183 description: Shared secret to prevent spoofing
188 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
189 be at least 50 bytes smaller than the MTU on the physical network. This
190 value will be used to set the MTU on the virtual Ethernet device.
191 This value will be used to construct the NeutronDnsmasqOptions, since that
192 will determine the MTU that is assigned to the VM host through DHCP.
198 The tunnel types for the Neutron tenant network.
199 type: comma_delimited_list
200 NeutronTunnelIdRanges:
202 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
203 of GRE tunnel IDs that are available for tenant network allocation
204 default: ["1:4094", ]
205 type: comma_delimited_list
208 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
209 of VXLAN VNI IDs that are available for tenant network allocation
210 default: ["1:4094", ]
211 type: comma_delimited_list
215 The core plugin for Neutron. The value should be the entrypoint to be loaded
216 from neutron.core_plugins namespace.
218 NeutronServicePlugins:
219 default: "router,qos"
221 Comma-separated list of service plugin entrypoints to be loaded from the
222 neutron.service_plugins namespace.
223 type: comma_delimited_list
225 default: "vxlan,vlan,flat,gre"
227 Comma-separated list of network type driver entrypoints to be loaded.
228 type: comma_delimited_list
229 NeutronMechanismDrivers:
230 default: 'openvswitch'
232 The mechanism drivers for the Neutron tenant network.
233 type: comma_delimited_list
234 NeutronPluginExtensions:
235 default: "qos,port_security"
237 Comma-separated list of extensions enabled for the Neutron plugin.
238 type: comma_delimited_list
239 NeutronAgentExtensions:
242 Comma-separated list of extensions enabled for the Neutron agents.
243 type: comma_delimited_list
244 NeutronAllowL3AgentFailover:
246 description: Allow automatic l3-agent failover
250 description: Whether to enable l3-agent HA
252 NeutronDhcpAgentsPerNetwork:
255 description: The number of neutron dhcp agents to schedule per network
258 description: Enable IPv6 features in Nova
261 description: The password for the nova service account, used by nova-api.
266 description: Comma-separated list of ntp servers
267 type: comma_delimited_list
270 description: Should MongoDb journaling be disabled
274 description: Enable IPv6 if MongoDB VIP is IPv6
276 PublicVirtualFixedIPs:
279 Control the IP allocation for the PublicVirtualInterface port. E.g.
280 [{'ip_address':'1.2.3.4'}]
285 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
286 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
289 description: The username for RabbitMQ
293 description: The password for RabbitMQ
299 Rabbit client subscriber parameter to specify
300 an SSL connection to the RabbitMQ host.
304 description: Set rabbit subscriber port, change this if using SSL
306 # We need to set this as string because 'unlimited' is a valid setting
309 description: Configures RabbitMQ FD limit
311 SnmpdReadonlyUserName:
312 default: ro_snmp_user
313 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
315 SnmpdReadonlyUserPassword:
316 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
319 StorageVirtualFixedIPs:
322 Control the IP allocation for the StorageVirtualInterface port. E.g.
323 [{'ip_address':'1.2.3.4'}]
325 StorageMgmtVirtualFixedIPs:
328 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
329 [{'ip_address':'1.2.3.4'}]
333 description: The timezone to be set on nodes.
336 default: 'localdomain'
339 The DNS domain used for the hosts. This should match the dhcp_domain
340 configured in the Undercloud neutron. Defaults to localdomain.
344 Extra properties or metadata passed to Nova for the created nodes in
345 the overcloud. It's accessible via the Nova metadata API.
348 # Controller-specific params
350 description: The keystone auth secret.
353 CinderLVMLoopDeviceSize:
355 description: The size of the loopback file used by the cinder LVM driver.
357 CinderNfsMountOptions:
360 Mount options for NFS mounts used by Cinder NFS backend. Effective
361 when CinderEnableNfsBackend is true.
366 NFS servers used by Cinder NFS backend. Effective when
367 CinderEnableNfsBackend is true.
368 type: comma_delimited_list
370 description: The password for the cinder service account, used by cinder-api.
375 description: The iSCSI helper to use with cinder.
382 controllerExtraConfig:
385 Controller specific configuration to inject into the cluster. Same
386 structure as ExtraConfig.
390 default: overcloud-full
392 - custom_constraint: glance.image
393 OvercloudControlFlavor:
394 description: Flavor for control nodes to request when deploying.
398 - custom_constraint: nova.flavor
399 ControlVirtualInterface:
401 description: Interface where virtual ip will be assigned.
405 description: Whether to enable fencing in Pacemaker or not.
409 description: Whether to use Galera instead of regular MariaDB.
411 ControllerEnableCephStorage:
413 description: Whether to deploy Ceph Storage (OSD) on the Controller
415 ControllerEnableSwiftStorage:
417 description: Whether to enable Swift Storage on the Controller
419 ControllerSchedulerHints:
421 description: Optional scheduler hints to pass to nova
426 Additional configuration to inject into the cluster. The format required
427 may be implementation specific, e.g puppet hieradata. Any role specific
428 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
433 Pacemaker fencing configuration. The JSON should have
434 the following structure:
438 "agent": "AGENT_NAME",
439 "host_mac": "HOST_MAC_ADDRESS",
440 "params": {"PARAM_NAME": "PARAM_VALUE"}
448 "agent": "fence_xvm",
449 "host_mac": "52:54:00:aa:bb:cc",
451 "multicast_address": "225.0.0.12",
452 "port": "baremetal_0",
454 "manage_key_file": true,
455 "key_file": "/etc/fence_xvm.key",
456 "key_file_password": "abcdef"
463 description: The filepath of the file to use for logging messages from Glance.
466 GlanceNotifierStrategy:
467 description: Strategy to use for Glance notification queue
471 description: The password for the glance service account, used by the glance services.
476 description: The short name of the Glance backend to use. Should be one
477 of swift, rbd or file
480 - allowed_values: ['swift', 'file', 'rbd']
482 description: The password for the Heat service account, used by the Heat services.
485 HeatStackDomainAdminPassword:
486 description: Password for heat_domain_admin user.
489 InstanceNameTemplate:
490 default: 'instance-%08x'
491 description: Template string to be used to generate instance names
493 KeystoneCACertificate:
495 description: Keystone self-signed certificate authority certificate.
497 KeystoneSigningCertificate:
499 description: Keystone certificate for verifying token validity.
503 description: Keystone key for signing tokens.
506 KeystoneSSLCertificate:
508 description: Keystone certificate for verifying token validity.
510 KeystoneSSLCertificateKey:
512 description: Keystone key for signing tokens.
515 KeystoneNotificationDriver:
516 description: Comma-separated list of Oslo notification drivers used by Keystone
517 default: ['messaging']
518 type: comma_delimited_list
519 KeystoneNotificationFormat:
520 description: The Keystone notification format
524 - allowed_values: [ 'basic', 'cadf' ]
527 description: Whether to manage IPtables rules.
531 description: Whether IPtables rules should be purged before setting up the ones.
533 MysqlInnodbBufferPoolSize:
535 Specifies the size of the buffer pool in megabytes. Setting to
536 zero should be interpreted as "no value" and will defer to the
541 description: Configures MySQL max_connections config setting
544 NeutronDnsmasqOptions:
545 default: 'dhcp-option-force=26,%MTU%'
547 Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU
548 to be set to the value of NeutronTenantMtu, which should be set to account
551 NeutronPublicInterfaceDefaultRoute:
553 description: A custom default route for the NeutronPublicInterface.
555 NeutronPublicInterfaceIP:
557 description: A custom IP address to put onto the NeutronPublicInterface.
559 NeutronPublicInterfaceRawDevice:
561 description: If set, the public interface is a vlan with this device as the raw device.
563 PublicVirtualInterface:
566 Specifies the interface where the public-facing virtual ip will be assigned.
567 This should be int_public when a VLAN is being used.
570 description: A random string to be used as a salt when hashing to determine mappings in the ring.
574 description: The password for the swift service account, used by the swift proxy services.
579 description: Value of mount_check in Swift account/container/object -server.conf
584 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
587 description: Partition Power to use when building Swift rings
592 description: How many replicas to use in the swift rings.
594 description: The password for the sahara service account.
598 # Compute-specific params
599 CeilometerComputeAgent:
600 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
604 - allowed_values: ['', Present]
608 HypervisorNeutronPhysicalBridge:
611 An OVS bridge to create on each hypervisor. This defaults to br-ex the
612 same as the control plane nodes, as we have a uniform configuration of
613 the openvswitch agent. Typically should not need to be changed.
615 HypervisorNeutronPublicInterface:
617 description: What interface to add to the HypervisorNeutronPhysicalBridge.
619 NeutronNetworkVLANRanges:
620 default: 'datacentre:1:1000'
622 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
623 Neutron documentation for permitted values. Defaults to permitting any
624 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
625 type: comma_delimited_list
628 default: libvirt.LibvirtDriver
629 NovaComputeExtraConfig:
632 NovaCompute specific configuration to inject into the cluster. Same
633 structure as ExtraConfig.
635 NovaComputeLibvirtType:
638 NovaComputeLibvirtVifDriver:
640 description: Libvirt VIF driver configuration for the network
642 NovaComputeSchedulerHints:
644 description: Optional scheduler hints to pass to nova
646 NovaEnableRbdBackend:
648 description: Whether to enable or not the Rbd backend for Nova
652 default: overcloud-full
654 - custom_constraint: glance.image
657 description: Name of integration bridge used by Open vSwitch
659 NovaSecurityGroupAPI:
661 description: The full class name of the security API class
663 OvercloudComputeFlavor:
664 description: Use this flavor
668 - custom_constraint: nova.flavor
671 NeutronTenantNetwork: tenant
672 CeilometerApiNetwork: internal_api
673 AodhApiNetwork: internal_api
674 MongoDbNetwork: internal_api
675 CinderApiNetwork: internal_api
676 CinderIscsiNetwork: storage
677 GlanceApiNetwork: storage
678 GlanceRegistryNetwork: internal_api
679 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
680 KeystonePublicApiNetwork: internal_api
681 NeutronApiNetwork: internal_api
682 HeatApiNetwork: internal_api
683 NovaApiNetwork: internal_api
684 NovaMetadataNetwork: internal_api
685 NovaVncProxyNetwork: internal_api
686 SwiftMgmtNetwork: storage_mgmt
687 SwiftProxyNetwork: storage
688 SaharaApiNetwork: internal_api
689 HorizonNetwork: internal_api
690 MemcachedNetwork: internal_api
691 RabbitMqNetwork: internal_api
692 RedisNetwork: internal_api
693 MysqlNetwork: internal_api
694 CephClusterNetwork: storage_mgmt
695 CephPublicNetwork: storage
696 ControllerHostnameResolveNetwork: internal_api
697 ComputeHostnameResolveNetwork: internal_api
698 BlockStorageHostnameResolveNetwork: internal_api
699 ObjectStorageHostnameResolveNetwork: internal_api
700 CephStorageHostnameResolveNetwork: storage
701 description: Mapping of service_name -> network name. Typically set
702 via parameter_defaults in the resource registry.
705 # Block storage specific parameters
710 default: overcloud-full
712 OvercloudBlockStorageFlavor:
713 description: Flavor for block storage nodes to request when deploying.
717 - custom_constraint: nova.flavor
718 BlockStorageExtraConfig:
721 BlockStorage specific configuration to inject into the cluster. Same
722 structure as ExtraConfig.
724 BlockStorageSchedulerHints:
726 description: Optional scheduler hints to pass to nova
730 # Object storage specific parameters
734 OvercloudSwiftStorageFlavor:
735 description: Flavor for Swift storage nodes to request when deploying.
739 - custom_constraint: nova.flavor
741 default: overcloud-full
743 ObjectStorageExtraConfig:
746 ObjectStorage specific configuration to inject into the cluster. Same
747 structure as ExtraConfig.
749 ObjectStorageSchedulerHints:
751 description: Optional scheduler hints to pass to nova
754 # Ceph storage specific parameters
759 default: overcloud-full
761 OvercloudCephStorageFlavor:
763 description: Flavor for Ceph storage nodes to request when deploying.
766 - custom_constraint: nova.flavor
767 CephStorageExtraConfig:
770 CephStorage specific configuration to inject into the cluster. Same
771 structure as ExtraConfig.
773 CephStorageSchedulerHints:
775 description: Optional scheduler hints to pass to nova
779 # Hostname format for each role
780 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
781 # and %stackname% is replaced with OS::stack_name in the template below.
782 # If you want to use the heat generated names, pass '' (empty string).
783 ControllerHostnameFormat:
785 description: Format for Controller node hostnames
786 default: '%stackname%-controller-%index%'
787 ComputeHostnameFormat:
789 description: Format for Compute node hostnames
790 default: '%stackname%-novacompute-%index%'
791 BlockStorageHostnameFormat:
793 description: Format for BlockStorage node hostnames
794 default: '%stackname%-blockstorage-%index%'
795 ObjectStorageHostnameFormat:
797 description: Format for SwiftStorage node hostnames
798 default: '%stackname%-objectstorage-%index%'
799 CephStorageHostnameFormat:
801 description: Format for CephStorage node hostnames
802 default: '%stackname%-cephstorage-%index%'
804 # Identifiers to trigger tasks on nodes
809 Setting to a previously unused value during stack-update will trigger
810 package update on all nodes
815 Setting this to a unique value will re-run any deployment tasks which
816 perform configuration on a Heat stack-update.
818 # If you want to remove a specific node from a resource group, you can pass
819 # the node name or id as a <Group>RemovalPolicies parameter, for example:
820 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
821 ControllerRemovalPolicies:
825 List of resources to be removed from ControllerResourceGroup when
826 doing an update which requires removal of specific resources.
827 ComputeRemovalPolicies:
831 List of resources to be removed from ComputeResourceGroup when
832 doing an update which requires removal of specific resources.
833 BlockStorageRemovalPolicies:
837 List of resources to be removed from BlockStorageResourceGroup when
838 doing an update which requires removal of specific resources.
839 ObjectStorageRemovalPolicies:
843 List of resources to be removed from ObjectStorageResourceGroup when
844 doing an update which requires removal of specific resources.
845 CephStorageRemovalPolicies:
849 List of resources to be removed from CephStorageResourceGroup when
850 doing an update which requires removal of specific resources.
855 HeatAuthEncryptionKey:
856 type: OS::Heat::RandomString
859 type: OS::Heat::RandomString
864 type: OS::Heat::RandomString
869 type: OS::TripleO::EndpointMap
871 CloudName: {get_param: CloudName}
872 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
873 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
874 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
875 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
876 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
877 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
878 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
879 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
880 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
881 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
882 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
883 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
884 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
885 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
888 type: OS::Heat::ResourceGroup
891 count: {get_param: ControllerCount}
892 removal_policies: {get_param: ControllerRemovalPolicies}
894 type: OS::TripleO::Controller
896 AdminPassword: {get_param: AdminPassword}
897 AdminToken: {get_param: AdminToken}
898 AodhPassword: {get_param: AodhPassword}
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 SaharaPassword: {get_param: SaharaPassword}
995 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
996 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
997 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
998 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
999 SwiftHashSuffix: {get_param: SwiftHashSuffix}
1000 SwiftMountCheck: {get_param: SwiftMountCheck}
1001 SwiftMinPartHours: {get_param: SwiftMinPartHours}
1002 SwiftPartPower: {get_param: SwiftPartPower}
1003 SwiftPassword: {get_param: SwiftPassword}
1004 SwiftReplicas: { get_param: SwiftReplicas}
1005 TimeZone: {get_param: TimeZone}
1006 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
1007 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
1008 ServiceNetMap: {get_param: ServiceNetMap}
1009 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1010 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1011 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1012 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1013 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1014 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1015 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1016 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1017 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1018 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1019 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1020 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1021 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1022 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1023 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1024 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1025 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1026 UpdateIdentifier: {get_param: UpdateIdentifier}
1029 template: {get_param: ControllerHostnameFormat}
1031 '%stackname%': {get_param: 'OS::stack_name'}
1032 NodeIndex: '%index%'
1033 ServerMetadata: {get_param: ServerMetadata}
1034 SchedulerHints: {get_param: ControllerSchedulerHints}
1037 type: OS::Heat::ResourceGroup
1038 depends_on: Networks
1040 count: {get_param: ComputeCount}
1041 removal_policies: {get_param: ComputeRemovalPolicies}
1043 type: OS::TripleO::Compute
1045 AdminPassword: {get_param: AdminPassword}
1046 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1047 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1048 CeilometerPassword: {get_param: CeilometerPassword}
1049 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1050 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1051 Debug: {get_param: Debug}
1052 ExtraConfig: {get_param: ExtraConfig}
1053 Flavor: {get_param: OvercloudComputeFlavor}
1054 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1055 Image: {get_param: NovaImage}
1056 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1057 KeyName: {get_param: KeyName}
1058 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1059 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1060 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1061 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1062 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1063 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1064 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1065 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1066 NeutronNetworkType: {get_param: NeutronNetworkType}
1067 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1068 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1069 NeutronPassword: {get_param: NeutronPassword}
1070 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1071 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1072 NeutronDVR: {get_param: NeutronDVR}
1073 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1074 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1075 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1076 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1077 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1078 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1079 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1080 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1081 # L3 HA and Failover is not relevant for Computes, should be removed
1082 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1083 NeutronL3HA: {get_param: NeutronL3HA}
1084 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1085 NovaComputeDriver: {get_param: NovaComputeDriver}
1086 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1087 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1088 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1089 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1090 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1091 NovaPassword: {get_param: NovaPassword}
1092 NovaOVSBridge: {get_param: NovaOVSBridge}
1093 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1094 NtpServer: {get_param: NtpServer}
1095 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1096 RabbitPassword: {get_param: RabbitPassword}
1097 RabbitUserName: {get_param: RabbitUserName}
1098 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1099 RabbitClientPort: {get_param: RabbitClientPort}
1100 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1101 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1102 ServiceNetMap: {get_param: ServiceNetMap}
1103 TimeZone: {get_param: TimeZone}
1104 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1105 UpdateIdentifier: {get_param: UpdateIdentifier}
1108 template: {get_param: ComputeHostnameFormat}
1110 '%stackname%': {get_param: 'OS::stack_name'}
1111 CloudDomain: {get_param: CloudDomain}
1112 ServerMetadata: {get_param: ServerMetadata}
1113 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1116 type: OS::Heat::ResourceGroup
1117 depends_on: Networks
1119 count: {get_param: BlockStorageCount}
1120 removal_policies: {get_param: BlockStorageRemovalPolicies}
1122 type: OS::TripleO::BlockStorage
1124 Debug: {get_param: Debug}
1125 Image: {get_param: BlockStorageImage}
1126 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1127 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1128 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1129 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1130 CinderPassword: {get_param: CinderPassword}
1131 KeyName: {get_param: KeyName}
1132 Flavor: {get_param: OvercloudBlockStorageFlavor}
1133 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1134 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1135 RabbitPassword: {get_param: RabbitPassword}
1136 RabbitUserName: {get_param: RabbitUserName}
1137 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1138 RabbitClientPort: {get_param: RabbitClientPort}
1139 TimeZone: {get_param: TimeZone}
1140 NtpServer: {get_param: NtpServer}
1141 UpdateIdentifier: {get_param: UpdateIdentifier}
1144 template: {get_param: BlockStorageHostnameFormat}
1146 '%stackname%': {get_param: 'OS::stack_name'}
1147 ServiceNetMap: {get_param: ServiceNetMap}
1148 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1149 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1150 ExtraConfig: {get_param: ExtraConfig}
1151 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1152 CloudDomain: {get_param: CloudDomain}
1153 ServerMetadata: {get_param: ServerMetadata}
1154 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1157 type: OS::Heat::ResourceGroup
1158 depends_on: Networks
1160 count: {get_param: ObjectStorageCount}
1161 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1163 type: OS::TripleO::ObjectStorage
1165 KeyName: {get_param: KeyName}
1166 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1167 HashSuffix: {get_param: SwiftHashSuffix}
1168 MountCheck: {get_param: SwiftMountCheck}
1169 MinPartHours: {get_param: SwiftMinPartHours}
1170 PartPower: {get_param: SwiftPartPower}
1171 Image: {get_param: SwiftStorageImage}
1172 Replicas: { get_param: SwiftReplicas}
1173 TimeZone: {get_param: TimeZone}
1174 NtpServer: {get_param: NtpServer}
1175 UpdateIdentifier: {get_param: UpdateIdentifier}
1176 ServiceNetMap: {get_param: ServiceNetMap}
1179 template: {get_param: ObjectStorageHostnameFormat}
1181 '%stackname%': {get_param: 'OS::stack_name'}
1182 ExtraConfig: {get_param: ExtraConfig}
1183 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1184 CloudDomain: {get_param: CloudDomain}
1185 ServerMetadata: {get_param: ServerMetadata}
1186 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1189 type: OS::Heat::ResourceGroup
1190 depends_on: Networks
1192 count: {get_param: CephStorageCount}
1193 removal_policies: {get_param: CephStorageRemovalPolicies}
1195 type: OS::TripleO::CephStorage
1197 Image: {get_param: CephStorageImage}
1198 KeyName: {get_param: KeyName}
1199 Flavor: {get_param: OvercloudCephStorageFlavor}
1200 NtpServer: {get_param: NtpServer}
1201 ServiceNetMap: {get_param: ServiceNetMap}
1202 TimeZone: {get_param: TimeZone}
1203 UpdateIdentifier: {get_param: UpdateIdentifier}
1206 template: {get_param: CephStorageHostnameFormat}
1208 '%stackname%': {get_param: 'OS::stack_name'}
1209 ExtraConfig: {get_param: ExtraConfig}
1210 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1211 CloudDomain: {get_param: CloudDomain}
1212 ServerMetadata: {get_param: ServerMetadata}
1213 SchedulerHints: {get_param: CephStorageSchedulerHints}
1215 ControllerIpListMap:
1216 type: OS::TripleO::Network::Ports::NetIpListMap
1218 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1219 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1220 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1221 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1222 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1223 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1224 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1227 type: OS::TripleO::AllNodes::SoftwareConfig
1229 compute_hosts: {get_attr: [Compute, hosts_entry]}
1230 controller_hosts: {get_attr: [Controller, hosts_entry]}
1231 controller_ips: {get_attr: [Controller, ip_address]}
1232 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1233 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1234 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1235 controller_names: {get_attr: [Controller, hostname]}
1236 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1237 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1238 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1239 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1240 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1241 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1242 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1243 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1244 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1245 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1246 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1247 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1248 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1249 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1250 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1251 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1252 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1253 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1254 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1255 DeployIdentifier: {get_param: DeployIdentifier}
1256 UpdateIdentifier: {get_param: UpdateIdentifier}
1259 type: OS::Heat::RandomString
1263 MysqlClusterUniquePart:
1264 type: OS::Heat::RandomString
1269 type: OS::Heat::RandomString
1272 salt: {get_param: RabbitCookieSalt}
1274 # creates the network architecture
1276 type: OS::TripleO::Network
1279 type: OS::Neutron::Port
1280 depends_on: Networks
1282 name: control_virtual_ip
1283 network: {get_param: NeutronControlPlaneID}
1284 fixed_ips: {get_param: ControlFixedIPs}
1285 replacement_policy: AUTO
1288 depends_on: Networks
1289 type: OS::TripleO::Network::Ports::RedisVipPort
1291 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1292 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1293 PortName: redis_virtual_ip
1294 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1297 # The public VIP is on the External net, falls back to ctlplane
1299 depends_on: Networks
1300 type: OS::TripleO::Network::Ports::ExternalVipPort
1302 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1303 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1304 PortName: public_virtual_ip
1305 FixedIPs: {get_param: PublicVirtualFixedIPs}
1307 InternalApiVirtualIP:
1308 depends_on: Networks
1309 type: OS::TripleO::Network::Ports::InternalApiVipPort
1311 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1312 PortName: internal_api_virtual_ip
1313 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1316 depends_on: Networks
1317 type: OS::TripleO::Network::Ports::StorageVipPort
1319 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1320 PortName: storage_virtual_ip
1321 FixedIPs: {get_param: StorageVirtualFixedIPs}
1323 StorageMgmtVirtualIP:
1324 depends_on: Networks
1325 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1327 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1328 PortName: storage_management_virtual_ip
1329 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1332 type: OS::TripleO::Network::Ports::NetVipMap
1334 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1335 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1336 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1337 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1338 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1339 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1340 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1341 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1342 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1343 # No tenant or management VIP required
1346 type: OS::TripleO::VipConfig
1349 type: OS::Heat::StructuredDeployments
1352 config: {get_resource: VipConfig}
1353 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1355 # service VIP mappings
1356 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1357 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1358 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1359 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1360 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1361 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1362 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1363 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1364 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1365 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1366 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1367 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1368 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1369 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1370 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1371 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1372 # direct configuration of Virtual IPs for each network
1373 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1374 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1375 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1376 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1377 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1378 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1380 ControllerBootstrapNodeConfig:
1381 type: OS::TripleO::BootstrapNode::SoftwareConfig
1383 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1384 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1386 ControllerBootstrapNodeDeployment:
1387 type: OS::Heat::StructuredDeployments
1389 name: ControllerBootstrapNodeDeployment
1390 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1391 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1393 ControllerSwiftDeployment:
1394 type: OS::Heat::StructuredDeployments
1396 name: ControllerSwiftDeployment
1397 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1398 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1400 ObjectStorageSwiftDeployment:
1401 type: OS::Heat::StructuredDeployments
1403 name: ObjectStorageSwiftDeployment
1404 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1405 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1407 SwiftDevicesAndProxyConfig:
1408 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1410 controller_swift_devices: {get_attr: [Controller, swift_device]}
1411 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1412 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1414 ComputeCephDeployment:
1415 type: OS::Heat::StructuredDeployments
1417 name: ComputeCephDeployment
1418 config: {get_attr: [CephClusterConfig, config_id]}
1419 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1421 ControllerCephDeployment:
1422 type: OS::Heat::StructuredDeployments
1424 name: ControllerCephDeployment
1425 config: {get_attr: [CephClusterConfig, config_id]}
1426 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1428 CephStorageCephDeployment:
1429 type: OS::Heat::StructuredDeployments
1431 name: CephStorageCephDeployment
1432 config: {get_attr: [CephClusterConfig, config_id]}
1433 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1436 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1438 ceph_storage_count: {get_param: CephStorageCount}
1439 ceph_fsid: {get_param: CephClusterFSID}
1440 ceph_mon_key: {get_param: CephMonKey}
1441 ceph_admin_key: {get_param: CephAdminKey}
1442 ceph_client_key: {get_param: CephClientKey}
1443 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1444 ceph_mon_names: {get_attr: [Controller, hostname]}
1445 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1447 ControllerClusterConfig:
1448 type: OS::Heat::StructuredConfig
1450 group: os-apply-config
1453 nodes: {get_attr: [Controller, corosync_node]}
1457 nodes: {get_attr: [Controller, hostname]}
1459 nodes: {get_attr: [Controller, corosync_node]}
1461 nodes: {get_attr: [Controller, corosync_node]}
1463 ControllerClusterDeployment:
1464 type: OS::Heat::StructuredDeployments
1466 name: ControllerClusterDeployment
1467 config: {get_resource: ControllerClusterConfig}
1468 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1470 ControllerAllNodesDeployment:
1471 type: OS::Heat::StructuredDeployments
1473 name: ControllerAllNodesDeployment
1474 config: {get_attr: [allNodesConfig, config_id]}
1475 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1477 ComputeAllNodesDeployment:
1478 type: OS::Heat::StructuredDeployments
1480 name: ComputeAllNodesDeployment
1481 config: {get_attr: [allNodesConfig, config_id]}
1482 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1484 BlockStorageAllNodesDeployment:
1485 type: OS::Heat::StructuredDeployments
1487 name: BlockStorageAllNodesDeployment
1488 config: {get_attr: [allNodesConfig, config_id]}
1489 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1491 ObjectStorageAllNodesDeployment:
1492 type: OS::Heat::StructuredDeployments
1494 name: ObjectStorageAllNodesDeployment
1495 config: {get_attr: [allNodesConfig, config_id]}
1496 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1498 CephStorageAllNodesDeployment:
1499 type: OS::Heat::StructuredDeployments
1501 name: CephStorageAllNodesDeployment
1502 config: {get_attr: [allNodesConfig, config_id]}
1503 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1505 # All Nodes Validations
1506 AllNodesValidationConfig:
1507 type: OS::TripleO::AllNodes::Validation
1512 - - {get_attr: [Controller, resource.0.external_ip_address]}
1513 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1514 - {get_attr: [Controller, resource.0.storage_ip_address]}
1515 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1516 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1518 ControllerAllNodesValidationDeployment:
1519 type: OS::Heat::StructuredDeployments
1520 depends_on: ControllerAllNodesDeployment
1522 name: ControllerAllNodesValidationDeployment
1523 config: {get_resource: AllNodesValidationConfig}
1524 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1526 ComputeAllNodesValidationDeployment:
1527 type: OS::Heat::StructuredDeployments
1528 depends_on: ComputeAllNodesDeployment
1530 name: ComputeAllNodesValidationDeployment
1531 config: {get_resource: AllNodesValidationConfig}
1532 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1534 BlockStorageAllNodesValidationDeployment:
1535 type: OS::Heat::StructuredDeployments
1536 depends_on: BlockStorageAllNodesDeployment
1538 name: BlockStorageAllNodesValidationDeployment
1539 config: {get_resource: AllNodesValidationConfig}
1540 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1542 ObjectStorageAllNodesValidationDeployment:
1543 type: OS::Heat::StructuredDeployments
1544 depends_on: ObjectStorageAllNodesDeployment
1546 name: ObjectStorageAllNodesValidationDeployment
1547 config: {get_resource: AllNodesValidationConfig}
1548 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1550 CephStorageAllNodesValidationDeployment:
1551 type: OS::Heat::StructuredDeployments
1552 depends_on: CephStorageAllNodesDeployment
1554 name: CephStorageAllNodesValidationDeployment
1555 config: {get_resource: AllNodesValidationConfig}
1556 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1559 type: OS::TripleO::Tasks::UpdateWorkflow
1561 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1562 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1563 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1564 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1565 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1567 deploy_identifier: {get_param: DeployIdentifier}
1568 update_identifier: {get_param: UpdateIdentifier}
1570 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1571 # the nested template may configure each role differently (or not at all)
1572 AllNodesExtraConfig:
1573 type: OS::TripleO::AllNodesExtraConfig
1574 depends_on: UpdateWorkflow
1576 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1577 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1578 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1579 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1580 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1582 # Nested stack deployment runs after all other controller deployments
1583 ControllerNodesPostDeployment:
1584 type: OS::TripleO::ControllerPostDeployment
1585 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1587 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1588 NodeConfigIdentifiers:
1589 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1590 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1591 deployment_identifier: {get_param: DeployIdentifier}
1593 ComputeNodesPostDeployment:
1594 type: OS::TripleO::ComputePostDeployment
1595 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1597 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1598 NodeConfigIdentifiers:
1599 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1600 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1601 deployment_identifier: {get_param: DeployIdentifier}
1603 ObjectStorageNodesPostDeployment:
1604 type: OS::TripleO::ObjectStoragePostDeployment
1605 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1607 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1608 NodeConfigIdentifiers:
1609 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1610 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1611 deployment_identifier: {get_param: DeployIdentifier}
1613 BlockStorageNodesPostDeployment:
1614 type: OS::TripleO::BlockStoragePostDeployment
1615 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1617 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1618 NodeConfigIdentifiers:
1619 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1620 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1621 deployment_identifier: {get_param: DeployIdentifier}
1623 CephStorageNodesPostDeployment:
1624 type: OS::TripleO::CephStoragePostDeployment
1625 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1627 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1628 NodeConfigIdentifiers:
1629 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1630 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1631 deployment_identifier: {get_param: DeployIdentifier}
1635 description: URL for the Overcloud Keystone service
1636 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1638 description: Keystone Admin VIP endpoint
1639 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1641 description: Controller VIP for public API endpoints
1642 value: {get_attr: [VipMap, net_ip_map, external]}
1644 description: VIP for Aodh API internal endpoint
1645 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1646 CeilometerInternalVip:
1647 description: VIP for Ceilometer API internal endpoint
1648 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1650 description: VIP for Cinder API internal endpoint
1651 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1653 description: VIP for Glance API internal endpoint
1654 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1656 description: VIP for Heat API internal endpoint
1657 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1658 KeystoneInternalVip:
1659 description: VIP for Keystone API internal endpoint
1660 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1662 description: VIP for Neutron API internal endpoint
1663 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1665 description: VIP for Nova API internal endpoint
1666 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1668 description: VIP for Sahara API internal endpoint
1669 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1671 description: VIP for Swift Proxy internal endpoint
1672 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1675 The content that should be appended to your /etc/hosts if you want to get
1676 hostname-based access to the deployed nodes (useful for testing without
1678 value: {get_attr: [allNodesConfig, hosts_entries]}