.. 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 `__ (ceilometer/publisher/direct.py) was done under this `commit `__. 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 `__. * `Notes `__ on unneeded duplication of publishers and dispatchers. * A `discussion `__ 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 https://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.