1 heat_template_version: 2015-04-30
4 Deploy an OpenStack environment, consisting of several node types (roles),
5 Controller, Compute, BlockStorage, SwiftStorage and CephStorage. The Storage
6 roles enable independent scaling of the storage components, but the minimal
7 deployment is one Controller and one Compute node.
10 # TODO(shadower): we should probably use the parameter groups to put
14 # Common parameters (not specific to a role)
16 description: The password for the keystone admin account, used for monitoring, querying neutron etc.
21 description: The ceilometer backend type.
23 CeilometerMeteringSecret:
24 description: Secret shared by the ceilometer services.
28 description: The password for the ceilometer service account.
31 # This has to be an UUID so for now we generate it outside the template
35 description: The Ceph cluster FSID. Must be a UUID.
38 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
43 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
46 CinderEnableNfsBackend:
48 description: Whether to enable or not the NFS backend for Cinder
52 description: The Ceph client key. Can be created with ceph-authtool --gen-print-key. Currently only used for external Ceph deployments to create the openstack user keyring.
58 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
59 CinderEnableIscsiBackend:
61 description: Whether to enable or not the Iscsi backend for Cinder
63 CinderEnableRbdBackend:
65 description: Whether to enable or not the Rbd backend for Cinder
69 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
73 description: Should be used for arbitrary ips.
77 description: Enable IPv6 in Corosync
81 description: Set to True to enable debugging on all services.
85 description: Syslog address where HAproxy will send its log
89 description: A list of IP/Hostname allowed to connect to horizon
90 type: comma_delimited_list
92 default: 'REBUILD_PRESERVE_EPHEMERAL'
93 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
95 InternalApiVirtualFixedIPs:
98 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
99 [{'ip_address':'1.2.3.4'}]
103 description: Name of an existing Nova key pair to enable SSH access to the instances
106 - custom_constraint: nova.keypair
107 NeutronExternalNetworkBridge:
108 description: Name of bridge used for external network traffic.
111 NeutronBridgeMappings:
113 The OVS logical->physical bridge mappings to use. See the Neutron
114 documentation for details. Defaults to mapping br-ex - the external
115 bridge on hosts - to a physical name 'datacentre' which can be used
116 to create provider networks (and we use this for the default floating
117 network) - if changing this either use different post-install network
118 scripts or be sure to keep 'datacentre' as a mapping network name.
119 type: comma_delimited_list
120 default: "datacentre:br-ex"
121 NeutronControlPlaneID:
124 description: Neutron ID or name for ctlplane network.
125 NeutronEnableIsolatedMetadata:
127 description: If True, DHCP provide metadata route to VM.
129 NeutronEnableTunnelling:
135 Enable/disable the L2 population feature in the Neutron agents.
138 type: comma_delimited_list
139 default: 'datacentre'
141 If set, flat networks to configure in neutron plugins. Defaults to
142 'datacentre' to permit external network creation.
145 description: The tenant network type for Neutron.
146 type: comma_delimited_list
148 description: The password for the neutron service account, used by neutron agents.
151 NeutronPublicInterface:
153 description: What interface to bridge onto br-ex for network nodes.
155 NeutronPublicInterfaceTag:
158 VLAN tag for creating a public VLAN. The tag will be used to
159 create an access port on the exterior bridge for each control plane node,
160 and that port will be given the IP address returned by neutron from the
161 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
162 overcloud.yaml to include the deployment of VLAN ports to the control
165 NeutronComputeAgentMode:
167 description: Agent mode for the neutron-l3-agent on the compute hosts
171 description: Agent mode for the neutron-l3-agent on the controller hosts
175 description: Whether to configure Neutron Distributed Virtual Routers
177 NeutronMetadataProxySharedSecret:
178 description: Shared secret to prevent spoofing
183 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
184 be at least 50 bytes smaller than the MTU on the physical network. This
185 value will be used to set the MTU on the virtual Ethernet device.
186 This value will be used to construct the NeutronDnsmasqOptions, since that
187 will determine the MTU that is assigned to the VM host through DHCP.
193 The tunnel types for the Neutron tenant network.
194 type: comma_delimited_list
195 NeutronTunnelIdRanges:
197 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
198 of GRE tunnel IDs that are available for tenant network allocation
199 default: ["1:4094", ]
200 type: comma_delimited_list
203 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
204 of VXLAN VNI IDs that are available for tenant network allocation
205 default: ["1:4094", ]
206 type: comma_delimited_list
210 The core plugin for Neutron. The value should be the entrypoint to be loaded
211 from neutron.core_plugins namespace.
213 NeutronServicePlugins:
214 default: "router,qos"
216 Comma-separated list of service plugin entrypoints to be loaded from the
217 neutron.service_plugins namespace.
218 type: comma_delimited_list
220 default: "vxlan,vlan,flat,gre"
222 Comma-separated list of network type driver entrypoints to be loaded.
223 type: comma_delimited_list
224 NeutronMechanismDrivers:
225 default: 'openvswitch'
227 The mechanism drivers for the Neutron tenant network.
228 type: comma_delimited_list
229 NeutronPluginExtensions:
230 default: "qos,port_security"
232 Comma-separated list of extensions enabled for the Neutron plugin.
233 type: comma_delimited_list
234 NeutronAgentExtensions:
237 Comma-separated list of extensions enabled for the Neutron agents.
238 type: comma_delimited_list
239 NeutronAllowL3AgentFailover:
241 description: Allow automatic l3-agent failover
245 description: Whether to enable l3-agent HA
247 NeutronDhcpAgentsPerNetwork:
250 description: The number of neutron dhcp agents to schedule per network
253 description: Enable IPv6 features in Nova
256 description: The password for the nova service account, used by nova-api.
261 description: Comma-separated list of ntp servers
262 type: comma_delimited_list
265 description: Should MongoDb journaling be disabled
269 description: Enable IPv6 if MongoDB VIP is IPv6
271 PublicVirtualFixedIPs:
274 Control the IP allocation for the PublicVirtualInterface port. E.g.
275 [{'ip_address':'1.2.3.4'}]
280 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
283 description: The username for RabbitMQ
286 description: The password for RabbitMQ
292 Rabbit client subscriber parameter to specify
293 an SSL connection to the RabbitMQ host.
297 description: Set rabbit subscriber port, change this if using SSL
299 # We need to set this as string because 'unlimited' is a valid setting
302 description: Configures RabbitMQ FD limit
306 description: Enable IPv6 in RabbitMQ
309 description: The password for Redis
312 SnmpdReadonlyUserName:
313 default: ro_snmp_user
314 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
316 SnmpdReadonlyUserPassword:
317 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
320 StorageVirtualFixedIPs:
323 Control the IP allocation for the StorageVirtualInterface port. E.g.
324 [{'ip_address':'1.2.3.4'}]
326 StorageMgmtVirtualFixedIPs:
329 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
330 [{'ip_address':'1.2.3.4'}]
334 description: The timezone to be set on nodes.
337 default: 'localdomain'
340 The DNS domain used for the hosts. This should match the dhcp_domain
341 configured in the Undercloud neutron. Defaults to localdomain.
345 Extra properties or metadata passed to Nova for the created nodes in
346 the overcloud. It's accessible via the Nova metadata API.
349 # Controller-specific params
351 description: The keystone auth secret.
354 CinderLVMLoopDeviceSize:
356 description: The size of the loopback file used by the cinder LVM driver.
358 CinderNfsMountOptions:
361 Mount options for NFS mounts used by Cinder NFS backend. Effective
362 when CinderEnableNfsBackend is true.
367 NFS servers used by Cinder NFS backend. Effective when
368 CinderEnableNfsBackend is true.
369 type: comma_delimited_list
371 description: The password for the cinder service account, used by cinder-api.
376 description: The iSCSI helper to use with cinder.
383 controllerExtraConfig:
386 Controller specific configuration to inject into the cluster. Same
387 structure as ExtraConfig.
391 default: overcloud-full
393 - custom_constraint: glance.image
394 OvercloudControlFlavor:
395 description: Flavor for control nodes to request when deploying.
399 - custom_constraint: nova.flavor
400 ControlVirtualInterface:
402 description: Interface where virtual ip will be assigned.
406 description: Whether to enable fencing in Pacemaker or not.
410 description: Whether to use Galera instead of regular MariaDB.
412 ControllerEnableCephStorage:
414 description: Whether to deploy Ceph Storage (OSD) on the Controller
416 ControllerEnableSwiftStorage:
418 description: Whether to enable Swift Storage on the Controller
420 ControllerSchedulerHints:
422 description: Optional scheduler hints to pass to nova
427 Additional configuration to inject into the cluster. The format required
428 may be implementation specific, e.g puppet hieradata. Any role specific
429 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
434 Pacemaker fencing configuration. The JSON should have
435 the following structure:
439 "agent": "AGENT_NAME",
440 "host_mac": "HOST_MAC_ADDRESS",
441 "params": {"PARAM_NAME": "PARAM_VALUE"}
449 "agent": "fence_xvm",
450 "host_mac": "52:54:00:aa:bb:cc",
452 "multicast_address": "225.0.0.12",
453 "port": "baremetal_0",
455 "manage_key_file": true,
456 "key_file": "/etc/fence_xvm.key",
457 "key_file_password": "abcdef"
464 description: The filepath of the file to use for logging messages from Glance.
467 GlanceNotifierStrategy:
468 description: Strategy to use for Glance notification queue
472 description: The password for the glance service account, used by the glance services.
477 description: The short name of the Glance backend to use. Should be one
478 of swift, rbd or file
481 - allowed_values: ['swift', 'file', 'rbd']
483 description: The password for the Heat service account, used by the Heat services.
486 HeatStackDomainAdminPassword:
487 description: Password for heat_stack_domain_admin user.
490 InstanceNameTemplate:
491 default: 'instance-%08x'
492 description: Template string to be used to generate instance names
494 KeystoneCACertificate:
496 description: Keystone self-signed certificate authority certificate.
498 KeystoneSigningCertificate:
500 description: Keystone certificate for verifying token validity.
504 description: Keystone key for signing tokens.
507 KeystoneSSLCertificate:
509 description: Keystone certificate for verifying token validity.
511 KeystoneSSLCertificateKey:
513 description: Keystone key for signing tokens.
516 KeystoneNotificationDriver:
517 description: Comma-separated list of Oslo notification drivers used by Keystone
518 default: ['messaging']
519 type: comma_delimited_list
520 KeystoneNotificationFormat:
521 description: The Keystone notification format
525 - allowed_values: [ 'basic', 'cadf' ]
528 description: Whether to manage IPtables rules.
532 description: Whether IPtables rules should be purged before setting up the ones.
534 MysqlInnodbBufferPoolSize:
536 Specifies the size of the buffer pool in megabytes. Setting to
537 zero should be interpreted as "no value" and will defer to the
542 description: Configures MySQL max_connections config setting
545 NeutronDnsmasqOptions:
546 default: 'dhcp-option-force=26,%MTU%'
548 Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU
549 to be set to the value of NeutronTenantMtu, which should be set to account
552 NeutronPublicInterfaceDefaultRoute:
554 description: A custom default route for the NeutronPublicInterface.
556 NeutronPublicInterfaceIP:
558 description: A custom IP address to put onto the NeutronPublicInterface.
560 NeutronPublicInterfaceRawDevice:
562 description: If set, the public interface is a vlan with this device as the raw device.
564 PublicVirtualInterface:
567 Specifies the interface where the public-facing virtual ip will be assigned.
568 This should be int_public when a VLAN is being used.
571 description: A random string to be used as a salt when hashing to determine mappings in the ring.
575 description: The password for the swift service account, used by the swift proxy services.
580 description: Value of mount_check in Swift account/container/object -server.conf
585 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
588 description: Partition Power to use when building Swift rings
593 description: How many replicas to use in the swift rings.
595 description: The password for the sahara service account.
599 # Compute-specific params
600 CeilometerComputeAgent:
601 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
605 - allowed_values: ['', Present]
609 HypervisorNeutronPhysicalBridge:
612 An OVS bridge to create on each hypervisor. This defaults to br-ex the
613 same as the control plane nodes, as we have a uniform configuration of
614 the openvswitch agent. Typically should not need to be changed.
616 HypervisorNeutronPublicInterface:
618 description: What interface to add to the HypervisorNeutronPhysicalBridge.
620 NeutronNetworkVLANRanges:
621 default: 'datacentre:1:1000'
623 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
624 Neutron documentation for permitted values. Defaults to permitting any
625 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
626 type: comma_delimited_list
629 default: libvirt.LibvirtDriver
630 NovaComputeExtraConfig:
633 NovaCompute specific configuration to inject into the cluster. Same
634 structure as ExtraConfig.
636 NovaComputeLibvirtType:
639 NovaComputeLibvirtVifDriver:
641 description: Libvirt VIF driver configuration for the network
643 NovaComputeSchedulerHints:
645 description: Optional scheduler hints to pass to nova
647 NovaEnableRbdBackend:
649 description: Whether to enable or not the Rbd backend for Nova
653 default: overcloud-full
655 - custom_constraint: glance.image
658 description: Name of integration bridge used by Open vSwitch
660 NovaSecurityGroupAPI:
662 description: The full class name of the security API class
664 OvercloudComputeFlavor:
665 description: Use this flavor
669 - custom_constraint: nova.flavor
672 NeutronTenantNetwork: tenant
673 CeilometerApiNetwork: 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 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
874 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
875 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
876 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
877 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
878 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
879 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
880 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
881 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
882 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
883 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
884 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
887 type: OS::Heat::ResourceGroup
890 count: {get_param: ControllerCount}
891 removal_policies: {get_param: ControllerRemovalPolicies}
893 type: OS::TripleO::Controller
895 AdminPassword: {get_param: AdminPassword}
896 AdminToken: {get_param: AdminToken}
897 CeilometerBackend: {get_param: CeilometerBackend}
898 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
899 CeilometerPassword: {get_param: CeilometerPassword}
900 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
901 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
902 CinderNfsServers: {get_param: CinderNfsServers}
903 CinderPassword: {get_param: CinderPassword}
904 CinderISCSIHelper: {get_param: CinderISCSIHelper}
905 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
906 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
907 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
908 CloudDomain: {get_param: CloudDomain}
909 ControlVirtualInterface: {get_param: ControlVirtualInterface}
910 ControllerExtraConfig: {get_param: controllerExtraConfig}
911 CorosyncIPv6: {get_param: CorosyncIPv6}
912 Debug: {get_param: Debug}
913 EnableFencing: {get_param: EnableFencing}
914 ManageFirewall: {get_param: ManageFirewall}
915 PurgeFirewallRules: {get_param: PurgeFirewallRules}
916 EnableGalera: {get_param: EnableGalera}
917 EnableCephStorage: {get_param: ControllerEnableCephStorage}
918 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
919 ExtraConfig: {get_param: ExtraConfig}
920 FencingConfig: {get_param: FencingConfig}
921 Flavor: {get_param: OvercloudControlFlavor}
922 GlancePassword: {get_param: GlancePassword}
923 GlanceBackend: {get_param: GlanceBackend}
924 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
925 GlanceLogFile: {get_param: GlanceLogFile}
926 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
927 HeatPassword: {get_param: HeatPassword}
928 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
929 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
930 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
931 HorizonSecret: {get_resource: HorizonSecret}
932 Image: {get_param: controllerImage}
933 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
934 InstanceNameTemplate: {get_param: InstanceNameTemplate}
935 KeyName: {get_param: KeyName}
936 KeystoneCACertificate: {get_param: KeystoneCACertificate}
937 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
938 KeystoneSigningKey: {get_param: KeystoneSigningKey}
939 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
940 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
941 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
942 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
943 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
944 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
945 MysqlMaxConnections: {get_param: MysqlMaxConnections}
946 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
947 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
948 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
949 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
950 NeutronTenantMtu: {get_param: NeutronTenantMtu}
951 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
952 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
953 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
954 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
955 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
956 NeutronPublicInterface: {get_param: NeutronPublicInterface}
957 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
958 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
959 NeutronPassword: {get_param: NeutronPassword}
960 NeutronDnsmasqOptions:
962 template: {get_param: NeutronDnsmasqOptions}
964 '%MTU%': {get_param: NeutronTenantMtu}
965 NeutronDVR: {get_param: NeutronDVR}
966 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
967 NeutronAgentMode: {get_param: NeutronAgentMode}
968 NeutronCorePlugin: {get_param: NeutronCorePlugin}
969 NeutronServicePlugins: {get_param: NeutronServicePlugins}
970 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
971 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
972 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
973 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
974 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
975 NeutronL3HA: {get_param: NeutronL3HA}
976 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
977 NeutronNetworkType: {get_param: NeutronNetworkType}
978 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
979 NovaIPv6: {get_param: NovaIPv6}
980 NovaPassword: {get_param: NovaPassword}
981 NtpServer: {get_param: NtpServer}
982 MongoDbNoJournal: {get_param: MongoDbNoJournal}
983 MongoDbIPv6: {get_param: MongoDbIPv6}
984 PcsdPassword: {get_resource: PcsdPassword}
985 PublicVirtualInterface: {get_param: PublicVirtualInterface}
986 RabbitPassword: {get_param: RabbitPassword}
987 RabbitUserName: {get_param: RabbitUserName}
988 RabbitCookie: {get_attr: [RabbitCookie, value]}
989 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
990 RabbitClientPort: {get_param: RabbitClientPort}
991 RabbitFDLimit: {get_param: RabbitFDLimit}
992 RabbitIPv6: {get_param: RabbitIPv6}
993 RedisPassword: {get_param: RedisPassword}
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 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1012 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1013 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1014 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1015 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1016 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1017 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1018 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1019 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1020 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1021 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1022 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1023 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1024 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1025 UpdateIdentifier: {get_param: UpdateIdentifier}
1028 template: {get_param: ControllerHostnameFormat}
1030 '%stackname%': {get_param: 'OS::stack_name'}
1031 NodeIndex: '%index%'
1032 ServerMetadata: {get_param: ServerMetadata}
1033 SchedulerHints: {get_param: ControllerSchedulerHints}
1036 type: OS::Heat::ResourceGroup
1037 depends_on: Networks
1039 count: {get_param: ComputeCount}
1040 removal_policies: {get_param: ComputeRemovalPolicies}
1042 type: OS::TripleO::Compute
1044 AdminPassword: {get_param: AdminPassword}
1045 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1046 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1047 CeilometerPassword: {get_param: CeilometerPassword}
1048 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1049 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1050 Debug: {get_param: Debug}
1051 ExtraConfig: {get_param: ExtraConfig}
1052 Flavor: {get_param: OvercloudComputeFlavor}
1053 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1054 Image: {get_param: NovaImage}
1055 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1056 KeyName: {get_param: KeyName}
1057 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1058 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1059 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1060 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1061 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1062 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1063 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1064 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1065 NeutronNetworkType: {get_param: NeutronNetworkType}
1066 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1067 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1068 NeutronPassword: {get_param: NeutronPassword}
1069 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1070 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1071 NeutronDVR: {get_param: NeutronDVR}
1072 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1073 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1074 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1075 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1076 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1077 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1078 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1079 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1080 # L3 HA and Failover is not relevant for Computes, should be removed
1081 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1082 NeutronL3HA: {get_param: NeutronL3HA}
1083 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1084 NovaComputeDriver: {get_param: NovaComputeDriver}
1085 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1086 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1087 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1088 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1089 NovaIPv6: {get_param: NovaIPv6}
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}
1114 NodeIndex: '%index%'
1117 type: OS::Heat::ResourceGroup
1118 depends_on: Networks
1120 count: {get_param: BlockStorageCount}
1121 removal_policies: {get_param: BlockStorageRemovalPolicies}
1123 type: OS::TripleO::BlockStorage
1125 Debug: {get_param: Debug}
1126 Image: {get_param: BlockStorageImage}
1127 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1128 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1129 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1130 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1131 CinderPassword: {get_param: CinderPassword}
1132 KeyName: {get_param: KeyName}
1133 Flavor: {get_param: OvercloudBlockStorageFlavor}
1134 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1135 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1136 RabbitPassword: {get_param: RabbitPassword}
1137 RabbitUserName: {get_param: RabbitUserName}
1138 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1139 RabbitClientPort: {get_param: RabbitClientPort}
1140 TimeZone: {get_param: TimeZone}
1141 NtpServer: {get_param: NtpServer}
1142 UpdateIdentifier: {get_param: UpdateIdentifier}
1145 template: {get_param: BlockStorageHostnameFormat}
1147 '%stackname%': {get_param: 'OS::stack_name'}
1148 ServiceNetMap: {get_param: ServiceNetMap}
1149 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1150 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1151 ExtraConfig: {get_param: ExtraConfig}
1152 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1153 CloudDomain: {get_param: CloudDomain}
1154 ServerMetadata: {get_param: ServerMetadata}
1155 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1156 NodeIndex: '%index%'
1159 type: OS::Heat::ResourceGroup
1160 depends_on: Networks
1162 count: {get_param: ObjectStorageCount}
1163 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1165 type: OS::TripleO::ObjectStorage
1167 KeyName: {get_param: KeyName}
1168 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1169 HashSuffix: {get_param: SwiftHashSuffix}
1170 MountCheck: {get_param: SwiftMountCheck}
1171 MinPartHours: {get_param: SwiftMinPartHours}
1172 PartPower: {get_param: SwiftPartPower}
1173 Image: {get_param: SwiftStorageImage}
1174 Replicas: { get_param: SwiftReplicas}
1175 TimeZone: {get_param: TimeZone}
1176 NtpServer: {get_param: NtpServer}
1177 UpdateIdentifier: {get_param: UpdateIdentifier}
1178 ServiceNetMap: {get_param: ServiceNetMap}
1181 template: {get_param: ObjectStorageHostnameFormat}
1183 '%stackname%': {get_param: 'OS::stack_name'}
1184 ExtraConfig: {get_param: ExtraConfig}
1185 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1186 CloudDomain: {get_param: CloudDomain}
1187 ServerMetadata: {get_param: ServerMetadata}
1188 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1189 NodeIndex: '%index%'
1192 type: OS::Heat::ResourceGroup
1193 depends_on: Networks
1195 count: {get_param: CephStorageCount}
1196 removal_policies: {get_param: CephStorageRemovalPolicies}
1198 type: OS::TripleO::CephStorage
1200 Image: {get_param: CephStorageImage}
1201 KeyName: {get_param: KeyName}
1202 Flavor: {get_param: OvercloudCephStorageFlavor}
1203 NtpServer: {get_param: NtpServer}
1204 ServiceNetMap: {get_param: ServiceNetMap}
1205 TimeZone: {get_param: TimeZone}
1206 UpdateIdentifier: {get_param: UpdateIdentifier}
1209 template: {get_param: CephStorageHostnameFormat}
1211 '%stackname%': {get_param: 'OS::stack_name'}
1212 ExtraConfig: {get_param: ExtraConfig}
1213 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1214 CloudDomain: {get_param: CloudDomain}
1215 ServerMetadata: {get_param: ServerMetadata}
1216 SchedulerHints: {get_param: CephStorageSchedulerHints}
1217 NodeIndex: '%index%'
1219 ControllerIpListMap:
1220 type: OS::TripleO::Network::Ports::NetIpListMap
1222 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1223 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1224 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1225 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1226 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1227 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1228 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1231 type: OS::TripleO::AllNodes::SoftwareConfig
1233 compute_hosts: {get_attr: [Compute, hosts_entry]}
1234 controller_hosts: {get_attr: [Controller, hosts_entry]}
1235 controller_ips: {get_attr: [Controller, ip_address]}
1236 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1237 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1238 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1239 controller_names: {get_attr: [Controller, hostname]}
1240 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1241 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1242 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1243 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1244 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1245 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1246 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1247 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1248 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1249 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1250 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1251 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1252 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1253 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1254 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1255 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1256 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1257 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1258 DeployIdentifier: {get_param: DeployIdentifier}
1259 UpdateIdentifier: {get_param: UpdateIdentifier}
1262 type: OS::Heat::RandomString
1266 MysqlClusterUniquePart:
1267 type: OS::Heat::RandomString
1272 type: OS::Heat::RandomString
1275 salt: {get_param: RabbitCookieSalt}
1277 # creates the network architecture
1279 type: OS::TripleO::Network
1282 type: OS::Neutron::Port
1283 depends_on: Networks
1285 name: control_virtual_ip
1286 network: {get_param: NeutronControlPlaneID}
1287 fixed_ips: {get_param: ControlFixedIPs}
1288 replacement_policy: AUTO
1291 depends_on: Networks
1292 type: OS::TripleO::Network::Ports::RedisVipPort
1294 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1295 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1296 PortName: redis_virtual_ip
1297 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1300 # The public VIP is on the External net, falls back to ctlplane
1302 depends_on: Networks
1303 type: OS::TripleO::Network::Ports::ExternalVipPort
1305 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1306 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1307 PortName: public_virtual_ip
1308 FixedIPs: {get_param: PublicVirtualFixedIPs}
1310 InternalApiVirtualIP:
1311 depends_on: Networks
1312 type: OS::TripleO::Network::Ports::InternalApiVipPort
1314 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1315 PortName: internal_api_virtual_ip
1316 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1319 depends_on: Networks
1320 type: OS::TripleO::Network::Ports::StorageVipPort
1322 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1323 PortName: storage_virtual_ip
1324 FixedIPs: {get_param: StorageVirtualFixedIPs}
1326 StorageMgmtVirtualIP:
1327 depends_on: Networks
1328 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1330 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1331 PortName: storage_management_virtual_ip
1332 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1335 type: OS::TripleO::Network::Ports::NetVipMap
1337 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1338 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1339 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1340 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1341 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1342 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1343 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1344 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1345 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1346 # No tenant or management VIP required
1349 type: OS::TripleO::VipConfig
1352 type: OS::Heat::StructuredDeployments
1355 config: {get_resource: VipConfig}
1356 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1358 # service VIP mappings
1359 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1360 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1361 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1362 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1363 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1364 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1365 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1366 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1367 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1368 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1369 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1370 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1371 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1372 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1373 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1374 # direct configuration of Virtual IPs for each network
1375 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1376 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1377 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1378 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1379 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1380 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1382 ControllerBootstrapNodeConfig:
1383 type: OS::TripleO::BootstrapNode::SoftwareConfig
1385 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1386 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1388 ControllerBootstrapNodeDeployment:
1389 type: OS::Heat::StructuredDeployments
1391 name: ControllerBootstrapNodeDeployment
1392 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1393 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1395 ControllerSwiftDeployment:
1396 type: OS::Heat::StructuredDeployments
1398 name: ControllerSwiftDeployment
1399 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1400 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1402 ObjectStorageSwiftDeployment:
1403 type: OS::Heat::StructuredDeployments
1405 name: ObjectStorageSwiftDeployment
1406 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1407 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1409 SwiftDevicesAndProxyConfig:
1410 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1412 controller_swift_devices: {get_attr: [Controller, swift_device]}
1413 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1414 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1416 ComputeCephDeployment:
1417 type: OS::Heat::StructuredDeployments
1419 name: ComputeCephDeployment
1420 config: {get_attr: [CephClusterConfig, config_id]}
1421 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1423 ControllerCephDeployment:
1424 type: OS::Heat::StructuredDeployments
1426 name: ControllerCephDeployment
1427 config: {get_attr: [CephClusterConfig, config_id]}
1428 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1430 CephStorageCephDeployment:
1431 type: OS::Heat::StructuredDeployments
1433 name: CephStorageCephDeployment
1434 config: {get_attr: [CephClusterConfig, config_id]}
1435 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1438 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1440 ceph_storage_count: {get_param: CephStorageCount}
1441 ceph_fsid: {get_param: CephClusterFSID}
1442 ceph_mon_key: {get_param: CephMonKey}
1443 ceph_admin_key: {get_param: CephAdminKey}
1444 ceph_client_key: {get_param: CephClientKey}
1445 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1446 ceph_mon_names: {get_attr: [Controller, hostname]}
1447 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1449 ControllerClusterConfig:
1450 type: OS::Heat::StructuredConfig
1452 group: os-apply-config
1455 nodes: {get_attr: [Controller, corosync_node]}
1459 nodes: {get_attr: [Controller, hostname]}
1461 nodes: {get_attr: [Controller, corosync_node]}
1463 nodes: {get_attr: [Controller, corosync_node]}
1465 ControllerClusterDeployment:
1466 type: OS::Heat::StructuredDeployments
1468 name: ControllerClusterDeployment
1469 config: {get_resource: ControllerClusterConfig}
1470 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1472 ControllerAllNodesDeployment:
1473 type: OS::Heat::StructuredDeployments
1475 name: ControllerAllNodesDeployment
1476 config: {get_attr: [allNodesConfig, config_id]}
1477 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1479 ComputeAllNodesDeployment:
1480 type: OS::Heat::StructuredDeployments
1482 name: ComputeAllNodesDeployment
1483 config: {get_attr: [allNodesConfig, config_id]}
1484 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1486 BlockStorageAllNodesDeployment:
1487 type: OS::Heat::StructuredDeployments
1489 name: BlockStorageAllNodesDeployment
1490 config: {get_attr: [allNodesConfig, config_id]}
1491 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1493 ObjectStorageAllNodesDeployment:
1494 type: OS::Heat::StructuredDeployments
1496 name: ObjectStorageAllNodesDeployment
1497 config: {get_attr: [allNodesConfig, config_id]}
1498 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1500 CephStorageAllNodesDeployment:
1501 type: OS::Heat::StructuredDeployments
1503 name: CephStorageAllNodesDeployment
1504 config: {get_attr: [allNodesConfig, config_id]}
1505 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1507 # All Nodes Validations
1508 AllNodesValidationConfig:
1509 type: OS::TripleO::AllNodes::Validation
1514 - - {get_attr: [Controller, resource.0.external_ip_address]}
1515 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1516 - {get_attr: [Controller, resource.0.storage_ip_address]}
1517 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1518 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1520 ControllerAllNodesValidationDeployment:
1521 type: OS::Heat::StructuredDeployments
1522 depends_on: ControllerAllNodesDeployment
1524 name: ControllerAllNodesValidationDeployment
1525 config: {get_resource: AllNodesValidationConfig}
1526 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1528 ComputeAllNodesValidationDeployment:
1529 type: OS::Heat::StructuredDeployments
1530 depends_on: ComputeAllNodesDeployment
1532 name: ComputeAllNodesValidationDeployment
1533 config: {get_resource: AllNodesValidationConfig}
1534 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1536 BlockStorageAllNodesValidationDeployment:
1537 type: OS::Heat::StructuredDeployments
1538 depends_on: BlockStorageAllNodesDeployment
1540 name: BlockStorageAllNodesValidationDeployment
1541 config: {get_resource: AllNodesValidationConfig}
1542 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1544 ObjectStorageAllNodesValidationDeployment:
1545 type: OS::Heat::StructuredDeployments
1546 depends_on: ObjectStorageAllNodesDeployment
1548 name: ObjectStorageAllNodesValidationDeployment
1549 config: {get_resource: AllNodesValidationConfig}
1550 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1552 CephStorageAllNodesValidationDeployment:
1553 type: OS::Heat::StructuredDeployments
1554 depends_on: CephStorageAllNodesDeployment
1556 name: CephStorageAllNodesValidationDeployment
1557 config: {get_resource: AllNodesValidationConfig}
1558 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1561 type: OS::TripleO::Tasks::UpdateWorkflow
1563 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1564 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1565 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1566 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1567 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1569 deploy_identifier: {get_param: DeployIdentifier}
1570 update_identifier: {get_param: UpdateIdentifier}
1572 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1573 # the nested template may configure each role differently (or not at all)
1574 AllNodesExtraConfig:
1575 type: OS::TripleO::AllNodesExtraConfig
1578 - ComputeAllNodesValidationDeployment
1579 - BlockStorageAllNodesValidationDeployment
1580 - ObjectStorageAllNodesValidationDeployment
1581 - CephStorageAllNodesValidationDeployment
1582 - ControllerAllNodesValidationDeployment
1584 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1585 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1586 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1587 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1588 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1590 # Nested stack deployment runs after all other controller deployments
1591 ControllerNodesPostDeployment:
1592 type: OS::TripleO::ControllerPostDeployment
1593 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1595 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1596 NodeConfigIdentifiers:
1597 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1598 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1599 deployment_identifier: {get_param: DeployIdentifier}
1601 ComputeNodesPostDeployment:
1602 type: OS::TripleO::ComputePostDeployment
1603 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1605 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1606 NodeConfigIdentifiers:
1607 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1608 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1609 deployment_identifier: {get_param: DeployIdentifier}
1611 ObjectStorageNodesPostDeployment:
1612 type: OS::TripleO::ObjectStoragePostDeployment
1613 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1615 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1616 NodeConfigIdentifiers:
1617 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1618 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1619 deployment_identifier: {get_param: DeployIdentifier}
1621 BlockStorageNodesPostDeployment:
1622 type: OS::TripleO::BlockStoragePostDeployment
1623 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1625 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1626 NodeConfigIdentifiers:
1627 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1628 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1629 deployment_identifier: {get_param: DeployIdentifier}
1631 CephStorageNodesPostDeployment:
1632 type: OS::TripleO::CephStoragePostDeployment
1633 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1635 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1636 NodeConfigIdentifiers:
1637 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1638 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1639 deployment_identifier: {get_param: DeployIdentifier}
1643 description: URL for the Overcloud Keystone service
1644 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1646 description: Keystone Admin VIP endpoint
1647 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1649 description: Controller VIP for public API endpoints
1650 value: {get_attr: [VipMap, net_ip_map, external]}
1651 CeilometerInternalVip:
1652 description: VIP for Ceilometer API internal endpoint
1653 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1655 description: VIP for Cinder API internal endpoint
1656 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1658 description: VIP for Glance API internal endpoint
1659 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1661 description: VIP for Heat API internal endpoint
1662 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1663 KeystoneInternalVip:
1664 description: VIP for Keystone API internal endpoint
1665 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1667 description: VIP for Neutron API internal endpoint
1668 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1670 description: VIP for Nova API internal endpoint
1671 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1673 description: VIP for Sahara API internal endpoint
1674 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1676 description: VIP for Swift Proxy internal endpoint
1677 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1680 The content that should be appended to your /etc/hosts if you want to get
1681 hostname-based access to the deployed nodes (useful for testing without
1683 value: {get_attr: [allNodesConfig, hosts_entries]}