1 heat_template_version: 2015-04-30
4 Nova API,Keystone,Heat Engine and API,Glance,Neutron,Dedicated MySQL
5 server,Dedicated RabbitMQ Server,Group of Nova Computes
8 # TODO(shadower): we should probably use the parameter groups to put
12 # Common parameters (not specific to a role)
15 description: The password for the keystone admin account, used for monitoring, querying neutron etc.
20 description: The ceilometer backend type.
22 CeilometerMeteringSecret:
24 description: Secret shared by the ceilometer services.
29 description: The password for the ceilometer service account.
32 # This has to be an UUID so for now we generate it outside the template
36 description: The Ceph cluster FSID. Must be a UUID.
39 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.
45 CinderEnableIscsiBackend:
47 description: Whether to enable or not the Iscsi backend for Cinder
51 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
55 description: Should be used for arbitrary ips.
59 description: Set to True to enable debugging on all services.
63 description: Glance port.
67 description: Protocol to use when connecting to glance, set to https for SSL.
70 default: 'REBUILD_PRESERVE_EPHEMERAL'
71 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
75 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
78 - custom_constraint: nova.keypair
79 NeutronExternalNetworkBridge:
80 description: Name of bridge used for external network traffic.
83 NeutronBridgeMappings:
85 The OVS logical->physical bridge mappings to use. See the Neutron
86 documentation for details. Defaults to mapping br-ex - the external
87 bridge on hosts - to a physical name 'datacentre' which can be used
88 to create provider networks (and we use this for the default floating
89 network) - if changing this either use different post-install network
90 scripts or be sure to keep 'datacentre' as a mapping network name.
92 default: "datacentre:br-ex"
93 NeutronControlPlaneID:
96 description: Neutron ID for ctlplane network.
97 NeutronEnableTunnelling:
102 default: 'datacentre'
104 If set, flat networks to configure in neutron plugins. Defaults to
105 'datacentre' to permit external network creation.
108 description: The tenant network type for Neutron, either gre or vxlan.
112 description: The password for the neutron service account, used by neutron agents.
115 NeutronPublicInterface:
117 description: What interface to bridge onto br-ex for network nodes.
119 NeutronPublicInterfaceTag:
122 VLAN tag for creating a public VLAN. The tag will be used to
123 create an access port on the exterior bridge for each control plane node,
124 and that port will be given the IP address returned by neutron from the
125 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
126 overcloud.yaml to include the deployment of VLAN ports to the control
129 NeutronComputeAgentMode:
131 description: Agent mode for the neutron-l3-agent on the compute hosts
135 description: Agent mode for the neutron-l3-agent on the controller hosts
139 description: Whether to configure Neutron Distributed Virtual Routers
141 NeutronMetadataProxySharedSecret:
143 description: Shared secret to prevent spoofing
148 The tunnel types for the Neutron tenant network. To specify multiple
149 values, use a comma separated string, like so: 'gre,vxlan'
151 NeutronTunnelIdRanges:
153 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
154 of GRE tunnel IDs that are available for tenant network allocation
155 default: ["1:1000", ]
156 type: comma_delimited_list
159 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
160 of VXLAN VNI IDs that are available for tenant network allocation
161 default: ["1:1000", ]
162 type: comma_delimited_list
163 NeutronMechanismDrivers:
164 default: 'openvswitch'
166 The mechanism drivers for the Neutron tenant network. To specify multiple
167 values, use a comma separated string, like so: 'openvswitch,l2_population'
169 NeutronAllowL3AgentFailover:
171 description: Allow automatic l3-agent failover
175 description: Whether to enable l3-agent HA
177 NeutronDhcpAgentsPerNetwork:
180 description: The number of neutron dhcp agents to schedule per network
183 description: The password for the nova service account, used by nova-api.
191 description: Should MongoDb journaling be disabled
193 PublicVirtualFixedIPs:
196 Control the IP allocation for the PublicVirtualInterface port. E.g.
197 [{'ip_address':'1.2.3.4'}]
199 PublicVirtualNetwork:
203 Neutron network to allocate public virtual IP port on.
207 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
208 # FIXME: 'guest' is provisioned in RabbitMQ by default, we should create a user if these are changed
211 description: The username for RabbitMQ
215 description: The password for RabbitMQ
221 Rabbit client subscriber parameter to specify
222 an SSL connection to the RabbitMQ host.
226 description: Set rabbit subscriber port, change this if using SSL
228 SnmpdReadonlyUserName:
229 default: ro_snmp_user
230 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
232 SnmpdReadonlyUserPassword:
234 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
238 # Controller-specific params
241 description: The keystone auth secret.
244 CinderEnableRbdBackend:
246 description: Whether to enable or not the Rbd backend for Cinder
248 CinderLVMLoopDeviceSize:
250 description: The size of the loopback file used by the cinder LVM driver.
254 description: The password for the cinder service account, used by cinder-api.
259 description: The iSCSI helper to use with cinder.
264 controllerExtraConfig:
267 Controller specific configuration to inject into the cluster. Same
268 structure as ExtraConfig.
272 default: overcloud-control
274 - custom_constraint: glance.image
275 OvercloudControlFlavor:
276 description: Flavor for control nodes to request when deploying.
279 - custom_constraint: nova.flavor
280 ControlVirtualInterface:
282 description: Interface where virtual ip will be assigned.
286 description: Whether to enable fencing in Pacemaker or not.
290 description: Whether to use Galera instead of regular MariaDB.
292 ControllerEnableCephStorage:
294 description: Whether to deploy Ceph Storage (OSD) on the Controller
296 ControllerEnableSwiftStorage:
298 description: Whether to enable Swift Storage on the Controller
303 Additional configuration to inject into the cluster. The format required
304 may be implementation specific, e.g puppet hieradata. Any role specific
305 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
310 Pacemaker fencing configuration. The JSON should have
311 the following structure:
315 "agent": "AGENT_NAME",
316 "host_mac": "HOST_MAC_ADDRESS",
317 "params": {"PARAM_NAME": "PARAM_VALUE"}
325 "agent": "fence_xvm",
326 "host_mac": "52:54:00:aa:bb:cc",
328 "multicast_address": "225.0.0.12",
329 "port": "baremetal_0",
331 "manage_key_file": true,
332 "key_file": "/etc/fence_xvm.key",
333 "key_file_password": "abcdef"
340 description: The filepath of the file to use for logging messages from Glance.
343 GlanceNotifierStrategy:
344 description: Strategy to use for Glance notification queue
349 description: The password for the glance service account, used by the glance services.
354 description: The short name of the Glance backend to use. Should be one
355 of swift, rbd or file
358 - allowed_values: ['swift', 'file', 'rbd']
361 description: The password for the Heat service account, used by the Heat services.
364 HeatStackDomainAdminPassword:
365 description: Password for heat_domain_admin user.
369 KeystoneCACertificate:
371 description: Keystone self-signed certificate authority certificate.
373 KeystoneSigningCertificate:
375 description: Keystone certificate for verifying token validity.
379 description: Keystone key for signing tokens.
382 KeystoneSSLCertificate:
384 description: Keystone certificate for verifying token validity.
386 KeystoneSSLCertificateKey:
388 description: Keystone key for signing tokens.
391 MysqlInnodbBufferPoolSize:
393 Specifies the size of the buffer pool in megabytes. Setting to
394 zero should be interpreted as "no value" and will defer to the
399 description: Configures MySQL max_connections config setting
402 NeutronDnsmasqOptions:
403 default: 'dhcp-option-force=26,1400'
404 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
406 NeutronPublicInterfaceDefaultRoute:
408 description: A custom default route for the NeutronPublicInterface.
410 NeutronPublicInterfaceIP:
412 description: A custom IP address to put onto the NeutronPublicInterface.
414 NeutronPublicInterfaceRawDevice:
416 description: If set, the public interface is a vlan with this device as the raw device.
418 PublicVirtualInterface:
421 Specifies the interface where the public-facing virtual ip will be assigned.
422 This should be int_public when a VLAN is being used.
426 description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
431 description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
436 description: If set, the contents of an SSL certificate authority file.
440 description: A random string to be used as a salt when hashing to determine mappings in the ring.
445 description: The password for the swift service account, used by the swift proxy services.
450 description: Value of mount_check in Swift account/container/object -server.conf
455 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
458 description: Partition Power to use when building Swift rings
463 description: How many replicas to use in the swift rings.
465 # Compute-specific params
466 CeilometerComputeAgent:
467 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
471 - allowed_values: ['', Present]
475 HypervisorNeutronPhysicalBridge:
478 An OVS bridge to create on each hypervisor. This defaults to br-ex the
479 same as the control plane nodes, as we have a uniform configuration of
480 the openvswitch agent. Typically should not need to be changed.
482 HypervisorNeutronPublicInterface:
484 description: What interface to add to the HypervisorNeutronPhysicalBridge.
486 NeutronNetworkVLANRanges:
487 default: 'datacentre'
489 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
490 Neutron documentation for permitted values. Defaults to permitting any
491 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
492 type: comma_delimited_list
495 default: libvirt.LibvirtDriver
496 NovaComputeExtraConfig:
499 NovaCompute specific configuration to inject into the cluster. Same
500 structure as ExtraConfig.
502 NovaComputeLibvirtType:
505 NovaEnableRbdBackend:
507 description: Whether to enable or not the Rbd backend for Nova
511 default: overcloud-compute
513 - custom_constraint: glance.image
514 OvercloudComputeFlavor:
515 description: Use this flavor
518 - custom_constraint: nova.flavor
521 NeutronTenantNetwork: tenant
522 CeilometerApiNetwork: internal_api
523 MongoDbNetwork: internal_api
524 CinderApiNetwork: internal_api
525 CinderIscsiNetwork: storage
526 GlanceApiNetwork: storage
527 GlanceRegistryNetwork: internal_api
528 KeystoneAdminApiNetwork: internal_api
529 KeystonePublicApiNetwork: internal_api
530 NeutronApiNetwork: internal_api
531 HeatApiNetwork: internal_api
532 NovaApiNetwork: internal_api
533 NovaMetadataNetwork: internal_api
534 NovaVncProxyNetwork: internal_api
535 SwiftMgmtNetwork: storage_mgmt
536 SwiftProxyNetwork: storage
537 HorizonNetwork: internal_api
538 MemcachedNetwork: internal_api
539 RabbitMqNetwork: internal_api
540 RedisNetwork: internal_api
541 MysqlNetwork: internal_api
542 CephClusterNetwork: storage_mgmt
543 CephPublicNetwork: storage
544 ControllerHostnameResolveNetwork: internal_api
545 ComputeHostnameResolveNetwork: internal_api
546 BlockStorageHostnameResolveNetwork: internal_api
547 ObjectStorageHostnameResolveNetwork: internal_api
548 CephStorageHostnameResolveNetwork: storage
549 description: Mapping of service_name -> network name. Typically set
550 via parameter_defaults in the resource registry.
553 # Block storage specific parameters
558 default: overcloud-cinder-volume
560 OvercloudBlockStorageFlavor:
561 description: Flavor for block storage nodes to request when deploying.
564 - custom_constraint: nova.flavor
566 # Object storage specific parameters
570 OvercloudSwiftStorageFlavor:
571 description: Flavor for Swift storage nodes to request when deploying.
574 - custom_constraint: nova.flavor
576 default: overcloud-swift-storage
579 # Ceph storage specific parameters
584 default: overcloud-ceph-storage
586 OvercloudCephStorageFlavor:
588 description: Flavor for Ceph storage nodes to request when deploying.
591 - custom_constraint: nova.flavor
593 # Hostname format for each role
594 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
595 # and %stackname% is replaced with OS::stack_name in the template below.
596 # If you want to use the heat generated names, pass '' (empty string).
597 ControllerHostnameFormat:
599 description: Format for Controller node hostnames
600 default: '%stackname%-controller-%index%'
601 ComputeHostnameFormat:
603 description: Format for Compute node hostnames
604 default: '%stackname%-novacompute-%index%'
605 BlockStorageHostnameFormat:
607 description: Format for BlockStorage node hostnames
608 default: '%stackname%-blockstorage-%index%'
609 ObjectStorageHostnameFormat:
611 description: Format for SwiftStorage node hostnames
612 default: '%stackname%-objectstorage-%index%'
613 CephStorageHostnameFormat:
615 description: Format for CephStorage node hostnames
616 default: '%stackname%-cephstorage-%index%'
618 # Identifiers to trigger tasks on nodes
623 Setting to a previously unused value during stack-update will trigger
624 package update on all nodes
626 # If you want to remove a specific node from a resource group, you can pass
627 # the node name or id as a <Group>RemovalPolicies parameter, for example:
628 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
629 ControllerRemovalPolicies:
633 List of resources to be removed from ControllerResourceGroup when
634 doing an update which requires removal of specific resources.
635 ComputeRemovalPolicies:
639 List of resources to be removed from ComputeResourceGroup when
640 doing an update which requires removal of specific resources.
641 BlockStorageRemovalPolicies:
645 List of resources to be removed from BlockStorageResourceGroup when
646 doing an update which requires removal of specific resources.
647 ObjectStorageRemovalPolicies:
651 List of resources to be removed from ObjectStorageResourceGroup when
652 doing an update which requires removal of specific resources.
653 CephStorageRemovalPolicies:
657 List of resources to be removed from CephStorageResourceGroup when
658 doing an update which requires removal of specific resources.
663 HeatAuthEncryptionKey:
664 type: OS::Heat::RandomString
667 type: OS::Heat::RandomString
672 type: OS::Heat::RandomString
677 type: OS::Heat::ResourceGroup
680 count: {get_param: ControllerCount}
681 removal_policies: {get_param: ControllerRemovalPolicies}
683 type: OS::TripleO::Controller
685 AdminPassword: {get_param: AdminPassword}
686 AdminToken: {get_param: AdminToken}
687 CeilometerBackend: {get_param: CeilometerBackend}
688 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
689 CeilometerPassword: {get_param: CeilometerPassword}
690 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
691 CinderPassword: {get_param: CinderPassword}
692 CinderISCSIHelper: {get_param: CinderISCSIHelper}
693 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
694 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
695 CloudName: {get_param: CloudName}
696 ControlVirtualInterface: {get_param: ControlVirtualInterface}
697 ControllerExtraConfig: {get_param: controllerExtraConfig}
698 Debug: {get_param: Debug}
699 EnableFencing: {get_param: EnableFencing}
700 EnableGalera: {get_param: EnableGalera}
701 EnableCephStorage: {get_param: ControllerEnableCephStorage}
702 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
703 ExtraConfig: {get_param: ExtraConfig}
704 FencingConfig: {get_param: FencingConfig}
705 Flavor: {get_param: OvercloudControlFlavor}
706 GlancePort: {get_param: GlancePort}
707 GlanceProtocol: {get_param: GlanceProtocol}
708 GlancePassword: {get_param: GlancePassword}
709 GlanceBackend: {get_param: GlanceBackend}
710 GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
711 GlanceLogFile: {get_param: GlanceLogFile}
712 HeatPassword: {get_param: HeatPassword}
713 HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
714 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
715 HorizonSecret: {get_resource: HorizonSecret}
716 Image: {get_param: controllerImage}
717 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
718 KeyName: {get_param: KeyName}
719 KeystoneCACertificate: {get_param: KeystoneCACertificate}
720 KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
721 KeystoneSigningKey: {get_param: KeystoneSigningKey}
722 KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
723 KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
724 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
725 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
726 MysqlMaxConnections: {get_param: MysqlMaxConnections}
727 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
728 NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
729 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
730 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
731 NeutronExternalNetworkBridge: {get_param: NeutronExternalNetworkBridge}
732 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
733 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
734 NeutronPublicInterface: {get_param: NeutronPublicInterface}
735 NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
736 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
737 NeutronPassword: {get_param: NeutronPassword}
738 NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
739 NeutronDVR: {get_param: NeutronDVR}
740 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
741 NeutronAgentMode: {get_param: NeutronAgentMode}
742 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
743 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
744 NeutronL3HA: {get_param: NeutronL3HA}
745 NeutronDhcpAgentsPerNetwork: {get_param: NeutronDhcpAgentsPerNetwork}
746 NeutronNetworkType: {get_param: NeutronNetworkType}
747 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
748 NovaPassword: {get_param: NovaPassword}
749 NtpServer: {get_param: NtpServer}
750 MongoDbNoJournal: {get_param: MongoDbNoJournal}
751 PcsdPassword: {get_resource: PcsdPassword}
752 PublicVirtualInterface: {get_param: PublicVirtualInterface}
753 RabbitPassword: {get_param: RabbitPassword}
754 RabbitUserName: {get_param: RabbitUserName}
755 RabbitCookie: {get_attr: [RabbitCookie, value]}
756 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
757 RabbitClientPort: {get_param: RabbitClientPort}
758 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
759 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
760 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
761 SSLCertificate: {get_param: SSLCertificate}
762 SSLKey: {get_param: SSLKey}
763 SSLCACertificate: {get_param: SSLCACertificate}
764 SwiftHashSuffix: {get_param: SwiftHashSuffix}
765 SwiftMountCheck: {get_param: SwiftMountCheck}
766 SwiftMinPartHours: {get_param: SwiftMinPartHours}
767 SwiftPartPower: {get_param: SwiftPartPower}
768 SwiftPassword: {get_param: SwiftPassword}
769 SwiftReplicas: { get_param: SwiftReplicas}
770 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} # deprecated. Use per service VIP settings instead now.
771 PublicVirtualIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]} # deprecated. Use per service VIP settings instead now.
772 ServiceNetMap: {get_param: ServiceNetMap}
773 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
774 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
775 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
776 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
777 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
778 UpdateIdentifier: {get_param: UpdateIdentifier}
781 template: {get_param: ControllerHostnameFormat}
783 '%stackname%': {get_param: 'OS::stack_name'}
786 type: OS::Heat::ResourceGroup
789 count: {get_param: ComputeCount}
790 removal_policies: {get_param: ComputeRemovalPolicies}
792 type: OS::TripleO::Compute
794 AdminPassword: {get_param: AdminPassword}
795 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
796 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
797 CeilometerPassword: {get_param: CeilometerPassword}
798 Debug: {get_param: Debug}
799 ExtraConfig: {get_param: ExtraConfig}
800 Flavor: {get_param: OvercloudComputeFlavor}
801 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
802 GlancePort: {get_param: GlancePort}
803 GlanceProtocol: {get_param: GlanceProtocol}
804 Image: {get_param: NovaImage}
805 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
806 KeyName: {get_param: KeyName}
807 KeystoneHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
808 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
809 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
810 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
811 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
812 NeutronNetworkType: {get_param: NeutronNetworkType}
813 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
814 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
815 NeutronPassword: {get_param: NeutronPassword}
816 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
817 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
818 NeutronDVR: {get_param: NeutronDVR}
819 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
820 NeutronAgentMode: {get_param: NeutronComputeAgentMode}
821 NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
822 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
823 # L3 HA and Failover is not relevant for Computes, should be removed
824 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
825 NeutronL3HA: {get_param: NeutronL3HA}
826 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
827 NovaComputeDriver: {get_param: NovaComputeDriver}
828 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
829 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
830 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
831 NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
832 NovaPassword: {get_param: NovaPassword}
833 NtpServer: {get_param: NtpServer}
834 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
835 RabbitPassword: {get_param: RabbitPassword}
836 RabbitUserName: {get_param: RabbitUserName}
837 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
838 RabbitClientPort: {get_param: RabbitClientPort}
839 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
840 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
841 ServiceNetMap: {get_param: ServiceNetMap}
842 UpdateIdentifier: {get_param: UpdateIdentifier}
845 template: {get_param: ComputeHostnameFormat}
847 '%stackname%': {get_param: 'OS::stack_name'}
850 type: OS::Heat::ResourceGroup
853 count: {get_param: BlockStorageCount}
854 removal_policies: {get_param: BlockStorageRemovalPolicies}
856 type: OS::TripleO::BlockStorage
858 Debug: {get_param: Debug}
859 Image: {get_param: BlockStorageImage}
860 CinderISCSIHelper: {get_param: CinderISCSIHelper}
861 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
862 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
863 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
864 CinderPassword: {get_param: CinderPassword}
865 KeyName: {get_param: KeyName}
866 Flavor: {get_param: OvercloudBlockStorageFlavor}
867 VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
868 GlancePort: {get_param: GlancePort}
869 GlanceProtocol: {get_param: GlanceProtocol}
870 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
871 RabbitPassword: {get_param: RabbitPassword}
872 RabbitUserName: {get_param: RabbitUserName}
873 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
874 RabbitClientPort: {get_param: RabbitClientPort}
875 NtpServer: {get_param: NtpServer}
876 UpdateIdentifier: {get_param: UpdateIdentifier}
879 template: {get_param: BlockStorageHostnameFormat}
881 '%stackname%': {get_param: 'OS::stack_name'}
882 ServiceNetMap: {get_param: ServiceNetMap}
883 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
886 type: OS::Heat::ResourceGroup
889 count: {get_param: ObjectStorageCount}
890 removal_policies: {get_param: ObjectStorageRemovalPolicies}
892 type: OS::TripleO::ObjectStorage
894 KeyName: {get_param: KeyName}
895 Flavor: {get_param: OvercloudSwiftStorageFlavor}
896 HashSuffix: {get_param: SwiftHashSuffix}
897 MountCheck: {get_param: SwiftMountCheck}
898 MinPartHours: {get_param: SwiftMinPartHours}
899 PartPower: {get_param: SwiftPartPower}
900 Image: {get_param: SwiftStorageImage}
901 Replicas: { get_param: SwiftReplicas}
902 NtpServer: {get_param: NtpServer}
903 UpdateIdentifier: {get_param: UpdateIdentifier}
904 ServiceNetMap: {get_param: ServiceNetMap}
907 template: {get_param: ObjectStorageHostnameFormat}
909 '%stackname%': {get_param: 'OS::stack_name'}
912 type: OS::Heat::ResourceGroup
915 count: {get_param: CephStorageCount}
916 removal_policies: {get_param: CephStorageRemovalPolicies}
918 type: OS::TripleO::CephStorage
920 Image: {get_param: CephStorageImage}
921 KeyName: {get_param: KeyName}
922 Flavor: {get_param: OvercloudCephStorageFlavor}
923 NtpServer: {get_param: NtpServer}
924 ServiceNetMap: {get_param: ServiceNetMap}
925 UpdateIdentifier: {get_param: UpdateIdentifier}
928 template: {get_param: CephStorageHostnameFormat}
930 '%stackname%': {get_param: 'OS::stack_name'}
933 type: OS::TripleO::Network::Ports::NetIpListMap
935 ExternalIpList: {get_attr: [Controller, external_ip_address]}
936 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
937 StorageIpList: {get_attr: [Controller, storage_ip_address]}
938 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
939 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
942 type: OS::TripleO::AllNodes::SoftwareConfig
944 compute_hosts: {get_attr: [Compute, hosts_entry]}
945 controller_hosts: {get_attr: [Controller, hosts_entry]}
946 controller_ips: {get_attr: [Controller, ip_address]}
947 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
948 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
949 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
950 controller_names: {get_attr: [Controller, hostname]}
951 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
952 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
953 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
954 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
955 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
956 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
957 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
958 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
959 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
960 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
961 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
962 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
963 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
964 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
965 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
966 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
967 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
970 type: OS::Heat::RandomString
974 MysqlClusterUniquePart:
975 type: OS::Heat::RandomString
980 type: OS::Heat::RandomString
983 salt: {get_param: RabbitCookieSalt}
985 # creates the network architecture
987 type: OS::TripleO::Network
990 type: OS::Neutron::Port
993 name: control_virtual_ip
994 network_id: {get_param: NeutronControlPlaneID}
995 fixed_ips: {get_param: ControlFixedIPs}
996 replacement_policy: AUTO
1000 type: OS::TripleO::Controller::Ports::RedisVipPort
1002 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1003 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1004 PortName: redis_virtual_ip
1005 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1009 type: OS::Neutron::Port
1010 depends_on: Networks
1012 name: public_virtual_ip
1013 network: {get_param: PublicVirtualNetwork}
1014 fixed_ips: {get_param: PublicVirtualFixedIPs}
1015 replacement_policy: AUTO
1017 InternalApiVirtualIP:
1018 depends_on: Networks
1019 type: OS::TripleO::Controller::Ports::InternalApiPort
1021 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1022 PortName: internal_api_virtual_ip
1025 depends_on: Networks
1026 type: OS::TripleO::Controller::Ports::StoragePort
1028 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1029 PortName: storage_virtual_ip
1031 StorageMgmtVirtualIP:
1032 depends_on: Networks
1033 type: OS::TripleO::Controller::Ports::StorageMgmtPort
1035 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1036 PortName: storage_management_virtual_ip
1039 type: OS::TripleO::Network::Ports::NetIpMap
1041 ExternalIp: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
1042 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1043 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1044 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1045 # No tenant VIP required
1048 type: OS::TripleO::VipConfig
1051 type: OS::Heat::StructuredDeployments
1053 config: {get_resource: VipConfig}
1054 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1056 # service VIP mappings
1057 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1058 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1059 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1060 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1061 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1062 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1063 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1064 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1065 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1066 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1067 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1068 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1069 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1070 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1071 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1072 # direct configuration of Virtual IPs for each network
1073 control_virtual_ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1074 public_virtual_ip: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
1075 internal_api_virtual_ip: {get_attr: [InternalApiVirtualIP, ip_address]}
1076 storage_virtual_ip: {get_attr: [StorageVirtualIP, ip_address]}
1077 storage_mgmt_virtual_ip: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1079 ControllerBootstrapNodeConfig:
1080 type: OS::TripleO::BootstrapNode::SoftwareConfig
1082 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1083 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1085 ControllerBootstrapNodeDeployment:
1086 type: OS::Heat::StructuredDeployments
1088 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1089 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1091 ControllerSwiftDeployment:
1092 type: OS::Heat::StructuredDeployments
1094 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1095 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1097 ObjectStorageSwiftDeployment:
1098 type: OS::Heat::StructuredDeployments
1100 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1101 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1103 SwiftDevicesAndProxyConfig:
1104 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1106 controller_swift_devices: {get_attr: [Controller, swift_device]}
1107 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1108 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1110 ComputeCephDeployment:
1111 type: OS::Heat::StructuredDeployments
1113 config: {get_attr: [CephClusterConfig, config_id]}
1114 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1116 ControllerCephDeployment:
1117 type: OS::Heat::StructuredDeployments
1119 config: {get_attr: [CephClusterConfig, config_id]}
1120 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1122 CephStorageCephDeployment:
1123 type: OS::Heat::StructuredDeployments
1125 config: {get_attr: [CephClusterConfig, config_id]}
1126 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1129 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1131 ceph_fsid: {get_param: CephClusterFSID}
1132 ceph_mon_key: {get_param: CephMonKey}
1133 ceph_admin_key: {get_param: CephAdminKey}
1134 ceph_mon_names: {get_attr: [Controller, hostname]}
1135 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1137 ControllerClusterConfig:
1138 type: OS::Heat::StructuredConfig
1140 group: os-apply-config
1143 nodes: {get_attr: [Controller, corosync_node]}
1147 nodes: {get_attr: [Controller, hostname]}
1149 nodes: {get_attr: [Controller, corosync_node]}
1151 nodes: {get_attr: [Controller, corosync_node]}
1153 ControllerClusterDeployment:
1154 type: OS::Heat::StructuredDeployments
1156 config: {get_resource: ControllerClusterConfig}
1157 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1159 ControllerAllNodesDeployment:
1160 type: OS::Heat::StructuredDeployments
1162 config: {get_attr: [allNodesConfig, config_id]}
1163 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1165 ComputeAllNodesDeployment:
1166 type: OS::Heat::StructuredDeployments
1168 config: {get_attr: [allNodesConfig, config_id]}
1169 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1171 BlockStorageAllNodesDeployment:
1172 type: OS::Heat::StructuredDeployments
1174 config: {get_attr: [allNodesConfig, config_id]}
1175 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1177 ObjectStorageAllNodesDeployment:
1178 type: OS::Heat::StructuredDeployments
1180 config: {get_attr: [allNodesConfig, config_id]}
1181 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1183 CephStorageAllNodesDeployment:
1184 type: OS::Heat::StructuredDeployments
1186 config: {get_attr: [allNodesConfig, config_id]}
1187 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1189 # Nested stack deployment runs after all other controller deployments
1190 ControllerNodesPostDeployment:
1191 type: OS::TripleO::ControllerPostDeployment
1192 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1194 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1195 NodeConfigIdentifiers: {get_attr: [Controller, attributes, config_identifier]}
1197 ComputeNodesPostDeployment:
1198 type: OS::TripleO::ComputePostDeployment
1199 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1201 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1202 NodeConfigIdentifiers: {get_attr: [Compute, attributes, config_identifier]}
1204 ObjectStorageNodesPostDeployment:
1205 type: OS::TripleO::ObjectStoragePostDeployment
1206 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1208 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1209 NodeConfigIdentifiers: {get_attr: [ObjectStorage, attributes, config_identifier]}
1212 BlockStorageNodesPostDeployment:
1213 type: OS::TripleO::BlockStoragePostDeployment
1214 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1216 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1217 NodeConfigIdentifiers: {get_attr: [BlockStorage, attributes, config_identifier]}
1219 CephStorageNodesPostDeployment:
1220 type: OS::TripleO::CephStoragePostDeployment
1221 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1223 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1224 NodeConfigIdentifiers: {get_attr: [CephStorage, attributes, config_identifier]}
1228 description: URL for the Overcloud Keystone service
1233 - {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
1236 description: Controller VIP for public API endpoints
1237 value: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
1238 CeilometerInternalVip:
1239 description: VIP for Ceilometer API internal endpoint
1240 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1242 description: VIP for Cinder API internal endpoint
1243 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1245 description: VIP for Glance API internal endpoint
1246 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1248 description: VIP for Heat API internal endpoint
1249 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1250 KeystoneInternalVip:
1251 description: VIP for Keystone API internal endpoint
1252 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1254 description: VIP for Neutron API internal endpoint
1255 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1257 description: VIP for Nova API internal endpoint
1258 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1260 description: VIP for Swift Proxy internal endpoint
1261 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}