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 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
876 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
877 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
878 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
879 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
880 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
881 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
882 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
883 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
886 type: OS::Heat::ResourceGroup
889 count: {get_param: ControllerCount}
890 removal_policies: {get_param: ControllerRemovalPolicies}
892 type: OS::TripleO::Controller
894 AdminPassword: {get_param: AdminPassword}
895 AdminToken: {get_param: AdminToken}
896 CeilometerBackend: {get_param: CeilometerBackend}
897 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
898 CeilometerPassword: {get_param: CeilometerPassword}
899 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
900 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
901 CinderNfsServers: {get_param: CinderNfsServers}
902 CinderPassword: {get_param: CinderPassword}
903 CinderISCSIHelper: {get_param: CinderISCSIHelper}
904 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
905 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
906 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
907 CloudDomain: {get_param: CloudDomain}
908 ControlVirtualInterface: {get_param: ControlVirtualInterface}
909 ControllerExtraConfig: {get_param: controllerExtraConfig}
910 CorosyncIPv6: {get_param: CorosyncIPv6}
911 Debug: {get_param: Debug}
912 EnableFencing: {get_param: EnableFencing}
913 ManageFirewall: {get_param: ManageFirewall}
914 PurgeFirewallRules: {get_param: PurgeFirewallRules}
915 EnableGalera: {get_param: EnableGalera}
916 EnableCephStorage: {get_param: ControllerEnableCephStorage}
917 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
918 ExtraConfig: {get_param: ExtraConfig}
919 FencingConfig: {get_param: FencingConfig}
920 Flavor: {get_param: OvercloudControlFlavor}
921 GlancePassword: {get_param: GlancePassword}
922 GlanceBackend: {get_param: GlanceBackend}
923 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
924 GlanceLogFile: {get_param: GlanceLogFile}
925 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
926 HeatPassword: {get_param: HeatPassword}
927 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
928 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
929 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
930 HorizonSecret: {get_resource: HorizonSecret}
931 Image: {get_param: controllerImage}
932 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
933 InstanceNameTemplate: {get_param: InstanceNameTemplate}
934 KeyName: {get_param: KeyName}
935 KeystoneCACertificate: {get_param: KeystoneCACertificate}
936 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
937 KeystoneSigningKey: {get_param: KeystoneSigningKey}
938 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
939 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
940 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
941 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
942 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
943 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
944 MysqlMaxConnections: {get_param: MysqlMaxConnections}
945 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
946 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
947 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
948 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
949 NeutronTenantMtu: {get_param: NeutronTenantMtu}
950 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
951 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
952 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
953 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
954 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
955 NeutronPublicInterface: {get_param: NeutronPublicInterface}
956 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
957 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
958 NeutronPassword: {get_param: NeutronPassword}
959 NeutronDnsmasqOptions:
961 template: {get_param: NeutronDnsmasqOptions}
963 '%MTU%': {get_param: NeutronTenantMtu}
964 NeutronDVR: {get_param: NeutronDVR}
965 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
966 NeutronAgentMode: {get_param: NeutronAgentMode}
967 NeutronCorePlugin: {get_param: NeutronCorePlugin}
968 NeutronServicePlugins: {get_param: NeutronServicePlugins}
969 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
970 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
971 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
972 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
973 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
974 NeutronL3HA: {get_param: NeutronL3HA}
975 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
976 NeutronNetworkType: {get_param: NeutronNetworkType}
977 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
978 NovaIPv6: {get_param: NovaIPv6}
979 NovaPassword: {get_param: NovaPassword}
980 NtpServer: {get_param: NtpServer}
981 MongoDbNoJournal: {get_param: MongoDbNoJournal}
982 MongoDbIPv6: {get_param: MongoDbIPv6}
983 PcsdPassword: {get_resource: PcsdPassword}
984 PublicVirtualInterface: {get_param: PublicVirtualInterface}
985 RabbitPassword: {get_param: RabbitPassword}
986 RabbitUserName: {get_param: RabbitUserName}
987 RabbitCookie: {get_attr: [RabbitCookie, value]}
988 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
989 RabbitClientPort: {get_param: RabbitClientPort}
990 RabbitFDLimit: {get_param: RabbitFDLimit}
991 RabbitIPv6: {get_param: RabbitIPv6}
992 RedisPassword: {get_param: RedisPassword}
993 SaharaPassword: {get_param: SaharaPassword}
994 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
995 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
996 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
997 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
998 SwiftHashSuffix: {get_param: SwiftHashSuffix}
999 SwiftMountCheck: {get_param: SwiftMountCheck}
1000 SwiftMinPartHours: {get_param: SwiftMinPartHours}
1001 SwiftPartPower: {get_param: SwiftPartPower}
1002 SwiftPassword: {get_param: SwiftPassword}
1003 SwiftReplicas: { get_param: SwiftReplicas}
1004 TimeZone: {get_param: TimeZone}
1005 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
1006 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
1007 ServiceNetMap: {get_param: ServiceNetMap}
1008 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1009 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1010 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1011 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1012 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1013 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1014 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1015 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1016 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1017 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1018 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1019 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1020 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1021 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1022 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1023 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1024 UpdateIdentifier: {get_param: UpdateIdentifier}
1027 template: {get_param: ControllerHostnameFormat}
1029 '%stackname%': {get_param: 'OS::stack_name'}
1030 NodeIndex: '%index%'
1031 ServerMetadata: {get_param: ServerMetadata}
1032 SchedulerHints: {get_param: ControllerSchedulerHints}
1035 type: OS::Heat::ResourceGroup
1036 depends_on: Networks
1038 count: {get_param: ComputeCount}
1039 removal_policies: {get_param: ComputeRemovalPolicies}
1041 type: OS::TripleO::Compute
1043 AdminPassword: {get_param: AdminPassword}
1044 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1045 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1046 CeilometerPassword: {get_param: CeilometerPassword}
1047 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1048 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1049 Debug: {get_param: Debug}
1050 ExtraConfig: {get_param: ExtraConfig}
1051 Flavor: {get_param: OvercloudComputeFlavor}
1052 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1053 Image: {get_param: NovaImage}
1054 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1055 KeyName: {get_param: KeyName}
1056 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1057 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1058 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1059 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1060 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1061 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1062 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1063 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1064 NeutronNetworkType: {get_param: NeutronNetworkType}
1065 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1066 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1067 NeutronPassword: {get_param: NeutronPassword}
1068 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1069 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1070 NeutronDVR: {get_param: NeutronDVR}
1071 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1072 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1073 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1074 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1075 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1076 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1077 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1078 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1079 # L3 HA and Failover is not relevant for Computes, should be removed
1080 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1081 NeutronL3HA: {get_param: NeutronL3HA}
1082 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1083 NovaComputeDriver: {get_param: NovaComputeDriver}
1084 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1085 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1086 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1087 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1088 NovaIPv6: {get_param: NovaIPv6}
1089 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1090 NovaPassword: {get_param: NovaPassword}
1091 NovaOVSBridge: {get_param: NovaOVSBridge}
1092 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1093 NtpServer: {get_param: NtpServer}
1094 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1095 RabbitPassword: {get_param: RabbitPassword}
1096 RabbitUserName: {get_param: RabbitUserName}
1097 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1098 RabbitClientPort: {get_param: RabbitClientPort}
1099 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1100 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1101 ServiceNetMap: {get_param: ServiceNetMap}
1102 TimeZone: {get_param: TimeZone}
1103 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1104 UpdateIdentifier: {get_param: UpdateIdentifier}
1107 template: {get_param: ComputeHostnameFormat}
1109 '%stackname%': {get_param: 'OS::stack_name'}
1110 CloudDomain: {get_param: CloudDomain}
1111 ServerMetadata: {get_param: ServerMetadata}
1112 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1113 NodeIndex: '%index%'
1116 type: OS::Heat::ResourceGroup
1117 depends_on: Networks
1119 count: {get_param: BlockStorageCount}
1120 removal_policies: {get_param: BlockStorageRemovalPolicies}
1122 type: OS::TripleO::BlockStorage
1124 Debug: {get_param: Debug}
1125 Image: {get_param: BlockStorageImage}
1126 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1127 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1128 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1129 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1130 CinderPassword: {get_param: CinderPassword}
1131 KeyName: {get_param: KeyName}
1132 Flavor: {get_param: OvercloudBlockStorageFlavor}
1133 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1134 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1135 RabbitPassword: {get_param: RabbitPassword}
1136 RabbitUserName: {get_param: RabbitUserName}
1137 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1138 RabbitClientPort: {get_param: RabbitClientPort}
1139 TimeZone: {get_param: TimeZone}
1140 NtpServer: {get_param: NtpServer}
1141 UpdateIdentifier: {get_param: UpdateIdentifier}
1144 template: {get_param: BlockStorageHostnameFormat}
1146 '%stackname%': {get_param: 'OS::stack_name'}
1147 ServiceNetMap: {get_param: ServiceNetMap}
1148 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1149 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1150 ExtraConfig: {get_param: ExtraConfig}
1151 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1152 CloudDomain: {get_param: CloudDomain}
1153 ServerMetadata: {get_param: ServerMetadata}
1154 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1155 NodeIndex: '%index%'
1158 type: OS::Heat::ResourceGroup
1159 depends_on: Networks
1161 count: {get_param: ObjectStorageCount}
1162 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1164 type: OS::TripleO::ObjectStorage
1166 KeyName: {get_param: KeyName}
1167 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1168 HashSuffix: {get_param: SwiftHashSuffix}
1169 MountCheck: {get_param: SwiftMountCheck}
1170 MinPartHours: {get_param: SwiftMinPartHours}
1171 PartPower: {get_param: SwiftPartPower}
1172 Image: {get_param: SwiftStorageImage}
1173 Replicas: { get_param: SwiftReplicas}
1174 TimeZone: {get_param: TimeZone}
1175 NtpServer: {get_param: NtpServer}
1176 UpdateIdentifier: {get_param: UpdateIdentifier}
1177 ServiceNetMap: {get_param: ServiceNetMap}
1180 template: {get_param: ObjectStorageHostnameFormat}
1182 '%stackname%': {get_param: 'OS::stack_name'}
1183 ExtraConfig: {get_param: ExtraConfig}
1184 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1185 CloudDomain: {get_param: CloudDomain}
1186 ServerMetadata: {get_param: ServerMetadata}
1187 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1188 NodeIndex: '%index%'
1191 type: OS::Heat::ResourceGroup
1192 depends_on: Networks
1194 count: {get_param: CephStorageCount}
1195 removal_policies: {get_param: CephStorageRemovalPolicies}
1197 type: OS::TripleO::CephStorage
1199 Image: {get_param: CephStorageImage}
1200 KeyName: {get_param: KeyName}
1201 Flavor: {get_param: OvercloudCephStorageFlavor}
1202 NtpServer: {get_param: NtpServer}
1203 ServiceNetMap: {get_param: ServiceNetMap}
1204 TimeZone: {get_param: TimeZone}
1205 UpdateIdentifier: {get_param: UpdateIdentifier}
1208 template: {get_param: CephStorageHostnameFormat}
1210 '%stackname%': {get_param: 'OS::stack_name'}
1211 ExtraConfig: {get_param: ExtraConfig}
1212 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1213 CloudDomain: {get_param: CloudDomain}
1214 ServerMetadata: {get_param: ServerMetadata}
1215 SchedulerHints: {get_param: CephStorageSchedulerHints}
1216 NodeIndex: '%index%'
1218 ControllerIpListMap:
1219 type: OS::TripleO::Network::Ports::NetIpListMap
1221 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1222 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1223 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1224 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1225 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1226 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1227 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1230 type: OS::TripleO::AllNodes::SoftwareConfig
1232 compute_hosts: {get_attr: [Compute, hosts_entry]}
1233 controller_hosts: {get_attr: [Controller, hosts_entry]}
1234 controller_ips: {get_attr: [Controller, ip_address]}
1235 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1236 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1237 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1238 controller_names: {get_attr: [Controller, hostname]}
1239 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1240 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1241 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1242 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1243 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1244 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1245 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1246 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1247 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1248 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1249 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1250 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1251 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1252 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1253 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1254 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1255 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1256 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1257 DeployIdentifier: {get_param: DeployIdentifier}
1258 UpdateIdentifier: {get_param: UpdateIdentifier}
1261 type: OS::Heat::RandomString
1265 MysqlClusterUniquePart:
1266 type: OS::Heat::RandomString
1271 type: OS::Heat::RandomString
1274 salt: {get_param: RabbitCookieSalt}
1276 # creates the network architecture
1278 type: OS::TripleO::Network
1281 type: OS::Neutron::Port
1282 depends_on: Networks
1284 name: control_virtual_ip
1285 network: {get_param: NeutronControlPlaneID}
1286 fixed_ips: {get_param: ControlFixedIPs}
1287 replacement_policy: AUTO
1290 depends_on: Networks
1291 type: OS::TripleO::Network::Ports::RedisVipPort
1293 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1294 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1295 PortName: redis_virtual_ip
1296 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1299 # The public VIP is on the External net, falls back to ctlplane
1301 depends_on: Networks
1302 type: OS::TripleO::Network::Ports::ExternalVipPort
1304 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1305 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1306 PortName: public_virtual_ip
1307 FixedIPs: {get_param: PublicVirtualFixedIPs}
1309 InternalApiVirtualIP:
1310 depends_on: Networks
1311 type: OS::TripleO::Network::Ports::InternalApiVipPort
1313 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1314 PortName: internal_api_virtual_ip
1315 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1318 depends_on: Networks
1319 type: OS::TripleO::Network::Ports::StorageVipPort
1321 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1322 PortName: storage_virtual_ip
1323 FixedIPs: {get_param: StorageVirtualFixedIPs}
1325 StorageMgmtVirtualIP:
1326 depends_on: Networks
1327 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1329 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1330 PortName: storage_management_virtual_ip
1331 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1334 type: OS::TripleO::Network::Ports::NetVipMap
1336 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1337 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1338 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1339 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1340 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1341 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1342 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1343 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1344 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1345 # No tenant or management VIP required
1348 type: OS::TripleO::VipConfig
1351 type: OS::Heat::StructuredDeployments
1354 config: {get_resource: VipConfig}
1355 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1357 # service VIP mappings
1358 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1359 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1360 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1361 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1362 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1363 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1364 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1365 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1366 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1367 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1368 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1369 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1370 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1371 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1372 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1373 # direct configuration of Virtual IPs for each network
1374 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1375 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1376 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1377 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1378 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1379 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1381 ControllerBootstrapNodeConfig:
1382 type: OS::TripleO::BootstrapNode::SoftwareConfig
1384 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1385 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1387 ControllerBootstrapNodeDeployment:
1388 type: OS::Heat::StructuredDeployments
1390 name: ControllerBootstrapNodeDeployment
1391 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1392 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1394 ControllerSwiftDeployment:
1395 type: OS::Heat::StructuredDeployments
1397 name: ControllerSwiftDeployment
1398 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1399 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1401 ObjectStorageSwiftDeployment:
1402 type: OS::Heat::StructuredDeployments
1404 name: ObjectStorageSwiftDeployment
1405 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1406 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1408 SwiftDevicesAndProxyConfig:
1409 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1411 controller_swift_devices: {get_attr: [Controller, swift_device]}
1412 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1413 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1415 ComputeCephDeployment:
1416 type: OS::Heat::StructuredDeployments
1418 name: ComputeCephDeployment
1419 config: {get_attr: [CephClusterConfig, config_id]}
1420 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1422 ControllerCephDeployment:
1423 type: OS::Heat::StructuredDeployments
1425 name: ControllerCephDeployment
1426 config: {get_attr: [CephClusterConfig, config_id]}
1427 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1429 CephStorageCephDeployment:
1430 type: OS::Heat::StructuredDeployments
1432 name: CephStorageCephDeployment
1433 config: {get_attr: [CephClusterConfig, config_id]}
1434 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1437 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1439 ceph_storage_count: {get_param: CephStorageCount}
1440 ceph_fsid: {get_param: CephClusterFSID}
1441 ceph_mon_key: {get_param: CephMonKey}
1442 ceph_admin_key: {get_param: CephAdminKey}
1443 ceph_client_key: {get_param: CephClientKey}
1444 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1445 ceph_mon_names: {get_attr: [Controller, hostname]}
1446 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1448 ControllerClusterConfig:
1449 type: OS::Heat::StructuredConfig
1451 group: os-apply-config
1454 nodes: {get_attr: [Controller, corosync_node]}
1458 nodes: {get_attr: [Controller, hostname]}
1460 nodes: {get_attr: [Controller, corosync_node]}
1462 nodes: {get_attr: [Controller, corosync_node]}
1464 ControllerClusterDeployment:
1465 type: OS::Heat::StructuredDeployments
1467 name: ControllerClusterDeployment
1468 config: {get_resource: ControllerClusterConfig}
1469 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1471 ControllerAllNodesDeployment:
1472 type: OS::Heat::StructuredDeployments
1474 name: ControllerAllNodesDeployment
1475 config: {get_attr: [allNodesConfig, config_id]}
1476 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1478 ComputeAllNodesDeployment:
1479 type: OS::Heat::StructuredDeployments
1481 name: ComputeAllNodesDeployment
1482 config: {get_attr: [allNodesConfig, config_id]}
1483 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1485 BlockStorageAllNodesDeployment:
1486 type: OS::Heat::StructuredDeployments
1488 name: BlockStorageAllNodesDeployment
1489 config: {get_attr: [allNodesConfig, config_id]}
1490 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1492 ObjectStorageAllNodesDeployment:
1493 type: OS::Heat::StructuredDeployments
1495 name: ObjectStorageAllNodesDeployment
1496 config: {get_attr: [allNodesConfig, config_id]}
1497 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1499 CephStorageAllNodesDeployment:
1500 type: OS::Heat::StructuredDeployments
1502 name: CephStorageAllNodesDeployment
1503 config: {get_attr: [allNodesConfig, config_id]}
1504 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1506 # All Nodes Validations
1507 AllNodesValidationConfig:
1508 type: OS::TripleO::AllNodes::Validation
1513 - - {get_attr: [Controller, resource.0.external_ip_address]}
1514 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1515 - {get_attr: [Controller, resource.0.storage_ip_address]}
1516 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1517 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1519 ControllerAllNodesValidationDeployment:
1520 type: OS::Heat::StructuredDeployments
1521 depends_on: ControllerAllNodesDeployment
1523 name: ControllerAllNodesValidationDeployment
1524 config: {get_resource: AllNodesValidationConfig}
1525 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1527 ComputeAllNodesValidationDeployment:
1528 type: OS::Heat::StructuredDeployments
1529 depends_on: ComputeAllNodesDeployment
1531 name: ComputeAllNodesValidationDeployment
1532 config: {get_resource: AllNodesValidationConfig}
1533 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1535 BlockStorageAllNodesValidationDeployment:
1536 type: OS::Heat::StructuredDeployments
1537 depends_on: BlockStorageAllNodesDeployment
1539 name: BlockStorageAllNodesValidationDeployment
1540 config: {get_resource: AllNodesValidationConfig}
1541 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1543 ObjectStorageAllNodesValidationDeployment:
1544 type: OS::Heat::StructuredDeployments
1545 depends_on: ObjectStorageAllNodesDeployment
1547 name: ObjectStorageAllNodesValidationDeployment
1548 config: {get_resource: AllNodesValidationConfig}
1549 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1551 CephStorageAllNodesValidationDeployment:
1552 type: OS::Heat::StructuredDeployments
1553 depends_on: CephStorageAllNodesDeployment
1555 name: CephStorageAllNodesValidationDeployment
1556 config: {get_resource: AllNodesValidationConfig}
1557 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1560 type: OS::TripleO::Tasks::UpdateWorkflow
1562 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1563 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1564 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1565 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1566 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1568 deploy_identifier: {get_param: DeployIdentifier}
1569 update_identifier: {get_param: UpdateIdentifier}
1571 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1572 # the nested template may configure each role differently (or not at all)
1573 AllNodesExtraConfig:
1574 type: OS::TripleO::AllNodesExtraConfig
1577 - ComputeAllNodesValidationDeployment
1578 - BlockStorageAllNodesValidationDeployment
1579 - ObjectStorageAllNodesValidationDeployment
1580 - CephStorageAllNodesValidationDeployment
1581 - ControllerAllNodesValidationDeployment
1583 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1584 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1585 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1586 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1587 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1589 # Nested stack deployment runs after all other controller deployments
1590 ControllerNodesPostDeployment:
1591 type: OS::TripleO::ControllerPostDeployment
1592 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1594 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1595 NodeConfigIdentifiers:
1596 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1597 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1598 deployment_identifier: {get_param: DeployIdentifier}
1600 ComputeNodesPostDeployment:
1601 type: OS::TripleO::ComputePostDeployment
1602 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1604 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1605 NodeConfigIdentifiers:
1606 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1607 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1608 deployment_identifier: {get_param: DeployIdentifier}
1610 ObjectStorageNodesPostDeployment:
1611 type: OS::TripleO::ObjectStoragePostDeployment
1612 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1614 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1615 NodeConfigIdentifiers:
1616 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1617 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1618 deployment_identifier: {get_param: DeployIdentifier}
1620 BlockStorageNodesPostDeployment:
1621 type: OS::TripleO::BlockStoragePostDeployment
1622 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1624 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1625 NodeConfigIdentifiers:
1626 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1627 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1628 deployment_identifier: {get_param: DeployIdentifier}
1630 CephStorageNodesPostDeployment:
1631 type: OS::TripleO::CephStoragePostDeployment
1632 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1634 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1635 NodeConfigIdentifiers:
1636 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1637 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1638 deployment_identifier: {get_param: DeployIdentifier}
1642 description: URL for the Overcloud Keystone service
1643 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1645 description: Keystone Admin VIP endpoint
1646 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1648 description: Controller VIP for public API endpoints
1649 value: {get_attr: [VipMap, net_ip_map, external]}
1650 CeilometerInternalVip:
1651 description: VIP for Ceilometer API internal endpoint
1652 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1654 description: VIP for Cinder API internal endpoint
1655 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1657 description: VIP for Glance API internal endpoint
1658 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1660 description: VIP for Heat API internal endpoint
1661 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1662 KeystoneInternalVip:
1663 description: VIP for Keystone API internal endpoint
1664 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1666 description: VIP for Neutron API internal endpoint
1667 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1669 description: VIP for Nova API internal endpoint
1670 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1672 description: VIP for Sahara API internal endpoint
1673 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1675 description: VIP for Swift Proxy internal endpoint
1676 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1679 The content that should be appended to your /etc/hosts if you want to get
1680 hostname-based access to the deployed nodes (useful for testing without
1682 value: {get_attr: [allNodesConfig, hosts_entries]}