1 heat_template_version: 2016-04-08
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.
20 description: The password for the aodh services.
25 description: The ceilometer backend type.
27 CeilometerMeteringSecret:
28 description: Secret shared by the ceilometer services.
32 description: The password for the ceilometer service account.
35 CeilometerMeterDispatcher:
37 description: Dispatcher to process meter data
40 - allowed_values: ['gnocchi', 'database']
41 # This has to be an UUID so for now we generate it outside the template
45 description: The Ceph cluster FSID. Must be a UUID.
48 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
53 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
56 CinderEnableNfsBackend:
58 description: Whether to enable or not the NFS backend for Cinder
62 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.
68 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
69 CinderEnableIscsiBackend:
71 description: Whether to enable or not the Iscsi backend for Cinder
73 CinderEnableRbdBackend:
75 description: Whether to enable or not the Rbd backend for Cinder
79 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
83 description: Should be used for arbitrary ips.
87 description: Enable IPv6 in Corosync
91 description: Set to True to enable debugging on all services.
95 description: Syslog address where HAproxy will send its log
99 description: A list of IP/Hostname allowed to connect to horizon
100 type: comma_delimited_list
102 default: 'REBUILD_PRESERVE_EPHEMERAL'
103 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
105 InternalApiVirtualFixedIPs:
108 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
109 [{'ip_address':'1.2.3.4'}]
113 description: Name of an existing Nova key pair to enable SSH access to the instances
116 - custom_constraint: nova.keypair
119 description: Enable IPv6 features in Memcached.
121 NeutronBridgeMappings:
123 The OVS logical->physical bridge mappings to use. See the Neutron
124 documentation for details. Defaults to mapping br-ex - the external
125 bridge on hosts - to a physical name 'datacentre' which can be used
126 to create provider networks (and we use this for the default floating
127 network) - if changing this either use different post-install network
128 scripts or be sure to keep 'datacentre' as a mapping network name.
129 type: comma_delimited_list
130 default: "datacentre:br-ex"
131 NeutronControlPlaneID:
134 description: Neutron ID or name for ctlplane network.
135 NeutronEnableTunnelling:
141 Enable/disable the L2 population feature in the Neutron agents.
144 type: comma_delimited_list
145 default: 'datacentre'
147 If set, flat networks to configure in neutron plugins. Defaults to
148 'datacentre' to permit external network creation.
151 description: The tenant network type for Neutron.
152 type: comma_delimited_list
154 description: The password for the neutron service account, used by neutron agents.
157 NeutronPublicInterface:
159 description: What interface to bridge onto br-ex for network nodes.
161 NeutronMetadataProxySharedSecret:
162 description: Shared secret to prevent spoofing
167 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
168 be at least 50 bytes smaller than the MTU on the physical network. This
169 value will be used to set the MTU on the virtual Ethernet device.
170 This value will be used to construct the NeutronDnsmasqOptions, since that
171 will determine the MTU that is assigned to the VM host through DHCP.
177 The tunnel types for the Neutron tenant network.
178 type: comma_delimited_list
179 type: comma_delimited_list
183 The core plugin for Neutron. The value should be the entrypoint to be loaded
184 from neutron.core_plugins namespace.
186 NeutronServicePlugins:
187 default: "router,qos"
189 Comma-separated list of service plugin entrypoints to be loaded from the
190 neutron.service_plugins namespace.
191 type: comma_delimited_list
193 default: "vxlan,vlan,flat,gre"
195 Comma-separated list of network type driver entrypoints to be loaded.
196 type: comma_delimited_list
197 NeutronMechanismDrivers:
198 default: 'openvswitch'
200 The mechanism drivers for the Neutron tenant network.
201 type: comma_delimited_list
202 type: comma_delimited_list
203 NeutronAgentExtensions:
206 Comma-separated list of extensions enabled for the Neutron agents.
207 type: comma_delimited_list
208 NeutronAllowL3AgentFailover:
210 description: Allow automatic l3-agent failover
214 description: Whether to enable l3-agent HA
218 description: Enable IPv6 features in Nova
221 description: The password for the nova service account, used by nova-api.
224 #TODO(ccamacho): Remove after landing Ntp in all roles
227 description: Comma-separated list of ntp servers
228 type: comma_delimited_list
229 PublicVirtualFixedIPs:
232 Control the IP allocation for the PublicVirtualInterface port. E.g.
233 [{'ip_address':'1.2.3.4'}]
238 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
241 description: The username for RabbitMQ
244 description: The password for RabbitMQ
250 Rabbit client subscriber parameter to specify
251 an SSL connection to the RabbitMQ host.
255 description: Set rabbit subscriber port, change this if using SSL
258 description: The password for Redis
261 SnmpdReadonlyUserName:
262 default: ro_snmp_user
263 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
265 SnmpdReadonlyUserPassword:
266 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
269 StorageVirtualFixedIPs:
272 Control the IP allocation for the StorageVirtualInterface port. E.g.
273 [{'ip_address':'1.2.3.4'}]
275 StorageMgmtVirtualFixedIPs:
278 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
279 [{'ip_address':'1.2.3.4'}]
283 description: The timezone to be set on nodes.
286 default: 'localdomain'
289 The DNS domain used for the hosts. This should match the dhcp_domain
290 configured in the Undercloud neutron. Defaults to localdomain.
294 Extra properties or metadata passed to Nova for the created nodes in
295 the overcloud. It's accessible via the Nova metadata API.
298 # Controller-specific params
299 CinderLVMLoopDeviceSize:
301 description: The size of the loopback file used by the cinder LVM driver.
304 description: The password for the cinder service account, used by cinder-api.
309 description: The iSCSI helper to use with cinder.
316 controllerExtraConfig:
319 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
323 default: overcloud-full
325 - custom_constraint: glance.image
326 OvercloudControlFlavor:
327 description: Flavor for control nodes to request when deploying.
331 - custom_constraint: nova.flavor
332 ControlVirtualInterface:
334 description: Interface where virtual ip will be assigned.
338 description: Whether to enable fencing in Pacemaker or not.
342 description: Whether to use Galera instead of regular MariaDB.
344 ControllerEnableCephStorage:
346 description: Whether to deploy Ceph Storage (OSD) on the Controller
348 ControllerSchedulerHints:
350 description: Optional scheduler hints to pass to nova
355 Additional configuration to inject into the cluster. The format required
356 may be implementation specific, e.g puppet hieradata. Any role specific
357 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
362 Pacemaker fencing configuration. The JSON should have
363 the following structure:
367 "agent": "AGENT_NAME",
368 "host_mac": "HOST_MAC_ADDRESS",
369 "params": {"PARAM_NAME": "PARAM_VALUE"}
377 "agent": "fence_xvm",
378 "host_mac": "52:54:00:aa:bb:cc",
380 "multicast_address": "225.0.0.12",
381 "port": "baremetal_0",
383 "manage_key_file": true,
384 "key_file": "/etc/fence_xvm.key",
385 "key_file_password": "abcdef"
393 description: The short name of the Gnocchi backend to use. Should be one
394 of swift, rbd or file
397 - allowed_values: ['swift', 'file', 'rbd']
398 GnocchiIndexerBackend:
400 description: The short name of the Gnocchi indexer backend to use.
403 description: The password for the gnocchi service account.
406 InstanceNameTemplate:
407 default: 'instance-%08x'
408 description: Template string to be used to generate instance names
412 description: Whether to manage IPtables rules.
416 description: Whether IPtables rules should be purged before setting up the ones.
418 MysqlInnodbBufferPoolSize:
420 Specifies the size of the buffer pool in megabytes. Setting to
421 zero should be interpreted as "no value" and will defer to the
426 description: Configures MySQL max_connections config setting
429 PublicVirtualInterface:
432 Specifies the interface where the public-facing virtual ip will be assigned.
433 This should be int_public when a VLAN is being used.
436 description: A random string to be used as a salt when hashing to determine mappings in the ring.
442 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
445 description: Partition Power to use when building Swift rings
450 description: How many replicas to use in the swift rings.
452 # Compute-specific params
453 CeilometerComputeAgent:
454 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
458 - allowed_values: ['', Present]
462 HypervisorNeutronPhysicalBridge:
465 An OVS bridge to create on each hypervisor. This defaults to br-ex the
466 same as the control plane nodes, as we have a uniform configuration of
467 the openvswitch agent. Typically should not need to be changed.
469 HypervisorNeutronPublicInterface:
471 description: What interface to add to the HypervisorNeutronPhysicalBridge.
473 NeutronNetworkVLANRanges:
474 default: 'datacentre:1:1000'
476 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
477 Neutron documentation for permitted values. Defaults to permitting any
478 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
479 type: comma_delimited_list
482 default: libvirt.LibvirtDriver
483 NovaComputeExtraConfig:
486 NovaCompute specific configuration to inject into the cluster. Same
487 structure as ExtraConfig.
489 NovaComputeLibvirtType:
492 NovaComputeLibvirtVifDriver:
494 description: Libvirt VIF driver configuration for the network
496 NovaComputeSchedulerHints:
498 description: Optional scheduler hints to pass to nova
500 NovaEnableRbdBackend:
502 description: Whether to enable or not the Rbd backend for Nova
506 default: overcloud-full
508 - custom_constraint: glance.image
511 description: Name of integration bridge used by Open vSwitch
513 NovaSecurityGroupAPI:
515 description: The full class name of the security API class
517 OvercloudComputeFlavor:
518 description: Use this flavor
522 - custom_constraint: nova.flavor
525 NeutronTenantNetwork: tenant
526 CeilometerApiNetwork: internal_api
527 AodhApiNetwork: internal_api
528 GnocchiApiNetwork: internal_api
529 MongoDbNetwork: internal_api
530 CinderApiNetwork: internal_api
531 CinderIscsiNetwork: storage
532 GlanceApiNetwork: storage
533 GlanceRegistryNetwork: internal_api
534 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
535 KeystonePublicApiNetwork: internal_api
536 NeutronApiNetwork: internal_api
537 HeatApiNetwork: internal_api
538 NovaApiNetwork: internal_api
539 NovaMetadataNetwork: internal_api
540 NovaVncProxyNetwork: internal_api
541 SwiftMgmtNetwork: storage_mgmt
542 SwiftProxyNetwork: storage
543 SaharaApiNetwork: internal_api
544 HorizonNetwork: internal_api
545 MemcachedNetwork: internal_api
546 RabbitMqNetwork: internal_api
547 RedisNetwork: internal_api
548 MysqlNetwork: internal_api
549 CephClusterNetwork: storage_mgmt
550 CephPublicNetwork: storage
551 ControllerHostnameResolveNetwork: internal_api
552 ComputeHostnameResolveNetwork: internal_api
553 BlockStorageHostnameResolveNetwork: internal_api
554 ObjectStorageHostnameResolveNetwork: internal_api
555 CephStorageHostnameResolveNetwork: storage
556 description: Mapping of service_name -> network name. Typically set
557 via parameter_defaults in the resource registry.
562 - OS::TripleO::Services::CinderApi
563 - OS::TripleO::Services::CinderScheduler
564 - OS::TripleO::Services::CinderVolume
565 - OS::TripleO::Services::Keystone
566 - OS::TripleO::Services::GlanceApi
567 - OS::TripleO::Services::GlanceRegistry
568 - OS::TripleO::Services::HeatApi
569 - OS::TripleO::Services::HeatApiCfn
570 - OS::TripleO::Services::HeatApiCloudwatch
571 - OS::TripleO::Services::HeatEngine
572 - OS::TripleO::Services::NeutronDhcpAgent
573 - OS::TripleO::Services::NeutronL3Agent
574 - OS::TripleO::Services::NeutronMetadataAgent
575 - OS::TripleO::Services::NeutronServer
576 - OS::TripleO::Services::NeutronCorePlugin
577 - OS::TripleO::Services::NeutronOvsAgent
578 - OS::TripleO::Services::RabbitMQ
579 - OS::TripleO::Services::HAproxy
580 - OS::TripleO::Services::Keepalived
581 - OS::TripleO::Services::Memcached
582 - OS::TripleO::Services::Redis
583 - OS::TripleO::Services::NovaConductor
584 - OS::TripleO::Services::MongoDb
585 - OS::TripleO::Services::NovaApi
586 - OS::TripleO::Services::NovaScheduler
587 - OS::TripleO::Services::NovaConsoleauth
588 - OS::TripleO::Services::NovaVncproxy
589 - OS::TripleO::Services::Ntp
590 - OS::TripleO::Services::SwiftProxy
591 - OS::TripleO::Services::SwiftStorage
592 description: A list of service resources (configured in the Heat
593 resource_registry) which represent nested stacks
594 for each service that should get installed on the Controllers.
595 type: comma_delimited_list
599 - OS::TripleO::Services::NovaCompute
600 - OS::TripleO::Services::Ntp
601 description: A list of service resources (configured in the Heat
602 resource_registry) which represent nested stacks
603 for each service that should get installed on the Compute Nodes.
604 type: comma_delimited_list
606 # Block storage specific parameters
611 default: overcloud-full
613 OvercloudBlockStorageFlavor:
614 description: Flavor for block storage nodes to request when deploying.
618 - custom_constraint: nova.flavor
619 BlockStorageExtraConfig:
622 BlockStorage specific configuration to inject into the cluster. Same
623 structure as ExtraConfig.
625 BlockStorageSchedulerHints:
627 description: Optional scheduler hints to pass to nova
631 # Object storage specific parameters
635 OvercloudSwiftStorageFlavor:
636 description: Flavor for Swift storage nodes to request when deploying.
640 - custom_constraint: nova.flavor
642 default: overcloud-full
644 ObjectStorageExtraConfig:
647 ObjectStorage specific configuration to inject into the cluster. Same
648 structure as ExtraConfig.
650 ObjectStorageSchedulerHints:
652 description: Optional scheduler hints to pass to nova
654 ObjectStorageServices:
656 - OS::TripleO::Services::Ntp
657 - OS::TripleO::Services::SwiftStorage
658 description: A list of service resources (configured in the Heat
659 resource_registry) which represent nested stacks
660 for each service that should get installed on the ObjectStorage nodes.
661 Note this role currently only supports steps 2, 3 and 4 configuration.
662 type: comma_delimited_list
665 # Ceph storage specific parameters
670 default: overcloud-full
672 OvercloudCephStorageFlavor:
674 description: Flavor for Ceph storage nodes to request when deploying.
677 - custom_constraint: nova.flavor
678 CephStorageExtraConfig:
681 CephStorage specific configuration to inject into the cluster. Same
682 structure as ExtraConfig.
684 CephStorageSchedulerHints:
686 description: Optional scheduler hints to pass to nova
690 - OS::TripleO::Services::Ntp
691 description: A list of service resources (configured in the Heat
692 resource_registry) which represent nested stacks
693 for each service that should get installed on the CephStorage nodes.
694 type: comma_delimited_list
696 # Hostname format for each role
697 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
698 # and %stackname% is replaced with OS::stack_name in the template below.
699 # If you want to use the heat generated names, pass '' (empty string).
700 ControllerHostnameFormat:
702 description: Format for Controller node hostnames
703 default: '%stackname%-controller-%index%'
704 ComputeHostnameFormat:
706 description: Format for Compute node hostnames
707 default: '%stackname%-novacompute-%index%'
708 BlockStorageHostnameFormat:
710 description: Format for BlockStorage node hostnames
711 default: '%stackname%-blockstorage-%index%'
712 ObjectStorageHostnameFormat:
714 description: Format for SwiftStorage node hostnames
715 default: '%stackname%-objectstorage-%index%'
716 CephStorageHostnameFormat:
718 description: Format for CephStorage node hostnames
719 default: '%stackname%-cephstorage-%index%'
721 # Identifiers to trigger tasks on nodes
726 Setting to a previously unused value during stack-update will trigger
727 package update on all nodes
732 Setting this to a unique value will re-run any deployment tasks which
733 perform configuration on a Heat stack-update.
735 # If you want to remove a specific node from a resource group, you can pass
736 # the node name or id as a <Group>RemovalPolicies parameter, for example:
737 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
738 ControllerRemovalPolicies:
742 List of resources to be removed from ControllerResourceGroup when
743 doing an update which requires removal of specific resources.
744 ComputeRemovalPolicies:
748 List of resources to be removed from ComputeResourceGroup when
749 doing an update which requires removal of specific resources.
750 BlockStorageRemovalPolicies:
754 List of resources to be removed from BlockStorageResourceGroup when
755 doing an update which requires removal of specific resources.
756 ObjectStorageRemovalPolicies:
760 List of resources to be removed from ObjectStorageResourceGroup when
761 doing an update which requires removal of specific resources.
762 CephStorageRemovalPolicies:
766 List of resources to be removed from CephStorageResourceGroup when
767 doing an update which requires removal of specific resources.
771 description: Do not use deprecated params, they will be removed.
773 - controllerExtraConfig
778 HeatAuthEncryptionKey:
779 type: OS::Heat::RandomString
782 type: OS::Heat::RandomString
787 type: OS::Heat::RandomString
792 type: OS::TripleO::EndpointMap
794 CloudName: {get_param: CloudName}
795 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
796 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
797 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
798 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
799 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
800 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
801 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
802 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
803 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
804 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
805 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
806 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
807 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
808 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
809 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
811 ControllerServiceChain:
812 type: OS::TripleO::Services
815 Services: {get_param: ControllerServices}
816 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
819 type: OS::Heat::ResourceGroup
822 count: {get_param: ControllerCount}
823 removal_policies: {get_param: ControllerRemovalPolicies}
825 type: OS::TripleO::Controller
827 AdminPassword: {get_param: AdminPassword}
828 AodhPassword: {get_param: AodhPassword}
829 CeilometerBackend: {get_param: CeilometerBackend}
830 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
831 CeilometerPassword: {get_param: CeilometerPassword}
832 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
833 CloudDomain: {get_param: CloudDomain}
834 ControlVirtualInterface: {get_param: ControlVirtualInterface}
835 controllerExtraConfig: {get_param: controllerExtraConfig}
836 CorosyncIPv6: {get_param: CorosyncIPv6}
837 Debug: {get_param: Debug}
838 EnableFencing: {get_param: EnableFencing}
839 ManageFirewall: {get_param: ManageFirewall}
840 PurgeFirewallRules: {get_param: PurgeFirewallRules}
841 EnableGalera: {get_param: EnableGalera}
842 EnableCephStorage: {get_param: ControllerEnableCephStorage}
843 ExtraConfig: {get_param: ExtraConfig}
844 FencingConfig: {get_param: FencingConfig}
845 Flavor: {get_param: OvercloudControlFlavor}
846 GnocchiPassword: {get_param: GnocchiPassword}
847 GnocchiBackend: {get_param: GnocchiBackend}
848 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
849 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
850 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
851 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
852 HorizonSecret: {get_resource: HorizonSecret}
853 Image: {get_param: controllerImage}
854 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
855 InstanceNameTemplate: {get_param: InstanceNameTemplate}
856 KeyName: {get_param: KeyName}
857 MemcachedIPv6: {get_param: MemcachedIPv6}
858 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
859 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
860 MysqlMaxConnections: {get_param: MysqlMaxConnections}
861 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
862 NeutronTenantMtu: {get_param: NeutronTenantMtu}
863 NeutronPublicInterface: {get_param: NeutronPublicInterface}
864 NeutronPassword: {get_param: NeutronPassword}
865 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
866 NovaIPv6: {get_param: NovaIPv6}
867 NovaPassword: {get_param: NovaPassword}
868 PcsdPassword: {get_resource: PcsdPassword}
869 PublicVirtualInterface: {get_param: PublicVirtualInterface}
870 RabbitPassword: {get_param: RabbitPassword}
871 RabbitUserName: {get_param: RabbitUserName}
872 RabbitCookie: {get_attr: [RabbitCookie, value]}
873 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
874 RabbitClientPort: {get_param: RabbitClientPort}
875 RedisPassword: {get_param: RedisPassword}
876 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
877 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
878 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
879 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
880 SwiftHashSuffix: {get_param: SwiftHashSuffix}
881 SwiftMinPartHours: {get_param: SwiftMinPartHours}
882 SwiftPartPower: {get_param: SwiftPartPower}
883 SwiftReplicas: { get_param: SwiftReplicas}
884 TimeZone: {get_param: TimeZone}
885 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
886 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
887 ServiceNetMap: {get_param: ServiceNetMap}
888 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
889 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
890 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
891 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
892 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
893 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
894 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
895 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
896 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
897 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
898 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
899 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
900 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
901 UpdateIdentifier: {get_param: UpdateIdentifier}
904 template: {get_param: ControllerHostnameFormat}
906 '%stackname%': {get_param: 'OS::stack_name'}
908 ServerMetadata: {get_param: ServerMetadata}
909 SchedulerHints: {get_param: ControllerSchedulerHints}
910 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
913 type: OS::TripleO::Services
915 Services: {get_param: ComputeServices}
916 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
919 type: OS::Heat::ResourceGroup
922 count: {get_param: ComputeCount}
923 removal_policies: {get_param: ComputeRemovalPolicies}
925 type: OS::TripleO::Compute
927 AdminPassword: {get_param: AdminPassword}
928 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
929 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
930 CeilometerPassword: {get_param: CeilometerPassword}
931 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
932 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
933 Debug: {get_param: Debug}
934 ExtraConfig: {get_param: ExtraConfig}
935 Flavor: {get_param: OvercloudComputeFlavor}
936 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
937 Image: {get_param: NovaImage}
938 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
939 KeyName: {get_param: KeyName}
940 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
941 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
942 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
943 NeutronTenantMtu: {get_param: NeutronTenantMtu}
944 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
945 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
946 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
947 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
948 NeutronNetworkType: {get_param: NeutronNetworkType}
949 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
950 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
951 NeutronPassword: {get_param: NeutronPassword}
952 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
953 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
954 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
955 NeutronCorePlugin: {get_param: NeutronCorePlugin}
956 NeutronServicePlugins: {get_param: NeutronServicePlugins}
957 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
958 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
959 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
960 # L3 HA and Failover is not relevant for Computes, should be removed
961 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
962 NeutronL3HA: {get_param: NeutronL3HA}
963 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
964 NovaComputeDriver: {get_param: NovaComputeDriver}
965 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
966 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
967 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
968 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
969 NovaIPv6: {get_param: NovaIPv6}
970 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
971 NovaPassword: {get_param: NovaPassword}
972 NovaOVSBridge: {get_param: NovaOVSBridge}
973 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
974 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
975 RabbitPassword: {get_param: RabbitPassword}
976 RabbitUserName: {get_param: RabbitUserName}
977 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
978 RabbitClientPort: {get_param: RabbitClientPort}
979 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
980 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
981 ServiceNetMap: {get_param: ServiceNetMap}
982 TimeZone: {get_param: TimeZone}
983 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
984 UpdateIdentifier: {get_param: UpdateIdentifier}
987 template: {get_param: ComputeHostnameFormat}
989 '%stackname%': {get_param: 'OS::stack_name'}
990 CloudDomain: {get_param: CloudDomain}
991 ServerMetadata: {get_param: ServerMetadata}
992 SchedulerHints: {get_param: NovaComputeSchedulerHints}
994 ServiceConfigSettings: {get_attr: [ComputeServiceChain, config_settings]}
998 type: OS::Heat::ResourceGroup
1001 count: {get_param: BlockStorageCount}
1002 removal_policies: {get_param: BlockStorageRemovalPolicies}
1004 type: OS::TripleO::BlockStorage
1006 Debug: {get_param: Debug}
1007 Image: {get_param: BlockStorageImage}
1008 CinderISCSIHelper: {get_param: CinderISCSIHelper}
1009 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
1010 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1011 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1012 CinderPassword: {get_param: CinderPassword}
1013 KeyName: {get_param: KeyName}
1014 Flavor: {get_param: OvercloudBlockStorageFlavor}
1015 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1016 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1017 RabbitPassword: {get_param: RabbitPassword}
1018 RabbitUserName: {get_param: RabbitUserName}
1019 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1020 RabbitClientPort: {get_param: RabbitClientPort}
1021 TimeZone: {get_param: TimeZone}
1022 NtpServer: {get_param: NtpServer}
1023 UpdateIdentifier: {get_param: UpdateIdentifier}
1026 template: {get_param: BlockStorageHostnameFormat}
1028 '%stackname%': {get_param: 'OS::stack_name'}
1029 ServiceNetMap: {get_param: ServiceNetMap}
1030 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1031 ExtraConfig: {get_param: ExtraConfig}
1032 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1033 CloudDomain: {get_param: CloudDomain}
1034 ServerMetadata: {get_param: ServerMetadata}
1035 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1036 NodeIndex: '%index%'
1038 ObjectStorageServiceChain:
1039 type: OS::TripleO::Services
1041 Services: {get_param: ObjectStorageServices}
1042 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1045 type: OS::Heat::ResourceGroup
1046 depends_on: Networks
1048 count: {get_param: ObjectStorageCount}
1049 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1051 type: OS::TripleO::ObjectStorage
1053 KeyName: {get_param: KeyName}
1054 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1055 HashSuffix: {get_param: SwiftHashSuffix}
1056 MinPartHours: {get_param: SwiftMinPartHours}
1057 PartPower: {get_param: SwiftPartPower}
1058 Image: {get_param: SwiftStorageImage}
1059 Replicas: { get_param: SwiftReplicas}
1060 TimeZone: {get_param: TimeZone}
1061 UpdateIdentifier: {get_param: UpdateIdentifier}
1062 ServiceNetMap: {get_param: ServiceNetMap}
1065 template: {get_param: ObjectStorageHostnameFormat}
1067 '%stackname%': {get_param: 'OS::stack_name'}
1068 ExtraConfig: {get_param: ExtraConfig}
1069 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1070 CloudDomain: {get_param: CloudDomain}
1071 ServerMetadata: {get_param: ServerMetadata}
1072 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1073 NodeIndex: '%index%'
1074 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, config_settings]}
1076 CephStorageServiceChain:
1077 type: OS::TripleO::Services
1079 Services: {get_param: CephStorageServices}
1080 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1083 type: OS::Heat::ResourceGroup
1084 depends_on: Networks
1086 count: {get_param: CephStorageCount}
1087 removal_policies: {get_param: CephStorageRemovalPolicies}
1089 type: OS::TripleO::CephStorage
1091 Image: {get_param: CephStorageImage}
1092 KeyName: {get_param: KeyName}
1093 Flavor: {get_param: OvercloudCephStorageFlavor}
1094 ServiceNetMap: {get_param: ServiceNetMap}
1095 TimeZone: {get_param: TimeZone}
1096 UpdateIdentifier: {get_param: UpdateIdentifier}
1099 template: {get_param: CephStorageHostnameFormat}
1101 '%stackname%': {get_param: 'OS::stack_name'}
1102 ExtraConfig: {get_param: ExtraConfig}
1103 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1104 CloudDomain: {get_param: CloudDomain}
1105 ServerMetadata: {get_param: ServerMetadata}
1106 SchedulerHints: {get_param: CephStorageSchedulerHints}
1107 NodeIndex: '%index%'
1108 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1110 ControllerIpListMap:
1111 type: OS::TripleO::Network::Ports::NetIpListMap
1113 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1114 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1115 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1116 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1117 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1118 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1119 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1122 type: OS::TripleO::AllNodes::SoftwareConfig
1124 compute_hosts: {get_attr: [Compute, hosts_entry]}
1125 controller_hosts: {get_attr: [Controller, hosts_entry]}
1126 controller_ips: {get_attr: [Controller, ip_address]}
1127 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1128 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1129 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1130 controller_names: {get_attr: [Controller, hostname]}
1131 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1132 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1133 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1134 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1135 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1136 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1137 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1138 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1139 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1140 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1141 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1142 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1143 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1144 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1145 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1146 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1147 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1148 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1149 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1150 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1151 DeployIdentifier: {get_param: DeployIdentifier}
1152 UpdateIdentifier: {get_param: UpdateIdentifier}
1155 type: OS::Heat::RandomString
1159 MysqlClusterUniquePart:
1160 type: OS::Heat::RandomString
1165 type: OS::Heat::RandomString
1168 salt: {get_param: RabbitCookieSalt}
1170 # creates the network architecture
1172 type: OS::TripleO::Network
1175 type: OS::Neutron::Port
1176 depends_on: Networks
1178 name: control_virtual_ip
1179 network: {get_param: NeutronControlPlaneID}
1180 fixed_ips: {get_param: ControlFixedIPs}
1181 replacement_policy: AUTO
1184 depends_on: Networks
1185 type: OS::TripleO::Network::Ports::RedisVipPort
1187 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1188 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1189 PortName: redis_virtual_ip
1190 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1193 # The public VIP is on the External net, falls back to ctlplane
1195 depends_on: Networks
1196 type: OS::TripleO::Network::Ports::ExternalVipPort
1198 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1199 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1200 PortName: public_virtual_ip
1201 FixedIPs: {get_param: PublicVirtualFixedIPs}
1203 InternalApiVirtualIP:
1204 depends_on: Networks
1205 type: OS::TripleO::Network::Ports::InternalApiVipPort
1207 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1208 PortName: internal_api_virtual_ip
1209 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1212 depends_on: Networks
1213 type: OS::TripleO::Network::Ports::StorageVipPort
1215 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1216 PortName: storage_virtual_ip
1217 FixedIPs: {get_param: StorageVirtualFixedIPs}
1219 StorageMgmtVirtualIP:
1220 depends_on: Networks
1221 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1223 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1224 PortName: storage_management_virtual_ip
1225 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1228 type: OS::TripleO::Network::Ports::NetVipMap
1230 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1231 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1232 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1233 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1234 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1235 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1236 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1237 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1238 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1239 # No tenant or management VIP required
1242 type: OS::TripleO::VipConfig
1245 type: OS::Heat::StructuredDeployments
1248 config: {get_resource: VipConfig}
1249 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1251 # service VIP mappings
1252 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1253 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1254 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1255 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1256 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1257 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1258 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1259 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1260 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1261 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1262 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1263 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1264 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1265 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1266 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1267 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1268 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1269 # direct configuration of Virtual IPs for each network
1270 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1271 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1272 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1273 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1274 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1275 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1277 ControllerBootstrapNodeConfig:
1278 type: OS::TripleO::BootstrapNode::SoftwareConfig
1280 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1281 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1283 ControllerBootstrapNodeDeployment:
1284 type: OS::Heat::StructuredDeployments
1286 name: ControllerBootstrapNodeDeployment
1287 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1288 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1290 ControllerSwiftDeployment:
1291 type: OS::Heat::StructuredDeployments
1293 name: ControllerSwiftDeployment
1294 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1295 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1297 ObjectStorageSwiftDeployment:
1298 type: OS::Heat::StructuredDeployments
1300 name: ObjectStorageSwiftDeployment
1301 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1302 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1304 SwiftDevicesAndProxyConfig:
1305 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1307 controller_swift_devices: {get_attr: [Controller, swift_device]}
1308 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1309 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1311 ComputeCephDeployment:
1312 type: OS::Heat::StructuredDeployments
1314 name: ComputeCephDeployment
1315 config: {get_attr: [CephClusterConfig, config_id]}
1316 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1318 ControllerCephDeployment:
1319 type: OS::Heat::StructuredDeployments
1321 name: ControllerCephDeployment
1322 config: {get_attr: [CephClusterConfig, config_id]}
1323 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1325 CephStorageCephDeployment:
1326 type: OS::Heat::StructuredDeployments
1328 name: CephStorageCephDeployment
1329 config: {get_attr: [CephClusterConfig, config_id]}
1330 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1333 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1335 ceph_storage_count: {get_param: CephStorageCount}
1336 ceph_fsid: {get_param: CephClusterFSID}
1337 ceph_mon_key: {get_param: CephMonKey}
1338 ceph_admin_key: {get_param: CephAdminKey}
1339 ceph_client_key: {get_param: CephClientKey}
1340 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1341 ceph_mon_names: {get_attr: [Controller, hostname]}
1342 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1344 ControllerAllNodesDeployment:
1345 type: OS::Heat::StructuredDeployments
1347 name: ControllerAllNodesDeployment
1348 config: {get_attr: [allNodesConfig, config_id]}
1349 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1351 ComputeAllNodesDeployment:
1352 type: OS::Heat::StructuredDeployments
1354 name: ComputeAllNodesDeployment
1355 config: {get_attr: [allNodesConfig, config_id]}
1356 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1358 BlockStorageAllNodesDeployment:
1359 type: OS::Heat::StructuredDeployments
1361 name: BlockStorageAllNodesDeployment
1362 config: {get_attr: [allNodesConfig, config_id]}
1363 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1365 ObjectStorageAllNodesDeployment:
1366 type: OS::Heat::StructuredDeployments
1368 name: ObjectStorageAllNodesDeployment
1369 config: {get_attr: [allNodesConfig, config_id]}
1370 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1372 CephStorageAllNodesDeployment:
1373 type: OS::Heat::StructuredDeployments
1375 name: CephStorageAllNodesDeployment
1376 config: {get_attr: [allNodesConfig, config_id]}
1377 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1379 # All Nodes Validations
1380 AllNodesValidationConfig:
1381 type: OS::TripleO::AllNodes::Validation
1386 - - {get_attr: [Controller, resource.0.external_ip_address]}
1387 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1388 - {get_attr: [Controller, resource.0.storage_ip_address]}
1389 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1390 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1392 ControllerAllNodesValidationDeployment:
1393 type: OS::Heat::StructuredDeployments
1394 depends_on: ControllerAllNodesDeployment
1396 name: ControllerAllNodesValidationDeployment
1397 config: {get_resource: AllNodesValidationConfig}
1398 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1400 ComputeAllNodesValidationDeployment:
1401 type: OS::Heat::StructuredDeployments
1402 depends_on: ComputeAllNodesDeployment
1404 name: ComputeAllNodesValidationDeployment
1405 config: {get_resource: AllNodesValidationConfig}
1406 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1408 BlockStorageAllNodesValidationDeployment:
1409 type: OS::Heat::StructuredDeployments
1410 depends_on: BlockStorageAllNodesDeployment
1412 name: BlockStorageAllNodesValidationDeployment
1413 config: {get_resource: AllNodesValidationConfig}
1414 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1416 ObjectStorageAllNodesValidationDeployment:
1417 type: OS::Heat::StructuredDeployments
1418 depends_on: ObjectStorageAllNodesDeployment
1420 name: ObjectStorageAllNodesValidationDeployment
1421 config: {get_resource: AllNodesValidationConfig}
1422 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1424 CephStorageAllNodesValidationDeployment:
1425 type: OS::Heat::StructuredDeployments
1426 depends_on: CephStorageAllNodesDeployment
1428 name: CephStorageAllNodesValidationDeployment
1429 config: {get_resource: AllNodesValidationConfig}
1430 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1433 type: OS::TripleO::Tasks::UpdateWorkflow
1435 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1436 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1437 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1438 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1439 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1441 deploy_identifier: {get_param: DeployIdentifier}
1442 update_identifier: {get_param: UpdateIdentifier}
1444 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1445 # the nested template may configure each role differently (or not at all)
1446 AllNodesExtraConfig:
1447 type: OS::TripleO::AllNodesExtraConfig
1450 - ComputeAllNodesValidationDeployment
1451 - BlockStorageAllNodesValidationDeployment
1452 - ObjectStorageAllNodesValidationDeployment
1453 - CephStorageAllNodesValidationDeployment
1454 - ControllerAllNodesValidationDeployment
1456 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1457 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1458 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1459 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1460 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1462 # Nested stack deployment runs after all other controller deployments
1463 ControllerNodesPostDeployment:
1464 type: OS::TripleO::ControllerPostDeployment
1465 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1467 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1468 NodeConfigIdentifiers:
1469 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1470 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1471 deployment_identifier: {get_param: DeployIdentifier}
1472 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1474 ComputeNodesPostDeployment:
1475 type: OS::TripleO::ComputePostDeployment
1476 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1478 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1479 NodeConfigIdentifiers:
1480 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1481 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1482 deployment_identifier: {get_param: DeployIdentifier}
1483 StepConfig: {get_attr: [ComputeServiceChain, step_config]}
1485 ObjectStorageNodesPostDeployment:
1486 type: OS::TripleO::ObjectStoragePostDeployment
1487 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1489 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1490 NodeConfigIdentifiers:
1491 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1492 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1493 deployment_identifier: {get_param: DeployIdentifier}
1494 StepConfig: {get_attr: [ObjectStorageServiceChain, step_config]}
1496 BlockStorageNodesPostDeployment:
1497 type: OS::TripleO::BlockStoragePostDeployment
1498 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1500 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1501 NodeConfigIdentifiers:
1502 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1503 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1504 deployment_identifier: {get_param: DeployIdentifier}
1506 CephStorageNodesPostDeployment:
1507 type: OS::TripleO::CephStoragePostDeployment
1508 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1510 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1511 NodeConfigIdentifiers:
1512 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1513 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1514 deployment_identifier: {get_param: DeployIdentifier}
1515 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1519 description: URL for the Overcloud Keystone service
1520 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1522 description: Keystone Admin VIP endpoint
1523 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1525 description: Controller VIP for public API endpoints
1526 value: {get_attr: [VipMap, net_ip_map, external]}
1528 description: VIP for Aodh API internal endpoint
1529 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1530 CeilometerInternalVip:
1531 description: VIP for Ceilometer API internal endpoint
1532 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1534 description: VIP for Cinder API internal endpoint
1535 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1537 description: VIP for Glance API internal endpoint
1538 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1540 description: VIP for Gnocchi API internal endpoint
1541 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1543 description: VIP for Heat API internal endpoint
1544 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1545 KeystoneInternalVip:
1546 description: VIP for Keystone API internal endpoint
1547 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1549 description: VIP for Neutron API internal endpoint
1550 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1552 description: VIP for Nova API internal endpoint
1553 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1555 description: VIP for Sahara API internal endpoint
1556 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1558 description: VIP for Swift Proxy internal endpoint
1559 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1562 Mapping of the resources with the needed info for their endpoints.
1563 This includes the protocol used, the IP, port and also a full
1564 representation of the URI.
1565 value: {get_attr: [EndpointMap, endpoint_map]}
1568 The content that should be appended to your /etc/hosts if you want to get
1569 hostname-based access to the deployed nodes (useful for testing without
1571 value: {get_attr: [allNodesConfig, hosts_entries]}