placement: Deprecate the deployment of the Placement service

The Placement service is currently scheduled to be extracted from the
Nova project during the Train cycle. Ahead of this the deployment of the
service using puppet-nova has now been deprecated in favour of the
puppet-placement module.

Change-Id: Iefade0f0a9bb0ab83c0aba6c5f263bde240cf9a2
This commit is contained in:
Lee Yarwood 2019-02-12 14:00:31 +00:00
parent b784174c3c
commit 6d762a2477
8 changed files with 164 additions and 47 deletions

View File

@ -42,14 +42,6 @@
# (optional) Connection url to connect to nova api slave database (read-only).
# Defaults to $::os_service_default
#
# [*placement_database_connection*]
# (optional) Connection url to connect to placement database.
# Defaults to $::os_service_default
#
# [*placement_slave_connection*]
# (optional) Connection url to connect to placement slave database (read-only).
# Defaults to $::os_service_default
#
# [*database_idle_timeout*]
# Timeout when db connections should be reaped.
# (Optional) Defaults to $::os_service_default
@ -79,14 +71,22 @@
# (Optional) If set, use this value for pool_timeout with SQLAlchemy.
# Defaults to $::os_service_default
#
# DEPRECATED PARAMETERS
#
# [*placement_database_connection*]
# (optional) Connection url to connect to placement database.
# Defaults to $::os_service_default
#
# [*placement_slave_connection*]
# (optional) Connection url to connect to placement slave database (read-only).
# Defaults to $::os_service_default
class nova::db (
$database_db_max_retries = $::os_service_default,
$database_connection = $::os_service_default,
$slave_connection = $::os_service_default,
$api_database_connection = $::os_service_default,
$api_slave_connection = $::os_service_default,
$placement_database_connection = $::os_service_default,
$placement_slave_connection = $::os_service_default,
$database_idle_timeout = $::os_service_default,
$database_min_pool_size = $::os_service_default,
$database_max_pool_size = $::os_service_default,
@ -94,11 +94,22 @@ class nova::db (
$database_retry_interval = $::os_service_default,
$database_max_overflow = $::os_service_default,
$database_pool_timeout = $::os_service_default,
# DEPRECATED PARAMETERS
$placement_database_connection = $::os_service_default,
$placement_slave_connection = $::os_service_default,
) {
include ::nova::deps
include ::nova::params
if $placement_database_connection {
warning('nova::db::placement_database_connection is deprecated and will be removed in a future release')
}
if $placement_slave_connection {
warning('nova::db::placement_slave_connection is deprecated and will be removed in a future release')
}
# NOTE(spredzy): In order to keep backward compatibility we rely on the pick function
# to use nova::<myparam> first the nova::db::<myparam>
$database_connection_real = pick($::nova::database_connection, $database_connection)

View File

@ -2,8 +2,13 @@
#
# Class that configures mysql for the nova_placement database.
#
# This class is deprecated and will be removed in a future release in favour of
# the puppet-placement module.
#
# === Parameters:
#
# DEPRECATED PARAMETERS
#
# [*password*]
# (Required) Password to use for the nova user
#
@ -32,6 +37,7 @@
# Defaults to undef
#
class nova::db::mysql_placement(
# DEPRECATED PARAMETERS
$password,
$dbname = 'nova_placement',
$user = 'nova_placement',
@ -41,6 +47,8 @@ class nova::db::mysql_placement(
$allowed_hosts = undef,
) {
warning('nova::db::mysql_placement is deprecated and will be removed in a future release')
include ::nova::deps
::openstacklib::db::mysql { 'nova_placement':

View File

@ -25,14 +25,6 @@
# (optional) Connection url to connect to nova API slave database (read-only).
# Defaults to undef.
#
# [*placement_database_connection*]
# (optional) Connection url for the placement database.
# Defaults to undef.
#
# [*placement_slave_connection*]
# (optional) Connection url to connect to placement slave database (read-only).
# Defaults to undef.
#
# [*database_max_retries*]
# (optional) Maximum database connection retries during startup.
# Defaults to undef.
@ -404,6 +396,14 @@
#
# DEPRECATED PARAMETERS
#
# [*placement_database_connection*]
# (optional) Connection url for the placement database.
# Defaults to undef.
#
# [*placement_slave_connection*]
# (optional) Connection url to connect to placement slave database (read-only).
# Defaults to undef.
#
# [*notify_api_faults*]
# (optional) If set, send api.fault notifications on caught
# exceptions in the API service
@ -427,8 +427,6 @@ class nova(
$slave_connection = undef,
$api_database_connection = undef,
$api_slave_connection = undef,
$placement_database_connection = undef,
$placement_slave_connection = undef,
$block_device_allocate_retries = $::os_service_default,
$block_device_allocate_retries_interval = $::os_service_default,
$database_idle_timeout = undef,
@ -512,6 +510,8 @@ class nova(
$purge_config = false,
$my_ip = $::os_service_default,
# DEPRECATED PARAMETERS
$placement_database_connection = undef,
$placement_slave_connection = undef,
$notify_api_faults = undef,
$image_service = undef,
$notify_on_api_faults = undef,
@ -523,6 +523,14 @@ class nova(
# maintain backward compatibility
include ::nova::db
if $placement_database_connection {
warning('nova::placement_database_connection is deprecated and will be removed in a future release')
}
if $placement_slave_connection {
warning('nova::placement_slave_connection is deprecated and will be removed in a future release')
}
if $use_ipv6 {
warning('nova::use_ipv6 is deprecated and will be removed in a future release')
}

View File

@ -2,8 +2,13 @@
#
# Creates nova placement api endpoints and service account in keystone
#
# This class is deprecated and will be removed in a future release in favour of
# the puppet-placement module.
# === Parameters:
#
# DEPRECATED PARAMETERS
#
# [*password*]
# (Required) Password to create for the service user
#
@ -56,6 +61,7 @@
# Defaults to true
#
class nova::keystone::auth_placement(
# DEPRECATED PARAMETERS
$password,
$auth_name = 'placement',
$service_name = 'placement',
@ -71,6 +77,8 @@ class nova::keystone::auth_placement(
$configure_user_role = true,
) inherits nova::params {
warning('nova::keystone::auth_placement is deprecated and will be removed in a future release')
include ::nova::deps
keystone::resource::service_identity { 'placement':

View File

@ -4,28 +4,6 @@
#
# === Parameters:
#
# [*enabled*]
# (optional) Whether the nova placement api service will be run
# Defaults to true
#
# [*manage_service*]
# (optional) Whether to start/stop the service
# Only useful if $::nova::params::service_name is set to
# nova-placement-api.
# Defaults to true
#
# [*package_name*]
# (optional) The package name for nova placement.
# Defaults to $::nova::params::placement_package_name
#
# [*service_name*]
# (optional) The service name for the placement service.
# Defaults to $::nova::params::placement_service_name
#
# [*ensure_package*]
# (optional) The state of the nova placement package
# Defaults to 'present'
#
# [*password*]
# (required) Password for connecting to Nova Placement API service in
# admin context through the OpenStack Identity service.
@ -77,12 +55,29 @@
# the placement API.
# Defaults to undef
#
# [*enabled*]
# (optional) Whether the nova placement api service will be run
# Defaults to true
#
# [*manage_service*]
# (optional) Whether to start/stop the service
# Only useful if $::nova::params::service_name is set to
# nova-placement-api.
# Defaults to true
#
# [*package_name*]
# (optional) The package name for nova placement.
# Defaults to $::nova::params::placement_package_name
#
# [*service_name*]
# (optional) The service name for the placement service.
# Defaults to $::nova::params::placement_service_name
#
# [*ensure_package*]
# (optional) The state of the nova placement package
# Defaults to 'present'
class nova::placement(
$enabled = true,
$manage_service = true,
$package_name = $::nova::params::placement_package_name,
$service_name = $::nova::params::placement_service_name,
$ensure_package = 'present',
$password = false,
$auth_type = 'password',
$auth_url = 'http://127.0.0.1:5000/v3',
@ -94,6 +89,11 @@ class nova::placement(
$username = 'placement',
# DEPRECATED PARAMETERS
$os_interface = undef,
$enabled = true,
$manage_service = true,
$package_name = $::nova::params::placement_package_name,
$service_name = $::nova::params::placement_service_name,
$ensure_package = 'present',
) inherits nova::params {
include ::nova::deps

View File

@ -2,8 +2,13 @@
#
# Class for deploying the Placement service.
#
# This class is deprecated and will be removed in a future release in favour of
# the puppet-placement module.
#
# === Parameters:
#
# DEPRECATED PARAMETERS
#
# [*enabled*]
# (optional) Whether the nova placement api service will be run
# Defaults to true
@ -27,6 +32,7 @@
# Defaults to 'present'
#
class nova::placement::service(
# DEPRECATED PARAMETERS
$enabled = true,
$manage_service = true,
$package_name = $::nova::params::placement_package_name,
@ -34,6 +40,8 @@ class nova::placement::service(
$ensure_package = 'present',
) inherits nova::params {
warning('nova::placement::service is deprecated and will be removed in a future release')
include ::nova::deps
assert_private()

View File

@ -22,6 +22,8 @@
#
# == Parameters
#
# DEPRECATED PARAMETERS
#
# [*servername*]
# The servername for the virtualhost.
# Optional. Defaults to $::fqdn
@ -122,6 +124,8 @@ class nova::wsgi::apache_placement (
$custom_wsgi_process_options = {},
) {
warning('nova::wsgi::apache_placement is deprecated and will be removed in a future release')
include ::nova::params
include ::apache
include ::apache::mod::wsgi

View File

@ -0,0 +1,70 @@
---
deprecations:
- |
The deployment of the Placement service using the following puppet-nova
classes is now deprecated in favour of the puppet-placement module:
- nova::placement
- nova::db::mysql_placement
- nova::keystone::auth_placement
- nova::wsgi::apache_placement
The following parameters are deprecated for removal:
- nova::placement_database_connection
- nova::placement_slave_connection
- nova::placement::enabled
- nova::placement::manage_service
- nova::placement::package_name
- nova::placement::service_name
- nova::placement::ensure_package
- nova::db::placement_database_connection
- nova::db::placement_slave_connection
- nova::db::mysql_placement::password
- nova::db::mysql_placement::dbname
- nova::db::mysql_placement::user
- nova::db::mysql_placement::host
- nova::db::mysql_placement::charset
- nova::db::mysql_placement::collate
- nova::db::mysql_placement::allowed_hosts
- nova::keystone::auth_placement::password,
- nova::keystone::auth_placement::auth_name
- nova::keystone::auth_placement::service_name
- nova::keystone::auth_placement::service_description
- nova::keystone::auth_placement::region
- nova::keystone::auth_placement::tenant
- nova::keystone::auth_placement::email
- nova::keystone::auth_placement::public_url
- nova::keystone::auth_placement::internal_url
- nova::keystone::auth_placement::admin_url
- nova::keystone::auth_placement::configure_endpoint
- nova::keystone::auth_placement::configure_user
- nova::keystone::auth_placement::configure_user_role
- nova::wsgi::apache_placement::servername
- nova::wsgi::apache_placement::api_port
- nova::wsgi::apache_placement::bind_host
- nova::wsgi::apache_placement::path
- nova::wsgi::apache_placement::ssl
- nova::wsgi::apache_placement::workers
- nova::wsgi::apache_placement::ssl_cert
- nova::wsgi::apache_placement::ssl_key
- nova::wsgi::apache_placement::ssl_chain
- nova::wsgi::apache_placement::ssl_ca
- nova::wsgi::apache_placement::ssl_crl_path
- nova::wsgi::apache_placement::ssl_crl
- nova::wsgi::apache_placement::ssl_certs_dir
- nova::wsgi::apache_placement::wsgi_process_display_name
- nova::wsgi::apache_placement::threads
- nova::wsgi::apache_placement::priority
- nova::wsgi::apache_placement::ensure_package
- nova::wsgi::apache_placement::access_log_file
- nova::wsgi::apache_placement::access_log_format
- nova::wsgi::apache_placement::error_log_file
- nova::wsgi::apache_placement::custom_wsgi_process_options
The nova::placement class will continue to be used to configure the
``[placement]`` section of ``nova.conf``.
These deprecations come ahead of the planned extraction of the Placement
service from the Nova project early in the upcoming OpenStack Train release
development cycle.