1 heat_template_version: 2015-04-30
4 OpenStack controller node configured by Puppet.
9 description: The password for the keystone admin account, used for monitoring, querying neutron etc.
14 description: The keystone auth secret and db password.
17 CeilometerApiVirtualIP:
22 description: The ceilometer backend type.
24 CeilometerMeteringSecret:
26 description: Secret shared by the ceilometer services.
31 description: The password for the ceilometer service and db account.
37 CinderEnableNfsBackend:
39 description: Whether to enable or not the NFS backend for Cinder
41 CinderEnableIscsiBackend:
43 description: Whether to enable or not the Iscsi backend for Cinder
45 CinderEnableRbdBackend:
47 description: Whether to enable or not the Rbd backend for Cinder
51 description: The iSCSI helper to use with cinder.
53 CinderLVMLoopDeviceSize:
55 description: The size of the loopback file used by the cinder LVM driver.
57 CinderNfsMountOptions:
60 Mount options for NFS mounts used by Cinder NFS backend. Effective
61 when CinderEnableNfsBackend is true.
66 NFS servers used by Cinder NFS backend. Effective when
67 CinderEnableNfsBackend is true.
68 type: comma_delimited_list
71 description: The password for the cinder service and db account, used by cinder-api.
76 description: Contains parameters to configure Cinder backends. Typically
77 set via parameter_defaults in the resource registry.
81 description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
83 ControllerExtraConfig:
86 Controller specific hiera configuration data to inject into the cluster.
88 ControlVirtualInterface:
90 description: Interface where virtual ip will be assigned.
94 description: Set to True to enable debugging on all services.
98 description: Whether to enable fencing in Pacemaker or not.
102 description: Whether to use Galera instead of regular MariaDB.
106 description: Whether to deploy Ceph Storage (OSD) on the Controller
110 description: Whether to enable Swift Storage on the Controller
115 Additional hieradata to inject into the cluster, note that
116 ControllerExtraConfig takes precedence over ExtraConfig.
121 Pacemaker fencing configuration. The JSON should have
122 the following structure:
126 "agent": "AGENT_NAME",
127 "host_mac": "HOST_MAC_ADDRESS",
128 "params": {"PARAM_NAME": "PARAM_VALUE"}
136 "agent": "fence_xvm",
137 "host_mac": "52:54:00:aa:bb:cc",
139 "multicast_address": "225.0.0.12",
140 "port": "baremetal_0",
142 "manage_key_file": true,
143 "key_file": "/etc/fence_xvm.key",
144 "key_file_password": "abcdef"
151 description: Flavor for control nodes to request when deploying.
154 - custom_constraint: nova.flavor
155 GlanceNotifierStrategy:
156 description: Strategy to use for Glance notification queue
160 description: The filepath of the file to use for logging messages from Glance.
165 description: The password for the glance service and db account, used by the glance services.
170 description: Glance port.
174 description: Protocol to use when connecting to glance, set to https for SSL.
178 description: The short name of the Glance backend to use. Should be one
179 of swift, rbd, or file
182 - allowed_values: ['swift', 'file', 'rbd']
185 description: The password for the Heat service and db account, used by the Heat services.
188 HeatStackDomainAdminPassword:
189 description: Password for heat_domain_admin user.
193 HeatAuthEncryptionKey:
194 description: Auth encryption key for heat-engine
199 description: A list of IP/Hostname allowed to connect to horizon
200 type: comma_delimited_list
202 description: Secret key for Django
207 default: overcloud-control
209 - custom_constraint: glance.image
211 default: 'REBUILD_PRESERVE_EPHEMERAL'
212 description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
216 description: Name of an existing EC2 KeyPair to enable SSH access to the instances
219 - custom_constraint: nova.keypair
220 KeystoneCACertificate:
222 description: Keystone self-signed certificate authority certificate.
224 KeystoneSigningCertificate:
226 description: Keystone certificate for verifying token validity.
230 description: Keystone key for signing tokens.
233 KeystoneSSLCertificate:
235 description: Keystone certificate for verifying token validity.
237 KeystoneSSLCertificateKey:
239 description: Keystone key for signing tokens.
242 KeystoneNotificationDriver:
243 description: Comma-separated list of Oslo notification drivers used by Keystone
244 default: ['messaging']
245 type: comma_delimited_list
246 KeystoneNotificationFormat:
247 description: The Keystone notification format
251 - allowed_values: [ 'basic', 'cadf' ]
252 MysqlClusterUniquePart:
253 description: A unique identifier of the MySQL cluster the controller is in.
255 default: 'unset' # Has to be here because of the ignored empty value bug
256 # Drop the validation: https://bugs.launchpad.net/tripleo/+bug/1405446
258 # - length: {min: 4, max: 10}
259 MysqlInnodbBufferPoolSize:
261 Specifies the size of the buffer pool in megabytes. Setting to
262 zero should be interpreted as "no value" and will defer to the
267 description: Configures MySQL max_connections config setting
273 default: '' # Has to be here because of the ignored empty value bug
274 NeutronExternalNetworkBridge:
275 description: Name of bridge used for external network traffic.
278 NeutronBridgeMappings:
280 The OVS logical->physical bridge mappings to use. See the Neutron
281 documentation for details. Defaults to mapping br-ex - the external
282 bridge on hosts - to a physical name 'datacentre' which can be used
283 to create provider networks (and we use this for the default floating
284 network) - if changing this either use different post-install network
285 scripts or be sure to keep 'datacentre' as a mapping network name.
287 default: "datacentre:br-ex"
288 NeutronDnsmasqOptions:
289 default: 'dhcp-option-force=26,1400'
290 description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the gre tunnel overhead.
294 description: Agent mode for the neutron-l3-agent on the controller hosts
298 description: Whether to enable l3-agent HA
300 NeutronDhcpAgentsPerNetwork:
303 description: The number of neutron dhcp agents to schedule per network
306 description: Whether to configure Neutron Distributed Virtual Routers
308 NeutronMetadataProxySharedSecret:
310 description: Shared secret to prevent spoofing
316 The core plugin for Neutron. The value should be the entrypoint to be loaded
317 from neutron.core_plugins namespace.
319 NeutronServicePlugins:
322 Comma-separated list of service plugin entrypoints to be loaded from the
323 neutron.service_plugins namespace.
324 type: comma_delimited_list
326 default: "vxlan,vlan,flat,gre"
328 Comma-separated list of network type driver entrypoints to be loaded.
329 type: comma_delimited_list
330 NeutronMechanismDrivers:
331 default: 'openvswitch'
333 The mechanism drivers for the Neutron tenant network. To specify multiple
334 values, use a comma separated string, like so: 'openvswitch,l2_population'
336 NeutronAllowL3AgentFailover:
338 description: Allow automatic l3-agent failover
340 NeutronEnableTunnelling:
345 default: 'datacentre'
346 description: If set, flat networks to configure in neutron plugins.
349 description: Whether to enable l3-agent HA
353 description: The tenant network type for Neutron, either gre or vxlan.
355 NeutronNetworkVLANRanges:
356 default: 'datacentre'
358 The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
359 Neutron documentation for permitted values. Defaults to permitting any
360 VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
361 type: comma_delimited_list
364 description: The password for the neutron service and db account, used by neutron agents.
367 NeutronPublicInterface:
369 description: What interface to bridge onto br-ex for network nodes.
371 NeutronPublicInterfaceTag:
374 VLAN tag for creating a public VLAN. The tag will be used to
375 create an access port on the exterior bridge for each control plane node,
376 and that port will be given the IP address returned by neutron from the
377 public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
378 overcloud.yaml to include the deployment of VLAN ports to the control
381 NeutronPublicInterfaceDefaultRoute:
383 description: A custom default route for the NeutronPublicInterface.
385 NeutronPublicInterfaceIP:
387 description: A custom IP address to put onto the NeutronPublicInterface.
389 NeutronPublicInterfaceRawDevice:
391 description: If set, the public interface is a vlan with this device as the raw device.
396 The tunnel types for the Neutron tenant network. To specify multiple
397 values, use a comma separated string, like so: 'gre,vxlan'
399 NeutronTunnelIdRanges:
401 Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
402 of GRE tunnel IDs that are available for tenant network allocation
403 default: ["1:1000", ]
404 type: comma_delimited_list
407 Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
408 of VXLAN VNI IDs that are available for tenant network allocation
409 default: ["1:1000", ]
410 type: comma_delimited_list
416 description: The password for the nova service and db account, used by nova-api.
421 description: Should MongoDb journaling be disabled
428 description: The password for the 'pcsd' user.
430 PublicVirtualInterface:
433 Specifies the interface where the public-facing virtual ip will be assigned.
434 This should be int_public when a VLAN is being used.
436 PublicVirtualIP: # DEPRECATED: use per service settings instead
438 default: '' # Has to be here because of the ignored empty value bug
441 default: '' # Has to be here because of the ignored empty value bug
445 description: The password for RabbitMQ
450 description: The username for RabbitMQ
455 Rabbit client subscriber parameter to specify
456 an SSL connection to the RabbitMQ host.
460 description: Set rabbit subscriber port, change this if using SSL
464 description: Configures RabbitMQ FD limit
468 default: '' # Has to be here because of the ignored empty value bug
469 SnmpdReadonlyUserName:
470 default: ro_snmp_user
471 description: The user name for SNMPd with readonly rights running on all Overcloud nodes
473 SnmpdReadonlyUserPassword:
475 description: The user password for SNMPd with readonly rights running on all Overcloud nodes
480 description: If set, the contents of an SSL certificate authority file.
484 description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
489 description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
494 description: A random string to be used as a salt when hashing to determine mappings
500 description: Value of mount_check in Swift account/container/object -server.conf
505 description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
508 description: Partition Power to use when building Swift rings
512 description: The password for the swift service account, used by the swift proxy
522 description: How many replicas to use in the swift rings.
523 VirtualIP: # DEPRECATED: use per service settings instead
525 default: '' # Has to be here because of the ignored empty value bug
532 GlanceRegistryVirtualIP:
538 KeystoneAdminApiVirtualIP:
541 KeystonePublicApiVirtualIP:
547 EnablePackageInstall:
549 description: Set to true to enable package installation via Puppet
553 description: Mapping of service_name -> network name. Typically set
554 via parameter_defaults in the resource registry.
560 Setting to a previously unused value during stack-update will trigger
561 package update on all nodes
564 default: '' # Defaults to Heat created hostname
569 type: OS::Nova::Server
571 image: {get_param: Image}
572 image_update_policy: {get_param: ImageUpdatePolicy}
573 flavor: {get_param: Flavor}
574 key_name: {get_param: KeyName}
577 user_data_format: SOFTWARE_CONFIG
578 user_data: {get_resource: UserData}
579 name: {get_param: Hostname}
581 # Combine the NodeAdminUserData and NodeUserData mime archives
583 type: OS::Heat::MultipartMime
586 - config: {get_resource: NodeAdminUserData}
588 - config: {get_resource: NodeUserData}
591 # Creates the "heat-admin" user if configured via the environment
592 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
594 type: OS::TripleO::NodeAdminUserData
596 # For optional operator additional userdata
597 # Should return a OS::Heat::MultipartMime reference via OS::stack_id
599 type: OS::TripleO::NodeUserData
602 type: OS::TripleO::Controller::Ports::ExternalPort
604 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
607 type: OS::TripleO::Controller::Ports::InternalApiPort
609 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
612 type: OS::TripleO::Controller::Ports::StoragePort
614 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
617 type: OS::TripleO::Controller::Ports::StorageMgmtPort
619 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
622 type: OS::TripleO::Controller::Ports::TenantPort
624 ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
627 type: OS::TripleO::Network::Ports::NetIpMap
629 ControlPlaneIp: {get_attr: [Controller, networks, ctlplane, 0]}
630 ExternalIp: {get_attr: [ExternalPort, ip_address]}
631 InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
632 StorageIp: {get_attr: [StoragePort, ip_address]}
633 StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]}
634 TenantIp: {get_attr: [TenantPort, ip_address]}
637 type: OS::TripleO::Network::Ports::NetIpSubnetMap
639 ControlPlaneIp: {get_attr: [Controller, networks, ctlplane, 0]}
640 ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
641 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
642 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
643 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
644 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
647 type: OS::TripleO::Controller::Net::SoftwareConfig
649 ControlPlaneIp: {get_attr: [Controller, networks, ctlplane, 0]}
650 ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
651 InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
652 StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
653 StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
654 TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
657 type: OS::TripleO::SoftwareDeployment
659 config: {get_resource: NetworkConfig}
660 server: {get_resource: Controller}
663 interface_name: {get_param: NeutronPublicInterface}
665 ControllerDeployment:
666 type: OS::TripleO::SoftwareDeployment
667 depends_on: NetworkDeployment
669 config: {get_resource: ControllerConfig}
670 server: {get_resource: Controller}
672 bootstack_nodeid: {get_attr: [Controller, name]}
673 neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
674 heat.watch_server_url:
678 - {get_param: HeatApiVirtualIP}
680 heat.metadata_server_url:
684 - {get_param: HeatApiVirtualIP}
686 heat.waitcondition_server_url:
690 - {get_param: HeatApiVirtualIP}
691 - ':8000/v1/waitcondition'
692 heat_auth_encryption_key: {get_param: HeatAuthEncryptionKey}
693 horizon_allowed_hosts: {get_param: HorizonAllowedHosts}
694 horizon_secret: {get_param: HorizonSecret}
695 admin_password: {get_param: AdminPassword}
696 admin_token: {get_param: AdminToken}
697 neutron_public_interface_ip: {get_param: NeutronPublicInterfaceIP}
698 debug: {get_param: Debug}
699 cinder_enable_nfs_backend: {get_param: CinderEnableNfsBackend}
700 cinder_enable_rbd_backend: {get_param: CinderEnableRbdBackend}
701 cinder_nfs_mount_options: {get_param: CinderNfsMountOptions}
704 template: "['SERVERS']"
709 - {get_param: CinderNfsServers}
710 cinder_lvm_loop_device_size: {get_param: CinderLVMLoopDeviceSize}
711 cinder_password: {get_param: CinderPassword}
712 cinder_enable_iscsi_backend: {get_param: CinderEnableIscsiBackend}
713 cinder_iscsi_helper: {get_param: CinderISCSIHelper}
714 cinder_backend_config: {get_param: CinderBackendConfig}
718 - - 'mysql://cinder:'
719 - {get_param: CinderPassword}
721 - {get_param: MysqlVirtualIP}
723 glance_port: {get_param: GlancePort}
724 glance_password: {get_param: GlancePassword}
725 glance_backend: {get_param: GlanceBackend}
726 glance_notifier_strategy: {get_param: GlanceNotifierStrategy}
727 glance_log_file: {get_param: GlanceLogFile}
731 - - 'mysql://glance:'
732 - {get_param: GlancePassword}
734 - {get_param: MysqlVirtualIP}
736 heat_password: {get_param: HeatPassword}
737 heat_stack_domain_admin_password: {get_param: HeatStackDomainAdminPassword}
742 - {get_param: HeatPassword}
744 - {get_param: MysqlVirtualIP}
746 keystone_auth_address: {list_join: ['', ['http://', {get_param: KeystonePublicApiVirtualIP} , ':5000/v2.0']]}
747 keystone_ca_certificate: {get_param: KeystoneCACertificate}
748 keystone_signing_key: {get_param: KeystoneSigningKey}
749 keystone_signing_certificate: {get_param: KeystoneSigningCertificate}
750 keystone_ssl_certificate: {get_param: KeystoneSSLCertificate}
751 keystone_ssl_certificate_key: {get_param: KeystoneSSLCertificateKey}
752 keystone_notification_driver: {get_param: KeystoneNotificationDriver}
753 keystone_notification_format: {get_param: KeystoneNotificationFormat}
757 - - 'mysql://keystone:'
758 - {get_param: AdminToken}
760 - {get_param: MysqlVirtualIP}
762 keystone_identity_uri:
766 - {get_param: KeystoneAdminApiVirtualIP}
772 - {get_param: KeystonePublicApiVirtualIP}
778 - {get_param: KeystonePublicApiVirtualIP}
779 - ':5000/v2.0/ec2tokens'
780 enable_fencing: {get_param: EnableFencing}
781 enable_galera: {get_param: EnableGalera}
782 enable_ceph_storage: {get_param: EnableCephStorage}
783 enable_swift_storage: {get_param: EnableSwiftStorage}
784 mysql_innodb_buffer_pool_size: {get_param: MysqlInnodbBufferPoolSize}
785 mysql_max_connections: {get_param: MysqlMaxConnections}
786 mysql_root_password: {get_param: MysqlRootPassword}
789 template: tripleo-CLUSTER
791 CLUSTER: {get_param: MysqlClusterUniquePart}
792 neutron_flat_networks: {get_param: NeutronFlatNetworks}
793 neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
794 neutron_agent_mode: {get_param: NeutronAgentMode}
795 neutron_router_distributed: {get_param: NeutronDVR}
796 neutron_core_plugin: {get_param: NeutronCorePlugin}
797 neutron_service_plugins:
799 template: "['PLUGINS']"
804 - {get_param: NeutronServicePlugins}
805 neutron_type_drivers:
807 template: "['DRIVERS']"
812 - {get_param: NeutronTypeDrivers}
813 neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
814 neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
815 neutron_l3_ha: {get_param: NeutronL3HA}
816 neutron_dhcp_agents_per_network: {get_param: NeutronDhcpAgentsPerNetwork}
817 neutron_network_vlan_ranges:
819 template: "['RANGES']"
824 - {get_param: NeutronNetworkVLANRanges}
825 neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
826 neutron_external_network_bridge: {get_param: NeutronExternalNetworkBridge}
827 neutron_public_interface: {get_param: NeutronPublicInterface}
828 neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
829 neutron_public_interface_default_route: {get_param: NeutronPublicInterfaceDefaultRoute}
830 neutron_public_interface_tag: {get_param: NeutronPublicInterfaceTag}
831 neutron_tenant_network_type: {get_param: NeutronNetworkType}
832 neutron_tunnel_types: {get_param: NeutronTunnelTypes}
833 neutron_tunnel_id_ranges:
835 template: "['RANGES']"
840 - {get_param: NeutronTunnelIdRanges}
843 template: "['RANGES']"
848 - {get_param: NeutronVniRanges}
849 neutron_password: {get_param: NeutronPassword}
850 neutron_dnsmasq_options: {get_param: NeutronDnsmasqOptions}
854 - - 'mysql://neutron:'
855 - {get_param: NeutronPassword}
857 - {get_param: MysqlVirtualIP}
858 - '/ovs_neutron?charset=utf8'
863 - {get_param: NeutronApiVirtualIP}
865 neutron_admin_auth_url:
869 - {get_param: KeystoneAdminApiVirtualIP}
871 ceilometer_backend: {get_param: CeilometerBackend}
872 ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
873 ceilometer_password: {get_param: CeilometerPassword}
874 ceilometer_coordination_url:
878 - {get_param: RedisVirtualIP}
883 - - 'mysql://ceilometer:unset@'
884 - {get_param: MysqlVirtualIP}
886 snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
887 snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
888 nova_password: {get_param: NovaPassword}
893 - {get_param: NovaPassword}
895 - {get_param: MysqlVirtualIP}
897 fencing_config: {get_param: FencingConfig}
898 pcsd_password: {get_param: PcsdPassword}
899 rabbit_username: {get_param: RabbitUserName}
900 rabbit_password: {get_param: RabbitPassword}
901 rabbit_cookie: {get_param: RabbitCookie}
902 rabbit_client_use_ssl: {get_param: RabbitClientUseSSL}
903 rabbit_client_port: {get_param: RabbitClientPort}
904 mongodb_no_journal: {get_param: MongoDbNoJournal}
905 # We need to force this into quotes or hiera will return integer causing
906 # the puppet module validation regexp to fail.
907 # Remove when: https://github.com/puppetlabs/puppetlabs-rabbitmq/pull/401
912 LIMIT: {get_param: RabbitFDLimit}
915 template: '["server"]'
917 server: {get_param: NtpServer}
918 control_virtual_interface: {get_param: ControlVirtualInterface}
919 public_virtual_interface: {get_param: PublicVirtualInterface}
920 swift_hash_suffix: {get_param: SwiftHashSuffix}
921 swift_password: {get_param: SwiftPassword}
922 swift_part_power: {get_param: SwiftPartPower}
923 swift_replicas: {get_param: SwiftReplicas}
924 swift_min_part_hours: {get_param: SwiftMinPartHours}
925 swift_mount_check: {get_param: SwiftMountCheck}
926 enable_package_install: {get_param: EnablePackageInstall}
927 enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
928 swift_proxy_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
929 swift_management_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, SwiftMgmtNetwork]}]}
930 cinder_iscsi_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CinderIscsiNetwork]}]}
931 cinder_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CinderApiNetwork]}]}
932 glance_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
933 glance_registry_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
937 - - {get_param: GlanceProtocol}
939 - {get_param: GlanceApiVirtualIP}
941 - {get_param: GlancePort}
942 glance_registry_host: {get_param: GlanceRegistryVirtualIP}
943 heat_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
944 keystone_public_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
945 keystone_admin_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
946 mongo_db_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
947 neutron_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]}
948 neutron_local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronTenantNetwork]}]}
949 ceilometer_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
950 nova_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaApiNetwork]}]}
951 nova_metadata_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaMetadataNetwork]}]}
952 horizon_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, HorizonNetwork]}]}
953 rabbitmq_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
954 redis_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, RedisNetwork]}]}
955 redis_vip: {get_param: RedisVirtualIP}
956 memcached_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
957 mysql_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
958 mysql_virtual_ip: {get_param: MysqlVirtualIP}
959 ceph_cluster_network: {get_attr: [NetIpSubnetMap, net_ip_subnet_map, {get_param: [ServiceNetMap, CephClusterNetwork]}]}
960 ceph_public_network: {get_attr: [NetIpSubnetMap, net_ip_subnet_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
961 ceph_public_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
963 # Map heat metadata into hiera datafiles
965 type: OS::Heat::StructuredConfig
967 group: os-apply-config
972 - heat_config_%{::deploy_config_name}
973 - controller_extraconfig
978 - swift_devices_and_proxy # provided by SwiftDevicesAndProxyConfig
979 - ceph_cluster # provided by CephClusterConfig
981 - bootstrap_node # provided by BootstrapNodeConfig
982 - all_nodes # provided by allNodesConfig
983 - vip_data # provided by vip-config
986 - cinder_netapp_data # Optionally provided by ControllerExtraConfigPre
987 - neutron_bigswitch_data # Optionally provided by ControllerExtraConfigPre
988 - neutron_cisco_data # Optionally provided by ControllerExtraConfigPre
989 - cisco_n1kv_data # Optionally provided by ControllerExtraConfigPre
991 controller_extraconfig:
992 mapped_data: {get_param: ControllerExtraConfig}
994 mapped_data: {get_param: ExtraConfig}
996 raw_data: {get_file: hieradata/common.yaml}
998 raw_data: {get_file: hieradata/ceph.yaml}
1000 ceph::profile::params::cluster_network: {get_input: ceph_cluster_network}
1001 ceph::profile::params::public_network: {get_input: ceph_public_network}
1002 ceph::mon::public_addr: {get_input: ceph_public_ip}
1004 raw_data: {get_file: hieradata/database.yaml}
1006 raw_data: {get_file: hieradata/object.yaml}
1008 raw_data: {get_file: hieradata/controller.yaml}
1009 mapped_data: # data supplied directly to this deployment configuration, etc
1010 bootstack_nodeid: {get_input: bootstack_nodeid}
1013 enable_fencing: {get_input: enable_fencing}
1014 hacluster_pwd: {get_input: pcsd_password}
1015 tripleo::fencing::config: {get_input: fencing_config}
1018 swift::proxy::proxy_local_net_ip: {get_input: swift_proxy_network}
1019 swift::proxy::authtoken::auth_uri: {get_input: keystone_auth_uri}
1020 swift::proxy::authtoken::identity_uri: {get_input: keystone_identity_uri}
1021 swift::storage::all::storage_local_net_ip: {get_input: swift_management_network}
1022 swift::swift_hash_suffix: {get_input: swift_hash_suffix}
1023 swift::proxy::authtoken::admin_password: {get_input: swift_password}
1024 tripleo::ringbuilder::part_power: {get_input: swift_part_power}
1025 tripleo::ringbuilder::replicas: {get_input: swift_replicas}
1026 tripleo::ringbuilder::min_part_hours: {get_input: swift_min_part_hours}
1027 swift_mount_check: {get_input: swift_mount_check}
1029 # NOTE(dprince): build_ring support is currently not wired in.
1030 # See: https://review.openstack.org/#/c/109225/
1031 tripleo::ringbuilder::build_ring: True
1034 cinder_enable_nfs_backend: {get_input: cinder_enable_nfs_backend}
1035 cinder_enable_rbd_backend: {get_input: cinder_enable_rbd_backend}
1036 cinder_nfs_mount_options: {get_input: cinder_nfs_mount_options}
1037 cinder_nfs_servers: {get_input: cinder_nfs_servers}
1038 cinder_lvm_loop_device_size: {get_input: cinder_lvm_loop_device_size}
1039 cinder_iscsi_helper: {get_input: cinder_iscsi_helper}
1040 cinder_iscsi_ip_address: {get_input: cinder_iscsi_network}
1041 cinder::database_connection: {get_input: cinder_dsn}
1042 cinder::api::keystone_password: {get_input: cinder_password}
1043 cinder::api::auth_uri: {get_input: keystone_auth_uri}
1044 cinder::api::identity_uri: {get_input: keystone_identity_uri}
1045 cinder::api::bind_host: {get_input: cinder_api_network}
1046 cinder::rabbit_userid: {get_input: rabbit_username}
1047 cinder::rabbit_password: {get_input: rabbit_password}
1048 cinder::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
1049 cinder::rabbit_port: {get_input: rabbit_client_port}
1050 cinder::debug: {get_input: debug}
1051 cinder_enable_iscsi_backend: {get_input: cinder_enable_iscsi_backend}
1052 cinder::glance::glance_api_servers: {get_input: glance_api_servers}
1053 cinder_backend_config: {get_input: CinderBackendConfig}
1054 cinder::db::mysql::password: {get_input: cinder_password}
1057 glance::api::bind_port: {get_input: glance_port}
1058 glance::api::bind_host: {get_input: glance_api_network}
1059 glance::api::auth_uri: {get_input: keystone_auth_uri}
1060 glance::api::identity_uri: {get_input: keystone_identity_uri}
1061 glance::api::registry_host: {get_input: glance_registry_host}
1062 glance::api::keystone_password: {get_input: glance_password}
1063 glance::api::debug: {get_input: debug}
1064 glance_notifier_strategy: {get_input: glance_notifier_strategy}
1065 glance_log_file: {get_input: glance_log_file}
1066 glance_log_file: {get_input: glance_log_file}
1067 glance::api::database_connection: {get_input: glance_dsn}
1068 glance::registry::keystone_password: {get_input: glance_password}
1069 glance::registry::database_connection: {get_input: glance_dsn}
1070 glance::registry::bind_host: {get_input: glance_registry_network}
1071 glance::registry::auth_uri: {get_input: keystone_auth_uri}
1072 glance::registry::identity_uri: {get_input: keystone_identity_uri}
1073 glance::registry::debug: {get_input: debug}
1074 glance::backend::swift::swift_store_auth_address: {get_input: keystone_auth_address}
1075 glance::backend::swift::swift_store_user: service:glance
1076 glance::backend::swift::swift_store_key: {get_input: glance_password}
1077 glance_backend: {get_input: glance_backend}
1078 glance::db::mysql::password: {get_input: glance_password}
1081 heat_stack_domain_admin_password: {get_input: heat_stack_domain_admin_password}
1082 heat::engine::heat_watch_server_url: {get_input: heat.watch_server_url}
1083 heat::engine::heat_metadata_server_url: {get_input: heat.metadata_server_url}
1084 heat::engine::heat_waitcondition_server_url: {get_input: heat.waitcondition_server_url}
1085 heat::engine::auth_encryption_key: {get_input: heat_auth_encryption_key}
1086 heat::rabbit_userid: {get_input: rabbit_username}
1087 heat::rabbit_password: {get_input: rabbit_password}
1088 heat::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
1089 heat::rabbit_port: {get_input: rabbit_client_port}
1090 heat::auth_uri: {get_input: keystone_auth_uri}
1091 heat::keystone_ec2_uri: {get_input: keystone_ec2_uri}
1092 heat::identity_uri: {get_input: keystone_identity_uri}
1093 heat::keystone_password: {get_input: heat_password}
1094 heat::api::bind_host: {get_input: heat_api_network}
1095 heat::api_cloudwatch::bind_host: {get_input: heat_api_network}
1096 heat::api_cfn::bind_host: {get_input: heat_api_network}
1097 heat::database_connection: {get_input: heat_dsn}
1098 heat::debug: {get_input: debug}
1099 heat::db::mysql::password: {get_input: heat_password}
1102 keystone::admin_token: {get_input: admin_token}
1103 keystone_ca_certificate: {get_input: keystone_ca_certificate}
1104 keystone_signing_key: {get_input: keystone_signing_key}
1105 keystone_signing_certificate: {get_input: keystone_signing_certificate}
1106 keystone_ssl_certificate: {get_input: keystone_ssl_certificate}
1107 keystone_ssl_certificate_key: {get_input: keystone_ssl_certificate_key}
1108 keystone::database_connection: {get_input: keystone_dsn}
1109 keystone::public_bind_host: {get_input: keystone_public_api_network}
1110 keystone::admin_bind_host: {get_input: keystone_admin_api_network}
1111 keystone::debug: {get_input: debug}
1112 keystone::db::mysql::password: {get_input: admin_token}
1113 keystone::rabbit_userid: {get_input: rabbit_username}
1114 keystone::rabbit_password: {get_input: rabbit_password}
1115 keystone::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
1116 keystone::rabbit_port: {get_input: rabbit_client_port}
1117 keystone::notification_driver: {get_input: keystone_notification_driver}
1118 keystone::notification_format: {get_input: keystone_notification_format}
1120 mongodb::server::bind_ip: {get_input: mongo_db_network}
1121 mongodb::server::nojournal: {get_input: mongodb_no_journal}
1123 admin_password: {get_input: admin_password}
1124 enable_galera: {get_input: enable_galera}
1125 enable_ceph_storage: {get_input: enable_ceph_storage}
1126 enable_swift_storage: {get_input: enable_swift_storage}
1127 mysql_innodb_buffer_pool_size: {get_input: mysql_innodb_buffer_pool_size}
1128 mysql_max_connections: {get_input: mysql_max_connections}
1129 mysql::server::root_password: {get_input: mysql_root_password}
1130 mysql_cluster_name: {get_input: mysql_cluster_name}
1131 mysql_bind_host: {get_input: mysql_network}
1132 mysql_virtual_ip: {get_input: mysql_virtual_ip}
1135 neutron::bind_host: {get_input: neutron_api_network}
1136 neutron::rabbit_password: {get_input: rabbit_password}
1137 neutron::rabbit_user: {get_input: rabbit_user}
1138 neutron::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
1139 neutron::rabbit_port: {get_input: rabbit_client_port}
1140 neutron::debug: {get_input: debug}
1141 neutron::server::auth_uri: {get_input: keystone_auth_uri}
1142 neutron::server::identity_uri: {get_input: keystone_identity_uri}
1143 neutron::server::database_connection: {get_input: neutron_dsn}
1144 neutron::agents::l3::external_network_bridge: {get_input: neutron_external_network_bridge}
1145 neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
1146 neutron::agents::ml2::ovs::local_ip: {get_input: neutron_local_ip}
1147 neutron_flat_networks: {get_input: neutron_flat_networks}
1148 neutron::agents::metadata::shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
1149 neutron::agents::metadata::metadata_ip: {get_input: neutron_api_network}
1150 neutron_agent_mode: {get_input: neutron_agent_mode}
1151 neutron_router_distributed: {get_input: neutron_router_distributed}
1152 neutron::core_plugin: {get_input: neutron_core_plugin}
1153 neutron::service_plugins: {get_input: neutron_service_plugins}
1154 neutron::plugins::ml2::type_drivers: {get_input: neutron_type_drivers}
1155 neutron_mechanism_drivers: {get_input: neutron_mechanism_drivers}
1156 neutron::server::allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
1157 neutron::server::l3_ha: {get_input: neutron_l3_ha}
1158 neutron::dhcp_agents_per_network: {get_input: neutron_dhcp_agents_per_network}
1159 neutron::plugins::ml2::network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
1160 neutron::plugins::ml2::tunnel_id_ranges: {get_input: neutron_tunnel_id_ranges}
1161 neutron::plugins::ml2::vni_ranges: {get_input: neutron_vni_ranges}
1162 neutron_bridge_mappings: {get_input: neutron_bridge_mappings}
1163 neutron_public_interface: {get_input: neutron_public_interface}
1164 neutron_public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
1165 neutron_public_interface_default_route: {get_input: neutron_public_interface_default_route}
1166 neutron_public_interface_tag: {get_input: neutron_public_interface_tag}
1167 neutron_tenant_network_type: {get_input: neutron_tenant_network_type}
1168 neutron_tunnel_types: {get_input: neutron_tunnel_types}
1169 neutron::server::auth_password: {get_input: neutron_password}
1170 neutron::agents::metadata::auth_password: {get_input: neutron_password}
1171 neutron_dnsmasq_options: {get_input: neutron_dnsmasq_options}
1172 neutron_dsn: {get_input: neutron_dsn}
1173 neutron::agents::metadata::auth_url: {get_input: keystone_identity_uri}
1174 neutron::db::mysql::password: {get_input: neutron_password}
1177 ceilometer_backend: {get_input: ceilometer_backend}
1178 ceilometer_mysql_conn_string: {get_input: ceilometer_dsn}
1179 ceilometer::metering_secret: {get_input: ceilometer_metering_secret}
1180 ceilometer::rabbit_userid: {get_input: rabbit_username}
1181 ceilometer::rabbit_password: {get_input: rabbit_password}
1182 ceilometer::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
1183 ceilometer::rabbit_port: {get_input: rabbit_client_port}
1184 ceilometer::debug: {get_input: debug}
1185 ceilometer::api::host: {get_input: ceilometer_api_network}
1186 ceilometer::api::keystone_password: {get_input: ceilometer_password}
1187 ceilometer::api::keystone_auth_uri: {get_input: keystone_auth_uri}
1188 ceilometer::api::keystone_identity_uri: {get_input: keystone_identity_uri}
1189 ceilometer::agent::auth::auth_password: {get_input: ceilometer_password}
1190 ceilometer::agent::auth::auth_url: {get_input: keystone_auth_address}
1191 ceilometer::agent::central::coordination_url: {get_input: ceilometer_coordination_url}
1192 ceilometer::db::mysql::password: {get_input: ceilometer_password}
1193 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
1194 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
1197 nova::rabbit_userid: {get_input: rabbit_username}
1198 nova::rabbit_password: {get_input: rabbit_password}
1199 nova::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
1200 nova::rabbit_port: {get_input: rabbit_client_port}
1201 nova::debug: {get_input: debug}
1202 nova::api::auth_uri: {get_input: keystone_auth_uri}
1203 nova::api::identity_uri: {get_input: keystone_identity_uri}
1204 nova::api::api_bind_address: {get_input: nova_api_network}
1205 nova::api::metadata_listen: {get_input: nova_metadata_network}
1206 nova::api::admin_password: {get_input: nova_password}
1207 nova::database_connection: {get_input: nova_dsn}
1208 nova::glance_api_servers: {get_input: glance_api_servers}
1209 nova::api::neutron_metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
1210 nova::network::neutron::neutron_admin_password: {get_input: neutron_password}
1211 nova::network::neutron::neutron_url: {get_input: neutron_url}
1212 nova::network::neutron::neutron_admin_auth_url: {get_input: neutron_admin_auth_url}
1213 nova::vncproxy::host: {get_input: nova_api_network}
1214 nova::db::mysql::password: {get_input: nova_password}
1217 apache::ip: {get_input: horizon_network}
1218 horizon::allowed_hosts: {get_input: horizon_allowed_hosts}
1219 horizon::django_debug: {get_input: debug}
1220 horizon::secret_key: {get_input: horizon_secret}
1221 horizon::bind_address: {get_input: horizon_network}
1222 horizon::keystone_url: {get_input: keystone_auth_uri}
1225 rabbitmq::node_ip_address: {get_input: rabbitmq_network}
1226 rabbitmq::erlang_cookie: {get_input: rabbit_cookie}
1227 rabbitmq::file_limit: {get_input: rabbit_fd_limit}
1229 redis::bind: {get_input: redis_network}
1230 redis_vip: {get_input: redis_vip}
1232 memcached::listen_ip: {get_input: memcached_network}
1233 neutron_public_interface_ip: {get_input: neutron_public_interface_ip}
1234 ntp::servers: {get_input: ntp_servers}
1235 control_virtual_interface: {get_input: control_virtual_interface}
1236 public_virtual_interface: {get_input: public_virtual_interface}
1237 tripleo::loadbalancer::control_virtual_interface: {get_input: control_virtual_interface}
1238 tripleo::loadbalancer::public_virtual_interface: {get_input: public_virtual_interface}
1239 tripleo::packages::enable_install: {get_input: enable_package_install}
1240 tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
1242 # Hook for site-specific additional pre-deployment config, e.g extra hieradata
1243 ControllerExtraConfigPre:
1244 depends_on: ControllerDeployment
1245 type: OS::TripleO::ControllerExtraConfigPre
1247 server: {get_resource: Controller}
1249 # Hook for site-specific additional pre-deployment config,
1250 # applying to all nodes, e.g node registration/unregistration
1252 depends_on: ControllerExtraConfigPre
1253 type: OS::TripleO::NodeExtraConfig
1255 server: {get_resource: Controller}
1258 type: OS::TripleO::Tasks::PackageUpdate
1261 type: OS::Heat::SoftwareDeployment
1263 config: {get_resource: UpdateConfig}
1264 server: {get_resource: Controller}
1267 get_param: UpdateIdentifier
1271 description: IP address of the server in the ctlplane network
1272 value: {get_attr: [Controller, networks, ctlplane, 0]}
1273 external_ip_address:
1274 description: IP address of the server in the external network
1275 value: {get_attr: [ExternalPort, ip_address]}
1276 internal_api_ip_address:
1277 description: IP address of the server in the internal_api network
1278 value: {get_attr: [InternalApiPort, ip_address]}
1280 description: IP address of the server in the storage network
1281 value: {get_attr: [StoragePort, ip_address]}
1282 storage_mgmt_ip_address:
1283 description: IP address of the server in the storage_mgmt network
1284 value: {get_attr: [StorageMgmtPort, ip_address]}
1286 description: IP address of the server in the tenant network
1287 value: {get_attr: [TenantPort, ip_address]}
1289 description: Hostname of the server
1290 value: {get_attr: [Controller, name]}
1293 Node object in the format {ip: ..., name: ...} format that the corosync
1296 ip: {get_attr: [Controller, networks, ctlplane, 0]}
1297 name: {get_attr: [Controller, name]}
1300 Server's IP address and hostname in the /etc/hosts format
1303 template: IP HOST.localdomain HOST CLOUDNAME
1305 IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ControllerHostnameResolveNetwork]}]}
1306 HOST: {get_attr: [Controller, name]}
1307 CLOUDNAME: {get_param: CloudName}
1308 nova_server_resource:
1309 description: Heat resource handle for the Nova compute server
1311 {get_resource: Controller}
1313 description: Swift device formatted for swift-ring-builder
1316 template: 'r1z1-IP:%PORT%/d1'
1318 IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, SwiftMgmtNetwork]}]}
1319 swift_proxy_memcache:
1320 description: Swift proxy-memcache value
1323 template: "IP:11211"
1325 IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
1327 description: identifier which changes if the controller configuration may need re-applying
1331 - - {get_attr: [ControllerDeployment, deploy_stdout]}
1332 - {get_attr: [ControllerExtraConfigPre, deploy_stdout]}
1333 - {get_param: UpdateIdentifier}