Add spec for BP implement-ceilometer
This spec is to propose a solution for implementing ceilometer into OSAD. Change-Id: I97a1a14910c5396f47a15a906c393185c42ed974 Implements: blueprint implement-ceilometer
This commit is contained in:
parent
ada11a98a7
commit
d5d5c39da6
|
@ -0,0 +1,290 @@
|
|||
Implement Ceilometer
|
||||
####################
|
||||
:date: 2015-03-31 10:30
|
||||
:tags: kilo, ceilometer
|
||||
|
||||
This blueprint was created to add the Celiometer project to OSAD.
|
||||
It will lay out a possible solution that will hopefully in turn
|
||||
create discussion around how to properly implement ceilometer as an
|
||||
OPTIONAL component of OSAD.
|
||||
|
||||
* https://blueprints.launchpad.net/openstack-ansible/+spec/implement-ceilometer
|
||||
|
||||
Problem description
|
||||
===================
|
||||
|
||||
Currently, OSAD does not implement Ceilometer for various reasons. One being
|
||||
the unstable nature of the project in production environments - causing
|
||||
ever growing database tables resulting in extremely slow API quries.
|
||||
However, some may still want to deploy Ceilometer and may prefer to
|
||||
deal with the problem internally.
|
||||
|
||||
Furthermore, these issues should not discount the credibility of Ceilometer
|
||||
as an OpenStack project, and as such, it should be implemented into OSAD.
|
||||
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
An additional role, os_ceilometer, would need to be added to handle the
|
||||
installation/configuration of the ceilometer services. Also, additional
|
||||
configuration directives would need to be added to other projects (such as
|
||||
cinder, nova, glance, etc..) so that they will generate notifications.
|
||||
|
||||
For the database, the /etc/openstack_deploy/conf.d/ceilometer.yml should give
|
||||
the user an option as to which database they want to connect to. This BP
|
||||
does not implement the deployment of an additional database for Ceilometer,
|
||||
but can be discussed as a potential addition.
|
||||
|
||||
Furthermore, new host groups will be added to the env.d/ceilometer.yml
|
||||
file so that the user may specify which infra nodes to install the central
|
||||
agents on , and which compute nodes to install the compute agent on. The
|
||||
proposed changes to the this file will look something like::
|
||||
|
||||
component_skel:
|
||||
ceilometer_agent_compute:
|
||||
belongs_to:
|
||||
- ceilometer_all
|
||||
ceilometer_agent_central:
|
||||
belongs_to:
|
||||
- ceilometer_all
|
||||
ceilometer_agent_notification:
|
||||
belongs_to:
|
||||
- ceilometer_all
|
||||
ceilometer_collector:
|
||||
belongs_to:
|
||||
- ceilometer_all
|
||||
ceilometer_alarm_evaluator:
|
||||
belongs_to:
|
||||
- ceilometer_all
|
||||
ceilometer_alarm_notifier:
|
||||
belongs_to:
|
||||
- ceilometer_all
|
||||
ceilometer_api:
|
||||
belongs_to:
|
||||
- ceilometer_all
|
||||
|
||||
container_skel:
|
||||
ceilometer_api_container:
|
||||
belongs_to:
|
||||
- metering-infra_containers
|
||||
contains:
|
||||
- ceilometer_agent_central
|
||||
- ceilometer_agent_notification
|
||||
- ceilometer_collector
|
||||
- ceilometer_alarm_evaluator
|
||||
- ceilometer_alarm_notifier
|
||||
- ceilometer_api
|
||||
properties:
|
||||
service_name: ceilometer
|
||||
container_release: trusty
|
||||
metering-compute_container:
|
||||
belongs_to:
|
||||
- metering-compute_containers
|
||||
contains:
|
||||
- ceilometer_agent_compute
|
||||
properties:
|
||||
service_name: ceilometer
|
||||
container_release: trusty
|
||||
is_metal: true
|
||||
|
||||
physical_skel:
|
||||
metering-compute_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
metering-compute_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
metering-infra_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
metering-infra_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
|
||||
Notable changes:
|
||||
* New ceilometer role
|
||||
* New ceilometer playbooks
|
||||
* A openstack_user_config.yml file in the openstack_deploy/conf.d/ directory
|
||||
specifically for ceilometer configurations.
|
||||
* Added vars in appropriate files
|
||||
* Haproxy config changes for ceilometer apis.
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
Don't do it.
|
||||
|
||||
|
||||
Playbook impact
|
||||
---------------
|
||||
|
||||
The ceilometer component should be OPTIONAL. And thus have no effect on other
|
||||
playbooks when chosen not to be run. However, when chosen to be run, other
|
||||
configurations across different projects can be changed to allow
|
||||
notifications.
|
||||
|
||||
Upgrade impact
|
||||
--------------
|
||||
|
||||
None known
|
||||
|
||||
Security impact
|
||||
---------------
|
||||
|
||||
Credentials for the Ceilometer database may need to be specified by the user,
|
||||
as this BP does not implement the deployment of the Ceilometer database at
|
||||
this moment.
|
||||
|
||||
Performance impact
|
||||
------------------
|
||||
|
||||
When ceilometer is enabled, the horizon dashboard can potentially slow down
|
||||
due to large API responses from ceilometer. This is related to the problem
|
||||
stated in the Problem Description. We must let the user know about this known
|
||||
problem, and advise the ceilometer database be properly supervised.
|
||||
When ceilometer is disabled, it should have no performance impact.
|
||||
|
||||
|
||||
End user impact
|
||||
---------------
|
||||
|
||||
The user will now have the option to enable ceilometer on their private cloud.
|
||||
|
||||
Deployer impact
|
||||
---------------
|
||||
|
||||
Additional configs must be specified in
|
||||
/etc/openstack_deploy/conf.d/ceilometer.yml only if the deployer wants
|
||||
ceilometer to be enabled.
|
||||
|
||||
The deployer needs to be aware of the database that is going to be used
|
||||
for ceilometer.
|
||||
|
||||
Developer impact
|
||||
----------------
|
||||
|
||||
A new role will be created to handle the installation/configuration of
|
||||
ceilometer. This role will be run explicitly by the deployer.
|
||||
|
||||
Dependencies
|
||||
------------
|
||||
|
||||
N/A
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
Primary Assignee(s)
|
||||
-------------------
|
||||
|
||||
Miguel Alejandro Cantu
|
||||
Sudarshan Acharya
|
||||
|
||||
Other contributors:
|
||||
-------------------
|
||||
|
||||
|
||||
Work items
|
||||
----------
|
||||
|
||||
At the very least, the following need to get done:
|
||||
* New ceilometer role
|
||||
* New ceilometer playbooks
|
||||
* A openstack_user_config.yml file in the openstack_deploy/conf.d/
|
||||
directory specifically for ceilometer configurations.
|
||||
* Added vars in the appropriate sections.
|
||||
* Haproxy config changes for ceilometer apis.
|
||||
|
||||
The following files need to be modified:
|
||||
|
||||
* etc/openstack_deploy/env.d/openstack_environment.yml
|
||||
* etc/openstack_deploy/user_secrets.yml
|
||||
* etc/openstack_deploy/user_variables.yml
|
||||
* playbooks/inventory/group_vars/all.yml
|
||||
* playbooks/vars/configs/haproxy_config.yml
|
||||
* playbooks/vars/repo_packages/openstack_services.yml
|
||||
* playbooks/roles/os_cinder/defaults/main.yml
|
||||
* playbooks/roles/os_cinder/templates/cinder.conf.j2
|
||||
* playbooks/roles/os_glance/defaults/main.yml
|
||||
* playbooks/roles/os_glance/templates/glance-api.conf.j2
|
||||
* playbooks/roles/os_glance/tempaltes/glance-registry.conf.j2
|
||||
* playbooks/roles/os_heat/defaults/main.yml
|
||||
* playbooks/roles/os_heat/templates/heat.conf.j2
|
||||
* playbooks/roles/os_nova/defaults/main.yml
|
||||
* playbooks/roles/os_nova/templates/nova.conf.j2
|
||||
* playbooks/roles/os_swift/defaults/main.yml
|
||||
* playbooks/roles/os_swift/tasks/swift_service_setup.yml
|
||||
* playbooks/roles/os_swift/templates/proxy-server.conf.j2
|
||||
|
||||
The following files need to added:
|
||||
|
||||
* etc/openstack/deploy/conf.d/ceilometer.yml.example
|
||||
* playbooks/os-ceilometer-install.yml
|
||||
* playbooks/roles/os_ceilometer/
|
||||
|
||||
* CONTRIBUTING.rst
|
||||
* LICENSE
|
||||
* README.rst
|
||||
* defaults/
|
||||
|
||||
* main.yml
|
||||
* handlers/
|
||||
|
||||
* main.yml
|
||||
|
||||
* meta/
|
||||
|
||||
* main.yml
|
||||
|
||||
* templates/
|
||||
|
||||
* ceilometer.conf.j2
|
||||
* api_paste.ini.j2
|
||||
* ceilometer-upstart-init.j2
|
||||
* event_definitions.yaml.j2
|
||||
* event_pipeline.yaml.j2
|
||||
* pipeline.yaml.j2
|
||||
* sudoers.j2
|
||||
|
||||
* tasks/
|
||||
|
||||
* main.yml
|
||||
* ceilometer_install.yml
|
||||
* ceilometer_pre_install.yml
|
||||
* ceilometer_post_install.yml
|
||||
* ceilometer_service_setup.yml
|
||||
* ceilometer_service_add.yml
|
||||
* ceilometer_upstart_common_init.yml
|
||||
* ceilometer_upstart_init.yml
|
||||
|
||||
|
||||
Testing
|
||||
=======
|
||||
The gate scripts will need to be modified with the ceilometer
|
||||
configurations turned on. A variable of the like of
|
||||
"DEPLOY_CEILOMETER" will be added with the appropriate
|
||||
conditionals in place to deploy ceilometer with a mongodb
|
||||
server for testing.
|
||||
|
||||
The playbooks will point to a mongodb server deployed on the AIO.
|
||||
A gate script will be created to deploy a simple mongodb server on the AIO
|
||||
using an ansible galaxy role.
|
||||
|
||||
|
||||
Documentation impact
|
||||
====================
|
||||
|
||||
Thorough documentation will need to be created explaining how to enable
|
||||
ceilometer.
|
||||
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
* http://goo.gl/LA7o6N
|
||||
* http://goo.gl/Xj7cqT
|
||||
* https://www.rdoproject.org/CeilometerQuickStart
|
||||
* http://docs.openstack.org/developer/ceilometer/install/manual.html
|
Loading…
Reference in New Issue