heat_template_version: ocata description: > OpenStack EC2-API service configured with Puppet parameters: ServiceNetMap: default: {} description: Mapping of service_name -> network name. Typically set via parameter_defaults in the resource registry. This mapping overrides those in ServiceNetMapDefaults. type: json DefaultPasswords: default: {} type: json EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set via parameter_defaults in the resource registry. type: json Ec2ApiWorkers: default: 0 description: Number of workers for EC2-API service. type: number Ec2ApiPassword: description: The password for the nova service and db account, used by nova-api. type: string hidden: true KeystoneRegion: type: string default: 'regionOne' description: Keystone region for endpoint MonitoringSubscriptionEc2Api: default: 'overcloud-ec2-api' type: string Ec2ApiLoggingSource: type: json default: tag: openstack.ec2.api path: /var/log/ec2api/ec2api.log EnablePackageInstall: default: 'false' description: Set to true to enable package installation via Puppet type: boolean conditions: nova_workers_zero: {equals : [{get_param: Ec2ApiWorkers}, 0]} outputs: role_data: description: Role data for the EC2-API service. value: service_name: ec2_api monitoring_subscription: {get_param: MonitoringSubscriptionEc2Api} logging_source: {get_param: Ec2ApiLoggingSource} logging_groups: - nova config_settings: map_merge: - tripleo.ec2_api.firewall_rules: '113 ec2_api': dport: - 8788 - 13788 ec2api::keystone::authtoken::project_name: 'service' ec2api::keystone::authtoken::password: {get_param: Ec2ApiPassword} ec2api::keystone::authtoken::auth_uri: {get_param: [EndpointMap, KeystoneInternal, uri] } ec2api::keystone::authtoken::auth_url: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]} ec2api::api::enabled: true ec2api::package_manage: {get_param: EnablePackageInstall} ec2api::api::ec2api_listen: str_replace: template: '"%{::fqdn_$NETWORK}"' params: $NETWORK: {get_param: [ServiceNetMap, Ec2ApiNetwork]} ec2api::metadata::metadata_listen: str_replace: template: '"%{::fqdn_$NETWORK}"' params: $NETWORK: {get_param: [ServiceNetMap, Ec2ApiMetadataNetwork]} ec2api::db::database_connection: list_join: - '' - - {get_param: [EndpointMap, MysqlInternal, protocol]} - '://ec2_api:' - {get_param: Ec2ApiPassword} - '@' - {get_param: [EndpointMap, MysqlInternal, host]} - '/ec2_api' - '?bind_address=' - "%{hiera('tripleo::profile::base::database::mysql::client_bind_address')}" - if: - nova_workers_zero - {} - ec2api::api::ec2api_workers: {get_param: Ec2ApiWorkers} ec2api::metadata::metadata_workers: {get_param: Ec2ApiWorkers} step_config: | include tripleo::profile::base::nova::ec2api service_config_settings: keystone: ec2api::keystone::auth::tenant: 'service' ec2api::keystone::auth::public_url: {get_param: [EndpointMap, Ec2ApiPublic, uri]} ec2api::keystone::auth::internal_url: {get_param: [EndpointMap, Ec2ApiInternal, uri]} ec2api::keystone::auth::admin_url: {get_param: [EndpointMap, Ec2ApiAdmin, uri]} ec2api::keystone::auth::password: {get_param: Ec2ApiPassword} ec2api::keystone::auth::region: {get_param: KeystoneRegion} mysql: ec2api::db::mysql::password: {get_param: Ec2ApiPassword} ec2api::db::mysql::user: ec2_api ec2api::db::mysql::host: {get_param: [EndpointMap, MysqlInternal, host_nobrackets]} ec2api::db::mysql::dbname: ec2_api ec2api::db::mysql::allowed_hosts: - '%' - "%{hiera('mysql_bind_host')}"