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)
17 description: The password for the keystone admin account, used for monitoring, querying neutron etc.
22 description: The ceilometer backend type.
24 CeilometerMeteringSecret:
26 description: Secret shared by the ceilometer services.
31 description: The password for the ceilometer service account.
34 # This has to be an UUID so for now we generate it outside the template
38 description: The Ceph cluster FSID. Must be a UUID.
41 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
46 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
49 CinderEnableNfsBackend:
51 description: Whether to enable or not the NFS backend for Cinder
55 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.
61 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
62 CinderEnableIscsiBackend:
64 description: Whether to enable or not the Iscsi backend for Cinder
66 CinderEnableRbdBackend:
68 description: Whether to enable or not the Rbd backend for Cinder
72 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
76 description: Should be used for arbitrary ips.
80 description: Set to True to enable debugging on all services.
84 description: Syslog address where HAproxy will send its log
88 description: A list of IP/Hostname allowed to connect to horizon
89 type: comma_delimited_list
91 default: 'REBUILD_PRESERVE_EPHEMERAL'
92 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
96 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
99 - custom_constraint: nova.keypair
100 NeutronExternalNetworkBridge:
101 description: Name of bridge used for external network traffic.
104 NeutronBridgeMappings:
106 The OVS logical->physical bridge mappings to use. See the Neutron
107 documentation for details. Defaults to mapping br-ex - the external
108 bridge on hosts - to a physical name 'datacentre' which can be used
109 to create provider networks (and we use this for the default floating
110 network) - if changing this either use different post-install network
111 scripts or be sure to keep 'datacentre' as a mapping network name.
113 default: "datacentre:br-ex"
114 NeutronControlPlaneID:
117 description: Neutron ID or name for ctlplane network.
118 NeutronEnableIsolatedMetadata:
120 description: If True, DHCP provide metadata route to VM.
122 NeutronEnableTunnelling:
128 Enable/disable the L2 population feature in the Neutron agents.
132 default: 'datacentre'
134 If set, flat networks to configure in neutron plugins. Defaults to
135 'datacentre' to permit external network creation.
138 description: The tenant network type for Neutron, either gre or vxlan.
142 description: The password for the neutron service account, used by neutron agents.
145 NeutronPublicInterface:
147 description: What interface to bridge onto br-ex for network nodes.
149 NeutronPublicInterfaceTag:
152 VLAN tag for creating a public VLAN. The tag will be used to
153 create an access port on the exterior bridge for each control plane node,
154 and that port will be given the IP address returned by neutron from the
155 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
156 overcloud.yaml to include the deployment of VLAN ports to the control
159 NeutronComputeAgentMode:
161 description: Agent mode for the neutron-l3-agent on the compute hosts
165 description: Agent mode for the neutron-l3-agent on the controller hosts
169 description: Whether to configure Neutron Distributed Virtual Routers
171 NeutronMetadataProxySharedSecret:
173 description: Shared secret to prevent spoofing
179 The tunnel types for the Neutron tenant network. To specify multiple
180 values, use a comma separated string, like so: 'gre,vxlan'
182 NeutronTunnelIdRanges:
184 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
185 of GRE tunnel IDs that are available for tenant network allocation
186 default: ["1:1000", ]
187 type: comma_delimited_list
190 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
191 of VXLAN VNI IDs that are available for tenant network allocation
192 default: ["1:1000", ]
193 type: comma_delimited_list
197 The core plugin for Neutron. The value should be the entrypoint to be loaded
198 from neutron.core_plugins namespace.
200 NeutronServicePlugins:
203 Comma-separated list of service plugin entrypoints to be loaded from the
204 neutron.service_plugins namespace.
205 type: comma_delimited_list
207 default: "vxlan,vlan,flat,gre"
209 Comma-separated list of network type driver entrypoints to be loaded.
210 type: comma_delimited_list
211 NeutronMechanismDrivers:
212 default: 'openvswitch'
214 The mechanism drivers for the Neutron tenant network. To specify multiple
215 values, use a comma separated string, like so: 'openvswitch,l2_population'
217 NeutronAllowL3AgentFailover:
219 description: Allow automatic l3-agent failover
223 description: Whether to enable l3-agent HA
225 NeutronDhcpAgentsPerNetwork:
228 description: The number of neutron dhcp agents to schedule per network
231 description: The password for the nova service account, used by nova-api.
236 description: Comma-separated list of ntp servers
237 type: comma_delimited_list
240 description: Should MongoDb journaling be disabled
242 PublicVirtualFixedIPs:
245 Control the IP allocation for the PublicVirtualInterface port. E.g.
246 [{'ip_address':'1.2.3.4'}]
251 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
252 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
255 description: The username for RabbitMQ
259 description: The password for RabbitMQ
265 Rabbit client subscriber parameter to specify
266 an SSL connection to the RabbitMQ host.
270 description: Set rabbit subscriber port, change this if using SSL
272 # We need to set this as string because 'unlimited' is a valid setting
275 description: Configures RabbitMQ FD limit
277 SnmpdReadonlyUserName:
278 default: ro_snmp_user
279 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
281 SnmpdReadonlyUserPassword:
283 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
287 default: 'localdomain'
290 The DNS domain used for the hosts. This should match the dhcp_domain
291 configured in the Undercloud neutron. Defaults to localdomain.
295 Extra properties or metadata passed to Nova for the created nodes in
296 the overcloud. It's accessible via the Nova metadata API.
299 # Controller-specific params
302 description: The keystone auth secret.
305 CinderLVMLoopDeviceSize:
307 description: The size of the loopback file used by the cinder LVM driver.
309 CinderNfsMountOptions:
312 Mount options for NFS mounts used by Cinder NFS backend. Effective
313 when CinderEnableNfsBackend is true.
318 NFS servers used by Cinder NFS backend. Effective when
319 CinderEnableNfsBackend is true.
320 type: comma_delimited_list
323 description: The password for the cinder service account, used by cinder-api.
328 description: The iSCSI helper to use with cinder.
335 controllerExtraConfig:
338 Controller specific configuration to inject into the cluster. Same
339 structure as ExtraConfig.
343 default: overcloud-control
345 - custom_constraint: glance.image
346 OvercloudControlFlavor:
347 description: Flavor for control nodes to request when deploying.
350 - custom_constraint: nova.flavor
351 ControlVirtualInterface:
353 description: Interface where virtual ip will be assigned.
357 description: Whether to enable fencing in Pacemaker or not.
361 description: Whether to use Galera instead of regular MariaDB.
363 ControllerEnableCephStorage:
365 description: Whether to deploy Ceph Storage (OSD) on the Controller
367 ControllerEnableSwiftStorage:
369 description: Whether to enable Swift Storage on the Controller
374 Additional configuration to inject into the cluster. The format required
375 may be implementation specific, e.g puppet hieradata. Any role specific
376 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
381 Pacemaker fencing configuration. The JSON should have
382 the following structure:
386 "agent": "AGENT_NAME",
387 "host_mac": "HOST_MAC_ADDRESS",
388 "params": {"PARAM_NAME": "PARAM_VALUE"}
396 "agent": "fence_xvm",
397 "host_mac": "52:54:00:aa:bb:cc",
399 "multicast_address": "225.0.0.12",
400 "port": "baremetal_0",
402 "manage_key_file": true,
403 "key_file": "/etc/fence_xvm.key",
404 "key_file_password": "abcdef"
411 description: The filepath of the file to use for logging messages from Glance.
414 GlanceNotifierStrategy:
415 description: Strategy to use for Glance notification queue
420 description: The password for the glance service account, used by the glance services.
425 description: The short name of the Glance backend to use. Should be one
426 of swift, rbd or file
429 - allowed_values: ['swift', 'file', 'rbd']
432 description: The password for the Heat service account, used by the Heat services.
435 HeatStackDomainAdminPassword:
436 description: Password for heat_domain_admin user.
440 KeystoneCACertificate:
442 description: Keystone self-signed certificate authority certificate.
444 KeystoneSigningCertificate:
446 description: Keystone certificate for verifying token validity.
450 description: Keystone key for signing tokens.
453 KeystoneSSLCertificate:
455 description: Keystone certificate for verifying token validity.
457 KeystoneSSLCertificateKey:
459 description: Keystone key for signing tokens.
462 KeystoneNotificationDriver:
463 description: Comma-separated list of Oslo notification drivers used by Keystone
464 default: ['messaging']
465 type: comma_delimited_list
466 KeystoneNotificationFormat:
467 description: The Keystone notification format
471 - allowed_values: [ 'basic', 'cadf' ]
474 description: Whether to manage IPtables rules.
478 description: Whether IPtables rules should be purged before setting up the ones.
480 MysqlInnodbBufferPoolSize:
482 Specifies the size of the buffer pool in megabytes. Setting to
483 zero should be interpreted as "no value" and will defer to the
488 description: Configures MySQL max_connections config setting
491 NeutronDnsmasqOptions:
492 default: 'dhcp-option-force=26,1400'
493 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
495 NeutronPublicInterfaceDefaultRoute:
497 description: A custom default route for the NeutronPublicInterface.
499 NeutronPublicInterfaceIP:
501 description: A custom IP address to put onto the NeutronPublicInterface.
503 NeutronPublicInterfaceRawDevice:
505 description: If set, the public interface is a vlan with this device as the raw device.
507 PublicVirtualInterface:
510 Specifies the interface where the public-facing virtual ip will be assigned.
511 This should be int_public when a VLAN is being used.
515 description: A random string to be used as a salt when hashing to determine mappings in the ring.
520 description: The password for the swift service account, used by the swift proxy services.
525 description: Value of mount_check in Swift account/container/object -server.conf
530 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
533 description: Partition Power to use when building Swift rings
538 description: How many replicas to use in the swift rings.
540 # Compute-specific params
541 CeilometerComputeAgent:
542 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
546 - allowed_values: ['', Present]
550 HypervisorNeutronPhysicalBridge:
553 An OVS bridge to create on each hypervisor. This defaults to br-ex the
554 same as the control plane nodes, as we have a uniform configuration of
555 the openvswitch agent. Typically should not need to be changed.
557 HypervisorNeutronPublicInterface:
559 description: What interface to add to the HypervisorNeutronPhysicalBridge.
561 NeutronNetworkVLANRanges:
562 default: 'datacentre'
564 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
565 Neutron documentation for permitted values. Defaults to permitting any
566 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
567 type: comma_delimited_list
570 default: libvirt.LibvirtDriver
571 NovaComputeExtraConfig:
574 NovaCompute specific configuration to inject into the cluster. Same
575 structure as ExtraConfig.
577 NovaComputeLibvirtType:
580 NovaComputeLibvirtVifDriver:
582 description: Libvirt VIF driver configuration for the network
584 NovaEnableRbdBackend:
586 description: Whether to enable or not the Rbd backend for Nova
590 default: overcloud-compute
592 - custom_constraint: glance.image
595 description: Name of integration bridge used by Open vSwitch
597 NovaSecurityGroupAPI:
599 description: The full class name of the security API class
601 OvercloudComputeFlavor:
602 description: Use this flavor
605 - custom_constraint: nova.flavor
608 NeutronTenantNetwork: tenant
609 CeilometerApiNetwork: internal_api
610 MongoDbNetwork: internal_api
611 CinderApiNetwork: internal_api
612 CinderIscsiNetwork: storage
613 GlanceApiNetwork: storage
614 GlanceRegistryNetwork: internal_api
615 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
616 KeystonePublicApiNetwork: internal_api
617 NeutronApiNetwork: internal_api
618 HeatApiNetwork: internal_api
619 NovaApiNetwork: internal_api
620 NovaMetadataNetwork: internal_api
621 NovaVncProxyNetwork: internal_api
622 SwiftMgmtNetwork: storage_mgmt
623 SwiftProxyNetwork: storage
624 HorizonNetwork: internal_api
625 MemcachedNetwork: internal_api
626 RabbitMqNetwork: internal_api
627 RedisNetwork: internal_api
628 MysqlNetwork: internal_api
629 CephClusterNetwork: storage_mgmt
630 CephPublicNetwork: storage
631 ControllerHostnameResolveNetwork: internal_api
632 ComputeHostnameResolveNetwork: internal_api
633 BlockStorageHostnameResolveNetwork: internal_api
634 ObjectStorageHostnameResolveNetwork: internal_api
635 CephStorageHostnameResolveNetwork: storage
636 description: Mapping of service_name -> network name. Typically set
637 via parameter_defaults in the resource registry.
640 # Block storage specific parameters
645 default: overcloud-cinder-volume
647 OvercloudBlockStorageFlavor:
648 description: Flavor for block storage nodes to request when deploying.
651 - custom_constraint: nova.flavor
652 BlockStorageExtraConfig:
655 BlockStorage specific configuration to inject into the cluster. Same
656 structure as ExtraConfig.
659 # Object storage specific parameters
663 OvercloudSwiftStorageFlavor:
664 description: Flavor for Swift storage nodes to request when deploying.
667 - custom_constraint: nova.flavor
669 default: overcloud-swift-storage
671 ObjectStorageExtraConfig:
674 ObjectStorage specific configuration to inject into the cluster. Same
675 structure as ExtraConfig.
679 # Ceph storage specific parameters
684 default: overcloud-ceph-storage
686 OvercloudCephStorageFlavor:
688 description: Flavor for Ceph storage nodes to request when deploying.
691 - custom_constraint: nova.flavor
692 CephStorageExtraConfig:
695 CephStorage specific configuration to inject into the cluster. Same
696 structure as ExtraConfig.
699 # Hostname format for each role
700 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
701 # and %stackname% is replaced with OS::stack_name in the template below.
702 # If you want to use the heat generated names, pass '' (empty string).
703 ControllerHostnameFormat:
705 description: Format for Controller node hostnames
706 default: '%stackname%-controller-%index%'
707 ComputeHostnameFormat:
709 description: Format for Compute node hostnames
710 default: '%stackname%-novacompute-%index%'
711 BlockStorageHostnameFormat:
713 description: Format for BlockStorage node hostnames
714 default: '%stackname%-blockstorage-%index%'
715 ObjectStorageHostnameFormat:
717 description: Format for SwiftStorage node hostnames
718 default: '%stackname%-objectstorage-%index%'
719 CephStorageHostnameFormat:
721 description: Format for CephStorage node hostnames
722 default: '%stackname%-cephstorage-%index%'
724 # Identifiers to trigger tasks on nodes
729 Setting to a previously unused value during stack-update will trigger
730 package update on all nodes
735 Setting this to a unique value will re-run any deployment tasks which
736 perform configuration on a Heat stack-update.
738 # If you want to remove a specific node from a resource group, you can pass
739 # the node name or id as a <Group>RemovalPolicies parameter, for example:
740 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
741 ControllerRemovalPolicies:
745 List of resources to be removed from ControllerResourceGroup when
746 doing an update which requires removal of specific resources.
747 ComputeRemovalPolicies:
751 List of resources to be removed from ComputeResourceGroup when
752 doing an update which requires removal of specific resources.
753 BlockStorageRemovalPolicies:
757 List of resources to be removed from BlockStorageResourceGroup when
758 doing an update which requires removal of specific resources.
759 ObjectStorageRemovalPolicies:
763 List of resources to be removed from ObjectStorageResourceGroup when
764 doing an update which requires removal of specific resources.
765 CephStorageRemovalPolicies:
769 List of resources to be removed from CephStorageResourceGroup when
770 doing an update which requires removal of specific resources.
775 HeatAuthEncryptionKey:
776 type: OS::Heat::RandomString
779 type: OS::Heat::RandomString
784 type: OS::Heat::RandomString
789 type: OS::TripleO::EndpointMap
791 CloudName: {get_param: CloudName}
792 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
793 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
794 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
795 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
796 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
797 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
798 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
799 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
800 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
801 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
802 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
803 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
806 type: OS::Heat::ResourceGroup
809 count: {get_param: ControllerCount}
810 removal_policies: {get_param: ControllerRemovalPolicies}
812 type: OS::TripleO::Controller
814 AdminPassword: {get_param: AdminPassword}
815 AdminToken: {get_param: AdminToken}
816 CeilometerBackend: {get_param: CeilometerBackend}
817 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
818 CeilometerPassword: {get_param: CeilometerPassword}
819 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
820 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
821 CinderNfsServers: {get_param: CinderNfsServers}
822 CinderPassword: {get_param: CinderPassword}
823 CinderISCSIHelper: {get_param: CinderISCSIHelper}
824 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
825 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
826 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
827 CloudName: {get_param: CloudName}
828 CloudDomain: {get_param: CloudDomain}
829 ControlVirtualInterface: {get_param: ControlVirtualInterface}
830 ControllerExtraConfig: {get_param: controllerExtraConfig}
831 Debug: {get_param: Debug}
832 EnableFencing: {get_param: EnableFencing}
833 ManageFirewall: {get_param: ManageFirewall}
834 PurgeFirewallRules: {get_param: PurgeFirewallRules}
835 EnableGalera: {get_param: EnableGalera}
836 EnableCephStorage: {get_param: ControllerEnableCephStorage}
837 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
838 ExtraConfig: {get_param: ExtraConfig}
839 FencingConfig: {get_param: FencingConfig}
840 Flavor: {get_param: OvercloudControlFlavor}
841 GlancePassword: {get_param: GlancePassword}
842 GlanceBackend: {get_param: GlanceBackend}
843 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
844 GlanceLogFile: {get_param: GlanceLogFile}
845 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
846 HeatPassword: {get_param: HeatPassword}
847 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
848 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
849 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
850 HorizonSecret: {get_resource: HorizonSecret}
851 Image: {get_param: controllerImage}
852 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
853 KeyName: {get_param: KeyName}
854 KeystoneCACertificate: {get_param: KeystoneCACertificate}
855 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
856 KeystoneSigningKey: {get_param: KeystoneSigningKey}
857 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
858 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
859 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
860 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
861 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
862 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
863 MysqlMaxConnections: {get_param: MysqlMaxConnections}
864 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
865 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
866 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
867 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
868 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
869 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
870 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
871 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
872 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
873 NeutronPublicInterface: {get_param: NeutronPublicInterface}
874 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
875 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
876 NeutronPassword: {get_param: NeutronPassword}
877 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
878 NeutronDVR: {get_param: NeutronDVR}
879 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
880 NeutronAgentMode: {get_param: NeutronAgentMode}
881 NeutronCorePlugin: {get_param: NeutronCorePlugin}
882 NeutronServicePlugins: {get_param: NeutronServicePlugins}
883 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
884 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
885 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
886 NeutronL3HA: {get_param: NeutronL3HA}
887 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
888 NeutronNetworkType: {get_param: NeutronNetworkType}
889 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
890 NovaPassword: {get_param: NovaPassword}
891 NtpServer: {get_param: NtpServer}
892 MongoDbNoJournal: {get_param: MongoDbNoJournal}
893 PcsdPassword: {get_resource: PcsdPassword}
894 PublicVirtualInterface: {get_param: PublicVirtualInterface}
895 RabbitPassword: {get_param: RabbitPassword}
896 RabbitUserName: {get_param: RabbitUserName}
897 RabbitCookie: {get_attr: [RabbitCookie, value]}
898 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
899 RabbitClientPort: {get_param: RabbitClientPort}
900 RabbitFDLimit: {get_param: RabbitFDLimit}
901 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
902 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
903 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
904 SwiftHashSuffix: {get_param: SwiftHashSuffix}
905 SwiftMountCheck: {get_param: SwiftMountCheck}
906 SwiftMinPartHours: {get_param: SwiftMinPartHours}
907 SwiftPartPower: {get_param: SwiftPartPower}
908 SwiftPassword: {get_param: SwiftPassword}
909 SwiftReplicas: { get_param: SwiftReplicas}
910 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
911 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
912 ServiceNetMap: {get_param: ServiceNetMap}
913 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
914 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
915 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
916 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
917 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
918 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
919 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
920 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
921 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
922 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
923 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
924 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
925 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
926 UpdateIdentifier: {get_param: UpdateIdentifier}
929 template: {get_param: ControllerHostnameFormat}
931 '%stackname%': {get_param: 'OS::stack_name'}
933 ServerMetadata: {get_param: ServerMetadata}
936 type: OS::Heat::ResourceGroup
939 count: {get_param: ComputeCount}
940 removal_policies: {get_param: ComputeRemovalPolicies}
942 type: OS::TripleO::Compute
944 AdminPassword: {get_param: AdminPassword}
945 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
946 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
947 CeilometerPassword: {get_param: CeilometerPassword}
948 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
949 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
950 Debug: {get_param: Debug}
951 ExtraConfig: {get_param: ExtraConfig}
952 Flavor: {get_param: OvercloudComputeFlavor}
953 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
954 Image: {get_param: NovaImage}
955 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
956 KeyName: {get_param: KeyName}
957 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
958 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
959 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
960 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
961 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
962 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
963 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
964 NeutronNetworkType: {get_param: NeutronNetworkType}
965 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
966 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
967 NeutronPassword: {get_param: NeutronPassword}
968 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
969 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
970 NeutronDVR: {get_param: NeutronDVR}
971 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
972 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
973 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
974 NeutronCorePlugin: {get_param: NeutronCorePlugin}
975 NeutronServicePlugins: {get_param: NeutronServicePlugins}
976 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
977 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
978 # L3 HA and Failover is not relevant for Computes, should be removed
979 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
980 NeutronL3HA: {get_param: NeutronL3HA}
981 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
982 NovaComputeDriver: {get_param: NovaComputeDriver}
983 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
984 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
985 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
986 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
987 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
988 NovaPassword: {get_param: NovaPassword}
989 NovaOVSBridge: {get_param: NovaOVSBridge}
990 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
991 NtpServer: {get_param: NtpServer}
992 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
993 RabbitPassword: {get_param: RabbitPassword}
994 RabbitUserName: {get_param: RabbitUserName}
995 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
996 RabbitClientPort: {get_param: RabbitClientPort}
997 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
998 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
999 ServiceNetMap: {get_param: ServiceNetMap}
1000 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1001 UpdateIdentifier: {get_param: UpdateIdentifier}
1004 template: {get_param: ComputeHostnameFormat}
1006 '%stackname%': {get_param: 'OS::stack_name'}
1007 CloudDomain: {get_param: CloudDomain}
1008 ServerMetadata: {get_param: ServerMetadata}
1011 type: OS::Heat::ResourceGroup
1012 depends_on: Networks
1014 count: {get_param: BlockStorageCount}
1015 removal_policies: {get_param: BlockStorageRemovalPolicies}
1017 type: OS::TripleO::BlockStorage
1019 Debug: {get_param: Debug}
1020 Image: {get_param: BlockStorageImage}
1021 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1022 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1023 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1024 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1025 CinderPassword: {get_param: CinderPassword}
1026 KeyName: {get_param: KeyName}
1027 Flavor: {get_param: OvercloudBlockStorageFlavor}
1028 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1029 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1030 RabbitPassword: {get_param: RabbitPassword}
1031 RabbitUserName: {get_param: RabbitUserName}
1032 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1033 RabbitClientPort: {get_param: RabbitClientPort}
1034 NtpServer: {get_param: NtpServer}
1035 UpdateIdentifier: {get_param: UpdateIdentifier}
1038 template: {get_param: BlockStorageHostnameFormat}
1040 '%stackname%': {get_param: 'OS::stack_name'}
1041 ServiceNetMap: {get_param: ServiceNetMap}
1042 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1043 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1044 ExtraConfig: {get_param: ExtraConfig}
1045 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1046 CloudDomain: {get_param: CloudDomain}
1047 ServerMetadata: {get_param: ServerMetadata}
1050 type: OS::Heat::ResourceGroup
1051 depends_on: Networks
1053 count: {get_param: ObjectStorageCount}
1054 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1056 type: OS::TripleO::ObjectStorage
1058 KeyName: {get_param: KeyName}
1059 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1060 HashSuffix: {get_param: SwiftHashSuffix}
1061 MountCheck: {get_param: SwiftMountCheck}
1062 MinPartHours: {get_param: SwiftMinPartHours}
1063 PartPower: {get_param: SwiftPartPower}
1064 Image: {get_param: SwiftStorageImage}
1065 Replicas: { get_param: SwiftReplicas}
1066 NtpServer: {get_param: NtpServer}
1067 UpdateIdentifier: {get_param: UpdateIdentifier}
1068 ServiceNetMap: {get_param: ServiceNetMap}
1071 template: {get_param: ObjectStorageHostnameFormat}
1073 '%stackname%': {get_param: 'OS::stack_name'}
1074 ExtraConfig: {get_param: ExtraConfig}
1075 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1076 CloudDomain: {get_param: CloudDomain}
1077 ServerMetadata: {get_param: ServerMetadata}
1080 type: OS::Heat::ResourceGroup
1081 depends_on: Networks
1083 count: {get_param: CephStorageCount}
1084 removal_policies: {get_param: CephStorageRemovalPolicies}
1086 type: OS::TripleO::CephStorage
1088 Image: {get_param: CephStorageImage}
1089 KeyName: {get_param: KeyName}
1090 Flavor: {get_param: OvercloudCephStorageFlavor}
1091 NtpServer: {get_param: NtpServer}
1092 ServiceNetMap: {get_param: ServiceNetMap}
1093 UpdateIdentifier: {get_param: UpdateIdentifier}
1096 template: {get_param: CephStorageHostnameFormat}
1098 '%stackname%': {get_param: 'OS::stack_name'}
1099 ExtraConfig: {get_param: ExtraConfig}
1100 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1101 CloudDomain: {get_param: CloudDomain}
1102 ServerMetadata: {get_param: ServerMetadata}
1104 ControllerIpListMap:
1105 type: OS::TripleO::Network::Ports::NetIpListMap
1107 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1108 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1109 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1110 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1111 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1112 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1115 type: OS::TripleO::AllNodes::SoftwareConfig
1117 compute_hosts: {get_attr: [Compute, hosts_entry]}
1118 controller_hosts: {get_attr: [Controller, hosts_entry]}
1119 controller_ips: {get_attr: [Controller, ip_address]}
1120 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1121 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1122 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1123 controller_names: {get_attr: [Controller, hostname]}
1124 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1125 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1126 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1127 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1128 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1129 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1130 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1131 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1132 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1133 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1134 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1135 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1136 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1137 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1138 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1139 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1140 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1143 type: OS::Heat::RandomString
1147 MysqlClusterUniquePart:
1148 type: OS::Heat::RandomString
1153 type: OS::Heat::RandomString
1156 salt: {get_param: RabbitCookieSalt}
1158 # creates the network architecture
1160 type: OS::TripleO::Network
1163 type: OS::Neutron::Port
1164 depends_on: Networks
1166 name: control_virtual_ip
1167 network: {get_param: NeutronControlPlaneID}
1168 fixed_ips: {get_param: ControlFixedIPs}
1169 replacement_policy: AUTO
1172 depends_on: Networks
1173 type: OS::TripleO::Controller::Ports::RedisVipPort
1175 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1176 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1177 PortName: redis_virtual_ip
1178 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1180 # The public VIP is on the External net, falls back to ctlplane
1182 depends_on: Networks
1183 type: OS::TripleO::Controller::Ports::ExternalPort
1185 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1186 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1187 PortName: public_virtual_ip
1188 FixedIPs: {get_param: PublicVirtualFixedIPs}
1190 InternalApiVirtualIP:
1191 depends_on: Networks
1192 type: OS::TripleO::Controller::Ports::InternalApiPort
1194 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1195 PortName: internal_api_virtual_ip
1198 depends_on: Networks
1199 type: OS::TripleO::Controller::Ports::StoragePort
1201 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1202 PortName: storage_virtual_ip
1204 StorageMgmtVirtualIP:
1205 depends_on: Networks
1206 type: OS::TripleO::Controller::Ports::StorageMgmtPort
1208 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1209 PortName: storage_management_virtual_ip
1212 type: OS::TripleO::Network::Ports::NetVipMap
1214 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1215 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1216 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1217 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1218 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1219 # No tenant VIP required
1222 type: OS::TripleO::VipConfig
1225 type: OS::Heat::StructuredDeployments
1227 config: {get_resource: VipConfig}
1228 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1230 # service VIP mappings
1231 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1232 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1233 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1234 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1235 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1236 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1237 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1238 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1239 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1240 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1241 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1242 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1243 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1244 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1245 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1246 # direct configuration of Virtual IPs for each network
1247 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1248 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1249 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1250 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1251 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1253 ControllerBootstrapNodeConfig:
1254 type: OS::TripleO::BootstrapNode::SoftwareConfig
1256 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1257 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1259 ControllerBootstrapNodeDeployment:
1260 type: OS::Heat::StructuredDeployments
1262 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1263 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1265 ControllerSwiftDeployment:
1266 type: OS::Heat::StructuredDeployments
1268 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1269 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1271 ObjectStorageSwiftDeployment:
1272 type: OS::Heat::StructuredDeployments
1274 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1275 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1277 SwiftDevicesAndProxyConfig:
1278 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1280 controller_swift_devices: {get_attr: [Controller, swift_device]}
1281 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1282 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1284 ComputeCephDeployment:
1285 type: OS::Heat::StructuredDeployments
1287 config: {get_attr: [CephClusterConfig, config_id]}
1288 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1290 ControllerCephDeployment:
1291 type: OS::Heat::StructuredDeployments
1293 config: {get_attr: [CephClusterConfig, config_id]}
1294 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1296 CephStorageCephDeployment:
1297 type: OS::Heat::StructuredDeployments
1299 config: {get_attr: [CephClusterConfig, config_id]}
1300 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1303 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1305 ceph_storage_count: {get_param: CephStorageCount}
1306 ceph_fsid: {get_param: CephClusterFSID}
1307 ceph_mon_key: {get_param: CephMonKey}
1308 ceph_admin_key: {get_param: CephAdminKey}
1309 ceph_client_key: {get_param: CephClientKey}
1310 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1311 ceph_mon_names: {get_attr: [Controller, hostname]}
1312 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1314 ControllerClusterConfig:
1315 type: OS::Heat::StructuredConfig
1317 group: os-apply-config
1320 nodes: {get_attr: [Controller, corosync_node]}
1324 nodes: {get_attr: [Controller, hostname]}
1326 nodes: {get_attr: [Controller, corosync_node]}
1328 nodes: {get_attr: [Controller, corosync_node]}
1330 ControllerClusterDeployment:
1331 type: OS::Heat::StructuredDeployments
1333 config: {get_resource: ControllerClusterConfig}
1334 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1336 ControllerAllNodesDeployment:
1337 type: OS::Heat::StructuredDeployments
1339 config: {get_attr: [allNodesConfig, config_id]}
1340 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1342 ComputeAllNodesDeployment:
1343 type: OS::Heat::StructuredDeployments
1345 config: {get_attr: [allNodesConfig, config_id]}
1346 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1348 BlockStorageAllNodesDeployment:
1349 type: OS::Heat::StructuredDeployments
1351 config: {get_attr: [allNodesConfig, config_id]}
1352 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1354 ObjectStorageAllNodesDeployment:
1355 type: OS::Heat::StructuredDeployments
1357 config: {get_attr: [allNodesConfig, config_id]}
1358 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1360 CephStorageAllNodesDeployment:
1361 type: OS::Heat::StructuredDeployments
1363 config: {get_attr: [allNodesConfig, config_id]}
1364 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1366 # All Nodes Validations
1367 AllNodesValidationConfig:
1368 type: OS::TripleO::AllNodes::Validation
1373 - - {get_attr: [Controller, resource.0.external_ip_address]}
1374 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1375 - {get_attr: [Controller, resource.0.storage_ip_address]}
1376 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1377 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1379 ControllerAllNodesValidationDeployment:
1380 type: OS::Heat::StructuredDeployments
1381 depends_on: ControllerAllNodesDeployment
1383 config: {get_resource: AllNodesValidationConfig}
1384 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1386 ComputeAllNodesValidationDeployment:
1387 type: OS::Heat::StructuredDeployments
1388 depends_on: ComputeAllNodesDeployment
1390 config: {get_resource: AllNodesValidationConfig}
1391 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1393 BlockStorageAllNodesValidationDeployment:
1394 type: OS::Heat::StructuredDeployments
1395 depends_on: BlockStorageAllNodesDeployment
1397 config: {get_resource: AllNodesValidationConfig}
1398 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1400 ObjectStorageAllNodesValidationDeployment:
1401 type: OS::Heat::StructuredDeployments
1402 depends_on: ObjectStorageAllNodesDeployment
1404 config: {get_resource: AllNodesValidationConfig}
1405 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1407 CephStorageAllNodesValidationDeployment:
1408 type: OS::Heat::StructuredDeployments
1409 depends_on: CephStorageAllNodesDeployment
1411 config: {get_resource: AllNodesValidationConfig}
1412 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1414 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1415 # the nested template may configure each role differently (or not at all)
1416 AllNodesExtraConfig:
1417 type: OS::TripleO::AllNodesExtraConfig
1419 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1420 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1421 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1422 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1423 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1425 # Nested stack deployment runs after all other controller deployments
1426 ControllerNodesPostDeployment:
1427 type: OS::TripleO::ControllerPostDeployment
1428 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1430 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1431 NodeConfigIdentifiers:
1432 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1433 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1434 deployment_identifier: {get_param: DeployIdentifier}
1436 ComputeNodesPostDeployment:
1437 type: OS::TripleO::ComputePostDeployment
1438 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1440 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1441 NodeConfigIdentifiers:
1442 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1443 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1444 deployment_identifier: {get_param: DeployIdentifier}
1446 ObjectStorageNodesPostDeployment:
1447 type: OS::TripleO::ObjectStoragePostDeployment
1448 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1450 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1451 NodeConfigIdentifiers:
1452 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1453 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1454 deployment_identifier: {get_param: DeployIdentifier}
1456 BlockStorageNodesPostDeployment:
1457 type: OS::TripleO::BlockStoragePostDeployment
1458 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1460 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1461 NodeConfigIdentifiers:
1462 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1463 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1464 deployment_identifier: {get_param: DeployIdentifier}
1466 CephStorageNodesPostDeployment:
1467 type: OS::TripleO::CephStoragePostDeployment
1468 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1470 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1471 NodeConfigIdentifiers:
1472 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1473 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1474 deployment_identifier: {get_param: DeployIdentifier}
1478 description: URL for the Overcloud Keystone service
1479 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1481 description: Keystone Admin VIP endpoint
1482 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1484 description: Controller VIP for public API endpoints
1485 value: {get_attr: [VipMap, net_ip_map, external]}
1486 CeilometerInternalVip:
1487 description: VIP for Ceilometer API internal endpoint
1488 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1490 description: VIP for Cinder API internal endpoint
1491 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1493 description: VIP for Glance API internal endpoint
1494 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1496 description: VIP for Heat API internal endpoint
1497 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1498 KeystoneInternalVip:
1499 description: VIP for Keystone API internal endpoint
1500 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1502 description: VIP for Neutron API internal endpoint
1503 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1505 description: VIP for Nova API internal endpoint
1506 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1508 description: VIP for Swift Proxy internal endpoint
1509 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}