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: Set to True to enable debugging on all services.
81 description: Syslog address where HAproxy will send its log
85 description: A list of IP/Hostname allowed to connect to horizon
86 type: comma_delimited_list
88 default: 'REBUILD_PRESERVE_EPHEMERAL'
89 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
93 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
96 - custom_constraint: nova.keypair
97 NeutronExternalNetworkBridge:
98 description: Name of bridge used for external network traffic.
101 NeutronBridgeMappings:
103 The OVS logical->physical bridge mappings to use. See the Neutron
104 documentation for details. Defaults to mapping br-ex - the external
105 bridge on hosts - to a physical name 'datacentre' which can be used
106 to create provider networks (and we use this for the default floating
107 network) - if changing this either use different post-install network
108 scripts or be sure to keep 'datacentre' as a mapping network name.
110 default: "datacentre:br-ex"
111 NeutronControlPlaneID:
114 description: Neutron ID or name for ctlplane network.
115 NeutronEnableIsolatedMetadata:
117 description: If True, DHCP provide metadata route to VM.
119 NeutronEnableTunnelling:
125 Enable/disable the L2 population feature in the Neutron agents.
129 default: 'datacentre'
131 If set, flat networks to configure in neutron plugins. Defaults to
132 'datacentre' to permit external network creation.
135 description: The tenant network type for Neutron, either gre or vxlan.
138 description: The password for the neutron service account, used by neutron agents.
141 NeutronPublicInterface:
143 description: What interface to bridge onto br-ex for network nodes.
145 NeutronPublicInterfaceTag:
148 VLAN tag for creating a public VLAN. The tag will be used to
149 create an access port on the exterior bridge for each control plane node,
150 and that port will be given the IP address returned by neutron from the
151 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
152 overcloud.yaml to include the deployment of VLAN ports to the control
155 NeutronComputeAgentMode:
157 description: Agent mode for the neutron-l3-agent on the compute hosts
161 description: Agent mode for the neutron-l3-agent on the controller hosts
165 description: Whether to configure Neutron Distributed Virtual Routers
167 NeutronMetadataProxySharedSecret:
168 description: Shared secret to prevent spoofing
174 The tunnel types for the Neutron tenant network. To specify multiple
175 values, use a comma separated string, like so: 'gre,vxlan'
177 NeutronTunnelIdRanges:
179 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
180 of GRE tunnel IDs that are available for tenant network allocation
181 default: ["1:1000", ]
182 type: comma_delimited_list
185 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
186 of VXLAN VNI IDs that are available for tenant network allocation
187 default: ["1:1000", ]
188 type: comma_delimited_list
192 The core plugin for Neutron. The value should be the entrypoint to be loaded
193 from neutron.core_plugins namespace.
195 NeutronServicePlugins:
198 Comma-separated list of service plugin entrypoints to be loaded from the
199 neutron.service_plugins namespace.
200 type: comma_delimited_list
202 default: "vxlan,vlan,flat,gre"
204 Comma-separated list of network type driver entrypoints to be loaded.
205 type: comma_delimited_list
206 NeutronMechanismDrivers:
207 default: 'openvswitch'
209 The mechanism drivers for the Neutron tenant network. To specify multiple
210 values, use a comma separated string, like so: 'openvswitch,l2_population'
212 NeutronAllowL3AgentFailover:
214 description: Allow automatic l3-agent failover
218 description: Whether to enable l3-agent HA
220 NeutronDhcpAgentsPerNetwork:
223 description: The number of neutron dhcp agents to schedule per network
225 description: The password for the nova service account, used by nova-api.
230 description: Comma-separated list of ntp servers
231 type: comma_delimited_list
234 description: Should MongoDb journaling be disabled
236 PublicVirtualFixedIPs:
239 Control the IP allocation for the PublicVirtualInterface port. E.g.
240 [{'ip_address':'1.2.3.4'}]
245 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
246 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
249 description: The username for RabbitMQ
253 description: The password for RabbitMQ
259 Rabbit client subscriber parameter to specify
260 an SSL connection to the RabbitMQ host.
264 description: Set rabbit subscriber port, change this if using SSL
266 # We need to set this as string because 'unlimited' is a valid setting
269 description: Configures RabbitMQ FD limit
271 SnmpdReadonlyUserName:
272 default: ro_snmp_user
273 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
275 SnmpdReadonlyUserPassword:
276 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
280 default: 'localdomain'
283 The DNS domain used for the hosts. This should match the dhcp_domain
284 configured in the Undercloud neutron. Defaults to localdomain.
288 Extra properties or metadata passed to Nova for the created nodes in
289 the overcloud. It's accessible via the Nova metadata API.
292 # Controller-specific params
294 description: The keystone auth secret.
297 CinderLVMLoopDeviceSize:
299 description: The size of the loopback file used by the cinder LVM driver.
301 CinderNfsMountOptions:
304 Mount options for NFS mounts used by Cinder NFS backend. Effective
305 when CinderEnableNfsBackend is true.
310 NFS servers used by Cinder NFS backend. Effective when
311 CinderEnableNfsBackend is true.
312 type: comma_delimited_list
314 description: The password for the cinder service account, used by cinder-api.
319 description: The iSCSI helper to use with cinder.
326 controllerExtraConfig:
329 Controller specific configuration to inject into the cluster. Same
330 structure as ExtraConfig.
334 default: overcloud-control
336 - custom_constraint: glance.image
337 OvercloudControlFlavor:
338 description: Flavor for control nodes to request when deploying.
341 - custom_constraint: nova.flavor
342 ControlVirtualInterface:
344 description: Interface where virtual ip will be assigned.
348 description: Whether to enable fencing in Pacemaker or not.
352 description: Whether to use Galera instead of regular MariaDB.
354 ControllerEnableCephStorage:
356 description: Whether to deploy Ceph Storage (OSD) on the Controller
358 ControllerEnableSwiftStorage:
360 description: Whether to enable Swift Storage on the Controller
365 Additional configuration to inject into the cluster. The format required
366 may be implementation specific, e.g puppet hieradata. Any role specific
367 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
372 Pacemaker fencing configuration. The JSON should have
373 the following structure:
377 "agent": "AGENT_NAME",
378 "host_mac": "HOST_MAC_ADDRESS",
379 "params": {"PARAM_NAME": "PARAM_VALUE"}
387 "agent": "fence_xvm",
388 "host_mac": "52:54:00:aa:bb:cc",
390 "multicast_address": "225.0.0.12",
391 "port": "baremetal_0",
393 "manage_key_file": true,
394 "key_file": "/etc/fence_xvm.key",
395 "key_file_password": "abcdef"
402 description: The filepath of the file to use for logging messages from Glance.
405 GlanceNotifierStrategy:
406 description: Strategy to use for Glance notification queue
410 description: The password for the glance service account, used by the glance services.
415 description: The short name of the Glance backend to use. Should be one
416 of swift, rbd or file
419 - allowed_values: ['swift', 'file', 'rbd']
421 description: The password for the Heat service account, used by the Heat services.
424 HeatStackDomainAdminPassword:
425 description: Password for heat_domain_admin user.
428 InstanceNameTemplate:
429 default: 'instance-%08x'
430 description: Template string to be used to generate instance names
432 KeystoneCACertificate:
434 description: Keystone self-signed certificate authority certificate.
436 KeystoneSigningCertificate:
438 description: Keystone certificate for verifying token validity.
442 description: Keystone key for signing tokens.
445 KeystoneSSLCertificate:
447 description: Keystone certificate for verifying token validity.
449 KeystoneSSLCertificateKey:
451 description: Keystone key for signing tokens.
454 KeystoneNotificationDriver:
455 description: Comma-separated list of Oslo notification drivers used by Keystone
456 default: ['messaging']
457 type: comma_delimited_list
458 KeystoneNotificationFormat:
459 description: The Keystone notification format
463 - allowed_values: [ 'basic', 'cadf' ]
466 description: Whether to manage IPtables rules.
470 description: Whether IPtables rules should be purged before setting up the ones.
472 MysqlInnodbBufferPoolSize:
474 Specifies the size of the buffer pool in megabytes. Setting to
475 zero should be interpreted as "no value" and will defer to the
480 description: Configures MySQL max_connections config setting
483 NeutronDnsmasqOptions:
484 default: 'dhcp-option-force=26,1400'
485 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
487 NeutronPublicInterfaceDefaultRoute:
489 description: A custom default route for the NeutronPublicInterface.
491 NeutronPublicInterfaceIP:
493 description: A custom IP address to put onto the NeutronPublicInterface.
495 NeutronPublicInterfaceRawDevice:
497 description: If set, the public interface is a vlan with this device as the raw device.
499 PublicVirtualInterface:
502 Specifies the interface where the public-facing virtual ip will be assigned.
503 This should be int_public when a VLAN is being used.
506 description: A random string to be used as a salt when hashing to determine mappings in the ring.
510 description: The password for the swift service account, used by the swift proxy services.
515 description: Value of mount_check in Swift account/container/object -server.conf
520 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
523 description: Partition Power to use when building Swift rings
528 description: How many replicas to use in the swift rings.
530 # Compute-specific params
531 CeilometerComputeAgent:
532 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
536 - allowed_values: ['', Present]
540 HypervisorNeutronPhysicalBridge:
543 An OVS bridge to create on each hypervisor. This defaults to br-ex the
544 same as the control plane nodes, as we have a uniform configuration of
545 the openvswitch agent. Typically should not need to be changed.
547 HypervisorNeutronPublicInterface:
549 description: What interface to add to the HypervisorNeutronPhysicalBridge.
551 NeutronNetworkVLANRanges:
552 default: 'datacentre'
554 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
555 Neutron documentation for permitted values. Defaults to permitting any
556 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
557 type: comma_delimited_list
560 default: libvirt.LibvirtDriver
561 NovaComputeExtraConfig:
564 NovaCompute specific configuration to inject into the cluster. Same
565 structure as ExtraConfig.
567 NovaComputeLibvirtType:
570 NovaComputeLibvirtVifDriver:
572 description: Libvirt VIF driver configuration for the network
574 NovaEnableRbdBackend:
576 description: Whether to enable or not the Rbd backend for Nova
580 default: overcloud-compute
582 - custom_constraint: glance.image
585 description: Name of integration bridge used by Open vSwitch
587 NovaSecurityGroupAPI:
589 description: The full class name of the security API class
591 OvercloudComputeFlavor:
592 description: Use this flavor
595 - custom_constraint: nova.flavor
598 NeutronTenantNetwork: tenant
599 CeilometerApiNetwork: internal_api
600 MongoDbNetwork: internal_api
601 CinderApiNetwork: internal_api
602 CinderIscsiNetwork: storage
603 GlanceApiNetwork: storage
604 GlanceRegistryNetwork: internal_api
605 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
606 KeystonePublicApiNetwork: internal_api
607 NeutronApiNetwork: internal_api
608 HeatApiNetwork: internal_api
609 NovaApiNetwork: internal_api
610 NovaMetadataNetwork: internal_api
611 NovaVncProxyNetwork: internal_api
612 SwiftMgmtNetwork: storage_mgmt
613 SwiftProxyNetwork: storage
614 HorizonNetwork: internal_api
615 MemcachedNetwork: internal_api
616 RabbitMqNetwork: internal_api
617 RedisNetwork: internal_api
618 MysqlNetwork: internal_api
619 CephClusterNetwork: storage_mgmt
620 CephPublicNetwork: storage
621 ControllerHostnameResolveNetwork: internal_api
622 ComputeHostnameResolveNetwork: internal_api
623 BlockStorageHostnameResolveNetwork: internal_api
624 ObjectStorageHostnameResolveNetwork: internal_api
625 CephStorageHostnameResolveNetwork: storage
626 description: Mapping of service_name -> network name. Typically set
627 via parameter_defaults in the resource registry.
630 # Block storage specific parameters
635 default: overcloud-cinder-volume
637 OvercloudBlockStorageFlavor:
638 description: Flavor for block storage nodes to request when deploying.
641 - custom_constraint: nova.flavor
642 BlockStorageExtraConfig:
645 BlockStorage specific configuration to inject into the cluster. Same
646 structure as ExtraConfig.
649 # Object storage specific parameters
653 OvercloudSwiftStorageFlavor:
654 description: Flavor for Swift storage nodes to request when deploying.
657 - custom_constraint: nova.flavor
659 default: overcloud-swift-storage
661 ObjectStorageExtraConfig:
664 ObjectStorage specific configuration to inject into the cluster. Same
665 structure as ExtraConfig.
669 # Ceph storage specific parameters
674 default: overcloud-ceph-storage
676 OvercloudCephStorageFlavor:
678 description: Flavor for Ceph storage nodes to request when deploying.
681 - custom_constraint: nova.flavor
682 CephStorageExtraConfig:
685 CephStorage specific configuration to inject into the cluster. Same
686 structure as ExtraConfig.
689 # Hostname format for each role
690 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
691 # and %stackname% is replaced with OS::stack_name in the template below.
692 # If you want to use the heat generated names, pass '' (empty string).
693 ControllerHostnameFormat:
695 description: Format for Controller node hostnames
696 default: '%stackname%-controller-%index%'
697 ComputeHostnameFormat:
699 description: Format for Compute node hostnames
700 default: '%stackname%-novacompute-%index%'
701 BlockStorageHostnameFormat:
703 description: Format for BlockStorage node hostnames
704 default: '%stackname%-blockstorage-%index%'
705 ObjectStorageHostnameFormat:
707 description: Format for SwiftStorage node hostnames
708 default: '%stackname%-objectstorage-%index%'
709 CephStorageHostnameFormat:
711 description: Format for CephStorage node hostnames
712 default: '%stackname%-cephstorage-%index%'
714 # Identifiers to trigger tasks on nodes
719 Setting to a previously unused value during stack-update will trigger
720 package update on all nodes
725 Setting this to a unique value will re-run any deployment tasks which
726 perform configuration on a Heat stack-update.
728 # If you want to remove a specific node from a resource group, you can pass
729 # the node name or id as a <Group>RemovalPolicies parameter, for example:
730 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
731 ControllerRemovalPolicies:
735 List of resources to be removed from ControllerResourceGroup when
736 doing an update which requires removal of specific resources.
737 ComputeRemovalPolicies:
741 List of resources to be removed from ComputeResourceGroup when
742 doing an update which requires removal of specific resources.
743 BlockStorageRemovalPolicies:
747 List of resources to be removed from BlockStorageResourceGroup when
748 doing an update which requires removal of specific resources.
749 ObjectStorageRemovalPolicies:
753 List of resources to be removed from ObjectStorageResourceGroup when
754 doing an update which requires removal of specific resources.
755 CephStorageRemovalPolicies:
759 List of resources to be removed from CephStorageResourceGroup when
760 doing an update which requires removal of specific resources.
765 HeatAuthEncryptionKey:
766 type: OS::Heat::RandomString
769 type: OS::Heat::RandomString
774 type: OS::Heat::RandomString
779 type: OS::TripleO::EndpointMap
781 CloudName: {get_param: CloudName}
782 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
783 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
784 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
785 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
786 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
787 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
788 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
789 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
790 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
791 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
792 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
793 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
796 type: OS::Heat::ResourceGroup
799 count: {get_param: ControllerCount}
800 removal_policies: {get_param: ControllerRemovalPolicies}
802 type: OS::TripleO::Controller
804 AdminPassword: {get_param: AdminPassword}
805 AdminToken: {get_param: AdminToken}
806 CeilometerBackend: {get_param: CeilometerBackend}
807 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
808 CeilometerPassword: {get_param: CeilometerPassword}
809 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
810 CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
811 CinderNfsServers: {get_param: CinderNfsServers}
812 CinderPassword: {get_param: CinderPassword}
813 CinderISCSIHelper: {get_param: CinderISCSIHelper}
814 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
815 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
816 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
817 CloudName: {get_param: CloudName}
818 CloudDomain: {get_param: CloudDomain}
819 ControlVirtualInterface: {get_param: ControlVirtualInterface}
820 ControllerExtraConfig: {get_param: controllerExtraConfig}
821 Debug: {get_param: Debug}
822 EnableFencing: {get_param: EnableFencing}
823 ManageFirewall: {get_param: ManageFirewall}
824 PurgeFirewallRules: {get_param: PurgeFirewallRules}
825 EnableGalera: {get_param: EnableGalera}
826 EnableCephStorage: {get_param: ControllerEnableCephStorage}
827 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
828 ExtraConfig: {get_param: ExtraConfig}
829 FencingConfig: {get_param: FencingConfig}
830 Flavor: {get_param: OvercloudControlFlavor}
831 GlancePassword: {get_param: GlancePassword}
832 GlanceBackend: {get_param: GlanceBackend}
833 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
834 GlanceLogFile: {get_param: GlanceLogFile}
835 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
836 HeatPassword: {get_param: HeatPassword}
837 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
838 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
839 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
840 HorizonSecret: {get_resource: HorizonSecret}
841 Image: {get_param: controllerImage}
842 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
843 InstanceNameTemplate: {get_param: InstanceNameTemplate}
844 KeyName: {get_param: KeyName}
845 KeystoneCACertificate: {get_param: KeystoneCACertificate}
846 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
847 KeystoneSigningKey: {get_param: KeystoneSigningKey}
848 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
849 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
850 KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
851 KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
852 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
853 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
854 MysqlMaxConnections: {get_param: MysqlMaxConnections}
855 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
856 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
857 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
858 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
859 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
860 NeutronEnableIsolatedMetadata: {get_param: NeutronEnableIsolatedMetadata}
861 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
862 NeutronEnableL2Pop: {get_param: NeutronEnableL2Pop}
863 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
864 NeutronPublicInterface: {get_param: NeutronPublicInterface}
865 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
866 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
867 NeutronPassword: {get_param: NeutronPassword}
868 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
869 NeutronDVR: {get_param: NeutronDVR}
870 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
871 NeutronAgentMode: {get_param: NeutronAgentMode}
872 NeutronCorePlugin: {get_param: NeutronCorePlugin}
873 NeutronServicePlugins: {get_param: NeutronServicePlugins}
874 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
875 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
876 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
877 NeutronL3HA: {get_param: NeutronL3HA}
878 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
879 NeutronNetworkType: {get_param: NeutronNetworkType}
880 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
881 NovaPassword: {get_param: NovaPassword}
882 NtpServer: {get_param: NtpServer}
883 MongoDbNoJournal: {get_param: MongoDbNoJournal}
884 PcsdPassword: {get_resource: PcsdPassword}
885 PublicVirtualInterface: {get_param: PublicVirtualInterface}
886 RabbitPassword: {get_param: RabbitPassword}
887 RabbitUserName: {get_param: RabbitUserName}
888 RabbitCookie: {get_attr: [RabbitCookie, value]}
889 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
890 RabbitClientPort: {get_param: RabbitClientPort}
891 RabbitFDLimit: {get_param: RabbitFDLimit}
892 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
893 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
894 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
895 SwiftHashSuffix: {get_param: SwiftHashSuffix}
896 SwiftMountCheck: {get_param: SwiftMountCheck}
897 SwiftMinPartHours: {get_param: SwiftMinPartHours}
898 SwiftPartPower: {get_param: SwiftPartPower}
899 SwiftPassword: {get_param: SwiftPassword}
900 SwiftReplicas: { get_param: SwiftReplicas}
901 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
902 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
903 ServiceNetMap: {get_param: ServiceNetMap}
904 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
905 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
906 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
907 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
908 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
909 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
910 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
911 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
912 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
913 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
914 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
915 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
916 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
917 UpdateIdentifier: {get_param: UpdateIdentifier}
920 template: {get_param: ControllerHostnameFormat}
922 '%stackname%': {get_param: 'OS::stack_name'}
924 ServerMetadata: {get_param: ServerMetadata}
927 type: OS::Heat::ResourceGroup
930 count: {get_param: ComputeCount}
931 removal_policies: {get_param: ComputeRemovalPolicies}
933 type: OS::TripleO::Compute
935 AdminPassword: {get_param: AdminPassword}
936 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
937 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
938 CeilometerPassword: {get_param: CeilometerPassword}
939 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
940 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
941 Debug: {get_param: Debug}
942 ExtraConfig: {get_param: ExtraConfig}
943 Flavor: {get_param: OvercloudComputeFlavor}
944 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
945 Image: {get_param: NovaImage}
946 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
947 KeyName: {get_param: KeyName}
948 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
949 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
950 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
951 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
952 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
953 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
954 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
955 NeutronNetworkType: {get_param: NeutronNetworkType}
956 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
957 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
958 NeutronPassword: {get_param: NeutronPassword}
959 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
960 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
961 NeutronDVR: {get_param: NeutronDVR}
962 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
963 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
964 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
965 NeutronCorePlugin: {get_param: NeutronCorePlugin}
966 NeutronServicePlugins: {get_param: NeutronServicePlugins}
967 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
968 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
969 # L3 HA and Failover is not relevant for Computes, should be removed
970 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
971 NeutronL3HA: {get_param: NeutronL3HA}
972 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
973 NovaComputeDriver: {get_param: NovaComputeDriver}
974 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
975 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
976 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
977 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
978 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
979 NovaPassword: {get_param: NovaPassword}
980 NovaOVSBridge: {get_param: NovaOVSBridge}
981 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
982 NtpServer: {get_param: NtpServer}
983 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
984 RabbitPassword: {get_param: RabbitPassword}
985 RabbitUserName: {get_param: RabbitUserName}
986 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
987 RabbitClientPort: {get_param: RabbitClientPort}
988 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
989 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
990 ServiceNetMap: {get_param: ServiceNetMap}
991 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
992 UpdateIdentifier: {get_param: UpdateIdentifier}
995 template: {get_param: ComputeHostnameFormat}
997 '%stackname%': {get_param: 'OS::stack_name'}
998 CloudDomain: {get_param: CloudDomain}
999 ServerMetadata: {get_param: ServerMetadata}
1002 type: OS::Heat::ResourceGroup
1003 depends_on: Networks
1005 count: {get_param: BlockStorageCount}
1006 removal_policies: {get_param: BlockStorageRemovalPolicies}
1008 type: OS::TripleO::BlockStorage
1010 Debug: {get_param: Debug}
1011 Image: {get_param: BlockStorageImage}
1012 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1013 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1014 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1015 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1016 CinderPassword: {get_param: CinderPassword}
1017 KeyName: {get_param: KeyName}
1018 Flavor: {get_param: OvercloudBlockStorageFlavor}
1019 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1020 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1021 RabbitPassword: {get_param: RabbitPassword}
1022 RabbitUserName: {get_param: RabbitUserName}
1023 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1024 RabbitClientPort: {get_param: RabbitClientPort}
1025 NtpServer: {get_param: NtpServer}
1026 UpdateIdentifier: {get_param: UpdateIdentifier}
1029 template: {get_param: BlockStorageHostnameFormat}
1031 '%stackname%': {get_param: 'OS::stack_name'}
1032 ServiceNetMap: {get_param: ServiceNetMap}
1033 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1034 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1035 ExtraConfig: {get_param: ExtraConfig}
1036 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1037 CloudDomain: {get_param: CloudDomain}
1038 ServerMetadata: {get_param: ServerMetadata}
1041 type: OS::Heat::ResourceGroup
1042 depends_on: Networks
1044 count: {get_param: ObjectStorageCount}
1045 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1047 type: OS::TripleO::ObjectStorage
1049 KeyName: {get_param: KeyName}
1050 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1051 HashSuffix: {get_param: SwiftHashSuffix}
1052 MountCheck: {get_param: SwiftMountCheck}
1053 MinPartHours: {get_param: SwiftMinPartHours}
1054 PartPower: {get_param: SwiftPartPower}
1055 Image: {get_param: SwiftStorageImage}
1056 Replicas: { get_param: SwiftReplicas}
1057 NtpServer: {get_param: NtpServer}
1058 UpdateIdentifier: {get_param: UpdateIdentifier}
1059 ServiceNetMap: {get_param: ServiceNetMap}
1062 template: {get_param: ObjectStorageHostnameFormat}
1064 '%stackname%': {get_param: 'OS::stack_name'}
1065 ExtraConfig: {get_param: ExtraConfig}
1066 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1067 CloudDomain: {get_param: CloudDomain}
1068 ServerMetadata: {get_param: ServerMetadata}
1071 type: OS::Heat::ResourceGroup
1072 depends_on: Networks
1074 count: {get_param: CephStorageCount}
1075 removal_policies: {get_param: CephStorageRemovalPolicies}
1077 type: OS::TripleO::CephStorage
1079 Image: {get_param: CephStorageImage}
1080 KeyName: {get_param: KeyName}
1081 Flavor: {get_param: OvercloudCephStorageFlavor}
1082 NtpServer: {get_param: NtpServer}
1083 ServiceNetMap: {get_param: ServiceNetMap}
1084 UpdateIdentifier: {get_param: UpdateIdentifier}
1087 template: {get_param: CephStorageHostnameFormat}
1089 '%stackname%': {get_param: 'OS::stack_name'}
1090 ExtraConfig: {get_param: ExtraConfig}
1091 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1092 CloudDomain: {get_param: CloudDomain}
1093 ServerMetadata: {get_param: ServerMetadata}
1095 ControllerIpListMap:
1096 type: OS::TripleO::Network::Ports::NetIpListMap
1098 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1099 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1100 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1101 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1102 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1103 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1106 type: OS::TripleO::AllNodes::SoftwareConfig
1108 compute_hosts: {get_attr: [Compute, hosts_entry]}
1109 controller_hosts: {get_attr: [Controller, hosts_entry]}
1110 controller_ips: {get_attr: [Controller, ip_address]}
1111 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1112 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1113 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1114 controller_names: {get_attr: [Controller, hostname]}
1115 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1116 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1117 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1118 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1119 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1120 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1121 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1122 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1123 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1124 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1125 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1126 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1127 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1128 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1129 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1130 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1131 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1134 type: OS::Heat::RandomString
1138 MysqlClusterUniquePart:
1139 type: OS::Heat::RandomString
1144 type: OS::Heat::RandomString
1147 salt: {get_param: RabbitCookieSalt}
1149 # creates the network architecture
1151 type: OS::TripleO::Network
1154 type: OS::Neutron::Port
1155 depends_on: Networks
1157 name: control_virtual_ip
1158 network: {get_param: NeutronControlPlaneID}
1159 fixed_ips: {get_param: ControlFixedIPs}
1160 replacement_policy: AUTO
1163 depends_on: Networks
1164 type: OS::TripleO::Controller::Ports::RedisVipPort
1166 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1167 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1168 PortName: redis_virtual_ip
1169 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1171 # The public VIP is on the External net, falls back to ctlplane
1173 depends_on: Networks
1174 type: OS::TripleO::Controller::Ports::ExternalPort
1176 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1177 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1178 PortName: public_virtual_ip
1179 FixedIPs: {get_param: PublicVirtualFixedIPs}
1181 InternalApiVirtualIP:
1182 depends_on: Networks
1183 type: OS::TripleO::Controller::Ports::InternalApiPort
1185 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1186 PortName: internal_api_virtual_ip
1189 depends_on: Networks
1190 type: OS::TripleO::Controller::Ports::StoragePort
1192 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1193 PortName: storage_virtual_ip
1195 StorageMgmtVirtualIP:
1196 depends_on: Networks
1197 type: OS::TripleO::Controller::Ports::StorageMgmtPort
1199 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1200 PortName: storage_management_virtual_ip
1203 type: OS::TripleO::Network::Ports::NetVipMap
1205 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1206 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1207 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1208 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1209 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1210 # No tenant VIP required
1213 type: OS::TripleO::VipConfig
1216 type: OS::Heat::StructuredDeployments
1218 config: {get_resource: VipConfig}
1219 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1221 # service VIP mappings
1222 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1223 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1224 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1225 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1226 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1227 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1228 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1229 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1230 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1231 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1232 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1233 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1234 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1235 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1236 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1237 # direct configuration of Virtual IPs for each network
1238 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1239 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1240 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1241 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1242 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1244 ControllerBootstrapNodeConfig:
1245 type: OS::TripleO::BootstrapNode::SoftwareConfig
1247 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1248 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1250 ControllerBootstrapNodeDeployment:
1251 type: OS::Heat::StructuredDeployments
1253 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1254 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1256 ControllerSwiftDeployment:
1257 type: OS::Heat::StructuredDeployments
1259 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1260 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1262 ObjectStorageSwiftDeployment:
1263 type: OS::Heat::StructuredDeployments
1265 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1266 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1268 SwiftDevicesAndProxyConfig:
1269 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1271 controller_swift_devices: {get_attr: [Controller, swift_device]}
1272 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1273 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1275 ComputeCephDeployment:
1276 type: OS::Heat::StructuredDeployments
1278 config: {get_attr: [CephClusterConfig, config_id]}
1279 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1281 ControllerCephDeployment:
1282 type: OS::Heat::StructuredDeployments
1284 config: {get_attr: [CephClusterConfig, config_id]}
1285 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1287 CephStorageCephDeployment:
1288 type: OS::Heat::StructuredDeployments
1290 config: {get_attr: [CephClusterConfig, config_id]}
1291 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1294 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1296 ceph_storage_count: {get_param: CephStorageCount}
1297 ceph_fsid: {get_param: CephClusterFSID}
1298 ceph_mon_key: {get_param: CephMonKey}
1299 ceph_admin_key: {get_param: CephAdminKey}
1300 ceph_client_key: {get_param: CephClientKey}
1301 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1302 ceph_mon_names: {get_attr: [Controller, hostname]}
1303 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1305 ControllerClusterConfig:
1306 type: OS::Heat::StructuredConfig
1308 group: os-apply-config
1311 nodes: {get_attr: [Controller, corosync_node]}
1315 nodes: {get_attr: [Controller, hostname]}
1317 nodes: {get_attr: [Controller, corosync_node]}
1319 nodes: {get_attr: [Controller, corosync_node]}
1321 ControllerClusterDeployment:
1322 type: OS::Heat::StructuredDeployments
1324 config: {get_resource: ControllerClusterConfig}
1325 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1327 ControllerAllNodesDeployment:
1328 type: OS::Heat::StructuredDeployments
1330 config: {get_attr: [allNodesConfig, config_id]}
1331 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1333 ComputeAllNodesDeployment:
1334 type: OS::Heat::StructuredDeployments
1336 config: {get_attr: [allNodesConfig, config_id]}
1337 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1339 BlockStorageAllNodesDeployment:
1340 type: OS::Heat::StructuredDeployments
1342 config: {get_attr: [allNodesConfig, config_id]}
1343 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1345 ObjectStorageAllNodesDeployment:
1346 type: OS::Heat::StructuredDeployments
1348 config: {get_attr: [allNodesConfig, config_id]}
1349 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1351 CephStorageAllNodesDeployment:
1352 type: OS::Heat::StructuredDeployments
1354 config: {get_attr: [allNodesConfig, config_id]}
1355 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1357 # All Nodes Validations
1358 AllNodesValidationConfig:
1359 type: OS::TripleO::AllNodes::Validation
1364 - - {get_attr: [Controller, resource.0.external_ip_address]}
1365 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1366 - {get_attr: [Controller, resource.0.storage_ip_address]}
1367 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1368 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1370 ControllerAllNodesValidationDeployment:
1371 type: OS::Heat::StructuredDeployments
1372 depends_on: ControllerAllNodesDeployment
1374 config: {get_resource: AllNodesValidationConfig}
1375 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1377 ComputeAllNodesValidationDeployment:
1378 type: OS::Heat::StructuredDeployments
1379 depends_on: ComputeAllNodesDeployment
1381 config: {get_resource: AllNodesValidationConfig}
1382 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1384 BlockStorageAllNodesValidationDeployment:
1385 type: OS::Heat::StructuredDeployments
1386 depends_on: BlockStorageAllNodesDeployment
1388 config: {get_resource: AllNodesValidationConfig}
1389 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1391 ObjectStorageAllNodesValidationDeployment:
1392 type: OS::Heat::StructuredDeployments
1393 depends_on: ObjectStorageAllNodesDeployment
1395 config: {get_resource: AllNodesValidationConfig}
1396 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1398 CephStorageAllNodesValidationDeployment:
1399 type: OS::Heat::StructuredDeployments
1400 depends_on: CephStorageAllNodesDeployment
1402 config: {get_resource: AllNodesValidationConfig}
1403 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1405 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1406 # the nested template may configure each role differently (or not at all)
1407 AllNodesExtraConfig:
1408 type: OS::TripleO::AllNodesExtraConfig
1410 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1411 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1412 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1413 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1414 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1416 # Nested stack deployment runs after all other controller deployments
1417 ControllerNodesPostDeployment:
1418 type: OS::TripleO::ControllerPostDeployment
1419 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1421 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1422 NodeConfigIdentifiers:
1423 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1424 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1425 deployment_identifier: {get_param: DeployIdentifier}
1427 ComputeNodesPostDeployment:
1428 type: OS::TripleO::ComputePostDeployment
1429 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1431 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1432 NodeConfigIdentifiers:
1433 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1434 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1435 deployment_identifier: {get_param: DeployIdentifier}
1437 ObjectStorageNodesPostDeployment:
1438 type: OS::TripleO::ObjectStoragePostDeployment
1439 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1441 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1442 NodeConfigIdentifiers:
1443 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1444 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1445 deployment_identifier: {get_param: DeployIdentifier}
1447 BlockStorageNodesPostDeployment:
1448 type: OS::TripleO::BlockStoragePostDeployment
1449 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1451 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1452 NodeConfigIdentifiers:
1453 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1454 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1455 deployment_identifier: {get_param: DeployIdentifier}
1457 CephStorageNodesPostDeployment:
1458 type: OS::TripleO::CephStoragePostDeployment
1459 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1461 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1462 NodeConfigIdentifiers:
1463 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1464 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1465 deployment_identifier: {get_param: DeployIdentifier}
1469 description: URL for the Overcloud Keystone service
1470 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1472 description: Keystone Admin VIP endpoint
1473 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1475 description: Controller VIP for public API endpoints
1476 value: {get_attr: [VipMap, net_ip_map, external]}
1477 CeilometerInternalVip:
1478 description: VIP for Ceilometer API internal endpoint
1479 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1481 description: VIP for Cinder API internal endpoint
1482 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1484 description: VIP for Glance API internal endpoint
1485 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1487 description: VIP for Heat API internal endpoint
1488 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1489 KeystoneInternalVip:
1490 description: VIP for Keystone API internal endpoint
1491 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1493 description: VIP for Neutron API internal endpoint
1494 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1496 description: VIP for Nova API internal endpoint
1497 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1499 description: VIP for Swift Proxy internal endpoint
1500 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}