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.
23 # This has to be an UUID so for now we generate it outside the template
27 description: The Ceph cluster FSID. Must be a UUID.
30 description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
35 description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
38 CinderEnableNfsBackend:
40 description: Whether to enable or not the NFS backend for Cinder
44 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.
50 description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
51 CinderEnableIscsiBackend:
53 description: Whether to enable or not the Iscsi backend for Cinder
55 CinderEnableRbdBackend:
57 description: Whether to enable or not the Rbd backend for Cinder
61 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
65 description: Should be used for arbitrary ips.
69 description: Enable IPv6 in Corosync
73 description: Set to True to enable debugging on all services.
77 description: Syslog address where HAproxy will send its log
81 description: A list of IP/Hostname allowed to connect to horizon
82 type: comma_delimited_list
84 default: 'REBUILD_PRESERVE_EPHEMERAL'
85 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
87 InternalApiVirtualFixedIPs:
90 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
91 [{'ip_address':'1.2.3.4'}]
95 description: Name of an existing Nova key pair to enable SSH access to the instances
98 - custom_constraint: nova.keypair
101 description: Enable IPv6 features in Memcached.
103 NeutronBridgeMappings:
105 The OVS logical->physical bridge mappings to use. See the Neutron
106 documentation for details. Defaults to mapping br-ex - the external
107 bridge on hosts - to a physical name 'datacentre' which can be used
108 to create provider networks (and we use this for the default floating
109 network) - if changing this either use different post-install network
110 scripts or be sure to keep 'datacentre' as a mapping network name.
111 type: comma_delimited_list
112 default: "datacentre:br-ex"
113 NeutronControlPlaneID:
116 description: Neutron ID or name for ctlplane network.
117 NeutronEnableTunnelling:
123 Enable/disable the L2 population feature in the Neutron agents.
126 type: comma_delimited_list
127 default: 'datacentre'
129 If set, flat networks to configure in neutron plugins. Defaults to
130 'datacentre' to permit external network creation.
133 description: The tenant network type for Neutron.
134 type: comma_delimited_list
136 description: The password for the neutron service account, used by neutron agents.
139 NeutronPublicInterface:
141 description: What interface to bridge onto br-ex for network nodes.
143 NeutronMetadataProxySharedSecret:
144 description: Shared secret to prevent spoofing
149 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
150 be at least 50 bytes smaller than the MTU on the physical network. This
151 value will be used to set the MTU on the virtual Ethernet device.
152 This value will be used to construct the NeutronDnsmasqOptions, since that
153 will determine the MTU that is assigned to the VM host through DHCP.
159 The tunnel types for the Neutron tenant network.
160 type: comma_delimited_list
161 type: comma_delimited_list
165 The core plugin for Neutron. The value should be the entrypoint to be loaded
166 from neutron.core_plugins namespace.
168 NeutronServicePlugins:
169 default: "router,qos"
171 Comma-separated list of service plugin entrypoints to be loaded from the
172 neutron.service_plugins namespace.
173 type: comma_delimited_list
175 default: "vxlan,vlan,flat,gre"
177 Comma-separated list of network type driver entrypoints to be loaded.
178 type: comma_delimited_list
179 NeutronMechanismDrivers:
180 default: 'openvswitch'
182 The mechanism drivers for the Neutron tenant network.
183 type: comma_delimited_list
184 type: comma_delimited_list
185 NeutronAgentExtensions:
188 Comma-separated list of extensions enabled for the Neutron agents.
189 type: comma_delimited_list
190 NeutronAllowL3AgentFailover:
192 description: Allow automatic l3-agent failover
196 description: Whether to enable l3-agent HA
200 description: Enable IPv6 features in Nova
203 description: The password for the nova service account, used by nova-api.
206 #TODO(ccamacho): Remove after landing Ntp in all roles
209 description: Comma-separated list of ntp servers
210 type: comma_delimited_list
211 PublicVirtualFixedIPs:
214 Control the IP allocation for the PublicVirtualInterface port. E.g.
215 [{'ip_address':'1.2.3.4'}]
220 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
223 description: The username for RabbitMQ
226 description: The password for RabbitMQ
232 Rabbit client subscriber parameter to specify
233 an SSL connection to the RabbitMQ host.
237 description: Set rabbit subscriber port, change this if using SSL
240 description: The password for Redis
243 SnmpdReadonlyUserName:
244 default: ro_snmp_user
245 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
247 SnmpdReadonlyUserPassword:
248 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
251 StorageVirtualFixedIPs:
254 Control the IP allocation for the StorageVirtualInterface port. E.g.
255 [{'ip_address':'1.2.3.4'}]
257 StorageMgmtVirtualFixedIPs:
260 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
261 [{'ip_address':'1.2.3.4'}]
265 description: The timezone to be set on nodes.
268 default: 'localdomain'
271 The DNS domain used for the hosts. This should match the dhcp_domain
272 configured in the Undercloud neutron. Defaults to localdomain.
276 Extra properties or metadata passed to Nova for the created nodes in
277 the overcloud. It's accessible via the Nova metadata API.
280 # Controller-specific params
281 CinderLVMLoopDeviceSize:
283 description: The size of the loopback file used by the cinder LVM driver.
286 description: The password for the cinder service account, used by cinder-api.
291 description: The iSCSI helper to use with cinder.
298 controllerExtraConfig:
301 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
305 default: overcloud-full
307 - custom_constraint: glance.image
308 OvercloudControlFlavor:
309 description: Flavor for control nodes to request when deploying.
313 - custom_constraint: nova.flavor
314 ControlVirtualInterface:
316 description: Interface where virtual ip will be assigned.
320 description: Whether to enable fencing in Pacemaker or not.
324 description: Whether to use Galera instead of regular MariaDB.
326 ControllerEnableCephStorage:
328 description: Whether to deploy Ceph Storage (OSD) on the Controller
330 ControllerEnableSwiftStorage:
332 description: Whether to enable Swift Storage on the Controller
334 ControllerSchedulerHints:
336 description: Optional scheduler hints to pass to nova
341 Additional configuration to inject into the cluster. The format required
342 may be implementation specific, e.g puppet hieradata. Any role specific
343 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
348 Pacemaker fencing configuration. The JSON should have
349 the following structure:
353 "agent": "AGENT_NAME",
354 "host_mac": "HOST_MAC_ADDRESS",
355 "params": {"PARAM_NAME": "PARAM_VALUE"}
363 "agent": "fence_xvm",
364 "host_mac": "52:54:00:aa:bb:cc",
366 "multicast_address": "225.0.0.12",
367 "port": "baremetal_0",
369 "manage_key_file": true,
370 "key_file": "/etc/fence_xvm.key",
371 "key_file_password": "abcdef"
379 description: The short name of the Gnocchi backend to use. Should be one
380 of swift, rbd or file
383 - allowed_values: ['swift', 'file', 'rbd']
384 GnocchiIndexerBackend:
386 description: The short name of the Gnocchi indexer backend to use.
389 description: The password for the gnocchi service account.
392 InstanceNameTemplate:
393 default: 'instance-%08x'
394 description: Template string to be used to generate instance names
398 description: Whether to manage IPtables rules.
402 description: Whether IPtables rules should be purged before setting up the ones.
404 MysqlInnodbBufferPoolSize:
406 Specifies the size of the buffer pool in megabytes. Setting to
407 zero should be interpreted as "no value" and will defer to the
412 description: Configures MySQL max_connections config setting
415 PublicVirtualInterface:
418 Specifies the interface where the public-facing virtual ip will be assigned.
419 This should be int_public when a VLAN is being used.
422 description: A random string to be used as a salt when hashing to determine mappings in the ring.
427 description: Value of mount_check in Swift account/container/object -server.conf
432 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
435 description: Partition Power to use when building Swift rings
440 description: How many replicas to use in the swift rings.
442 # Compute-specific params
443 CeilometerComputeAgent:
444 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
448 - allowed_values: ['', Present]
452 HypervisorNeutronPhysicalBridge:
455 An OVS bridge to create on each hypervisor. This defaults to br-ex the
456 same as the control plane nodes, as we have a uniform configuration of
457 the openvswitch agent. Typically should not need to be changed.
459 HypervisorNeutronPublicInterface:
461 description: What interface to add to the HypervisorNeutronPhysicalBridge.
463 NeutronNetworkVLANRanges:
464 default: 'datacentre:1:1000'
466 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
467 Neutron documentation for permitted values. Defaults to permitting any
468 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
469 type: comma_delimited_list
472 default: libvirt.LibvirtDriver
473 NovaComputeExtraConfig:
476 NovaCompute specific configuration to inject into the cluster. Same
477 structure as ExtraConfig.
479 NovaComputeLibvirtType:
482 NovaComputeLibvirtVifDriver:
484 description: Libvirt VIF driver configuration for the network
486 NovaComputeSchedulerHints:
488 description: Optional scheduler hints to pass to nova
490 NovaEnableRbdBackend:
492 description: Whether to enable or not the Rbd backend for Nova
496 default: overcloud-full
498 - custom_constraint: glance.image
501 description: Name of integration bridge used by Open vSwitch
503 NovaSecurityGroupAPI:
505 description: The full class name of the security API class
507 OvercloudComputeFlavor:
508 description: Use this flavor
512 - custom_constraint: nova.flavor
515 NeutronTenantNetwork: tenant
516 CeilometerApiNetwork: internal_api
517 AodhApiNetwork: internal_api
518 GnocchiApiNetwork: internal_api
519 MongoDbNetwork: internal_api
520 CinderApiNetwork: internal_api
521 CinderIscsiNetwork: storage
522 GlanceApiNetwork: storage
523 GlanceRegistryNetwork: internal_api
524 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
525 KeystonePublicApiNetwork: internal_api
526 NeutronApiNetwork: internal_api
527 HeatApiNetwork: internal_api
528 NovaApiNetwork: internal_api
529 NovaMetadataNetwork: internal_api
530 NovaVncProxyNetwork: internal_api
531 SwiftMgmtNetwork: storage_mgmt
532 SwiftProxyNetwork: storage
533 SaharaApiNetwork: internal_api
534 HorizonNetwork: internal_api
535 MemcachedNetwork: internal_api
536 RabbitMqNetwork: internal_api
537 RedisNetwork: internal_api
538 MysqlNetwork: internal_api
539 CephClusterNetwork: storage_mgmt
540 CephPublicNetwork: storage
541 ControllerHostnameResolveNetwork: internal_api
542 ComputeHostnameResolveNetwork: internal_api
543 BlockStorageHostnameResolveNetwork: internal_api
544 ObjectStorageHostnameResolveNetwork: internal_api
545 CephStorageHostnameResolveNetwork: storage
546 description: Mapping of service_name -> network name. Typically set
547 via parameter_defaults in the resource registry.
552 - OS::TripleO::Services::CinderApi
553 - OS::TripleO::Services::CinderScheduler
554 - OS::TripleO::Services::CinderVolume
555 - OS::TripleO::Services::Keystone
556 - OS::TripleO::Services::GlanceApi
557 - OS::TripleO::Services::GlanceRegistry
558 - OS::TripleO::Services::HeatApi
559 - OS::TripleO::Services::HeatApiCfn
560 - OS::TripleO::Services::HeatApiCloudwatch
561 - OS::TripleO::Services::HeatEngine
562 - OS::TripleO::Services::NeutronDhcpAgent
563 - OS::TripleO::Services::NeutronL3Agent
564 - OS::TripleO::Services::NeutronMetadataAgent
565 - OS::TripleO::Services::NeutronServer
566 - OS::TripleO::Services::NeutronCorePlugin
567 - OS::TripleO::Services::NeutronOvsAgent
568 - OS::TripleO::Services::RabbitMQ
569 - OS::TripleO::Services::HAproxy
570 - OS::TripleO::Services::Keepalived
571 - OS::TripleO::Services::Memcached
572 - OS::TripleO::Services::SwiftProxy
573 - OS::TripleO::Services::Redis
574 - OS::TripleO::Services::NovaConductor
575 - OS::TripleO::Services::MongoDb
576 - OS::TripleO::Services::NovaApi
577 - OS::TripleO::Services::NovaScheduler
578 - OS::TripleO::Services::NovaConsoleauth
579 - OS::TripleO::Services::NovaVncproxy
580 - OS::TripleO::Services::Ntp
581 - OS::TripleO::Services::CeilometerApi
582 - OS::TripleO::Services::CeilometerCollector
583 - OS::TripleO::Services::CeilometerExpirer
584 - OS::TripleO::Services::CeilometerAgentCentral
585 - OS::TripleO::Services::CeilometerAgentNotification
586 description: A list of service resources (configured in the Heat
587 resource_registry) which represent nested stacks
588 for each service that should get installed on the Controllers.
589 type: comma_delimited_list
593 - OS::TripleO::Services::NovaCompute
594 - OS::TripleO::Services::Ntp
595 description: A list of service resources (configured in the Heat
596 resource_registry) which represent nested stacks
597 for each service that should get installed on the Compute Nodes.
598 type: comma_delimited_list
600 # Block storage specific parameters
605 default: overcloud-full
607 OvercloudBlockStorageFlavor:
608 description: Flavor for block storage nodes to request when deploying.
612 - custom_constraint: nova.flavor
613 BlockStorageExtraConfig:
616 BlockStorage specific configuration to inject into the cluster. Same
617 structure as ExtraConfig.
619 BlockStorageSchedulerHints:
621 description: Optional scheduler hints to pass to nova
625 # Object storage specific parameters
629 OvercloudSwiftStorageFlavor:
630 description: Flavor for Swift storage nodes to request when deploying.
634 - custom_constraint: nova.flavor
636 default: overcloud-full
638 ObjectStorageExtraConfig:
641 ObjectStorage specific configuration to inject into the cluster. Same
642 structure as ExtraConfig.
644 ObjectStorageSchedulerHints:
646 description: Optional scheduler hints to pass to nova
648 ObjectStorageServices:
650 - OS::TripleO::Services::Ntp
651 description: A list of service resources (configured in the Heat
652 resource_registry) which represent nested stacks
653 for each service that should get installed on the ObjectStorage nodes.
654 Note this role currently only supports steps 2, 3 and 4 configuration.
655 type: comma_delimited_list
658 # Ceph storage specific parameters
663 default: overcloud-full
665 OvercloudCephStorageFlavor:
667 description: Flavor for Ceph storage nodes to request when deploying.
670 - custom_constraint: nova.flavor
671 CephStorageExtraConfig:
674 CephStorage specific configuration to inject into the cluster. Same
675 structure as ExtraConfig.
677 CephStorageSchedulerHints:
679 description: Optional scheduler hints to pass to nova
683 - OS::TripleO::Services::Ntp
684 description: A list of service resources (configured in the Heat
685 resource_registry) which represent nested stacks
686 for each service that should get installed on the CephStorage nodes.
687 type: comma_delimited_list
689 # Hostname format for each role
690 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
691 # and %stackname% is replaced with OS::stack_name in the template below.
692 # If you want to use the heat generated names, pass '' (empty string).
693 ControllerHostnameFormat:
695 description: Format for Controller node hostnames
696 default: '%stackname%-controller-%index%'
697 ComputeHostnameFormat:
699 description: Format for Compute node hostnames
700 default: '%stackname%-novacompute-%index%'
701 BlockStorageHostnameFormat:
703 description: Format for BlockStorage node hostnames
704 default: '%stackname%-blockstorage-%index%'
705 ObjectStorageHostnameFormat:
707 description: Format for SwiftStorage node hostnames
708 default: '%stackname%-objectstorage-%index%'
709 CephStorageHostnameFormat:
711 description: Format for CephStorage node hostnames
712 default: '%stackname%-cephstorage-%index%'
714 # Identifiers to trigger tasks on nodes
719 Setting to a previously unused value during stack-update will trigger
720 package update on all nodes
725 Setting this to a unique value will re-run any deployment tasks which
726 perform configuration on a Heat stack-update.
728 # If you want to remove a specific node from a resource group, you can pass
729 # the node name or id as a <Group>RemovalPolicies parameter, for example:
730 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
731 ControllerRemovalPolicies:
735 List of resources to be removed from ControllerResourceGroup when
736 doing an update which requires removal of specific resources.
737 ComputeRemovalPolicies:
741 List of resources to be removed from ComputeResourceGroup when
742 doing an update which requires removal of specific resources.
743 BlockStorageRemovalPolicies:
747 List of resources to be removed from BlockStorageResourceGroup when
748 doing an update which requires removal of specific resources.
749 ObjectStorageRemovalPolicies:
753 List of resources to be removed from ObjectStorageResourceGroup when
754 doing an update which requires removal of specific resources.
755 CephStorageRemovalPolicies:
759 List of resources to be removed from CephStorageResourceGroup when
760 doing an update which requires removal of specific resources.
764 description: Do not use deprecated params, they will be removed.
766 - controllerExtraConfig
771 HeatAuthEncryptionKey:
772 type: OS::Heat::RandomString
775 type: OS::Heat::RandomString
780 type: OS::Heat::RandomString
785 type: OS::TripleO::EndpointMap
787 CloudName: {get_param: CloudName}
788 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
789 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
790 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
791 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
792 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
793 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
794 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
795 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
796 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
797 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
798 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
799 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
800 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
801 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
802 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
804 ControllerServiceChain:
805 type: OS::TripleO::Services
808 Services: {get_param: ControllerServices}
809 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
812 type: OS::Heat::ResourceGroup
815 count: {get_param: ControllerCount}
816 removal_policies: {get_param: ControllerRemovalPolicies}
818 type: OS::TripleO::Controller
820 AdminPassword: {get_param: AdminPassword}
821 AodhPassword: {get_param: AodhPassword}
822 CloudDomain: {get_param: CloudDomain}
823 ControlVirtualInterface: {get_param: ControlVirtualInterface}
824 controllerExtraConfig: {get_param: controllerExtraConfig}
825 CorosyncIPv6: {get_param: CorosyncIPv6}
826 Debug: {get_param: Debug}
827 EnableFencing: {get_param: EnableFencing}
828 ManageFirewall: {get_param: ManageFirewall}
829 PurgeFirewallRules: {get_param: PurgeFirewallRules}
830 EnableGalera: {get_param: EnableGalera}
831 EnableCephStorage: {get_param: ControllerEnableCephStorage}
832 EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage}
833 ExtraConfig: {get_param: ExtraConfig}
834 FencingConfig: {get_param: FencingConfig}
835 Flavor: {get_param: OvercloudControlFlavor}
836 GnocchiPassword: {get_param: GnocchiPassword}
837 GnocchiBackend: {get_param: GnocchiBackend}
838 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
839 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
840 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
841 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
842 HorizonSecret: {get_resource: HorizonSecret}
843 Image: {get_param: controllerImage}
844 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
845 InstanceNameTemplate: {get_param: InstanceNameTemplate}
846 KeyName: {get_param: KeyName}
847 MemcachedIPv6: {get_param: MemcachedIPv6}
848 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
849 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
850 MysqlMaxConnections: {get_param: MysqlMaxConnections}
851 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
852 NeutronTenantMtu: {get_param: NeutronTenantMtu}
853 NeutronPublicInterface: {get_param: NeutronPublicInterface}
854 NeutronPassword: {get_param: NeutronPassword}
855 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
856 NovaIPv6: {get_param: NovaIPv6}
857 NovaPassword: {get_param: NovaPassword}
858 PcsdPassword: {get_resource: PcsdPassword}
859 PublicVirtualInterface: {get_param: PublicVirtualInterface}
860 RabbitPassword: {get_param: RabbitPassword}
861 RabbitUserName: {get_param: RabbitUserName}
862 RabbitCookie: {get_attr: [RabbitCookie, value]}
863 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
864 RabbitClientPort: {get_param: RabbitClientPort}
865 RedisPassword: {get_param: RedisPassword}
866 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
867 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
868 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
869 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
870 SwiftHashSuffix: {get_param: SwiftHashSuffix}
871 SwiftMountCheck: {get_param: SwiftMountCheck}
872 SwiftMinPartHours: {get_param: SwiftMinPartHours}
873 SwiftPartPower: {get_param: SwiftPartPower}
874 SwiftReplicas: { get_param: SwiftReplicas}
875 TimeZone: {get_param: TimeZone}
876 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]} # deprecated. Use per service VIP settings instead now.
877 PublicVirtualIP: {get_attr: [VipMap, net_ip_map, external]}
878 ServiceNetMap: {get_param: ServiceNetMap}
879 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
880 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
881 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
882 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
883 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
884 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
885 HeatApiVirtualIPUri: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
886 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
887 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
888 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
889 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
890 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
891 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
892 UpdateIdentifier: {get_param: UpdateIdentifier}
895 template: {get_param: ControllerHostnameFormat}
897 '%stackname%': {get_param: 'OS::stack_name'}
899 ServerMetadata: {get_param: ServerMetadata}
900 SchedulerHints: {get_param: ControllerSchedulerHints}
901 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
904 type: OS::TripleO::Services
906 Services: {get_param: ComputeServices}
907 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
910 type: OS::Heat::ResourceGroup
913 count: {get_param: ComputeCount}
914 removal_policies: {get_param: ComputeRemovalPolicies}
916 type: OS::TripleO::Compute
918 AdminPassword: {get_param: AdminPassword}
919 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
920 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
921 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
922 Debug: {get_param: Debug}
923 ExtraConfig: {get_param: ExtraConfig}
924 Flavor: {get_param: OvercloudComputeFlavor}
925 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
926 Image: {get_param: NovaImage}
927 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
928 KeyName: {get_param: KeyName}
929 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
930 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
931 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
932 NeutronTenantMtu: {get_param: NeutronTenantMtu}
933 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
934 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
935 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
936 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
937 NeutronNetworkType: {get_param: NeutronNetworkType}
938 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
939 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
940 NeutronPassword: {get_param: NeutronPassword}
941 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
942 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
943 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
944 NeutronCorePlugin: {get_param: NeutronCorePlugin}
945 NeutronServicePlugins: {get_param: NeutronServicePlugins}
946 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
947 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
948 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
949 # L3 HA and Failover is not relevant for Computes, should be removed
950 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
951 NeutronL3HA: {get_param: NeutronL3HA}
952 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
953 NovaComputeDriver: {get_param: NovaComputeDriver}
954 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
955 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
956 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
957 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
958 NovaIPv6: {get_param: NovaIPv6}
959 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
960 NovaPassword: {get_param: NovaPassword}
961 NovaOVSBridge: {get_param: NovaOVSBridge}
962 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
963 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
964 RabbitPassword: {get_param: RabbitPassword}
965 RabbitUserName: {get_param: RabbitUserName}
966 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
967 RabbitClientPort: {get_param: RabbitClientPort}
968 SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
969 SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
970 ServiceNetMap: {get_param: ServiceNetMap}
971 TimeZone: {get_param: TimeZone}
972 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
973 UpdateIdentifier: {get_param: UpdateIdentifier}
976 template: {get_param: ComputeHostnameFormat}
978 '%stackname%': {get_param: 'OS::stack_name'}
979 CloudDomain: {get_param: CloudDomain}
980 ServerMetadata: {get_param: ServerMetadata}
981 SchedulerHints: {get_param: NovaComputeSchedulerHints}
983 ServiceConfigSettings: {get_attr: [ComputeServiceChain, config_settings]}
987 type: OS::Heat::ResourceGroup
990 count: {get_param: BlockStorageCount}
991 removal_policies: {get_param: BlockStorageRemovalPolicies}
993 type: OS::TripleO::BlockStorage
995 Debug: {get_param: Debug}
996 Image: {get_param: BlockStorageImage}
997 CinderISCSIHelper: {get_param: CinderISCSIHelper}
998 CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
999 # Purpose of the dedicated BlockStorage nodes should be to use their local LVM
1000 CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
1001 CinderPassword: {get_param: CinderPassword}
1002 KeyName: {get_param: KeyName}
1003 Flavor: {get_param: OvercloudBlockStorageFlavor}
1004 VirtualIP: {get_attr: [VipMap, net_ip_map, ctlplane]}
1005 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1006 RabbitPassword: {get_param: RabbitPassword}
1007 RabbitUserName: {get_param: RabbitUserName}
1008 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
1009 RabbitClientPort: {get_param: RabbitClientPort}
1010 TimeZone: {get_param: TimeZone}
1011 NtpServer: {get_param: NtpServer}
1012 UpdateIdentifier: {get_param: UpdateIdentifier}
1015 template: {get_param: BlockStorageHostnameFormat}
1017 '%stackname%': {get_param: 'OS::stack_name'}
1018 ServiceNetMap: {get_param: ServiceNetMap}
1019 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1020 ExtraConfig: {get_param: ExtraConfig}
1021 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
1022 CloudDomain: {get_param: CloudDomain}
1023 ServerMetadata: {get_param: ServerMetadata}
1024 SchedulerHints: {get_param: BlockStorageSchedulerHints}
1025 NodeIndex: '%index%'
1027 ObjectStorageServiceChain:
1028 type: OS::TripleO::Services
1030 Services: {get_param: ObjectStorageServices}
1031 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1034 type: OS::Heat::ResourceGroup
1035 depends_on: Networks
1037 count: {get_param: ObjectStorageCount}
1038 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1040 type: OS::TripleO::ObjectStorage
1042 KeyName: {get_param: KeyName}
1043 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1044 HashSuffix: {get_param: SwiftHashSuffix}
1045 MountCheck: {get_param: SwiftMountCheck}
1046 MinPartHours: {get_param: SwiftMinPartHours}
1047 PartPower: {get_param: SwiftPartPower}
1048 Image: {get_param: SwiftStorageImage}
1049 Replicas: { get_param: SwiftReplicas}
1050 TimeZone: {get_param: TimeZone}
1051 UpdateIdentifier: {get_param: UpdateIdentifier}
1052 ServiceNetMap: {get_param: ServiceNetMap}
1055 template: {get_param: ObjectStorageHostnameFormat}
1057 '%stackname%': {get_param: 'OS::stack_name'}
1058 ExtraConfig: {get_param: ExtraConfig}
1059 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1060 CloudDomain: {get_param: CloudDomain}
1061 ServerMetadata: {get_param: ServerMetadata}
1062 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1063 NodeIndex: '%index%'
1064 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, config_settings]}
1066 CephStorageServiceChain:
1067 type: OS::TripleO::Services
1069 Services: {get_param: CephStorageServices}
1070 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1073 type: OS::Heat::ResourceGroup
1074 depends_on: Networks
1076 count: {get_param: CephStorageCount}
1077 removal_policies: {get_param: CephStorageRemovalPolicies}
1079 type: OS::TripleO::CephStorage
1081 Image: {get_param: CephStorageImage}
1082 KeyName: {get_param: KeyName}
1083 Flavor: {get_param: OvercloudCephStorageFlavor}
1084 ServiceNetMap: {get_param: ServiceNetMap}
1085 TimeZone: {get_param: TimeZone}
1086 UpdateIdentifier: {get_param: UpdateIdentifier}
1089 template: {get_param: CephStorageHostnameFormat}
1091 '%stackname%': {get_param: 'OS::stack_name'}
1092 ExtraConfig: {get_param: ExtraConfig}
1093 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1094 CloudDomain: {get_param: CloudDomain}
1095 ServerMetadata: {get_param: ServerMetadata}
1096 SchedulerHints: {get_param: CephStorageSchedulerHints}
1097 NodeIndex: '%index%'
1098 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1100 ControllerIpListMap:
1101 type: OS::TripleO::Network::Ports::NetIpListMap
1103 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1104 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1105 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1106 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1107 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1108 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1109 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1112 type: OS::TripleO::AllNodes::SoftwareConfig
1114 compute_hosts: {get_attr: [Compute, hosts_entry]}
1115 controller_hosts: {get_attr: [Controller, hosts_entry]}
1116 controller_ips: {get_attr: [Controller, ip_address]}
1117 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1118 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1119 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1120 controller_names: {get_attr: [Controller, hostname]}
1121 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1122 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1123 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1124 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1125 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1126 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1127 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1128 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1129 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1130 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1131 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1132 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1133 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1134 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1135 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1136 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1137 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1138 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1139 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1140 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1141 DeployIdentifier: {get_param: DeployIdentifier}
1142 UpdateIdentifier: {get_param: UpdateIdentifier}
1145 type: OS::Heat::RandomString
1149 MysqlClusterUniquePart:
1150 type: OS::Heat::RandomString
1155 type: OS::Heat::RandomString
1158 salt: {get_param: RabbitCookieSalt}
1160 # creates the network architecture
1162 type: OS::TripleO::Network
1165 type: OS::Neutron::Port
1166 depends_on: Networks
1168 name: control_virtual_ip
1169 network: {get_param: NeutronControlPlaneID}
1170 fixed_ips: {get_param: ControlFixedIPs}
1171 replacement_policy: AUTO
1174 depends_on: Networks
1175 type: OS::TripleO::Network::Ports::RedisVipPort
1177 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1178 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1179 PortName: redis_virtual_ip
1180 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1183 # The public VIP is on the External net, falls back to ctlplane
1185 depends_on: Networks
1186 type: OS::TripleO::Network::Ports::ExternalVipPort
1188 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1189 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1190 PortName: public_virtual_ip
1191 FixedIPs: {get_param: PublicVirtualFixedIPs}
1193 InternalApiVirtualIP:
1194 depends_on: Networks
1195 type: OS::TripleO::Network::Ports::InternalApiVipPort
1197 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1198 PortName: internal_api_virtual_ip
1199 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1202 depends_on: Networks
1203 type: OS::TripleO::Network::Ports::StorageVipPort
1205 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1206 PortName: storage_virtual_ip
1207 FixedIPs: {get_param: StorageVirtualFixedIPs}
1209 StorageMgmtVirtualIP:
1210 depends_on: Networks
1211 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1213 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1214 PortName: storage_management_virtual_ip
1215 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1218 type: OS::TripleO::Network::Ports::NetVipMap
1220 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1221 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1222 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1223 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1224 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1225 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1226 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1227 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1228 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1229 # No tenant or management VIP required
1232 type: OS::TripleO::VipConfig
1235 type: OS::Heat::StructuredDeployments
1238 config: {get_resource: VipConfig}
1239 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1241 # service VIP mappings
1242 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1243 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1244 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1245 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1246 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1247 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1248 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1249 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1250 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1251 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1252 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1253 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1254 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1255 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1256 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1257 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1258 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1259 # direct configuration of Virtual IPs for each network
1260 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1261 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1262 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1263 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1264 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1265 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1267 ControllerBootstrapNodeConfig:
1268 type: OS::TripleO::BootstrapNode::SoftwareConfig
1270 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1271 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1273 ControllerBootstrapNodeDeployment:
1274 type: OS::Heat::StructuredDeployments
1276 name: ControllerBootstrapNodeDeployment
1277 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1278 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1280 ControllerSwiftDeployment:
1281 type: OS::Heat::StructuredDeployments
1283 name: ControllerSwiftDeployment
1284 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1285 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1287 ObjectStorageSwiftDeployment:
1288 type: OS::Heat::StructuredDeployments
1290 name: ObjectStorageSwiftDeployment
1291 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1292 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1294 SwiftDevicesAndProxyConfig:
1295 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1297 controller_swift_devices: {get_attr: [Controller, swift_device]}
1298 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1299 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1301 ComputeCephDeployment:
1302 type: OS::Heat::StructuredDeployments
1304 name: ComputeCephDeployment
1305 config: {get_attr: [CephClusterConfig, config_id]}
1306 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1308 ControllerCephDeployment:
1309 type: OS::Heat::StructuredDeployments
1311 name: ControllerCephDeployment
1312 config: {get_attr: [CephClusterConfig, config_id]}
1313 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1315 CephStorageCephDeployment:
1316 type: OS::Heat::StructuredDeployments
1318 name: CephStorageCephDeployment
1319 config: {get_attr: [CephClusterConfig, config_id]}
1320 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1323 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1325 ceph_storage_count: {get_param: CephStorageCount}
1326 ceph_fsid: {get_param: CephClusterFSID}
1327 ceph_mon_key: {get_param: CephMonKey}
1328 ceph_admin_key: {get_param: CephAdminKey}
1329 ceph_client_key: {get_param: CephClientKey}
1330 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1331 ceph_mon_names: {get_attr: [Controller, hostname]}
1332 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1334 ControllerAllNodesDeployment:
1335 type: OS::Heat::StructuredDeployments
1337 name: ControllerAllNodesDeployment
1338 config: {get_attr: [allNodesConfig, config_id]}
1339 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1341 ComputeAllNodesDeployment:
1342 type: OS::Heat::StructuredDeployments
1344 name: ComputeAllNodesDeployment
1345 config: {get_attr: [allNodesConfig, config_id]}
1346 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1348 BlockStorageAllNodesDeployment:
1349 type: OS::Heat::StructuredDeployments
1351 name: BlockStorageAllNodesDeployment
1352 config: {get_attr: [allNodesConfig, config_id]}
1353 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1355 ObjectStorageAllNodesDeployment:
1356 type: OS::Heat::StructuredDeployments
1358 name: ObjectStorageAllNodesDeployment
1359 config: {get_attr: [allNodesConfig, config_id]}
1360 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1362 CephStorageAllNodesDeployment:
1363 type: OS::Heat::StructuredDeployments
1365 name: CephStorageAllNodesDeployment
1366 config: {get_attr: [allNodesConfig, config_id]}
1367 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1369 # All Nodes Validations
1370 AllNodesValidationConfig:
1371 type: OS::TripleO::AllNodes::Validation
1376 - - {get_attr: [Controller, resource.0.external_ip_address]}
1377 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1378 - {get_attr: [Controller, resource.0.storage_ip_address]}
1379 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1380 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1382 ControllerAllNodesValidationDeployment:
1383 type: OS::Heat::StructuredDeployments
1384 depends_on: ControllerAllNodesDeployment
1386 name: ControllerAllNodesValidationDeployment
1387 config: {get_resource: AllNodesValidationConfig}
1388 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1390 ComputeAllNodesValidationDeployment:
1391 type: OS::Heat::StructuredDeployments
1392 depends_on: ComputeAllNodesDeployment
1394 name: ComputeAllNodesValidationDeployment
1395 config: {get_resource: AllNodesValidationConfig}
1396 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1398 BlockStorageAllNodesValidationDeployment:
1399 type: OS::Heat::StructuredDeployments
1400 depends_on: BlockStorageAllNodesDeployment
1402 name: BlockStorageAllNodesValidationDeployment
1403 config: {get_resource: AllNodesValidationConfig}
1404 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1406 ObjectStorageAllNodesValidationDeployment:
1407 type: OS::Heat::StructuredDeployments
1408 depends_on: ObjectStorageAllNodesDeployment
1410 name: ObjectStorageAllNodesValidationDeployment
1411 config: {get_resource: AllNodesValidationConfig}
1412 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1414 CephStorageAllNodesValidationDeployment:
1415 type: OS::Heat::StructuredDeployments
1416 depends_on: CephStorageAllNodesDeployment
1418 name: CephStorageAllNodesValidationDeployment
1419 config: {get_resource: AllNodesValidationConfig}
1420 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1423 type: OS::TripleO::Tasks::UpdateWorkflow
1425 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1426 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1427 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1428 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1429 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1431 deploy_identifier: {get_param: DeployIdentifier}
1432 update_identifier: {get_param: UpdateIdentifier}
1434 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1435 # the nested template may configure each role differently (or not at all)
1436 AllNodesExtraConfig:
1437 type: OS::TripleO::AllNodesExtraConfig
1440 - ComputeAllNodesValidationDeployment
1441 - BlockStorageAllNodesValidationDeployment
1442 - ObjectStorageAllNodesValidationDeployment
1443 - CephStorageAllNodesValidationDeployment
1444 - ControllerAllNodesValidationDeployment
1446 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1447 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1448 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1449 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1450 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1452 # Nested stack deployment runs after all other controller deployments
1453 ControllerNodesPostDeployment:
1454 type: OS::TripleO::ControllerPostDeployment
1455 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1457 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1458 NodeConfigIdentifiers:
1459 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1460 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1461 deployment_identifier: {get_param: DeployIdentifier}
1462 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1464 ComputeNodesPostDeployment:
1465 type: OS::TripleO::ComputePostDeployment
1466 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1468 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1469 NodeConfigIdentifiers:
1470 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1471 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1472 deployment_identifier: {get_param: DeployIdentifier}
1473 StepConfig: {get_attr: [ComputeServiceChain, step_config]}
1475 ObjectStorageNodesPostDeployment:
1476 type: OS::TripleO::ObjectStoragePostDeployment
1477 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1479 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1480 NodeConfigIdentifiers:
1481 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1482 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1483 deployment_identifier: {get_param: DeployIdentifier}
1484 StepConfig: {get_attr: [ObjectStorageServiceChain, step_config]}
1486 BlockStorageNodesPostDeployment:
1487 type: OS::TripleO::BlockStoragePostDeployment
1488 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1490 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1491 NodeConfigIdentifiers:
1492 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1493 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1494 deployment_identifier: {get_param: DeployIdentifier}
1496 CephStorageNodesPostDeployment:
1497 type: OS::TripleO::CephStoragePostDeployment
1498 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1500 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1501 NodeConfigIdentifiers:
1502 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1503 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1504 deployment_identifier: {get_param: DeployIdentifier}
1505 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1509 description: URL for the Overcloud Keystone service
1510 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1512 description: Keystone Admin VIP endpoint
1513 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1515 description: Controller VIP for public API endpoints
1516 value: {get_attr: [VipMap, net_ip_map, external]}
1518 description: VIP for Aodh API internal endpoint
1519 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1520 CeilometerInternalVip:
1521 description: VIP for Ceilometer API internal endpoint
1522 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1524 description: VIP for Cinder API internal endpoint
1525 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1527 description: VIP for Glance API internal endpoint
1528 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1530 description: VIP for Gnocchi API internal endpoint
1531 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1533 description: VIP for Heat API internal endpoint
1534 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1535 KeystoneInternalVip:
1536 description: VIP for Keystone API internal endpoint
1537 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1539 description: VIP for Neutron API internal endpoint
1540 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1542 description: VIP for Nova API internal endpoint
1543 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1545 description: VIP for Sahara API internal endpoint
1546 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1548 description: VIP for Swift Proxy internal endpoint
1549 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1552 Mapping of the resources with the needed info for their endpoints.
1553 This includes the protocol used, the IP, port and also a full
1554 representation of the URI.
1555 value: {get_attr: [EndpointMap, endpoint_map]}
1558 The content that should be appended to your /etc/hosts if you want to get
1559 hostname-based access to the deployed nodes (useful for testing without
1561 value: {get_attr: [allNodesConfig, hosts_entries]}