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.
281 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
284 description: The username for RabbitMQ
288 description: The password for RabbitMQ
294 Rabbit client subscriber parameter to specify
295 an SSL connection to the RabbitMQ host.
299 description: Set rabbit subscriber port, change this if using SSL
301 # We need to set this as string because 'unlimited' is a valid setting
304 description: Configures RabbitMQ FD limit
308 description: Enable IPv6 in RabbitMQ
310 SnmpdReadonlyUserName:
311 default: ro_snmp_user
312 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
314 SnmpdReadonlyUserPassword:
315 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
318 StorageVirtualFixedIPs:
321 Control the IP allocation for the StorageVirtualInterface port. E.g.
322 [{'ip_address':'1.2.3.4'}]
324 StorageMgmtVirtualFixedIPs:
327 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
328 [{'ip_address':'1.2.3.4'}]
332 description: The timezone to be set on nodes.
335 default: 'localdomain'
338 The DNS domain used for the hosts. This should match the dhcp_domain
339 configured in the Undercloud neutron. Defaults to localdomain.
343 Extra properties or metadata passed to Nova for the created nodes in
344 the overcloud. It's accessible via the Nova metadata API.
347 # Controller-specific params
349 description: The keystone auth secret.
352 CinderLVMLoopDeviceSize:
354 description: The size of the loopback file used by the cinder LVM driver.
356 CinderNfsMountOptions:
359 Mount options for NFS mounts used by Cinder NFS backend. Effective
360 when CinderEnableNfsBackend is true.
365 NFS servers used by Cinder NFS backend. Effective when
366 CinderEnableNfsBackend is true.
367 type: comma_delimited_list
369 description: The password for the cinder service account, used by cinder-api.
374 description: The iSCSI helper to use with cinder.
381 controllerExtraConfig:
384 Controller specific configuration to inject into the cluster. Same
385 structure as ExtraConfig.
389 default: overcloud-full
391 - custom_constraint: glance.image
392 OvercloudControlFlavor:
393 description: Flavor for control nodes to request when deploying.
397 - custom_constraint: nova.flavor
398 ControlVirtualInterface:
400 description: Interface where virtual ip will be assigned.
404 description: Whether to enable fencing in Pacemaker or not.
408 description: Whether to use Galera instead of regular MariaDB.
410 ControllerEnableCephStorage:
412 description: Whether to deploy Ceph Storage (OSD) on the Controller
414 ControllerEnableSwiftStorage:
416 description: Whether to enable Swift Storage on the Controller
418 ControllerSchedulerHints:
420 description: Optional scheduler hints to pass to nova
425 Additional configuration to inject into the cluster. The format required
426 may be implementation specific, e.g puppet hieradata. Any role specific
427 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
432 Pacemaker fencing configuration. The JSON should have
433 the following structure:
437 "agent": "AGENT_NAME",
438 "host_mac": "HOST_MAC_ADDRESS",
439 "params": {"PARAM_NAME": "PARAM_VALUE"}
447 "agent": "fence_xvm",
448 "host_mac": "52:54:00:aa:bb:cc",
450 "multicast_address": "225.0.0.12",
451 "port": "baremetal_0",
453 "manage_key_file": true,
454 "key_file": "/etc/fence_xvm.key",
455 "key_file_password": "abcdef"
462 description: The filepath of the file to use for logging messages from Glance.
465 GlanceNotifierStrategy:
466 description: Strategy to use for Glance notification queue
470 description: The password for the glance service account, used by the glance services.
475 description: The short name of the Glance backend to use. Should be one
476 of swift, rbd or file
479 - allowed_values: ['swift', 'file', 'rbd']
481 description: The password for the Heat service account, used by the Heat services.
484 HeatStackDomainAdminPassword:
485 description: Password for heat_domain_admin user.
488 InstanceNameTemplate:
489 default: 'instance-%08x'
490 description: Template string to be used to generate instance names
492 KeystoneCACertificate:
494 description: Keystone self-signed certificate authority certificate.
496 KeystoneSigningCertificate:
498 description: Keystone certificate for verifying token validity.
502 description: Keystone key for signing tokens.
505 KeystoneSSLCertificate:
507 description: Keystone certificate for verifying token validity.
509 KeystoneSSLCertificateKey:
511 description: Keystone key for signing tokens.
514 KeystoneNotificationDriver:
515 description: Comma-separated list of Oslo notification drivers used by Keystone
516 default: ['messaging']
517 type: comma_delimited_list
518 KeystoneNotificationFormat:
519 description: The Keystone notification format
523 - allowed_values: [ 'basic', 'cadf' ]
526 description: Whether to manage IPtables rules.
530 description: Whether IPtables rules should be purged before setting up the ones.
532 MysqlInnodbBufferPoolSize:
534 Specifies the size of the buffer pool in megabytes. Setting to
535 zero should be interpreted as "no value" and will defer to the
540 description: Configures MySQL max_connections config setting
543 NeutronDnsmasqOptions:
544 default: 'dhcp-option-force=26,%MTU%'
546 Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU
547 to be set to the value of NeutronTenantMtu, which should be set to account
550 NeutronPublicInterfaceDefaultRoute:
552 description: A custom default route for the NeutronPublicInterface.
554 NeutronPublicInterfaceIP:
556 description: A custom IP address to put onto the NeutronPublicInterface.
558 NeutronPublicInterfaceRawDevice:
560 description: If set, the public interface is a vlan with this device as the raw device.
562 PublicVirtualInterface:
565 Specifies the interface where the public-facing virtual ip will be assigned.
566 This should be int_public when a VLAN is being used.
569 description: A random string to be used as a salt when hashing to determine mappings in the ring.
573 description: The password for the swift service account, used by the swift proxy services.
578 description: Value of mount_check in Swift account/container/object -server.conf
583 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
586 description: Partition Power to use when building Swift rings
591 description: How many replicas to use in the swift rings.
593 description: The password for the sahara service account.
597 # Compute-specific params
598 CeilometerComputeAgent:
599 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
603 - allowed_values: ['', Present]
607 HypervisorNeutronPhysicalBridge:
610 An OVS bridge to create on each hypervisor. This defaults to br-ex the
611 same as the control plane nodes, as we have a uniform configuration of
612 the openvswitch agent. Typically should not need to be changed.
614 HypervisorNeutronPublicInterface:
616 description: What interface to add to the HypervisorNeutronPhysicalBridge.
618 NeutronNetworkVLANRanges:
619 default: 'datacentre:1:1000'
621 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
622 Neutron documentation for permitted values. Defaults to permitting any
623 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
624 type: comma_delimited_list
627 default: libvirt.LibvirtDriver
628 NovaComputeExtraConfig:
631 NovaCompute specific configuration to inject into the cluster. Same
632 structure as ExtraConfig.
634 NovaComputeLibvirtType:
637 NovaComputeLibvirtVifDriver:
639 description: Libvirt VIF driver configuration for the network
641 NovaComputeSchedulerHints:
643 description: Optional scheduler hints to pass to nova
645 NovaEnableRbdBackend:
647 description: Whether to enable or not the Rbd backend for Nova
651 default: overcloud-full
653 - custom_constraint: glance.image
656 description: Name of integration bridge used by Open vSwitch
658 NovaSecurityGroupAPI:
660 description: The full class name of the security API class
662 OvercloudComputeFlavor:
663 description: Use this flavor
667 - custom_constraint: nova.flavor
670 NeutronTenantNetwork: tenant
671 CeilometerApiNetwork: internal_api
672 MongoDbNetwork: internal_api
673 CinderApiNetwork: internal_api
674 CinderIscsiNetwork: storage
675 GlanceApiNetwork: storage
676 GlanceRegistryNetwork: internal_api
677 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
678 KeystonePublicApiNetwork: internal_api
679 NeutronApiNetwork: internal_api
680 HeatApiNetwork: internal_api
681 NovaApiNetwork: internal_api
682 NovaMetadataNetwork: internal_api
683 NovaVncProxyNetwork: internal_api
684 SwiftMgmtNetwork: storage_mgmt
685 SwiftProxyNetwork: storage
686 SaharaApiNetwork: internal_api
687 HorizonNetwork: internal_api
688 MemcachedNetwork: internal_api
689 RabbitMqNetwork: internal_api
690 RedisNetwork: internal_api
691 MysqlNetwork: internal_api
692 CephClusterNetwork: storage_mgmt
693 CephPublicNetwork: storage
694 ControllerHostnameResolveNetwork: internal_api
695 ComputeHostnameResolveNetwork: internal_api
696 BlockStorageHostnameResolveNetwork: internal_api
697 ObjectStorageHostnameResolveNetwork: internal_api
698 CephStorageHostnameResolveNetwork: storage
699 description: Mapping of service_name -> network name. Typically set
700 via parameter_defaults in the resource registry.
703 # Block storage specific parameters
708 default: overcloud-full
710 OvercloudBlockStorageFlavor:
711 description: Flavor for block storage nodes to request when deploying.
715 - custom_constraint: nova.flavor
716 BlockStorageExtraConfig:
719 BlockStorage specific configuration to inject into the cluster. Same
720 structure as ExtraConfig.
722 BlockStorageSchedulerHints:
724 description: Optional scheduler hints to pass to nova
728 # Object storage specific parameters
732 OvercloudSwiftStorageFlavor:
733 description: Flavor for Swift storage nodes to request when deploying.
737 - custom_constraint: nova.flavor
739 default: overcloud-full
741 ObjectStorageExtraConfig:
744 ObjectStorage specific configuration to inject into the cluster. Same
745 structure as ExtraConfig.
747 ObjectStorageSchedulerHints:
749 description: Optional scheduler hints to pass to nova
752 # Ceph storage specific parameters
757 default: overcloud-full
759 OvercloudCephStorageFlavor:
761 description: Flavor for Ceph storage nodes to request when deploying.
764 - custom_constraint: nova.flavor
765 CephStorageExtraConfig:
768 CephStorage specific configuration to inject into the cluster. Same
769 structure as ExtraConfig.
771 CephStorageSchedulerHints:
773 description: Optional scheduler hints to pass to nova
777 # Hostname format for each role
778 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
779 # and %stackname% is replaced with OS::stack_name in the template below.
780 # If you want to use the heat generated names, pass '' (empty string).
781 ControllerHostnameFormat:
783 description: Format for Controller node hostnames
784 default: '%stackname%-controller-%index%'
785 ComputeHostnameFormat:
787 description: Format for Compute node hostnames
788 default: '%stackname%-novacompute-%index%'
789 BlockStorageHostnameFormat:
791 description: Format for BlockStorage node hostnames
792 default: '%stackname%-blockstorage-%index%'
793 ObjectStorageHostnameFormat:
795 description: Format for SwiftStorage node hostnames
796 default: '%stackname%-objectstorage-%index%'
797 CephStorageHostnameFormat:
799 description: Format for CephStorage node hostnames
800 default: '%stackname%-cephstorage-%index%'
802 # Identifiers to trigger tasks on nodes
807 Setting to a previously unused value during stack-update will trigger
808 package update on all nodes
813 Setting this to a unique value will re-run any deployment tasks which
814 perform configuration on a Heat stack-update.
816 # If you want to remove a specific node from a resource group, you can pass
817 # the node name or id as a <Group>RemovalPolicies parameter, for example:
818 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
819 ControllerRemovalPolicies:
823 List of resources to be removed from ControllerResourceGroup when
824 doing an update which requires removal of specific resources.
825 ComputeRemovalPolicies:
829 List of resources to be removed from ComputeResourceGroup when
830 doing an update which requires removal of specific resources.
831 BlockStorageRemovalPolicies:
835 List of resources to be removed from BlockStorageResourceGroup when
836 doing an update which requires removal of specific resources.
837 ObjectStorageRemovalPolicies:
841 List of resources to be removed from ObjectStorageResourceGroup when
842 doing an update which requires removal of specific resources.
843 CephStorageRemovalPolicies:
847 List of resources to be removed from CephStorageResourceGroup when
848 doing an update which requires removal of specific resources.
853 HeatAuthEncryptionKey:
854 type: OS::Heat::RandomString
857 type: OS::Heat::RandomString
862 type: OS::Heat::RandomString
867 type: OS::TripleO::EndpointMap
869 CloudName: {get_param: CloudName}
870 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
871 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
872 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
873 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
874 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
875 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
876 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
877 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
878 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
879 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
880 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
881 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
882 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
885 type: OS::Heat::ResourceGroup
888 count: {get_param: ControllerCount}
889 removal_policies: {get_param: ControllerRemovalPolicies}
891 type: OS::TripleO::Controller
893 AdminPassword: {get_param: AdminPassword}
894 AdminToken: {get_param: AdminToken}
895 CeilometerBackend: {get_param: CeilometerBackend}
896 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
897 CeilometerPassword: {get_param: CeilometerPassword}
898 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
899 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
900 CinderNfsServers: {get_param: CinderNfsServers}
901 CinderPassword: {get_param: CinderPassword}
902 CinderISCSIHelper: {get_param: CinderISCSIHelper}
903 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
904 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
905 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
906 CloudDomain: {get_param: CloudDomain}
907 ControlVirtualInterface: {get_param: ControlVirtualInterface}
908 ControllerExtraConfig: {get_param: controllerExtraConfig}
909 CorosyncIPv6: {get_param: CorosyncIPv6}
910 Debug: {get_param: Debug}
911 EnableFencing: {get_param: EnableFencing}
912 ManageFirewall: {get_param: ManageFirewall}
913 PurgeFirewallRules: {get_param: PurgeFirewallRules}
914 EnableGalera: {get_param: EnableGalera}
915 EnableCephStorage: {get_param: ControllerEnableCephStorage}
916 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
917 ExtraConfig: {get_param: ExtraConfig}
918 FencingConfig: {get_param: FencingConfig}
919 Flavor: {get_param: OvercloudControlFlavor}
920 GlancePassword: {get_param: GlancePassword}
921 GlanceBackend: {get_param: GlanceBackend}
922 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
923 GlanceLogFile: {get_param: GlanceLogFile}
924 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
925 HeatPassword: {get_param: HeatPassword}
926 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
927 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
928 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
929 HorizonSecret: {get_resource: HorizonSecret}
930 Image: {get_param: controllerImage}
931 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
932 InstanceNameTemplate: {get_param: InstanceNameTemplate}
933 KeyName: {get_param: KeyName}
934 KeystoneCACertificate: {get_param: KeystoneCACertificate}
935 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
936 KeystoneSigningKey: {get_param: KeystoneSigningKey}
937 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
938 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
939 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
940 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
941 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
942 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
943 MysqlMaxConnections: {get_param: MysqlMaxConnections}
944 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
945 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
946 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
947 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
948 NeutronTenantMtu: {get_param: NeutronTenantMtu}
949 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
950 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
951 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
952 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
953 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
954 NeutronPublicInterface: {get_param: NeutronPublicInterface}
955 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
956 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
957 NeutronPassword: {get_param: NeutronPassword}
958 NeutronDnsmasqOptions:
960 template: {get_param: NeutronDnsmasqOptions}
962 '%MTU%': {get_param: NeutronTenantMtu}
963 NeutronDVR: {get_param: NeutronDVR}
964 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
965 NeutronAgentMode: {get_param: NeutronAgentMode}
966 NeutronCorePlugin: {get_param: NeutronCorePlugin}
967 NeutronServicePlugins: {get_param: NeutronServicePlugins}
968 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
969 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
970 NeutronPluginExtensions: {get_param: NeutronPluginExtensions}
971 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
972 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
973 NeutronL3HA: {get_param: NeutronL3HA}
974 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
975 NeutronNetworkType: {get_param: NeutronNetworkType}
976 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
977 NovaIPv6: {get_param: NovaIPv6}
978 NovaPassword: {get_param: NovaPassword}
979 NtpServer: {get_param: NtpServer}
980 MongoDbNoJournal: {get_param: MongoDbNoJournal}
981 MongoDbIPv6: {get_param: MongoDbIPv6}
982 PcsdPassword: {get_resource: PcsdPassword}
983 PublicVirtualInterface: {get_param: PublicVirtualInterface}
984 RabbitPassword: {get_param: RabbitPassword}
985 RabbitUserName: {get_param: RabbitUserName}
986 RabbitCookie: {get_attr: [RabbitCookie, value]}
987 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
988 RabbitClientPort: {get_param: RabbitClientPort}
989 RabbitFDLimit: {get_param: RabbitFDLimit}
990 RabbitIPv6: {get_param: RabbitIPv6}
991 SaharaPassword: {get_param: SaharaPassword}
992 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
993 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
994 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
995 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
996 SwiftHashSuffix: {get_param: SwiftHashSuffix}
997 SwiftMountCheck: {get_param: SwiftMountCheck}
998 SwiftMinPartHours: {get_param: SwiftMinPartHours}
999 SwiftPartPower: {get_param: SwiftPartPower}
1000 SwiftPassword: {get_param: SwiftPassword}
1001 SwiftReplicas: { get_param: SwiftReplicas}
1002 TimeZone: {get_param: TimeZone}
1003 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
1004 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
1005 ServiceNetMap: {get_param: ServiceNetMap}
1006 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1007 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1008 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1009 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1010 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1011 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1012 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1013 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1014 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1015 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1016 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1017 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1018 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1019 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1020 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1021 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1022 UpdateIdentifier: {get_param: UpdateIdentifier}
1025 template: {get_param: ControllerHostnameFormat}
1027 '%stackname%': {get_param: 'OS::stack_name'}
1028 NodeIndex: '%index%'
1029 ServerMetadata: {get_param: ServerMetadata}
1030 SchedulerHints: {get_param: ControllerSchedulerHints}
1033 type: OS::Heat::ResourceGroup
1034 depends_on: Networks
1036 count: {get_param: ComputeCount}
1037 removal_policies: {get_param: ComputeRemovalPolicies}
1039 type: OS::TripleO::Compute
1041 AdminPassword: {get_param: AdminPassword}
1042 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
1043 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
1044 CeilometerPassword: {get_param: CeilometerPassword}
1045 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
1046 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
1047 Debug: {get_param: Debug}
1048 ExtraConfig: {get_param: ExtraConfig}
1049 Flavor: {get_param: OvercloudComputeFlavor}
1050 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1051 Image: {get_param: NovaImage}
1052 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
1053 KeyName: {get_param: KeyName}
1054 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1055 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1056 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
1057 NeutronTenantMtu: {get_param: NeutronTenantMtu}
1058 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
1059 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
1060 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
1061 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1062 NeutronNetworkType: {get_param: NeutronNetworkType}
1063 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
1064 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
1065 NeutronPassword: {get_param: NeutronPassword}
1066 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
1067 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
1068 NeutronDVR: {get_param: NeutronDVR}
1069 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
1070 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
1071 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
1072 NeutronCorePlugin: {get_param: NeutronCorePlugin}
1073 NeutronServicePlugins: {get_param: NeutronServicePlugins}
1074 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
1075 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
1076 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
1077 # L3 HA and Failover is not relevant for Computes, should be removed
1078 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
1079 NeutronL3HA: {get_param: NeutronL3HA}
1080 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1081 NovaComputeDriver: {get_param: NovaComputeDriver}
1082 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
1083 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
1084 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
1085 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
1086 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
1087 NovaPassword: {get_param: NovaPassword}
1088 NovaOVSBridge: {get_param: NovaOVSBridge}
1089 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
1090 NtpServer: {get_param: NtpServer}
1091 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1092 RabbitPassword: {get_param: RabbitPassword}
1093 RabbitUserName: {get_param: RabbitUserName}
1094 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1095 RabbitClientPort: {get_param: RabbitClientPort}
1096 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
1097 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
1098 ServiceNetMap: {get_param: ServiceNetMap}
1099 TimeZone: {get_param: TimeZone}
1100 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1101 UpdateIdentifier: {get_param: UpdateIdentifier}
1104 template: {get_param: ComputeHostnameFormat}
1106 '%stackname%': {get_param: 'OS::stack_name'}
1107 CloudDomain: {get_param: CloudDomain}
1108 ServerMetadata: {get_param: ServerMetadata}
1109 SchedulerHints: {get_param: NovaComputeSchedulerHints}
1112 type: OS::Heat::ResourceGroup
1113 depends_on: Networks
1115 count: {get_param: BlockStorageCount}
1116 removal_policies: {get_param: BlockStorageRemovalPolicies}
1118 type: OS::TripleO::BlockStorage
1120 Debug: {get_param: Debug}
1121 Image: {get_param: BlockStorageImage}
1122 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1123 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1124 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1125 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1126 CinderPassword: {get_param: CinderPassword}
1127 KeyName: {get_param: KeyName}
1128 Flavor: {get_param: OvercloudBlockStorageFlavor}
1129 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1130 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1131 RabbitPassword: {get_param: RabbitPassword}
1132 RabbitUserName: {get_param: RabbitUserName}
1133 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1134 RabbitClientPort: {get_param: RabbitClientPort}
1135 TimeZone: {get_param: TimeZone}
1136 NtpServer: {get_param: NtpServer}
1137 UpdateIdentifier: {get_param: UpdateIdentifier}
1140 template: {get_param: BlockStorageHostnameFormat}
1142 '%stackname%': {get_param: 'OS::stack_name'}
1143 ServiceNetMap: {get_param: ServiceNetMap}
1144 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1145 MysqlVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1146 ExtraConfig: {get_param: ExtraConfig}
1147 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1148 CloudDomain: {get_param: CloudDomain}
1149 ServerMetadata: {get_param: ServerMetadata}
1150 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1153 type: OS::Heat::ResourceGroup
1154 depends_on: Networks
1156 count: {get_param: ObjectStorageCount}
1157 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1159 type: OS::TripleO::ObjectStorage
1161 KeyName: {get_param: KeyName}
1162 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1163 HashSuffix: {get_param: SwiftHashSuffix}
1164 MountCheck: {get_param: SwiftMountCheck}
1165 MinPartHours: {get_param: SwiftMinPartHours}
1166 PartPower: {get_param: SwiftPartPower}
1167 Image: {get_param: SwiftStorageImage}
1168 Replicas: { get_param: SwiftReplicas}
1169 TimeZone: {get_param: TimeZone}
1170 NtpServer: {get_param: NtpServer}
1171 UpdateIdentifier: {get_param: UpdateIdentifier}
1172 ServiceNetMap: {get_param: ServiceNetMap}
1175 template: {get_param: ObjectStorageHostnameFormat}
1177 '%stackname%': {get_param: 'OS::stack_name'}
1178 ExtraConfig: {get_param: ExtraConfig}
1179 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1180 CloudDomain: {get_param: CloudDomain}
1181 ServerMetadata: {get_param: ServerMetadata}
1182 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1185 type: OS::Heat::ResourceGroup
1186 depends_on: Networks
1188 count: {get_param: CephStorageCount}
1189 removal_policies: {get_param: CephStorageRemovalPolicies}
1191 type: OS::TripleO::CephStorage
1193 Image: {get_param: CephStorageImage}
1194 KeyName: {get_param: KeyName}
1195 Flavor: {get_param: OvercloudCephStorageFlavor}
1196 NtpServer: {get_param: NtpServer}
1197 ServiceNetMap: {get_param: ServiceNetMap}
1198 TimeZone: {get_param: TimeZone}
1199 UpdateIdentifier: {get_param: UpdateIdentifier}
1202 template: {get_param: CephStorageHostnameFormat}
1204 '%stackname%': {get_param: 'OS::stack_name'}
1205 ExtraConfig: {get_param: ExtraConfig}
1206 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1207 CloudDomain: {get_param: CloudDomain}
1208 ServerMetadata: {get_param: ServerMetadata}
1209 SchedulerHints: {get_param: CephStorageSchedulerHints}
1211 ControllerIpListMap:
1212 type: OS::TripleO::Network::Ports::NetIpListMap
1214 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1215 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1216 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1217 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1218 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1219 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1220 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1223 type: OS::TripleO::AllNodes::SoftwareConfig
1225 compute_hosts: {get_attr: [Compute, hosts_entry]}
1226 controller_hosts: {get_attr: [Controller, hosts_entry]}
1227 controller_ips: {get_attr: [Controller, ip_address]}
1228 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1229 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1230 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1231 controller_names: {get_attr: [Controller, hostname]}
1232 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1233 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1234 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1235 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1236 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1237 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1238 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1239 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1240 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1241 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1242 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1243 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1244 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1245 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1246 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1247 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1248 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1249 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1250 DeployIdentifier: {get_param: DeployIdentifier}
1251 UpdateIdentifier: {get_param: UpdateIdentifier}
1254 type: OS::Heat::RandomString
1258 MysqlClusterUniquePart:
1259 type: OS::Heat::RandomString
1264 type: OS::Heat::RandomString
1267 salt: {get_param: RabbitCookieSalt}
1269 # creates the network architecture
1271 type: OS::TripleO::Network
1274 type: OS::Neutron::Port
1275 depends_on: Networks
1277 name: control_virtual_ip
1278 network: {get_param: NeutronControlPlaneID}
1279 fixed_ips: {get_param: ControlFixedIPs}
1280 replacement_policy: AUTO
1283 depends_on: Networks
1284 type: OS::TripleO::Network::Ports::RedisVipPort
1286 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1287 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1288 PortName: redis_virtual_ip
1289 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1292 # The public VIP is on the External net, falls back to ctlplane
1294 depends_on: Networks
1295 type: OS::TripleO::Network::Ports::ExternalVipPort
1297 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1298 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1299 PortName: public_virtual_ip
1300 FixedIPs: {get_param: PublicVirtualFixedIPs}
1302 InternalApiVirtualIP:
1303 depends_on: Networks
1304 type: OS::TripleO::Network::Ports::InternalApiVipPort
1306 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1307 PortName: internal_api_virtual_ip
1308 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1311 depends_on: Networks
1312 type: OS::TripleO::Network::Ports::StorageVipPort
1314 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1315 PortName: storage_virtual_ip
1316 FixedIPs: {get_param: StorageVirtualFixedIPs}
1318 StorageMgmtVirtualIP:
1319 depends_on: Networks
1320 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1322 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1323 PortName: storage_management_virtual_ip
1324 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1327 type: OS::TripleO::Network::Ports::NetVipMap
1329 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1330 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1331 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1332 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1333 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1334 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1335 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1336 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1337 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1338 # No tenant or management VIP required
1341 type: OS::TripleO::VipConfig
1344 type: OS::Heat::StructuredDeployments
1347 config: {get_resource: VipConfig}
1348 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1350 # service VIP mappings
1351 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1352 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1353 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1354 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1355 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1356 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1357 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1358 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1359 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1360 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1361 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1362 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1363 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1364 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1365 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1366 # direct configuration of Virtual IPs for each network
1367 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1368 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1369 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1370 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1371 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1372 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1374 ControllerBootstrapNodeConfig:
1375 type: OS::TripleO::BootstrapNode::SoftwareConfig
1377 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1378 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1380 ControllerBootstrapNodeDeployment:
1381 type: OS::Heat::StructuredDeployments
1383 name: ControllerBootstrapNodeDeployment
1384 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1385 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1387 ControllerSwiftDeployment:
1388 type: OS::Heat::StructuredDeployments
1390 name: ControllerSwiftDeployment
1391 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1392 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1394 ObjectStorageSwiftDeployment:
1395 type: OS::Heat::StructuredDeployments
1397 name: ObjectStorageSwiftDeployment
1398 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1399 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1401 SwiftDevicesAndProxyConfig:
1402 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1404 controller_swift_devices: {get_attr: [Controller, swift_device]}
1405 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1406 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1408 ComputeCephDeployment:
1409 type: OS::Heat::StructuredDeployments
1411 name: ComputeCephDeployment
1412 config: {get_attr: [CephClusterConfig, config_id]}
1413 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1415 ControllerCephDeployment:
1416 type: OS::Heat::StructuredDeployments
1418 name: ControllerCephDeployment
1419 config: {get_attr: [CephClusterConfig, config_id]}
1420 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1422 CephStorageCephDeployment:
1423 type: OS::Heat::StructuredDeployments
1425 name: CephStorageCephDeployment
1426 config: {get_attr: [CephClusterConfig, config_id]}
1427 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1430 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1432 ceph_storage_count: {get_param: CephStorageCount}
1433 ceph_fsid: {get_param: CephClusterFSID}
1434 ceph_mon_key: {get_param: CephMonKey}
1435 ceph_admin_key: {get_param: CephAdminKey}
1436 ceph_client_key: {get_param: CephClientKey}
1437 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1438 ceph_mon_names: {get_attr: [Controller, hostname]}
1439 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1441 ControllerClusterConfig:
1442 type: OS::Heat::StructuredConfig
1444 group: os-apply-config
1447 nodes: {get_attr: [Controller, corosync_node]}
1451 nodes: {get_attr: [Controller, hostname]}
1453 nodes: {get_attr: [Controller, corosync_node]}
1455 nodes: {get_attr: [Controller, corosync_node]}
1457 ControllerClusterDeployment:
1458 type: OS::Heat::StructuredDeployments
1460 name: ControllerClusterDeployment
1461 config: {get_resource: ControllerClusterConfig}
1462 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1464 ControllerAllNodesDeployment:
1465 type: OS::Heat::StructuredDeployments
1467 name: ControllerAllNodesDeployment
1468 config: {get_attr: [allNodesConfig, config_id]}
1469 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1471 ComputeAllNodesDeployment:
1472 type: OS::Heat::StructuredDeployments
1474 name: ComputeAllNodesDeployment
1475 config: {get_attr: [allNodesConfig, config_id]}
1476 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1478 BlockStorageAllNodesDeployment:
1479 type: OS::Heat::StructuredDeployments
1481 name: BlockStorageAllNodesDeployment
1482 config: {get_attr: [allNodesConfig, config_id]}
1483 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1485 ObjectStorageAllNodesDeployment:
1486 type: OS::Heat::StructuredDeployments
1488 name: ObjectStorageAllNodesDeployment
1489 config: {get_attr: [allNodesConfig, config_id]}
1490 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1492 CephStorageAllNodesDeployment:
1493 type: OS::Heat::StructuredDeployments
1495 name: CephStorageAllNodesDeployment
1496 config: {get_attr: [allNodesConfig, config_id]}
1497 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1499 # All Nodes Validations
1500 AllNodesValidationConfig:
1501 type: OS::TripleO::AllNodes::Validation
1506 - - {get_attr: [Controller, resource.0.external_ip_address]}
1507 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1508 - {get_attr: [Controller, resource.0.storage_ip_address]}
1509 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1510 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1512 ControllerAllNodesValidationDeployment:
1513 type: OS::Heat::StructuredDeployments
1514 depends_on: ControllerAllNodesDeployment
1516 name: ControllerAllNodesValidationDeployment
1517 config: {get_resource: AllNodesValidationConfig}
1518 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1520 ComputeAllNodesValidationDeployment:
1521 type: OS::Heat::StructuredDeployments
1522 depends_on: ComputeAllNodesDeployment
1524 name: ComputeAllNodesValidationDeployment
1525 config: {get_resource: AllNodesValidationConfig}
1526 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1528 BlockStorageAllNodesValidationDeployment:
1529 type: OS::Heat::StructuredDeployments
1530 depends_on: BlockStorageAllNodesDeployment
1532 name: BlockStorageAllNodesValidationDeployment
1533 config: {get_resource: AllNodesValidationConfig}
1534 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1536 ObjectStorageAllNodesValidationDeployment:
1537 type: OS::Heat::StructuredDeployments
1538 depends_on: ObjectStorageAllNodesDeployment
1540 name: ObjectStorageAllNodesValidationDeployment
1541 config: {get_resource: AllNodesValidationConfig}
1542 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1544 CephStorageAllNodesValidationDeployment:
1545 type: OS::Heat::StructuredDeployments
1546 depends_on: CephStorageAllNodesDeployment
1548 name: CephStorageAllNodesValidationDeployment
1549 config: {get_resource: AllNodesValidationConfig}
1550 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1553 type: OS::TripleO::Tasks::UpdateWorkflow
1555 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1556 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1557 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1558 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1559 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1561 deploy_identifier: {get_param: DeployIdentifier}
1562 update_identifier: {get_param: UpdateIdentifier}
1564 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1565 # the nested template may configure each role differently (or not at all)
1566 AllNodesExtraConfig:
1567 type: OS::TripleO::AllNodesExtraConfig
1570 - ComputeAllNodesValidationDeployment
1571 - BlockStorageAllNodesValidationDeployment
1572 - ObjectStorageAllNodesValidationDeployment
1573 - CephStorageAllNodesValidationDeployment
1574 - ControllerAllNodesValidationDeployment
1576 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1577 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1578 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1579 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1580 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1582 # Nested stack deployment runs after all other controller deployments
1583 ControllerNodesPostDeployment:
1584 type: OS::TripleO::ControllerPostDeployment
1585 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1587 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1588 NodeConfigIdentifiers:
1589 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1590 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1591 deployment_identifier: {get_param: DeployIdentifier}
1593 ComputeNodesPostDeployment:
1594 type: OS::TripleO::ComputePostDeployment
1595 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1597 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1598 NodeConfigIdentifiers:
1599 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1600 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1601 deployment_identifier: {get_param: DeployIdentifier}
1603 ObjectStorageNodesPostDeployment:
1604 type: OS::TripleO::ObjectStoragePostDeployment
1605 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1607 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1608 NodeConfigIdentifiers:
1609 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1610 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1611 deployment_identifier: {get_param: DeployIdentifier}
1613 BlockStorageNodesPostDeployment:
1614 type: OS::TripleO::BlockStoragePostDeployment
1615 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1617 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1618 NodeConfigIdentifiers:
1619 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1620 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1621 deployment_identifier: {get_param: DeployIdentifier}
1623 CephStorageNodesPostDeployment:
1624 type: OS::TripleO::CephStoragePostDeployment
1625 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1627 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1628 NodeConfigIdentifiers:
1629 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1630 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1631 deployment_identifier: {get_param: DeployIdentifier}
1635 description: URL for the Overcloud Keystone service
1636 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1638 description: Keystone Admin VIP endpoint
1639 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1641 description: Controller VIP for public API endpoints
1642 value: {get_attr: [VipMap, net_ip_map, external]}
1643 CeilometerInternalVip:
1644 description: VIP for Ceilometer API internal endpoint
1645 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1647 description: VIP for Cinder API internal endpoint
1648 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1650 description: VIP for Glance API internal endpoint
1651 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1653 description: VIP for Heat API internal endpoint
1654 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1655 KeystoneInternalVip:
1656 description: VIP for Keystone API internal endpoint
1657 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1659 description: VIP for Neutron API internal endpoint
1660 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1662 description: VIP for Nova API internal endpoint
1663 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1665 description: VIP for Sahara API internal endpoint
1666 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1668 description: VIP for Swift Proxy internal endpoint
1669 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1672 The content that should be appended to your /etc/hosts if you want to get
1673 hostname-based access to the deployed nodes (useful for testing without
1675 value: {get_attr: [allNodesConfig, hosts_entries]}