add a spec for Panko charm

Required to provide removed ceilometer event API funtionality

Change-Id: Ifa85616a1d44933e5d8d87867766e6544d82abaa
This commit is contained in:
Dmitrii Shcherbakov 2017-09-29 19:56:03 +03:00 committed by James Page
parent 4a74a9d982
commit e20dd9e0c2
1 changed files with 153 additions and 0 deletions

View File

@ -0,0 +1,153 @@
..
Copyright 2017, Canonical UK
This work is licensed under a Creative Commons Attribution 3.0
Unported License.
http://creativecommons.org/licenses/by/3.0/legalcode
..
This template should be in ReSTructured text. Please do not delete
any of the sections in this template. If you have nothing to say
for a whole section, just write: "None". For help with syntax, see
http://sphinx-doc.org/rest.html To test out your formatting, see
http://www.tele3.cz/jbar/rest/rest.html
===============================
Panko Charm
===============================
Ceilometer used to provide an event API to query and store events from
different OpenStack services. However, this functionality was deprecated
in Newton and removed in Ocata. Event storage and querying functionality
is now provided by a service called Panko. Use-cases of historical
event data storage include audit logging, debugging and billing.
Problem Description
===================
Panko is an event storage service that provides an ability to store and
query event data generated by Ceilometer with potentially other sources.
Panko includes support for several storage options (sqlalchemy-compatible
databases, mongodb, elasticsearch) which differ in their level of maturity.
At its core Panko is a regular API service with a database backend.
Events are published to Panko via Direct publisher in Ocata while in
Pike Direct publisher was deprecated and will be removed. For that
reason Panko publisher was added.
* Direct publisher `deprecation <https://docs.openstack.org/releasenotes/panko/unreleased.html#deprecation-notes>`__ (ceilometer/publisher/direct.py) was done under this `commit <https://git.io/vd98b>`__.
Another mechanism that was deprecated in Pike is dispatchers which were
used to send data specified by publishers. So were
{event,meter}_dispatchers options in ceilometer.conf
* Panko dispatcher `deprecation <https://docs.openstack.org/releasenotes/panko/unreleased.html#deprecation-notes>`__.
* `Notes <https://docs.openstack.org/releasenotes/ceilometer/ocata.html#deprecation-notes>`__ on unneeded duplication of publishers and dispatchers.
* A `discussion <http://lists.openstack.org/pipermail/openstack-dev/2017-April/115576.html>`__ on dispatchers vs publishers.
This is instead done directly by publishers in Pike and Panko publisher is
present in Panko's repository itself, not ceilometer repository.
Panko first appeared in Ocata Ubuntu Cloud Archive.
Ceilometer is able to query Panko's presence via Keystone catalog but
does not define a publisher for sending event data to Panko by default.
Proposed Change
===============
The new charm should include the following features:
- Support SQLAlchemy-compatible databases as storage backends;
- HA support;
- TLS support;
- integration with Ceilometer charm.
Alternatives
------------
None for historical event data within OpenStack.
Implementation
==============
Assignee(s)
-----------
Primary assignee:
dmitriis
Gerrit Topic
------------
Use Gerrit topic "panko-charm" for all patches related to this spec.
.. code-block:: bash
git-review -t panko-charm
Work Items
----------
Reactive Interfaces
+++++++++++++++++++
- interface: panko
Provide Panko charm
+++++++++++++++++++++
- Create a charm layer based on openstack-api layer;
- Add support for upgrading Panko (schema changes);
- Add support for deploying Panko in a highly available configuration;
- Add support for the Panko to display workload status;
- Add support TLS endpoints;
- Charm should have unit and functional tests.
Update Ceilometer Charm
+++++++++++++++++++++++++++++++++
- Support for deployment with Panko (by specifying publishers correctly
in event_pipeline.yaml for both Ocata and Pike+).
Mojo specification deploying and testing Panko
++++++++++++++++++++++++++++++++++++++++++++++++
- Update HA Mojo spec for deploying Panko in an HA configuration.
Update telemetry bundle
+++++++++++++++++++++++
- Update telemetry bundle to deploy Panko
Repositories
------------
A new git repository will be required for the Panko charm:
.. code-block:: bash
git://git.openstack.org/openstack/charm-panko
Documentation
-------------
The Panko charm should contain a README with instructions on deploying the
charm. A blog post is optional but would be a useful addition.
Security
--------
No additional security concerns.
Testing
-------
Code changes will be covered by unit tests; functional testing will be done
using a combination of Amulet, Bundle tester and Mojo specification.
Dependencies
============
- No dependencies outside of this specification.