heat_template_version: rocky 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. This mapping overrides those in ServiceNetMapDefaults. type: json DefaultPasswords: default: {} 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: string default: 'messagingv2' 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 NovaOVSBridge: default: 'br-int' description: Name of integration bridge used by Open vSwitch type: string DatabaseSyncTimeout: default: 300 description: DB Sync Timeout default type: number Debug: type: boolean default: false description: Set to True to enable debugging on all services. NovaDebug: default: '' description: Set to True to enable debugging Nova services. type: string constraints: - allowed_values: [ '', 'true', 'True', 'TRUE', 'false', 'False', 'FALSE'] EnableConfigPurge: type: boolean default: false description: > Remove configuration that is not generated by TripleO. Used to avoid configuration remnants after upgrades. NovaIPv6: default: false description: Enable IPv6 features in Nova type: boolean UpgradeLevelNovaCompute: type: string description: Nova Compute upgrade level default: '' NovaCronArchiveDeleteRowsMinute: type: string description: > Cron to move deleted instances to another table - Minute default: '1' NovaCronArchiveDeleteRowsHour: type: string description: > Cron to move deleted instances to another table - Hour default: '0' NovaCronArchiveDeleteRowsMonthday: type: string description: > Cron to move deleted instances to another table - Month Day default: '*' NovaCronArchiveDeleteRowsMonth: type: string description: > Cron to move deleted instances to another table - Month default: '*' NovaCronArchiveDeleteRowsWeekday: type: string description: > Cron to move deleted instances to another table - Week Day default: '*' NovaCronArchiveDeleteRowsMaxRows: type: string description: > Cron to move deleted instances to another table - Max Rows default: '100' NovaCronArchiveDeleteRowsUser: type: string description: > Cron to move deleted instances to another table - User default: 'nova' NovaCronArchiveDeleteRowsDestination: type: string description: > Cron to move deleted instances to another table - Log destination default: '/var/log/nova/nova-rowsflush.log' NovaCronArchiveDeleteRowsUntilComplete: type: boolean description: > Cron to move deleted instances to another table - Until complete default: true NovaCronArchiveDeleteRowsPurge: type: boolean description: > Purge shadow tables immediately after scheduled archiving default: false NovaCronPurgeShadowTablesMinute: type: string description: > Cron to purge shadow tables - Minute default: '0' NovaCronPurgeShadowTablesHour: type: string description: > Cron to purge shadow tables - Hour default: '5' NovaCronPurgeShadowTablesMonthday: type: string description: > Cron to purge shadow tables - Month Day default: '*' NovaCronPurgeShadowTablesMonth: type: string description: > Cron to purge shadow tables - Month default: '*' NovaCronPurgeShadowTablesWeekday: type: string description: > Cron to purge shadow tables - Week Day default: '*' NovaCronPurgeShadowTablesUser: type: string description: > Cron to purge shadow tables - User default: 'nova' NovaCronPurgeShadowTablesDestination: type: string description: > Cron to purge shadow tables - Log destination default: '/var/log/nova/nova-rowspurge.log' NovaCronPurgeShadowTablesAge: type: number description: > Cron to purge shadow tables - Age This will define the retention policy when purging the shadow tables in days. 0 means, purge data older than today in shadow tables. default: 14 NovaCronPurgeShadowTablesVerbose: type: boolean description: > Cron to purge shadow tables - Verbose default: false NovaCronPurgeShadowTablesAllCells: type: boolean description: > Cron to purge shadow tables - All cells default: false NovaPlacementAPIInterface: type: string description: > Endpoint interface to be used for the placement API. default: 'internal' 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 RpcPort: default: 5672 description: The network port for messaging backend type: number RpcUserName: default: guest description: The username for messaging backend type: string RpcPassword: description: The password for messaging backend type: string hidden: true 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 parameter_groups: - label: deprecated description: | The following parameters are deprecated and will be removed. They should not be relied on for new deployments. If you have concerns regarding deprecated parameters, please contact the TripleO development team on IRC or the OpenStack mailing list. parameters: - RpcPort - RpcUserName - RpcPassword conditions: compute_upgrade_level_empty: {equals : [{get_param: UpgradeLevelNovaCompute}, '']} service_debug_unset: {equals : [{get_param: NovaDebug}, '']} 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::placement::project_name: 'service' nova::placement::password: {get_param: NovaPassword} nova::placement::auth_url: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]} nova::placement::region_name: {get_param: KeystoneRegion} nova::placement::valid_interfaces: {get_param: NovaPlacementAPIInterface} nova::database_connection: make_url: scheme: {get_param: [EndpointMap, MysqlCellInternal, protocol]} username: nova password: {get_param: NovaPassword} host: {get_param: [EndpointMap, MysqlCellInternal, host]} path: /nova query: read_default_file: /etc/my.cnf.d/tripleo.cnf read_default_group: tripleo nova::cell0_database_connection: make_url: scheme: {get_param: [EndpointMap, MysqlInternal, protocol]} username: nova password: {get_param: NovaPassword} host: {get_param: [EndpointMap, MysqlInternal, host]} path: /nova_cell0 query: read_default_file: /etc/my.cnf.d/tripleo.cnf read_default_group: tripleo nova::api_database_connection: make_url: scheme: {get_param: [EndpointMap, MysqlInternal, protocol]} username: nova_api password: {get_param: NovaPassword} host: {get_param: [EndpointMap, MysqlInternal, host]} path: /nova_api query: read_default_file: /etc/my.cnf.d/tripleo.cnf read_default_group: tripleo nova::placement_database_connection: make_url: scheme: {get_param: [EndpointMap, MysqlInternal, protocol]} username: nova_api password: {get_param: NovaPassword} host: {get_param: [EndpointMap, MysqlInternal, host]} path: /nova_api query: read_default_file: /etc/my.cnf.d/tripleo.cnf read_default_group: tripleo nova::logging::debug: if: - service_debug_unset - {get_param: Debug } - {get_param: NovaDebug } nova::purge_config: {get_param: EnableConfigPurge} nova::network::neutron::neutron_project_name: 'service' nova::network::neutron::neutron_username: 'neutron' nova::network::neutron::neutron_region_name: {get_param: KeystoneRegion} nova::network::neutron::dhcp_domain: '' nova::network::neutron::neutron_password: {get_param: NeutronPassword} nova::network::neutron::neutron_url: {get_param: [EndpointMap, NeutronInternal, uri]} nova::network::neutron::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::neutron_auth_type: 'v3password' nova::db::database_db_max_retries: -1 nova::db::database_max_retries: -1 nova::db::sync::db_sync_timeout: {get_param: DatabaseSyncTimeout} nova::db::sync_api::db_sync_timeout: {get_param: DatabaseSyncTimeout} nova::glance_api_servers: {get_param: [EndpointMap, GlanceInternal, uri]} nova::use_ipv6: {get_param: NovaIPv6} nova::network::neutron::neutron_ovs_bridge: {get_param: NovaOVSBridge} nova::cron::archive_deleted_rows::minute: {get_param: NovaCronArchiveDeleteRowsMinute} nova::cron::archive_deleted_rows::hour: {get_param: NovaCronArchiveDeleteRowsHour} nova::cron::archive_deleted_rows::monthday: {get_param: NovaCronArchiveDeleteRowsMonthday} nova::cron::archive_deleted_rows::month: {get_param: NovaCronArchiveDeleteRowsMonth} nova::cron::archive_deleted_rows::weekday: {get_param: NovaCronArchiveDeleteRowsWeekday} nova::cron::archive_deleted_rows::max_rows: {get_param: NovaCronArchiveDeleteRowsMaxRows} nova::cron::archive_deleted_rows::user: {get_param: NovaCronArchiveDeleteRowsUser} nova::cron::archive_deleted_rows::destination: {get_param: NovaCronArchiveDeleteRowsDestination} nova::cron::archive_deleted_rows::until_complete: {get_param: NovaCronArchiveDeleteRowsUntilComplete} nova::cron::archive_deleted_rows::purge: {get_param: NovaCronArchiveDeleteRowsPurge} nova::cron::purge_shadow_tables::minute: {get_param: NovaCronPurgeShadowTablesMinute} nova::cron::purge_shadow_tables::hour: {get_param: NovaCronPurgeShadowTablesHour} nova::cron::purge_shadow_tables::monthday: {get_param: NovaCronPurgeShadowTablesMonthday} nova::cron::purge_shadow_tables::month: {get_param: NovaCronPurgeShadowTablesMonth} nova::cron::purge_shadow_tables::weekday: {get_param: NovaCronPurgeShadowTablesWeekday} nova::cron::purge_shadow_tables::user: {get_param: NovaCronPurgeShadowTablesUser} nova::cron::purge_shadow_tables::destination: {get_param: NovaCronPurgeShadowTablesDestination} nova::cron::purge_shadow_tables::age: {get_param: NovaCronPurgeShadowTablesAge} nova::cron::purge_shadow_tables::verbose: {get_param: NovaCronPurgeShadowTablesVerbose} nova::cron::purge_shadow_tables::all_cells: {get_param: NovaCronPurgeShadowTablesAllCells} nova::compute::sync_power_state_interval: {get_param: NovaSyncPowerStateInterval} nova_is_additional_cell: {get_param: NovaAdditionalCell} - get_attr: [RoleParametersValue, value] - if: - compute_upgrade_level_empty - {} - nova::upgrade_level_compute: {get_param: UpgradeLevelNovaCompute} service_config_settings: mysql: # NOTE(aschultz): this should be configurable if/when we support more # complex cell v2 configurations. For now, this is the default cell # created for the cell v2 configuration nova::db::mysql_api::setup_cell0: true nova::rabbit_use_ssl: {get_param: RpcUseSSL}