tripleo-heat-templates/deployment/nova/nova-base-puppet.yaml

203 lines
7.2 KiB
YAML

heat_template_version: wallaby
description: >
OpenStack Nova base service. Shared for all Nova services.
parameters:
ServiceData:
default: {}
description: Dictionary packing service data
type: json
ServiceNetMap:
default: {}
description: Mapping of service_name -> network name. Typically set
via parameter_defaults in the resource registry. Use
parameter_merge_strategies to merge it with the defaults.
type: json
RoleName:
default: ''
description: Role name on which the service is applied
type: string
RoleParameters:
default: {}
description: Parameters specific to the role
type: json
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
KeystoneRegion:
type: string
default: 'regionOne'
description: Keystone region for endpoint
NotificationDriver:
type: comma_delimited_list
default: 'noop'
description: Driver or drivers to handle sending notifications.
NovaPassword:
description: The password for the nova service and db account
type: string
hidden: true
NeutronPassword:
description: The password for the neutron service and db account, used by neutron agents.
type: string
hidden: true
PlacementPassword:
description: The password for the Placement service and db account
type: string
hidden: true
PlacementAPIInterface:
type: string
description: >
Endpoint interface to be used for the placement API.
default: 'internal'
NovaOVSBridge:
default: 'br-int'
description: Name of integration bridge used by Open vSwitch
type: string
Debug:
type: boolean
default: false
description: Set to True to enable debugging on all services.
NovaDebug:
default: false
description: Set to True to enable debugging Nova services.
type: boolean
EnableCache:
description: Enable caching with memcached
type: boolean
default: true
EnableConfigPurge:
type: boolean
default: false
description: >
Remove configuration that is not generated by TripleO. Used to avoid
configuration remnants after upgrades.
UpgradeLevelNovaCompute:
type: string
description: Nova Compute upgrade level
default: ''
NovaOVSDBConnection:
type: string
description: OVS DB connection string to used by Nova
default: ''
tags:
- role_specific
NovaSyncPowerStateInterval:
type: number
description:
Interval to sync power states between the database and the hypervisor. Set
to -1 to disable. Setting this to 0 will run at the default rate.
default: 0
RpcUseSSL:
default: false
description: >
Messaging client subscriber parameter to specify
an SSL connection to the messaging host.
type: string
NovaAdditionalCell:
default: false
description: Whether this is an cell additional to the default cell.
type: boolean
NovaCrossAZAttach:
default: true
description:
Whether instances can attach cinder volumes from a different availability zone.
type: boolean
MemcachedTLS:
default: false
description: Set to True to enable TLS on Memcached service.
Because not all services support Memcached TLS, during the
migration period, Memcached will listen on 2 ports - on the
port set with MemcachedPort parameter (above) and on 11211,
without TLS.
type: boolean
conditions:
compute_upgrade_level_set:
not: {equals : [{get_param: UpgradeLevelNovaCompute}, '']}
tls_cache_enabled:
and:
- {get_param: EnableCache}
- {get_param: MemcachedTLS}
resources:
RoleParametersValue:
type: OS::Heat::Value
properties:
type: json
value:
map_replace:
- map_replace:
- nova::ovsdb_connection: NovaOVSDBConnection
- values: {get_param: [RoleParameters]}
- values:
NovaOVSDBConnection: {get_param: NovaOVSDBConnection}
outputs:
role_data:
description: Role data for the Nova base service.
value:
service_name: nova_base
config_settings:
map_merge:
- nova::my_ip:
str_replace:
template:
"%{hiera('$NETWORK')}"
params:
$NETWORK: {get_param: [ServiceNetMap, NovaApiNetwork]}
nova::rabbit_use_ssl: {get_param: RpcUseSSL}
nova::keystone::service_user::send_service_user_token: true
nova::keystone::service_user::project_name: 'service'
nova::keystone::service_user::password: {get_param: NovaPassword}
nova::keystone::service_user::auth_url: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]}
nova::keystone::service_user::region_name: {get_param: KeystoneRegion}
nova::placement::project_name: 'service'
nova::placement::password: {get_param: PlacementPassword}
nova::placement::auth_url: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]}
nova::placement::region_name: {get_param: KeystoneRegion}
nova::placement::valid_interfaces: {get_param: PlacementAPIInterface}
nova::os_region_name: {get_param: KeystoneRegion}
nova::logging::debug:
if:
- {get_param: NovaDebug}
- true
- {get_param: Debug}
nova::purge_config: {get_param: EnableConfigPurge}
nova::network::neutron::project_name: 'service'
nova::network::neutron::username: 'neutron'
nova::network::neutron::region_name: {get_param: KeystoneRegion}
nova::dhcp_domain: ''
nova::network::neutron::password: {get_param: NeutronPassword}
nova::network::neutron::auth_url: {get_param: [EndpointMap, KeystoneV3Internal, uri]}
nova::rabbit_heartbeat_timeout_threshold: 60
nova::cinder_catalog_info: 'volumev3:cinderv3:internalURL'
nova::host: "%{hiera('fqdn_canonical')}"
nova::notify_on_state_change: 'vm_and_task_state'
nova::notification_driver: {get_param: NotificationDriver}
nova::notification_format: 'unversioned'
nova::network::neutron::auth_type: 'v3password'
nova::db::database_db_max_retries: -1
nova::db::database_max_retries: -1
nova::network::neutron::ovs_bridge: {get_param: NovaOVSBridge}
nova::compute::sync_power_state_interval: {get_param: NovaSyncPowerStateInterval}
nova_is_additional_cell: {get_param: NovaAdditionalCell}
nova::cross_az_attach: {get_param: NovaCrossAZAttach}
nova::cache::enabled: {get_param: EnableCache}
nova::cache::tls_enabled: {get_param: MemcachedTLS}
nova::cache::backend:
if:
- tls_cache_enabled
- 'dogpile.cache.pymemcache'
- 'dogpile.cache.memcached'
nova::upgrade_level_compute:
if:
- compute_upgrade_level_set
- {get_param: UpgradeLevelNovaCompute}
- get_attr: [RoleParametersValue, value]
service_config_settings:
rabbitmq:
nova::rabbit_use_ssl: {get_param: RpcUseSSL}