1 heat_template_version: 2016-04-08
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.
20 description: The password for the aodh services.
25 description: The ceilometer backend type.
27 CeilometerMeteringSecret:
28 description: Secret shared by the ceilometer services.
32 description: The password for the ceilometer service account.
35 CeilometerMeterDispatcher:
37 description: Dispatcher to process meter data
40 - allowed_values: ['gnocchi', 'database']
41 # This has to be an UUID so for now we generate it outside the template
45 description: The Ceph cluster FSID. Must be a UUID.
48 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
53 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
56 CinderEnableNfsBackend:
58 description: Whether to enable or not the NFS backend for Cinder
62 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.
68 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
69 CinderEnableIscsiBackend:
71 description: Whether to enable or not the Iscsi backend for Cinder
73 CinderEnableRbdBackend:
75 description: Whether to enable or not the Rbd backend for Cinder
79 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
83 description: Should be used for arbitrary ips.
87 description: Enable IPv6 in Corosync
91 description: Set to True to enable debugging on all services.
95 description: Syslog address where HAproxy will send its log
99 description: A list of IP/Hostname allowed to connect to horizon
100 type: comma_delimited_list
102 default: 'REBUILD_PRESERVE_EPHEMERAL'
103 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
105 InternalApiVirtualFixedIPs:
108 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
109 [{'ip_address':'1.2.3.4'}]
113 description: Name of an existing Nova key pair to enable SSH access to the instances
116 - custom_constraint: nova.keypair
119 description: Enable IPv6 features in Memcached.
121 NeutronExternalNetworkBridge:
122 description: Name of bridge used for external network traffic.
125 NeutronBridgeMappings:
127 The OVS logical->physical bridge mappings to use. See the Neutron
128 documentation for details. Defaults to mapping br-ex - the external
129 bridge on hosts - to a physical name 'datacentre' which can be used
130 to create provider networks (and we use this for the default floating
131 network) - if changing this either use different post-install network
132 scripts or be sure to keep 'datacentre' as a mapping network name.
133 type: comma_delimited_list
134 default: "datacentre:br-ex"
135 NeutronControlPlaneID:
138 description: Neutron ID or name for ctlplane network.
139 NeutronEnableTunnelling:
145 Enable/disable the L2 population feature in the Neutron agents.
148 type: comma_delimited_list
149 default: 'datacentre'
151 If set, flat networks to configure in neutron plugins. Defaults to
152 'datacentre' to permit external network creation.
155 description: The tenant network type for Neutron.
156 type: comma_delimited_list
158 description: The password for the neutron service account, used by neutron agents.
161 NeutronPublicInterface:
163 description: What interface to bridge onto br-ex for network nodes.
165 NeutronPublicInterfaceTag:
168 VLAN tag for creating a public VLAN. The tag will be used to
169 create an access port on the exterior bridge for each control plane node,
170 and that port will be given the IP address returned by neutron from the
171 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
172 overcloud.yaml to include the deployment of VLAN ports to the control
175 NeutronComputeAgentMode:
177 description: Agent mode for the neutron-l3-agent on the compute hosts
181 description: Agent mode for the neutron-l3-agent on the controller hosts
185 description: Whether to configure Neutron Distributed Virtual Routers
187 NeutronMetadataProxySharedSecret:
188 description: Shared secret to prevent spoofing
193 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
194 be at least 50 bytes smaller than the MTU on the physical network. This
195 value will be used to set the MTU on the virtual Ethernet device.
196 This value will be used to construct the NeutronDnsmasqOptions, since that
197 will determine the MTU that is assigned to the VM host through DHCP.
203 The tunnel types for the Neutron tenant network.
204 type: comma_delimited_list
205 NeutronTunnelIdRanges:
207 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
208 of GRE tunnel IDs that are available for tenant network allocation
209 default: ["1:4094", ]
210 type: comma_delimited_list
213 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
214 of VXLAN VNI IDs that are available for tenant network allocation
215 default: ["1:4094", ]
216 type: comma_delimited_list
220 The core plugin for Neutron. The value should be the entrypoint to be loaded
221 from neutron.core_plugins namespace.
223 NeutronServicePlugins:
224 default: "router,qos"
226 Comma-separated list of service plugin entrypoints to be loaded from the
227 neutron.service_plugins namespace.
228 type: comma_delimited_list
230 default: "vxlan,vlan,flat,gre"
232 Comma-separated list of network type driver entrypoints to be loaded.
233 type: comma_delimited_list
234 NeutronMechanismDrivers:
235 default: 'openvswitch'
237 The mechanism drivers for the Neutron tenant network.
238 type: comma_delimited_list
239 NeutronPluginExtensions:
240 default: "qos,port_security"
242 Comma-separated list of extensions enabled for the Neutron plugin.
243 type: comma_delimited_list
244 NeutronAgentExtensions:
247 Comma-separated list of extensions enabled for the Neutron agents.
248 type: comma_delimited_list
249 NeutronAllowL3AgentFailover:
251 description: Allow automatic l3-agent failover
255 description: Whether to enable l3-agent HA
259 description: Enable IPv6 features in Nova
262 description: The password for the nova service account, used by nova-api.
267 description: Comma-separated list of ntp servers
268 type: comma_delimited_list
271 description: Should MongoDb journaling be disabled
275 description: Enable IPv6 if MongoDB VIP is IPv6
277 PublicVirtualFixedIPs:
280 Control the IP allocation for the PublicVirtualInterface port. E.g.
281 [{'ip_address':'1.2.3.4'}]
286 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
289 description: The username for RabbitMQ
292 description: The password for RabbitMQ
298 Rabbit client subscriber parameter to specify
299 an SSL connection to the RabbitMQ host.
303 description: Set rabbit subscriber port, change this if using SSL
305 # We need to set this as string because 'unlimited' is a valid setting
308 description: Configures RabbitMQ FD limit
312 description: Enable IPv6 in RabbitMQ
315 description: The password for Redis
318 SnmpdReadonlyUserName:
319 default: ro_snmp_user
320 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
322 SnmpdReadonlyUserPassword:
323 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
326 StorageVirtualFixedIPs:
329 Control the IP allocation for the StorageVirtualInterface port. E.g.
330 [{'ip_address':'1.2.3.4'}]
332 StorageMgmtVirtualFixedIPs:
335 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
336 [{'ip_address':'1.2.3.4'}]
340 description: The timezone to be set on nodes.
343 default: 'localdomain'
346 The DNS domain used for the hosts. This should match the dhcp_domain
347 configured in the Undercloud neutron. Defaults to localdomain.
351 Extra properties or metadata passed to Nova for the created nodes in
352 the overcloud. It's accessible via the Nova metadata API.
355 # Controller-specific params
356 CinderLVMLoopDeviceSize:
358 description: The size of the loopback file used by the cinder LVM driver.
360 CinderNfsMountOptions:
363 Mount options for NFS mounts used by Cinder NFS backend. Effective
364 when CinderEnableNfsBackend is true.
369 NFS servers used by Cinder NFS backend. Effective when
370 CinderEnableNfsBackend is true.
371 type: comma_delimited_list
373 description: The password for the cinder service account, used by cinder-api.
378 description: The iSCSI helper to use with cinder.
385 controllerExtraConfig:
388 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
392 default: overcloud-full
394 - custom_constraint: glance.image
395 OvercloudControlFlavor:
396 description: Flavor for control nodes to request when deploying.
400 - custom_constraint: nova.flavor
401 ControlVirtualInterface:
403 description: Interface where virtual ip will be assigned.
407 description: Whether to enable fencing in Pacemaker or not.
411 description: Whether to use Galera instead of regular MariaDB.
413 ControllerEnableCephStorage:
415 description: Whether to deploy Ceph Storage (OSD) on the Controller
417 ControllerEnableSwiftStorage:
419 description: Whether to enable Swift Storage on the Controller
421 ControllerSchedulerHints:
423 description: Optional scheduler hints to pass to nova
428 Additional configuration to inject into the cluster. The format required
429 may be implementation specific, e.g puppet hieradata. Any role specific
430 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
435 Pacemaker fencing configuration. The JSON should have
436 the following structure:
440 "agent": "AGENT_NAME",
441 "host_mac": "HOST_MAC_ADDRESS",
442 "params": {"PARAM_NAME": "PARAM_VALUE"}
450 "agent": "fence_xvm",
451 "host_mac": "52:54:00:aa:bb:cc",
453 "multicast_address": "225.0.0.12",
454 "port": "baremetal_0",
456 "manage_key_file": true,
457 "key_file": "/etc/fence_xvm.key",
458 "key_file_password": "abcdef"
466 description: The short name of the Gnocchi backend to use. Should be one
467 of swift, rbd or file
470 - allowed_values: ['swift', 'file', 'rbd']
471 GnocchiIndexerBackend:
473 description: The short name of the Gnocchi indexer backend to use.
476 description: The password for the gnocchi service account.
480 description: The password for the Heat service account, used by the Heat services.
483 HeatStackDomainAdminPassword:
484 description: Password for heat_stack_domain_admin user.
487 InstanceNameTemplate:
488 default: 'instance-%08x'
489 description: Template string to be used to generate instance names
493 description: Whether to manage IPtables rules.
497 description: Whether IPtables rules should be purged before setting up the ones.
499 MysqlInnodbBufferPoolSize:
501 Specifies the size of the buffer pool in megabytes. Setting to
502 zero should be interpreted as "no value" and will defer to the
507 description: Configures MySQL max_connections config setting
510 NeutronPublicInterfaceDefaultRoute:
512 description: A custom default route for the NeutronPublicInterface.
514 NeutronPublicInterfaceIP:
516 description: A custom IP address to put onto the NeutronPublicInterface.
518 NeutronPublicInterfaceRawDevice:
520 description: If set, the public interface is a vlan with this device as the raw device.
522 PublicVirtualInterface:
525 Specifies the interface where the public-facing virtual ip will be assigned.
526 This should be int_public when a VLAN is being used.
529 description: A random string to be used as a salt when hashing to determine mappings in the ring.
533 description: The password for the swift service account, used by the swift proxy services.
538 description: Value of mount_check in Swift account/container/object -server.conf
543 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
546 description: Partition Power to use when building Swift rings
551 description: How many replicas to use in the swift rings.
553 description: The password for the sahara service account.
557 # Compute-specific params
558 CeilometerComputeAgent:
559 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
563 - allowed_values: ['', Present]
567 HypervisorNeutronPhysicalBridge:
570 An OVS bridge to create on each hypervisor. This defaults to br-ex the
571 same as the control plane nodes, as we have a uniform configuration of
572 the openvswitch agent. Typically should not need to be changed.
574 HypervisorNeutronPublicInterface:
576 description: What interface to add to the HypervisorNeutronPhysicalBridge.
578 NeutronNetworkVLANRanges:
579 default: 'datacentre:1:1000'
581 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
582 Neutron documentation for permitted values. Defaults to permitting any
583 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
584 type: comma_delimited_list
587 default: libvirt.LibvirtDriver
588 NovaComputeExtraConfig:
591 NovaCompute specific configuration to inject into the cluster. Same
592 structure as ExtraConfig.
594 NovaComputeLibvirtType:
597 NovaComputeLibvirtVifDriver:
599 description: Libvirt VIF driver configuration for the network
601 NovaComputeSchedulerHints:
603 description: Optional scheduler hints to pass to nova
605 NovaEnableRbdBackend:
607 description: Whether to enable or not the Rbd backend for Nova
611 default: overcloud-full
613 - custom_constraint: glance.image
616 description: Name of integration bridge used by Open vSwitch
618 NovaSecurityGroupAPI:
620 description: The full class name of the security API class
622 OvercloudComputeFlavor:
623 description: Use this flavor
627 - custom_constraint: nova.flavor
630 NeutronTenantNetwork: tenant
631 CeilometerApiNetwork: internal_api
632 AodhApiNetwork: internal_api
633 GnocchiApiNetwork: internal_api
634 MongoDbNetwork: internal_api
635 CinderApiNetwork: internal_api
636 CinderIscsiNetwork: storage
637 GlanceApiNetwork: storage
638 GlanceRegistryNetwork: internal_api
639 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
640 KeystonePublicApiNetwork: internal_api
641 NeutronApiNetwork: internal_api
642 HeatApiNetwork: internal_api
643 NovaApiNetwork: internal_api
644 NovaMetadataNetwork: internal_api
645 NovaVncProxyNetwork: internal_api
646 SwiftMgmtNetwork: storage_mgmt
647 SwiftProxyNetwork: storage
648 SaharaApiNetwork: internal_api
649 HorizonNetwork: internal_api
650 MemcachedNetwork: internal_api
651 RabbitMqNetwork: internal_api
652 RedisNetwork: internal_api
653 MysqlNetwork: internal_api
654 CephClusterNetwork: storage_mgmt
655 CephPublicNetwork: storage
656 ControllerHostnameResolveNetwork: internal_api
657 ComputeHostnameResolveNetwork: internal_api
658 BlockStorageHostnameResolveNetwork: internal_api
659 ObjectStorageHostnameResolveNetwork: internal_api
660 CephStorageHostnameResolveNetwork: storage
661 description: Mapping of service_name -> network name. Typically set
662 via parameter_defaults in the resource registry.
667 - OS::TripleO::Services::Keystone
668 - OS::TripleO::Services::GlanceApi
669 - OS::TripleO::Services::GlanceRegistry
670 - OS::TripleO::Services::NeutronDhcpAgent
671 description: A list of service resources (configured in the Heat
672 resource_registry) which represent nested stacks
673 for each service that should get installed on the Controllers.
674 type: comma_delimited_list
676 # Block storage specific parameters
681 default: overcloud-full
683 OvercloudBlockStorageFlavor:
684 description: Flavor for block storage nodes to request when deploying.
688 - custom_constraint: nova.flavor
689 BlockStorageExtraConfig:
692 BlockStorage specific configuration to inject into the cluster. Same
693 structure as ExtraConfig.
695 BlockStorageSchedulerHints:
697 description: Optional scheduler hints to pass to nova
701 # Object storage specific parameters
705 OvercloudSwiftStorageFlavor:
706 description: Flavor for Swift storage nodes to request when deploying.
710 - custom_constraint: nova.flavor
712 default: overcloud-full
714 ObjectStorageExtraConfig:
717 ObjectStorage specific configuration to inject into the cluster. Same
718 structure as ExtraConfig.
720 ObjectStorageSchedulerHints:
722 description: Optional scheduler hints to pass to nova
725 # Ceph storage specific parameters
730 default: overcloud-full
732 OvercloudCephStorageFlavor:
734 description: Flavor for Ceph storage nodes to request when deploying.
737 - custom_constraint: nova.flavor
738 CephStorageExtraConfig:
741 CephStorage specific configuration to inject into the cluster. Same
742 structure as ExtraConfig.
744 CephStorageSchedulerHints:
746 description: Optional scheduler hints to pass to nova
750 # Hostname format for each role
751 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
752 # and %stackname% is replaced with OS::stack_name in the template below.
753 # If you want to use the heat generated names, pass '' (empty string).
754 ControllerHostnameFormat:
756 description: Format for Controller node hostnames
757 default: '%stackname%-controller-%index%'
758 ComputeHostnameFormat:
760 description: Format for Compute node hostnames
761 default: '%stackname%-novacompute-%index%'
762 BlockStorageHostnameFormat:
764 description: Format for BlockStorage node hostnames
765 default: '%stackname%-blockstorage-%index%'
766 ObjectStorageHostnameFormat:
768 description: Format for SwiftStorage node hostnames
769 default: '%stackname%-objectstorage-%index%'
770 CephStorageHostnameFormat:
772 description: Format for CephStorage node hostnames
773 default: '%stackname%-cephstorage-%index%'
775 # Identifiers to trigger tasks on nodes
780 Setting to a previously unused value during stack-update will trigger
781 package update on all nodes
786 Setting this to a unique value will re-run any deployment tasks which
787 perform configuration on a Heat stack-update.
789 # If you want to remove a specific node from a resource group, you can pass
790 # the node name or id as a <Group>RemovalPolicies parameter, for example:
791 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
792 ControllerRemovalPolicies:
796 List of resources to be removed from ControllerResourceGroup when
797 doing an update which requires removal of specific resources.
798 ComputeRemovalPolicies:
802 List of resources to be removed from ComputeResourceGroup when
803 doing an update which requires removal of specific resources.
804 BlockStorageRemovalPolicies:
808 List of resources to be removed from BlockStorageResourceGroup when
809 doing an update which requires removal of specific resources.
810 ObjectStorageRemovalPolicies:
814 List of resources to be removed from ObjectStorageResourceGroup when
815 doing an update which requires removal of specific resources.
816 CephStorageRemovalPolicies:
820 List of resources to be removed from CephStorageResourceGroup when
821 doing an update which requires removal of specific resources.
825 description: Do not use deprecated params, they will be removed.
827 - controllerExtraConfig
832 HeatAuthEncryptionKey:
833 type: OS::Heat::RandomString
836 type: OS::Heat::RandomString
841 type: OS::Heat::RandomString
846 type: OS::TripleO::EndpointMap
848 CloudName: {get_param: CloudName}
849 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
850 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
851 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
852 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
853 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
854 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
855 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
856 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
857 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
858 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
859 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
860 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
861 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
862 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
863 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
865 ControllerServiceChain:
866 type: OS::TripleO::Services
868 Services: {get_param: ControllerServices}
869 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
870 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
873 type: OS::Heat::ResourceGroup
876 count: {get_param: ControllerCount}
877 removal_policies: {get_param: ControllerRemovalPolicies}
879 type: OS::TripleO::Controller
881 AdminPassword: {get_param: AdminPassword}
882 AodhPassword: {get_param: AodhPassword}
883 CeilometerBackend: {get_param: CeilometerBackend}
884 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
885 CeilometerPassword: {get_param: CeilometerPassword}
886 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
887 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
888 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
889 CinderNfsServers: {get_param: CinderNfsServers}
890 CinderPassword: {get_param: CinderPassword}
891 CinderISCSIHelper: {get_param: CinderISCSIHelper}
892 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
893 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
894 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
895 CloudDomain: {get_param: CloudDomain}
896 ControlVirtualInterface: {get_param: ControlVirtualInterface}
897 controllerExtraConfig: {get_param: controllerExtraConfig}
898 CorosyncIPv6: {get_param: CorosyncIPv6}
899 Debug: {get_param: Debug}
900 EnableFencing: {get_param: EnableFencing}
901 ManageFirewall: {get_param: ManageFirewall}
902 PurgeFirewallRules: {get_param: PurgeFirewallRules}
903 EnableGalera: {get_param: EnableGalera}
904 EnableCephStorage: {get_param: ControllerEnableCephStorage}
905 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
906 ExtraConfig: {get_param: ExtraConfig}
907 FencingConfig: {get_param: FencingConfig}
908 Flavor: {get_param: OvercloudControlFlavor}
909 GnocchiPassword: {get_param: GnocchiPassword}
910 GnocchiBackend: {get_param: GnocchiBackend}
911 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
912 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
913 HeatPassword: {get_param: HeatPassword}
914 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
915 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
916 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
917 HorizonSecret: {get_resource: HorizonSecret}
918 Image: {get_param: controllerImage}
919 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
920 InstanceNameTemplate: {get_param: InstanceNameTemplate}
921 KeyName: {get_param: KeyName}
922 MemcachedIPv6: {get_param: MemcachedIPv6}
923 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
924 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
925 MysqlMaxConnections: {get_param: MysqlMaxConnections}
926 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
927 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
928 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
929 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
930 NeutronTenantMtu: {get_param: NeutronTenantMtu}
931 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
932 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
933 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
934 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
935 NeutronPublicInterface: {get_param: NeutronPublicInterface}
936 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
937 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
938 NeutronPassword: {get_param: NeutronPassword}
939 NeutronDVR: {get_param: NeutronDVR}
940 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
941 NeutronAgentMode: {get_param: NeutronAgentMode}
942 NeutronCorePlugin: {get_param: NeutronCorePlugin}
943 NeutronServicePlugins: {get_param: NeutronServicePlugins}
944 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
945 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
946 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
947 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
948 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
949 NeutronL3HA: {get_param: NeutronL3HA}
950 NeutronNetworkType: {get_param: NeutronNetworkType}
951 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
952 NovaIPv6: {get_param: NovaIPv6}
953 NovaPassword: {get_param: NovaPassword}
954 NtpServer: {get_param: NtpServer}
955 MongoDbNoJournal: {get_param: MongoDbNoJournal}
956 MongoDbIPv6: {get_param: MongoDbIPv6}
957 PcsdPassword: {get_resource: PcsdPassword}
958 PublicVirtualInterface: {get_param: PublicVirtualInterface}
959 RabbitPassword: {get_param: RabbitPassword}
960 RabbitUserName: {get_param: RabbitUserName}
961 RabbitCookie: {get_attr: [RabbitCookie, value]}
962 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
963 RabbitClientPort: {get_param: RabbitClientPort}
964 RabbitFDLimit: {get_param: RabbitFDLimit}
965 RabbitIPv6: {get_param: RabbitIPv6}
966 RedisPassword: {get_param: RedisPassword}
967 SaharaPassword: {get_param: SaharaPassword}
968 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
969 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
970 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
971 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
972 SwiftHashSuffix: {get_param: SwiftHashSuffix}
973 SwiftMountCheck: {get_param: SwiftMountCheck}
974 SwiftMinPartHours: {get_param: SwiftMinPartHours}
975 SwiftPartPower: {get_param: SwiftPartPower}
976 SwiftPassword: {get_param: SwiftPassword}
977 SwiftReplicas: { get_param: SwiftReplicas}
978 TimeZone: {get_param: TimeZone}
979 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
980 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
981 ServiceNetMap: {get_param: ServiceNetMap}
982 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
983 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
984 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
985 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
986 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
987 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
988 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
989 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
990 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
991 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
992 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
993 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
994 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
995 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
996 UpdateIdentifier: {get_param: UpdateIdentifier}
999 template: {get_param: ControllerHostnameFormat}
1001 '%stackname%': {get_param: 'OS::stack_name'}
1002 NodeIndex: '%index%'
1003 ServerMetadata: {get_param: ServerMetadata}
1004 SchedulerHints: {get_param: ControllerSchedulerHints}
1005 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
1008 type: OS::Heat::ResourceGroup
1009 depends_on: Networks
1011 count: {get_param: ComputeCount}
1012 removal_policies: {get_param: ComputeRemovalPolicies}
1014 type: OS::TripleO::Compute
1016 AdminPassword: {get_param: AdminPassword}
1017 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1018 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1019 CeilometerPassword: {get_param: CeilometerPassword}
1020 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1021 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1022 Debug: {get_param: Debug}
1023 ExtraConfig: {get_param: ExtraConfig}
1024 Flavor: {get_param: OvercloudComputeFlavor}
1025 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1026 Image: {get_param: NovaImage}
1027 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1028 KeyName: {get_param: KeyName}
1029 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1030 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1031 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1032 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1033 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1034 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1035 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1036 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1037 NeutronNetworkType: {get_param: NeutronNetworkType}
1038 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1039 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1040 NeutronPassword: {get_param: NeutronPassword}
1041 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1042 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1043 NeutronDVR: {get_param: NeutronDVR}
1044 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1045 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1046 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1047 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1048 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1049 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1050 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1051 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1052 # L3 HA and Failover is not relevant for Computes, should be removed
1053 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1054 NeutronL3HA: {get_param: NeutronL3HA}
1055 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1056 NovaComputeDriver: {get_param: NovaComputeDriver}
1057 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1058 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1059 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1060 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1061 NovaIPv6: {get_param: NovaIPv6}
1062 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1063 NovaPassword: {get_param: NovaPassword}
1064 NovaOVSBridge: {get_param: NovaOVSBridge}
1065 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1066 NtpServer: {get_param: NtpServer}
1067 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1068 RabbitPassword: {get_param: RabbitPassword}
1069 RabbitUserName: {get_param: RabbitUserName}
1070 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1071 RabbitClientPort: {get_param: RabbitClientPort}
1072 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1073 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1074 ServiceNetMap: {get_param: ServiceNetMap}
1075 TimeZone: {get_param: TimeZone}
1076 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1077 UpdateIdentifier: {get_param: UpdateIdentifier}
1080 template: {get_param: ComputeHostnameFormat}
1082 '%stackname%': {get_param: 'OS::stack_name'}
1083 CloudDomain: {get_param: CloudDomain}
1084 ServerMetadata: {get_param: ServerMetadata}
1085 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1086 NodeIndex: '%index%'
1089 type: OS::Heat::ResourceGroup
1090 depends_on: Networks
1092 count: {get_param: BlockStorageCount}
1093 removal_policies: {get_param: BlockStorageRemovalPolicies}
1095 type: OS::TripleO::BlockStorage
1097 Debug: {get_param: Debug}
1098 Image: {get_param: BlockStorageImage}
1099 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1100 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1101 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1102 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1103 CinderPassword: {get_param: CinderPassword}
1104 KeyName: {get_param: KeyName}
1105 Flavor: {get_param: OvercloudBlockStorageFlavor}
1106 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1107 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1108 RabbitPassword: {get_param: RabbitPassword}
1109 RabbitUserName: {get_param: RabbitUserName}
1110 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1111 RabbitClientPort: {get_param: RabbitClientPort}
1112 TimeZone: {get_param: TimeZone}
1113 NtpServer: {get_param: NtpServer}
1114 UpdateIdentifier: {get_param: UpdateIdentifier}
1117 template: {get_param: BlockStorageHostnameFormat}
1119 '%stackname%': {get_param: 'OS::stack_name'}
1120 ServiceNetMap: {get_param: ServiceNetMap}
1121 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1122 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1123 ExtraConfig: {get_param: ExtraConfig}
1124 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1125 CloudDomain: {get_param: CloudDomain}
1126 ServerMetadata: {get_param: ServerMetadata}
1127 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1128 NodeIndex: '%index%'
1131 type: OS::Heat::ResourceGroup
1132 depends_on: Networks
1134 count: {get_param: ObjectStorageCount}
1135 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1137 type: OS::TripleO::ObjectStorage
1139 KeyName: {get_param: KeyName}
1140 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1141 HashSuffix: {get_param: SwiftHashSuffix}
1142 MountCheck: {get_param: SwiftMountCheck}
1143 MinPartHours: {get_param: SwiftMinPartHours}
1144 PartPower: {get_param: SwiftPartPower}
1145 Image: {get_param: SwiftStorageImage}
1146 Replicas: { get_param: SwiftReplicas}
1147 TimeZone: {get_param: TimeZone}
1148 NtpServer: {get_param: NtpServer}
1149 UpdateIdentifier: {get_param: UpdateIdentifier}
1150 ServiceNetMap: {get_param: ServiceNetMap}
1153 template: {get_param: ObjectStorageHostnameFormat}
1155 '%stackname%': {get_param: 'OS::stack_name'}
1156 ExtraConfig: {get_param: ExtraConfig}
1157 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1158 CloudDomain: {get_param: CloudDomain}
1159 ServerMetadata: {get_param: ServerMetadata}
1160 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1161 NodeIndex: '%index%'
1164 type: OS::Heat::ResourceGroup
1165 depends_on: Networks
1167 count: {get_param: CephStorageCount}
1168 removal_policies: {get_param: CephStorageRemovalPolicies}
1170 type: OS::TripleO::CephStorage
1172 Image: {get_param: CephStorageImage}
1173 KeyName: {get_param: KeyName}
1174 Flavor: {get_param: OvercloudCephStorageFlavor}
1175 NtpServer: {get_param: NtpServer}
1176 ServiceNetMap: {get_param: ServiceNetMap}
1177 TimeZone: {get_param: TimeZone}
1178 UpdateIdentifier: {get_param: UpdateIdentifier}
1181 template: {get_param: CephStorageHostnameFormat}
1183 '%stackname%': {get_param: 'OS::stack_name'}
1184 ExtraConfig: {get_param: ExtraConfig}
1185 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1186 CloudDomain: {get_param: CloudDomain}
1187 ServerMetadata: {get_param: ServerMetadata}
1188 SchedulerHints: {get_param: CephStorageSchedulerHints}
1189 NodeIndex: '%index%'
1191 ControllerIpListMap:
1192 type: OS::TripleO::Network::Ports::NetIpListMap
1194 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1195 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1196 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1197 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1198 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1199 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1200 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1203 type: OS::TripleO::AllNodes::SoftwareConfig
1205 compute_hosts: {get_attr: [Compute, hosts_entry]}
1206 controller_hosts: {get_attr: [Controller, hosts_entry]}
1207 controller_ips: {get_attr: [Controller, ip_address]}
1208 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1209 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1210 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1211 controller_names: {get_attr: [Controller, hostname]}
1212 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1213 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1214 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1215 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1216 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1217 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1218 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1219 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1220 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1221 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1222 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1223 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1224 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1225 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1226 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1227 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1228 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1229 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1230 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1231 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1232 DeployIdentifier: {get_param: DeployIdentifier}
1233 UpdateIdentifier: {get_param: UpdateIdentifier}
1236 type: OS::Heat::RandomString
1240 MysqlClusterUniquePart:
1241 type: OS::Heat::RandomString
1246 type: OS::Heat::RandomString
1249 salt: {get_param: RabbitCookieSalt}
1251 # creates the network architecture
1253 type: OS::TripleO::Network
1256 type: OS::Neutron::Port
1257 depends_on: Networks
1259 name: control_virtual_ip
1260 network: {get_param: NeutronControlPlaneID}
1261 fixed_ips: {get_param: ControlFixedIPs}
1262 replacement_policy: AUTO
1265 depends_on: Networks
1266 type: OS::TripleO::Network::Ports::RedisVipPort
1268 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1269 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1270 PortName: redis_virtual_ip
1271 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1274 # The public VIP is on the External net, falls back to ctlplane
1276 depends_on: Networks
1277 type: OS::TripleO::Network::Ports::ExternalVipPort
1279 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1280 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1281 PortName: public_virtual_ip
1282 FixedIPs: {get_param: PublicVirtualFixedIPs}
1284 InternalApiVirtualIP:
1285 depends_on: Networks
1286 type: OS::TripleO::Network::Ports::InternalApiVipPort
1288 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1289 PortName: internal_api_virtual_ip
1290 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1293 depends_on: Networks
1294 type: OS::TripleO::Network::Ports::StorageVipPort
1296 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1297 PortName: storage_virtual_ip
1298 FixedIPs: {get_param: StorageVirtualFixedIPs}
1300 StorageMgmtVirtualIP:
1301 depends_on: Networks
1302 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1304 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1305 PortName: storage_management_virtual_ip
1306 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1309 type: OS::TripleO::Network::Ports::NetVipMap
1311 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1312 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1313 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1314 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1315 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1316 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1317 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1318 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1319 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1320 # No tenant or management VIP required
1323 type: OS::TripleO::VipConfig
1326 type: OS::Heat::StructuredDeployments
1329 config: {get_resource: VipConfig}
1330 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1332 # service VIP mappings
1333 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1334 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1335 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1336 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1337 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1338 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1339 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1340 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1341 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1342 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1343 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1344 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1345 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1346 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1347 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1348 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1349 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1350 # direct configuration of Virtual IPs for each network
1351 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1352 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1353 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1354 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1355 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1356 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1358 ControllerBootstrapNodeConfig:
1359 type: OS::TripleO::BootstrapNode::SoftwareConfig
1361 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1362 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1364 ControllerBootstrapNodeDeployment:
1365 type: OS::Heat::StructuredDeployments
1367 name: ControllerBootstrapNodeDeployment
1368 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1369 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1371 ControllerSwiftDeployment:
1372 type: OS::Heat::StructuredDeployments
1374 name: ControllerSwiftDeployment
1375 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1376 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1378 ObjectStorageSwiftDeployment:
1379 type: OS::Heat::StructuredDeployments
1381 name: ObjectStorageSwiftDeployment
1382 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1383 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1385 SwiftDevicesAndProxyConfig:
1386 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1388 controller_swift_devices: {get_attr: [Controller, swift_device]}
1389 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1390 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1392 ComputeCephDeployment:
1393 type: OS::Heat::StructuredDeployments
1395 name: ComputeCephDeployment
1396 config: {get_attr: [CephClusterConfig, config_id]}
1397 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1399 ControllerCephDeployment:
1400 type: OS::Heat::StructuredDeployments
1402 name: ControllerCephDeployment
1403 config: {get_attr: [CephClusterConfig, config_id]}
1404 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1406 CephStorageCephDeployment:
1407 type: OS::Heat::StructuredDeployments
1409 name: CephStorageCephDeployment
1410 config: {get_attr: [CephClusterConfig, config_id]}
1411 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1414 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1416 ceph_storage_count: {get_param: CephStorageCount}
1417 ceph_fsid: {get_param: CephClusterFSID}
1418 ceph_mon_key: {get_param: CephMonKey}
1419 ceph_admin_key: {get_param: CephAdminKey}
1420 ceph_client_key: {get_param: CephClientKey}
1421 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1422 ceph_mon_names: {get_attr: [Controller, hostname]}
1423 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1425 ControllerClusterConfig:
1426 type: OS::Heat::StructuredConfig
1428 group: os-apply-config
1431 nodes: {get_attr: [Controller, corosync_node]}
1435 nodes: {get_attr: [Controller, hostname]}
1437 nodes: {get_attr: [Controller, corosync_node]}
1439 nodes: {get_attr: [Controller, corosync_node]}
1441 ControllerClusterDeployment:
1442 type: OS::Heat::StructuredDeployments
1444 name: ControllerClusterDeployment
1445 config: {get_resource: ControllerClusterConfig}
1446 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1448 ControllerAllNodesDeployment:
1449 type: OS::Heat::StructuredDeployments
1451 name: ControllerAllNodesDeployment
1452 config: {get_attr: [allNodesConfig, config_id]}
1453 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1455 ComputeAllNodesDeployment:
1456 type: OS::Heat::StructuredDeployments
1458 name: ComputeAllNodesDeployment
1459 config: {get_attr: [allNodesConfig, config_id]}
1460 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1462 BlockStorageAllNodesDeployment:
1463 type: OS::Heat::StructuredDeployments
1465 name: BlockStorageAllNodesDeployment
1466 config: {get_attr: [allNodesConfig, config_id]}
1467 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1469 ObjectStorageAllNodesDeployment:
1470 type: OS::Heat::StructuredDeployments
1472 name: ObjectStorageAllNodesDeployment
1473 config: {get_attr: [allNodesConfig, config_id]}
1474 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1476 CephStorageAllNodesDeployment:
1477 type: OS::Heat::StructuredDeployments
1479 name: CephStorageAllNodesDeployment
1480 config: {get_attr: [allNodesConfig, config_id]}
1481 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1483 # All Nodes Validations
1484 AllNodesValidationConfig:
1485 type: OS::TripleO::AllNodes::Validation
1490 - - {get_attr: [Controller, resource.0.external_ip_address]}
1491 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1492 - {get_attr: [Controller, resource.0.storage_ip_address]}
1493 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1494 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1496 ControllerAllNodesValidationDeployment:
1497 type: OS::Heat::StructuredDeployments
1498 depends_on: ControllerAllNodesDeployment
1500 name: ControllerAllNodesValidationDeployment
1501 config: {get_resource: AllNodesValidationConfig}
1502 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1504 ComputeAllNodesValidationDeployment:
1505 type: OS::Heat::StructuredDeployments
1506 depends_on: ComputeAllNodesDeployment
1508 name: ComputeAllNodesValidationDeployment
1509 config: {get_resource: AllNodesValidationConfig}
1510 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1512 BlockStorageAllNodesValidationDeployment:
1513 type: OS::Heat::StructuredDeployments
1514 depends_on: BlockStorageAllNodesDeployment
1516 name: BlockStorageAllNodesValidationDeployment
1517 config: {get_resource: AllNodesValidationConfig}
1518 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1520 ObjectStorageAllNodesValidationDeployment:
1521 type: OS::Heat::StructuredDeployments
1522 depends_on: ObjectStorageAllNodesDeployment
1524 name: ObjectStorageAllNodesValidationDeployment
1525 config: {get_resource: AllNodesValidationConfig}
1526 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1528 CephStorageAllNodesValidationDeployment:
1529 type: OS::Heat::StructuredDeployments
1530 depends_on: CephStorageAllNodesDeployment
1532 name: CephStorageAllNodesValidationDeployment
1533 config: {get_resource: AllNodesValidationConfig}
1534 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1537 type: OS::TripleO::Tasks::UpdateWorkflow
1539 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1540 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1541 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1542 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1543 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1545 deploy_identifier: {get_param: DeployIdentifier}
1546 update_identifier: {get_param: UpdateIdentifier}
1548 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1549 # the nested template may configure each role differently (or not at all)
1550 AllNodesExtraConfig:
1551 type: OS::TripleO::AllNodesExtraConfig
1554 - ComputeAllNodesValidationDeployment
1555 - BlockStorageAllNodesValidationDeployment
1556 - ObjectStorageAllNodesValidationDeployment
1557 - CephStorageAllNodesValidationDeployment
1558 - ControllerAllNodesValidationDeployment
1560 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1561 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1562 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1563 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1564 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1566 # Nested stack deployment runs after all other controller deployments
1567 ControllerNodesPostDeployment:
1568 type: OS::TripleO::ControllerPostDeployment
1569 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1571 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1572 NodeConfigIdentifiers:
1573 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1574 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1575 deployment_identifier: {get_param: DeployIdentifier}
1576 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1578 ComputeNodesPostDeployment:
1579 type: OS::TripleO::ComputePostDeployment
1580 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1582 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1583 NodeConfigIdentifiers:
1584 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1585 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1586 deployment_identifier: {get_param: DeployIdentifier}
1588 ObjectStorageNodesPostDeployment:
1589 type: OS::TripleO::ObjectStoragePostDeployment
1590 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1592 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1593 NodeConfigIdentifiers:
1594 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1595 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1596 deployment_identifier: {get_param: DeployIdentifier}
1598 BlockStorageNodesPostDeployment:
1599 type: OS::TripleO::BlockStoragePostDeployment
1600 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1602 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1603 NodeConfigIdentifiers:
1604 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1605 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1606 deployment_identifier: {get_param: DeployIdentifier}
1608 CephStorageNodesPostDeployment:
1609 type: OS::TripleO::CephStoragePostDeployment
1610 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1612 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1613 NodeConfigIdentifiers:
1614 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1615 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1616 deployment_identifier: {get_param: DeployIdentifier}
1620 description: URL for the Overcloud Keystone service
1621 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1623 description: Keystone Admin VIP endpoint
1624 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1626 description: Controller VIP for public API endpoints
1627 value: {get_attr: [VipMap, net_ip_map, external]}
1629 description: VIP for Aodh API internal endpoint
1630 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1631 CeilometerInternalVip:
1632 description: VIP for Ceilometer API internal endpoint
1633 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1635 description: VIP for Cinder API internal endpoint
1636 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1638 description: VIP for Glance API internal endpoint
1639 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1641 description: VIP for Gnocchi API internal endpoint
1642 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1644 description: VIP for Heat API internal endpoint
1645 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1646 KeystoneInternalVip:
1647 description: VIP for Keystone API internal endpoint
1648 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1650 description: VIP for Neutron API internal endpoint
1651 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1653 description: VIP for Nova API internal endpoint
1654 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1656 description: VIP for Sahara API internal endpoint
1657 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1659 description: VIP for Swift Proxy internal endpoint
1660 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1663 Mapping of the resources with the needed info for their endpoints.
1664 This includes the protocol used, the IP, port and also a full
1665 representation of the URI.
1666 value: {get_attr: [EndpointMap, endpoint_map]}
1669 The content that should be appended to your /etc/hosts if you want to get
1670 hostname-based access to the deployed nodes (useful for testing without
1672 value: {get_attr: [allNodesConfig, hosts_entries]}