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 CinderEnableRbdBackend:
71 description: Whether to enable or not the Rbd backend for Cinder
75 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
79 description: Should be used for arbitrary ips.
83 description: Enable IPv6 in Corosync
87 description: Set to True to enable debugging on all services.
91 description: Syslog address where HAproxy will send its log
95 description: A list of IP/Hostname allowed to connect to horizon
96 type: comma_delimited_list
98 default: 'REBUILD_PRESERVE_EPHEMERAL'
99 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
101 InternalApiVirtualFixedIPs:
104 Control the IP allocation for the InternalApiVirtualInterface port. E.g.
105 [{'ip_address':'1.2.3.4'}]
109 description: Name of an existing Nova key pair to enable SSH access to the instances
112 - custom_constraint: nova.keypair
115 description: Enable IPv6 features in Memcached.
117 NeutronBridgeMappings:
119 The OVS logical->physical bridge mappings to use. See the Neutron
120 documentation for details. Defaults to mapping br-ex - the external
121 bridge on hosts - to a physical name 'datacentre' which can be used
122 to create provider networks (and we use this for the default floating
123 network) - if changing this either use different post-install network
124 scripts or be sure to keep 'datacentre' as a mapping network name.
125 type: comma_delimited_list
126 default: "datacentre:br-ex"
127 NeutronControlPlaneID:
130 description: Neutron ID or name for ctlplane network.
131 NeutronEnableTunnelling:
137 Enable/disable the L2 population feature in the Neutron agents.
140 type: comma_delimited_list
141 default: 'datacentre'
143 If set, flat networks to configure in neutron plugins. Defaults to
144 'datacentre' to permit external network creation.
147 description: The tenant network type for Neutron.
148 type: comma_delimited_list
150 description: The password for the neutron service account, used by neutron agents.
153 NeutronPublicInterface:
155 description: What interface to bridge onto br-ex for network nodes.
157 NeutronMetadataProxySharedSecret:
158 description: Shared secret to prevent spoofing
163 The default MTU for tenant networks. For VXLAN/GRE tunneling, this should
164 be at least 50 bytes smaller than the MTU on the physical network. This
165 value will be used to set the MTU on the virtual Ethernet device.
166 This value will be used to construct the NeutronDnsmasqOptions, since that
167 will determine the MTU that is assigned to the VM host through DHCP.
173 The tunnel types for the Neutron tenant network.
174 type: comma_delimited_list
175 type: comma_delimited_list
179 The core plugin for Neutron. The value should be the entrypoint to be loaded
180 from neutron.core_plugins namespace.
182 NeutronServicePlugins:
183 default: "router,qos"
185 Comma-separated list of service plugin entrypoints to be loaded from the
186 neutron.service_plugins namespace.
187 type: comma_delimited_list
189 default: "vxlan,vlan,flat,gre"
191 Comma-separated list of network type driver entrypoints to be loaded.
192 type: comma_delimited_list
193 NeutronMechanismDrivers:
194 default: 'openvswitch'
196 The mechanism drivers for the Neutron tenant network.
197 type: comma_delimited_list
198 type: comma_delimited_list
199 NeutronAgentExtensions:
202 Comma-separated list of extensions enabled for the Neutron agents.
203 type: comma_delimited_list
204 NeutronAllowL3AgentFailover:
206 description: Allow automatic l3-agent failover
210 description: Whether to enable l3-agent HA
214 description: Enable IPv6 features in Nova
217 description: The password for the nova service account, used by nova-api.
220 #TODO(ccamacho): Remove after landing Ntp in all roles
223 description: Comma-separated list of ntp servers
224 type: comma_delimited_list
225 PublicVirtualFixedIPs:
228 Control the IP allocation for the PublicVirtualInterface port. E.g.
229 [{'ip_address':'1.2.3.4'}]
234 description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
237 description: The username for RabbitMQ
240 description: The password for RabbitMQ
246 Rabbit client subscriber parameter to specify
247 an SSL connection to the RabbitMQ host.
251 description: Set rabbit subscriber port, change this if using SSL
254 description: The password for Redis
257 StorageVirtualFixedIPs:
260 Control the IP allocation for the StorageVirtualInterface port. E.g.
261 [{'ip_address':'1.2.3.4'}]
263 StorageMgmtVirtualFixedIPs:
266 Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
267 [{'ip_address':'1.2.3.4'}]
271 description: The timezone to be set on nodes.
274 default: 'localdomain'
277 The DNS domain used for the hosts. This should match the dhcp_domain
278 configured in the Undercloud neutron. Defaults to localdomain.
282 Extra properties or metadata passed to Nova for the created nodes in
283 the overcloud. It's accessible via the Nova metadata API.
286 # Controller-specific params
292 controllerExtraConfig:
295 Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
299 default: overcloud-full
301 - custom_constraint: glance.image
302 OvercloudControlFlavor:
303 description: Flavor for control nodes to request when deploying.
307 - custom_constraint: nova.flavor
308 ControlVirtualInterface:
310 description: Interface where virtual ip will be assigned.
314 description: Whether to enable fencing in Pacemaker or not.
318 description: Whether to use Galera instead of regular MariaDB.
320 ControllerEnableCephStorage:
322 description: Whether to deploy Ceph Storage (OSD) on the Controller
324 ControllerSchedulerHints:
326 description: Optional scheduler hints to pass to nova
331 Additional configuration to inject into the cluster. The format required
332 may be implementation specific, e.g puppet hieradata. Any role specific
333 ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
338 Pacemaker fencing configuration. The JSON should have
339 the following structure:
343 "agent": "AGENT_NAME",
344 "host_mac": "HOST_MAC_ADDRESS",
345 "params": {"PARAM_NAME": "PARAM_VALUE"}
353 "agent": "fence_xvm",
354 "host_mac": "52:54:00:aa:bb:cc",
356 "multicast_address": "225.0.0.12",
357 "port": "baremetal_0",
359 "manage_key_file": true,
360 "key_file": "/etc/fence_xvm.key",
361 "key_file_password": "abcdef"
369 description: The short name of the Gnocchi backend to use. Should be one
370 of swift, rbd or file
373 - allowed_values: ['swift', 'file', 'rbd']
374 GnocchiIndexerBackend:
376 description: The short name of the Gnocchi indexer backend to use.
379 description: The password for the gnocchi service account.
382 InstanceNameTemplate:
383 default: 'instance-%08x'
384 description: Template string to be used to generate instance names
388 description: Whether to manage IPtables rules.
392 description: Whether IPtables rules should be purged before setting up the ones.
394 MysqlInnodbBufferPoolSize:
396 Specifies the size of the buffer pool in megabytes. Setting to
397 zero should be interpreted as "no value" and will defer to the
402 description: Configures MySQL max_connections config setting
405 PublicVirtualInterface:
408 Specifies the interface where the public-facing virtual ip will be assigned.
409 This should be int_public when a VLAN is being used.
412 description: A random string to be used as a salt when hashing to determine mappings in the ring.
418 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
421 description: Partition Power to use when building Swift rings
426 description: How many replicas to use in the swift rings.
428 # Compute-specific params
429 CeilometerComputeAgent:
430 description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
434 - allowed_values: ['', Present]
438 HypervisorNeutronPhysicalBridge:
441 An OVS bridge to create on each hypervisor. This defaults to br-ex the
442 same as the control plane nodes, as we have a uniform configuration of
443 the openvswitch agent. Typically should not need to be changed.
445 HypervisorNeutronPublicInterface:
447 description: What interface to add to the HypervisorNeutronPhysicalBridge.
449 NeutronNetworkVLANRanges:
450 default: 'datacentre:1:1000'
452 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
453 Neutron documentation for permitted values. Defaults to permitting any
454 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
455 type: comma_delimited_list
458 default: libvirt.LibvirtDriver
459 NovaComputeExtraConfig:
462 NovaCompute specific configuration to inject into the cluster. Same
463 structure as ExtraConfig.
465 NovaComputeLibvirtType:
468 NovaComputeLibvirtVifDriver:
470 description: Libvirt VIF driver configuration for the network
472 NovaComputeSchedulerHints:
474 description: Optional scheduler hints to pass to nova
476 NovaEnableRbdBackend:
478 description: Whether to enable or not the Rbd backend for Nova
482 default: overcloud-full
484 - custom_constraint: glance.image
487 description: Name of integration bridge used by Open vSwitch
489 NovaSecurityGroupAPI:
491 description: The full class name of the security API class
493 OvercloudComputeFlavor:
494 description: Use this flavor
498 - custom_constraint: nova.flavor
501 NeutronTenantNetwork: tenant
502 CeilometerApiNetwork: internal_api
503 AodhApiNetwork: internal_api
504 GnocchiApiNetwork: internal_api
505 MongoDbNetwork: internal_api
506 CinderApiNetwork: internal_api
507 CinderIscsiNetwork: storage
508 GlanceApiNetwork: storage
509 GlanceRegistryNetwork: internal_api
510 KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
511 KeystonePublicApiNetwork: internal_api
512 NeutronApiNetwork: internal_api
513 HeatApiNetwork: internal_api
514 NovaApiNetwork: internal_api
515 NovaMetadataNetwork: internal_api
516 NovaVncProxyNetwork: internal_api
517 SwiftMgmtNetwork: storage_mgmt
518 SwiftProxyNetwork: storage
519 SaharaApiNetwork: internal_api
520 HorizonNetwork: internal_api
521 MemcachedNetwork: internal_api
522 RabbitMqNetwork: internal_api
523 RedisNetwork: internal_api
524 MysqlNetwork: internal_api
525 CephClusterNetwork: storage_mgmt
526 CephPublicNetwork: storage
527 ControllerHostnameResolveNetwork: internal_api
528 ComputeHostnameResolveNetwork: internal_api
529 BlockStorageHostnameResolveNetwork: internal_api
530 ObjectStorageHostnameResolveNetwork: internal_api
531 CephStorageHostnameResolveNetwork: storage
532 description: Mapping of service_name -> network name. Typically set
533 via parameter_defaults in the resource registry.
538 - OS::TripleO::Services::CinderApi
539 - OS::TripleO::Services::CinderScheduler
540 - OS::TripleO::Services::CinderVolume
541 - OS::TripleO::Services::Keystone
542 - OS::TripleO::Services::GlanceApi
543 - OS::TripleO::Services::GlanceRegistry
544 - OS::TripleO::Services::HeatApi
545 - OS::TripleO::Services::HeatApiCfn
546 - OS::TripleO::Services::HeatApiCloudwatch
547 - OS::TripleO::Services::HeatEngine
548 - OS::TripleO::Services::NeutronDhcpAgent
549 - OS::TripleO::Services::NeutronL3Agent
550 - OS::TripleO::Services::NeutronMetadataAgent
551 - OS::TripleO::Services::NeutronServer
552 - OS::TripleO::Services::NeutronCorePlugin
553 - OS::TripleO::Services::NeutronOvsAgent
554 - OS::TripleO::Services::RabbitMQ
555 - OS::TripleO::Services::HAproxy
556 - OS::TripleO::Services::Keepalived
557 - OS::TripleO::Services::Memcached
558 - OS::TripleO::Services::Redis
559 - OS::TripleO::Services::NovaConductor
560 - OS::TripleO::Services::MongoDb
561 - OS::TripleO::Services::NovaApi
562 - OS::TripleO::Services::NovaScheduler
563 - OS::TripleO::Services::NovaConsoleauth
564 - OS::TripleO::Services::NovaVncproxy
565 - OS::TripleO::Services::Ntp
566 - OS::TripleO::Services::SwiftProxy
567 - OS::TripleO::Services::SwiftStorage
568 - OS::TripleO::Services::Snmp
569 description: A list of service resources (configured in the Heat
570 resource_registry) which represent nested stacks
571 for each service that should get installed on the Controllers.
572 type: comma_delimited_list
576 - OS::TripleO::Services::NovaCompute
577 - OS::TripleO::Services::Ntp
578 - OS::TripleO::Services::Snmp
579 description: A list of service resources (configured in the Heat
580 resource_registry) which represent nested stacks
581 for each service that should get installed on the Compute Nodes.
582 type: comma_delimited_list
584 # Block storage specific parameters
589 default: overcloud-full
591 OvercloudBlockStorageFlavor:
592 description: Flavor for block storage nodes to request when deploying.
596 - custom_constraint: nova.flavor
597 BlockStorageExtraConfig:
600 BlockStorage specific configuration to inject into the cluster. Same
601 structure as ExtraConfig.
603 BlockStorageSchedulerHints:
605 description: Optional scheduler hints to pass to nova
607 BlockStorageServices:
609 - OS::TripleO::Services::CinderVolume
610 description: A list of service resources (configured in the Heat
611 resource_registry) which represent nested stacks
612 for each service that should get installed on the BlockStorage nodes.
613 type: comma_delimited_list
615 # Object storage specific parameters
619 OvercloudSwiftStorageFlavor:
620 description: Flavor for Swift storage nodes to request when deploying.
624 - custom_constraint: nova.flavor
626 default: overcloud-full
628 ObjectStorageExtraConfig:
631 ObjectStorage specific configuration to inject into the cluster. Same
632 structure as ExtraConfig.
634 ObjectStorageSchedulerHints:
636 description: Optional scheduler hints to pass to nova
638 ObjectStorageServices:
640 - OS::TripleO::Services::Ntp
641 - OS::TripleO::Services::SwiftStorage
642 - OS::TripleO::Services::Snmp
643 description: A list of service resources (configured in the Heat
644 resource_registry) which represent nested stacks
645 for each service that should get installed on the ObjectStorage nodes.
646 Note this role currently only supports steps 2, 3 and 4 configuration.
647 type: comma_delimited_list
650 # Ceph storage specific parameters
655 default: overcloud-full
657 OvercloudCephStorageFlavor:
659 description: Flavor for Ceph storage nodes to request when deploying.
662 - custom_constraint: nova.flavor
663 CephStorageExtraConfig:
666 CephStorage specific configuration to inject into the cluster. Same
667 structure as ExtraConfig.
669 CephStorageSchedulerHints:
671 description: Optional scheduler hints to pass to nova
675 - OS::TripleO::Services::Ntp
676 description: A list of service resources (configured in the Heat
677 resource_registry) which represent nested stacks
678 for each service that should get installed on the CephStorage nodes.
679 type: comma_delimited_list
681 # Hostname format for each role
682 # Note %index% is translated into the index of the node, e.g 0/1/2 etc
683 # and %stackname% is replaced with OS::stack_name in the template below.
684 # If you want to use the heat generated names, pass '' (empty string).
685 ControllerHostnameFormat:
687 description: Format for Controller node hostnames
688 default: '%stackname%-controller-%index%'
689 ComputeHostnameFormat:
691 description: Format for Compute node hostnames
692 default: '%stackname%-novacompute-%index%'
693 BlockStorageHostnameFormat:
695 description: Format for BlockStorage node hostnames
696 default: '%stackname%-blockstorage-%index%'
697 ObjectStorageHostnameFormat:
699 description: Format for SwiftStorage node hostnames
700 default: '%stackname%-objectstorage-%index%'
701 CephStorageHostnameFormat:
703 description: Format for CephStorage node hostnames
704 default: '%stackname%-cephstorage-%index%'
706 # Identifiers to trigger tasks on nodes
711 Setting to a previously unused value during stack-update will trigger
712 package update on all nodes
717 Setting this to a unique value will re-run any deployment tasks which
718 perform configuration on a Heat stack-update.
720 # If you want to remove a specific node from a resource group, you can pass
721 # the node name or id as a <Group>RemovalPolicies parameter, for example:
722 # ComputeRemovalPolicies: [{'resource_list': ['0']}]
723 ControllerRemovalPolicies:
727 List of resources to be removed from ControllerResourceGroup when
728 doing an update which requires removal of specific resources.
729 ComputeRemovalPolicies:
733 List of resources to be removed from ComputeResourceGroup when
734 doing an update which requires removal of specific resources.
735 BlockStorageRemovalPolicies:
739 List of resources to be removed from BlockStorageResourceGroup when
740 doing an update which requires removal of specific resources.
741 ObjectStorageRemovalPolicies:
745 List of resources to be removed from ObjectStorageResourceGroup when
746 doing an update which requires removal of specific resources.
747 CephStorageRemovalPolicies:
751 List of resources to be removed from CephStorageResourceGroup when
752 doing an update which requires removal of specific resources.
756 description: Do not use deprecated params, they will be removed.
758 - controllerExtraConfig
763 HeatAuthEncryptionKey:
764 type: OS::Heat::RandomString
767 type: OS::Heat::RandomString
772 type: OS::Heat::RandomString
777 type: OS::TripleO::EndpointMap
779 CloudName: {get_param: CloudName}
780 CeilometerApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
781 AodhApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
782 CinderApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
783 GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
784 GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
785 GnocchiApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
786 HeatApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
787 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
788 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
789 MysqlVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
790 NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
791 NovaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
792 SaharaApiVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
793 SwiftProxyVirtualIP: {get_attr: [VipMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
794 PublicVirtualIP: {get_attr: [VipMap, net_ip_uri_map, external]}
796 ControllerServiceChain:
797 type: OS::TripleO::Services
800 Services: {get_param: ControllerServices}
801 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
804 type: OS::Heat::ResourceGroup
807 count: {get_param: ControllerCount}
808 removal_policies: {get_param: ControllerRemovalPolicies}
810 type: OS::TripleO::Controller
812 AdminPassword: {get_param: AdminPassword}
813 AodhPassword: {get_param: AodhPassword}
814 CeilometerBackend: {get_param: CeilometerBackend}
815 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
816 CeilometerPassword: {get_param: CeilometerPassword}
817 CeilometerMeterDispatcher: {get_param: CeilometerMeterDispatcher}
818 CloudDomain: {get_param: CloudDomain}
819 ControlVirtualInterface: {get_param: ControlVirtualInterface}
820 controllerExtraConfig: {get_param: controllerExtraConfig}
821 CorosyncIPv6: {get_param: CorosyncIPv6}
822 Debug: {get_param: Debug}
823 EnableFencing: {get_param: EnableFencing}
824 ManageFirewall: {get_param: ManageFirewall}
825 PurgeFirewallRules: {get_param: PurgeFirewallRules}
826 EnableGalera: {get_param: EnableGalera}
827 EnableCephStorage: {get_param: ControllerEnableCephStorage}
828 ExtraConfig: {get_param: ExtraConfig}
829 FencingConfig: {get_param: FencingConfig}
830 Flavor: {get_param: OvercloudControlFlavor}
831 GnocchiPassword: {get_param: GnocchiPassword}
832 GnocchiBackend: {get_param: GnocchiBackend}
833 GnocchiIndexerBackend: {get_param: GnocchiIndexerBackend}
834 HAProxySyslogAddress: {get_param: HAProxySyslogAddress}
835 HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
836 HorizonAllowedHosts: {get_param: HorizonAllowedHosts}
837 HorizonSecret: {get_resource: HorizonSecret}
838 Image: {get_param: controllerImage}
839 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
840 InstanceNameTemplate: {get_param: InstanceNameTemplate}
841 KeyName: {get_param: KeyName}
842 MemcachedIPv6: {get_param: MemcachedIPv6}
843 MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
844 MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
845 MysqlMaxConnections: {get_param: MysqlMaxConnections}
846 MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
847 NeutronTenantMtu: {get_param: NeutronTenantMtu}
848 NeutronPublicInterface: {get_param: NeutronPublicInterface}
849 NeutronPassword: {get_param: NeutronPassword}
850 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
851 NovaIPv6: {get_param: NovaIPv6}
852 NovaPassword: {get_param: NovaPassword}
853 PcsdPassword: {get_resource: PcsdPassword}
854 PublicVirtualInterface: {get_param: PublicVirtualInterface}
855 RabbitPassword: {get_param: RabbitPassword}
856 RabbitUserName: {get_param: RabbitUserName}
857 RabbitCookie: {get_attr: [RabbitCookie, value]}
858 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
859 RabbitClientPort: {get_param: RabbitClientPort}
860 RedisPassword: {get_param: RedisPassword}
861 RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
862 RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
863 SwiftHashSuffix: {get_param: SwiftHashSuffix}
864 SwiftMinPartHours: {get_param: SwiftMinPartHours}
865 SwiftPartPower: {get_param: SwiftPartPower}
866 SwiftReplicas: { get_param: SwiftReplicas}
867 TimeZone: {get_param: TimeZone}
868 ServiceNetMap: {get_param: ServiceNetMap}
869 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
870 MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
871 UpdateIdentifier: {get_param: UpdateIdentifier}
874 template: {get_param: ControllerHostnameFormat}
876 '%stackname%': {get_param: 'OS::stack_name'}
878 ServerMetadata: {get_param: ServerMetadata}
879 SchedulerHints: {get_param: ControllerSchedulerHints}
880 ServiceConfigSettings: {get_attr: [ControllerServiceChain, config_settings]}
883 type: OS::TripleO::Services
885 Services: {get_param: ComputeServices}
886 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
889 type: OS::Heat::ResourceGroup
892 count: {get_param: ComputeCount}
893 removal_policies: {get_param: ComputeRemovalPolicies}
895 type: OS::TripleO::Compute
897 AdminPassword: {get_param: AdminPassword}
898 CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
899 CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
900 CeilometerPassword: {get_param: CeilometerPassword}
901 CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
902 CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
903 Debug: {get_param: Debug}
904 ExtraConfig: {get_param: ExtraConfig}
905 Flavor: {get_param: OvercloudComputeFlavor}
906 GlanceHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
907 Image: {get_param: NovaImage}
908 ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
909 KeyName: {get_param: KeyName}
910 KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
911 KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
912 NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
913 NeutronTenantMtu: {get_param: NeutronTenantMtu}
914 NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
915 NeutronEnableL2Pop : {get_param: NeutronEnableL2Pop}
916 NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
917 NeutronHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
918 NeutronNetworkType: {get_param: NeutronNetworkType}
919 NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
920 NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
921 NeutronPassword: {get_param: NeutronPassword}
922 NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
923 NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
924 NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
925 NeutronCorePlugin: {get_param: NeutronCorePlugin}
926 NeutronServicePlugins: {get_param: NeutronServicePlugins}
927 NeutronTypeDrivers: {get_param: NeutronTypeDrivers}
928 NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
929 NeutronAgentExtensions: {get_param: NeutronAgentExtensions}
930 # L3 HA and Failover is not relevant for Computes, should be removed
931 NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
932 NeutronL3HA: {get_param: NeutronL3HA}
933 NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
934 NovaComputeDriver: {get_param: NovaComputeDriver}
935 NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
936 NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
937 NovaComputeLibvirtVifDriver: {get_param: NovaComputeLibvirtVifDriver}
938 NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
939 NovaIPv6: {get_param: NovaIPv6}
940 NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
941 NovaPassword: {get_param: NovaPassword}
942 NovaOVSBridge: {get_param: NovaOVSBridge}
943 NovaSecurityGroupAPI: {get_param: NovaSecurityGroupAPI}
944 RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
945 RabbitPassword: {get_param: RabbitPassword}
946 RabbitUserName: {get_param: RabbitUserName}
947 RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
948 RabbitClientPort: {get_param: RabbitClientPort}
949 ServiceNetMap: {get_param: ServiceNetMap}
950 TimeZone: {get_param: TimeZone}
951 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
952 UpdateIdentifier: {get_param: UpdateIdentifier}
955 template: {get_param: ComputeHostnameFormat}
957 '%stackname%': {get_param: 'OS::stack_name'}
958 CloudDomain: {get_param: CloudDomain}
959 ServerMetadata: {get_param: ServerMetadata}
960 SchedulerHints: {get_param: NovaComputeSchedulerHints}
962 ServiceConfigSettings: {get_attr: [ComputeServiceChain, config_settings]}
964 BlockStorageServiceChain:
965 type: OS::TripleO::Services
967 Services: {get_param: BlockStorageServices}
968 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
971 type: OS::Heat::ResourceGroup
974 count: {get_param: BlockStorageCount}
975 removal_policies: {get_param: BlockStorageRemovalPolicies}
977 type: OS::TripleO::BlockStorage
979 Image: {get_param: BlockStorageImage}
980 KeyName: {get_param: KeyName}
981 Flavor: {get_param: OvercloudBlockStorageFlavor}
982 TimeZone: {get_param: TimeZone}
983 NtpServer: {get_param: NtpServer}
984 UpdateIdentifier: {get_param: UpdateIdentifier}
987 template: {get_param: BlockStorageHostnameFormat}
989 '%stackname%': {get_param: 'OS::stack_name'}
990 ServiceNetMap: {get_param: ServiceNetMap}
991 ExtraConfig: {get_param: ExtraConfig}
992 BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
993 CloudDomain: {get_param: CloudDomain}
994 ServerMetadata: {get_param: ServerMetadata}
995 SchedulerHints: {get_param: BlockStorageSchedulerHints}
997 ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, config_settings]}
999 ObjectStorageServiceChain:
1000 type: OS::TripleO::Services
1002 Services: {get_param: ObjectStorageServices}
1003 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1006 type: OS::Heat::ResourceGroup
1007 depends_on: Networks
1009 count: {get_param: ObjectStorageCount}
1010 removal_policies: {get_param: ObjectStorageRemovalPolicies}
1012 type: OS::TripleO::ObjectStorage
1014 KeyName: {get_param: KeyName}
1015 Flavor: {get_param: OvercloudSwiftStorageFlavor}
1016 HashSuffix: {get_param: SwiftHashSuffix}
1017 MinPartHours: {get_param: SwiftMinPartHours}
1018 PartPower: {get_param: SwiftPartPower}
1019 Image: {get_param: SwiftStorageImage}
1020 Replicas: { get_param: SwiftReplicas}
1021 TimeZone: {get_param: TimeZone}
1022 UpdateIdentifier: {get_param: UpdateIdentifier}
1023 ServiceNetMap: {get_param: ServiceNetMap}
1026 template: {get_param: ObjectStorageHostnameFormat}
1028 '%stackname%': {get_param: 'OS::stack_name'}
1029 ExtraConfig: {get_param: ExtraConfig}
1030 ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
1031 CloudDomain: {get_param: CloudDomain}
1032 ServerMetadata: {get_param: ServerMetadata}
1033 SchedulerHints: {get_param: ObjectStorageSchedulerHints}
1034 NodeIndex: '%index%'
1035 ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, config_settings]}
1037 CephStorageServiceChain:
1038 type: OS::TripleO::Services
1040 Services: {get_param: CephStorageServices}
1041 EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
1044 type: OS::Heat::ResourceGroup
1045 depends_on: Networks
1047 count: {get_param: CephStorageCount}
1048 removal_policies: {get_param: CephStorageRemovalPolicies}
1050 type: OS::TripleO::CephStorage
1052 Image: {get_param: CephStorageImage}
1053 KeyName: {get_param: KeyName}
1054 Flavor: {get_param: OvercloudCephStorageFlavor}
1055 ServiceNetMap: {get_param: ServiceNetMap}
1056 TimeZone: {get_param: TimeZone}
1057 UpdateIdentifier: {get_param: UpdateIdentifier}
1060 template: {get_param: CephStorageHostnameFormat}
1062 '%stackname%': {get_param: 'OS::stack_name'}
1063 ExtraConfig: {get_param: ExtraConfig}
1064 CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
1065 CloudDomain: {get_param: CloudDomain}
1066 ServerMetadata: {get_param: ServerMetadata}
1067 SchedulerHints: {get_param: CephStorageSchedulerHints}
1068 NodeIndex: '%index%'
1069 ServiceConfigSettings: {get_attr: [CephStorageServiceChain, config_settings]}
1071 ControllerIpListMap:
1072 type: OS::TripleO::Network::Ports::NetIpListMap
1074 ControlPlaneIpList: {get_attr: [Controller, ip_address]}
1075 ExternalIpList: {get_attr: [Controller, external_ip_address]}
1076 InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
1077 StorageIpList: {get_attr: [Controller, storage_ip_address]}
1078 StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
1079 TenantIpList: {get_attr: [Controller, tenant_ip_address]}
1080 ManagementIpList: {get_attr: [Controller, management_ip_address]}
1083 type: OS::TripleO::AllNodes::SoftwareConfig
1085 compute_hosts: {get_attr: [Compute, hosts_entry]}
1086 controller_hosts: {get_attr: [Controller, hosts_entry]}
1087 controller_ips: {get_attr: [Controller, ip_address]}
1088 block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
1089 object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
1090 ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
1091 controller_names: {get_attr: [Controller, hostname]}
1092 rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1093 mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
1094 redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
1095 memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1096 mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1097 horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1098 heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1099 swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1100 ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1101 aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1102 gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1103 nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1104 nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1105 glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1106 glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1107 cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1108 neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1109 keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1110 keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1111 sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1112 DeployIdentifier: {get_param: DeployIdentifier}
1113 UpdateIdentifier: {get_param: UpdateIdentifier}
1116 type: OS::Heat::RandomString
1120 MysqlClusterUniquePart:
1121 type: OS::Heat::RandomString
1126 type: OS::Heat::RandomString
1129 salt: {get_param: RabbitCookieSalt}
1131 # creates the network architecture
1133 type: OS::TripleO::Network
1136 type: OS::Neutron::Port
1137 depends_on: Networks
1139 name: control_virtual_ip
1140 network: {get_param: NeutronControlPlaneID}
1141 fixed_ips: {get_param: ControlFixedIPs}
1142 replacement_policy: AUTO
1145 depends_on: Networks
1146 type: OS::TripleO::Network::Ports::RedisVipPort
1148 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1149 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1150 PortName: redis_virtual_ip
1151 NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
1154 # The public VIP is on the External net, falls back to ctlplane
1156 depends_on: Networks
1157 type: OS::TripleO::Network::Ports::ExternalVipPort
1159 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1160 ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
1161 PortName: public_virtual_ip
1162 FixedIPs: {get_param: PublicVirtualFixedIPs}
1164 InternalApiVirtualIP:
1165 depends_on: Networks
1166 type: OS::TripleO::Network::Ports::InternalApiVipPort
1168 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1169 PortName: internal_api_virtual_ip
1170 FixedIPs: {get_param: InternalApiVirtualFixedIPs}
1173 depends_on: Networks
1174 type: OS::TripleO::Network::Ports::StorageVipPort
1176 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1177 PortName: storage_virtual_ip
1178 FixedIPs: {get_param: StorageVirtualFixedIPs}
1180 StorageMgmtVirtualIP:
1181 depends_on: Networks
1182 type: OS::TripleO::Network::Ports::StorageMgmtVipPort
1184 ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1185 PortName: storage_management_virtual_ip
1186 FixedIPs: {get_param: StorageMgmtVirtualFixedIPs}
1189 type: OS::TripleO::Network::Ports::NetVipMap
1191 ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
1192 ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
1193 ExternalIpUri: {get_attr: [PublicVirtualIP, ip_address_uri]}
1194 InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
1195 InternalApiIpUri: {get_attr: [InternalApiVirtualIP, ip_address_uri]}
1196 StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
1197 StorageIpUri: {get_attr: [StorageVirtualIP, ip_address_uri]}
1198 StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
1199 StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]}
1200 # No tenant or management VIP required
1203 type: OS::TripleO::VipConfig
1206 type: OS::Heat::StructuredDeployments
1209 config: {get_resource: VipConfig}
1210 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1212 # service VIP mappings
1213 keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1214 keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1215 neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1216 cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1217 glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1218 glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
1219 swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1220 nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1221 nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
1222 ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1223 aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1224 gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1225 heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1226 horizon_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
1227 redis_vip: {get_attr: [RedisVirtualIP, ip_address]}
1228 mysql_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
1229 rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
1230 # direct configuration of Virtual IPs for each network
1231 control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]}
1232 public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]}
1233 internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
1234 sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1235 storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
1236 storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
1238 ControllerBootstrapNodeConfig:
1239 type: OS::TripleO::BootstrapNode::SoftwareConfig
1241 bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
1242 bootstrap_nodeid_ip: {get_attr: [Controller, resource.0.ip_address]}
1244 ControllerBootstrapNodeDeployment:
1245 type: OS::Heat::StructuredDeployments
1247 name: ControllerBootstrapNodeDeployment
1248 config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
1249 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1251 ControllerSwiftDeployment:
1252 type: OS::Heat::StructuredDeployments
1254 name: ControllerSwiftDeployment
1255 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1256 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1258 ObjectStorageSwiftDeployment:
1259 type: OS::Heat::StructuredDeployments
1261 name: ObjectStorageSwiftDeployment
1262 config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
1263 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1265 SwiftDevicesAndProxyConfig:
1266 type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
1268 controller_swift_devices: {get_attr: [Controller, swift_device]}
1269 object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
1270 controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
1272 ComputeCephDeployment:
1273 type: OS::Heat::StructuredDeployments
1275 name: ComputeCephDeployment
1276 config: {get_attr: [CephClusterConfig, config_id]}
1277 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1279 ControllerCephDeployment:
1280 type: OS::Heat::StructuredDeployments
1282 name: ControllerCephDeployment
1283 config: {get_attr: [CephClusterConfig, config_id]}
1284 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1286 CephStorageCephDeployment:
1287 type: OS::Heat::StructuredDeployments
1289 name: CephStorageCephDeployment
1290 config: {get_attr: [CephClusterConfig, config_id]}
1291 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1294 type: OS::TripleO::CephClusterConfig::SoftwareConfig
1296 ceph_storage_count: {get_param: CephStorageCount}
1297 ceph_fsid: {get_param: CephClusterFSID}
1298 ceph_mon_key: {get_param: CephMonKey}
1299 ceph_admin_key: {get_param: CephAdminKey}
1300 ceph_client_key: {get_param: CephClientKey}
1301 ceph_external_mon_ips: {get_param: CephExternalMonHost}
1302 ceph_mon_names: {get_attr: [Controller, hostname]}
1303 ceph_mon_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
1305 ControllerAllNodesDeployment:
1306 type: OS::Heat::StructuredDeployments
1308 name: ControllerAllNodesDeployment
1309 config: {get_attr: [allNodesConfig, config_id]}
1310 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1312 ComputeAllNodesDeployment:
1313 type: OS::Heat::StructuredDeployments
1315 name: ComputeAllNodesDeployment
1316 config: {get_attr: [allNodesConfig, config_id]}
1317 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1319 BlockStorageAllNodesDeployment:
1320 type: OS::Heat::StructuredDeployments
1322 name: BlockStorageAllNodesDeployment
1323 config: {get_attr: [allNodesConfig, config_id]}
1324 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1326 ObjectStorageAllNodesDeployment:
1327 type: OS::Heat::StructuredDeployments
1329 name: ObjectStorageAllNodesDeployment
1330 config: {get_attr: [allNodesConfig, config_id]}
1331 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1333 CephStorageAllNodesDeployment:
1334 type: OS::Heat::StructuredDeployments
1336 name: CephStorageAllNodesDeployment
1337 config: {get_attr: [allNodesConfig, config_id]}
1338 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1340 # All Nodes Validations
1341 AllNodesValidationConfig:
1342 type: OS::TripleO::AllNodes::Validation
1347 - - {get_attr: [Controller, resource.0.external_ip_address]}
1348 - {get_attr: [Controller, resource.0.internal_api_ip_address]}
1349 - {get_attr: [Controller, resource.0.storage_ip_address]}
1350 - {get_attr: [Controller, resource.0.storage_mgmt_ip_address]}
1351 - {get_attr: [Controller, resource.0.tenant_ip_address]}
1353 ControllerAllNodesValidationDeployment:
1354 type: OS::Heat::StructuredDeployments
1355 depends_on: ControllerAllNodesDeployment
1357 name: ControllerAllNodesValidationDeployment
1358 config: {get_resource: AllNodesValidationConfig}
1359 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1361 ComputeAllNodesValidationDeployment:
1362 type: OS::Heat::StructuredDeployments
1363 depends_on: ComputeAllNodesDeployment
1365 name: ComputeAllNodesValidationDeployment
1366 config: {get_resource: AllNodesValidationConfig}
1367 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1369 BlockStorageAllNodesValidationDeployment:
1370 type: OS::Heat::StructuredDeployments
1371 depends_on: BlockStorageAllNodesDeployment
1373 name: BlockStorageAllNodesValidationDeployment
1374 config: {get_resource: AllNodesValidationConfig}
1375 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1377 ObjectStorageAllNodesValidationDeployment:
1378 type: OS::Heat::StructuredDeployments
1379 depends_on: ObjectStorageAllNodesDeployment
1381 name: ObjectStorageAllNodesValidationDeployment
1382 config: {get_resource: AllNodesValidationConfig}
1383 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1385 CephStorageAllNodesValidationDeployment:
1386 type: OS::Heat::StructuredDeployments
1387 depends_on: CephStorageAllNodesDeployment
1389 name: CephStorageAllNodesValidationDeployment
1390 config: {get_resource: AllNodesValidationConfig}
1391 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1394 type: OS::TripleO::Tasks::UpdateWorkflow
1396 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1397 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1398 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1399 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1400 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1402 deploy_identifier: {get_param: DeployIdentifier}
1403 update_identifier: {get_param: UpdateIdentifier}
1405 # Optional ExtraConfig for all nodes - all roles are passed in here, but
1406 # the nested template may configure each role differently (or not at all)
1407 AllNodesExtraConfig:
1408 type: OS::TripleO::AllNodesExtraConfig
1411 - ComputeAllNodesValidationDeployment
1412 - BlockStorageAllNodesValidationDeployment
1413 - ObjectStorageAllNodesValidationDeployment
1414 - CephStorageAllNodesValidationDeployment
1415 - ControllerAllNodesValidationDeployment
1417 controller_servers: {get_attr: [Controller, attributes, nova_server_resource]}
1418 compute_servers: {get_attr: [Compute, attributes, nova_server_resource]}
1419 blockstorage_servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1420 objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1421 cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1423 # Nested stack deployment runs after all other controller deployments
1424 ControllerNodesPostDeployment:
1425 type: OS::TripleO::ControllerPostDeployment
1426 depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment]
1428 servers: {get_attr: [Controller, attributes, nova_server_resource]}
1429 NodeConfigIdentifiers:
1430 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1431 controller_config: {get_attr: [Controller, attributes, config_identifier]}
1432 deployment_identifier: {get_param: DeployIdentifier}
1433 StepConfig: {get_attr: [ControllerServiceChain, step_config]}
1435 ComputeNodesPostDeployment:
1436 type: OS::TripleO::ComputePostDeployment
1437 depends_on: [ComputeAllNodesDeployment, ComputeCephDeployment]
1439 servers: {get_attr: [Compute, attributes, nova_server_resource]}
1440 NodeConfigIdentifiers:
1441 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1442 compute_config: {get_attr: [Compute, attributes, config_identifier]}
1443 deployment_identifier: {get_param: DeployIdentifier}
1444 StepConfig: {get_attr: [ComputeServiceChain, step_config]}
1446 ObjectStorageNodesPostDeployment:
1447 type: OS::TripleO::ObjectStoragePostDeployment
1448 depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
1450 servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
1451 NodeConfigIdentifiers:
1452 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1453 objectstorage_config: {get_attr: [ObjectStorage, attributes, config_identifier]}
1454 deployment_identifier: {get_param: DeployIdentifier}
1455 StepConfig: {get_attr: [ObjectStorageServiceChain, step_config]}
1457 BlockStorageNodesPostDeployment:
1458 type: OS::TripleO::BlockStoragePostDeployment
1459 depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
1461 servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
1462 NodeConfigIdentifiers:
1463 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1464 blockstorage_config: {get_attr: [BlockStorage, attributes, config_identifier]}
1465 deployment_identifier: {get_param: DeployIdentifier}
1466 StepConfig: {get_attr: [BlockStorageServiceChain, step_config]}
1469 CephStorageNodesPostDeployment:
1470 type: OS::TripleO::CephStoragePostDeployment
1471 depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment]
1473 servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
1474 NodeConfigIdentifiers:
1475 allnodes_extra: {get_attr: [AllNodesExtraConfig, config_identifier]}
1476 cephstorage_config: {get_attr: [CephStorage, attributes, config_identifier]}
1477 deployment_identifier: {get_param: DeployIdentifier}
1478 StepConfig: {get_attr: [CephStorageServiceChain, step_config]}
1482 description: URL for the Overcloud Keystone service
1483 value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
1485 description: Keystone Admin VIP endpoint
1486 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
1488 description: Controller VIP for public API endpoints
1489 value: {get_attr: [VipMap, net_ip_map, external]}
1491 description: VIP for Aodh API internal endpoint
1492 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, AodhApiNetwork]}]}
1493 CeilometerInternalVip:
1494 description: VIP for Ceilometer API internal endpoint
1495 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
1497 description: VIP for Cinder API internal endpoint
1498 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
1500 description: VIP for Glance API internal endpoint
1501 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
1503 description: VIP for Gnocchi API internal endpoint
1504 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GnocchiApiNetwork]}]}
1506 description: VIP for Heat API internal endpoint
1507 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
1508 KeystoneInternalVip:
1509 description: VIP for Keystone API internal endpoint
1510 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
1512 description: VIP for Neutron API internal endpoint
1513 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
1515 description: VIP for Nova API internal endpoint
1516 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
1518 description: VIP for Sahara API internal endpoint
1519 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SaharaApiNetwork]}]}
1521 description: VIP for Swift Proxy internal endpoint
1522 value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
1525 Mapping of the resources with the needed info for their endpoints.
1526 This includes the protocol used, the IP, port and also a full
1527 representation of the URI.
1528 value: {get_attr: [EndpointMap, endpoint_map]}
1531 The content that should be appended to your /etc/hosts if you want to get
1532 hostname-based access to the deployed nodes (useful for testing without
1534 value: {get_attr: [allNodesConfig, hosts_entries]}