Enable S3 storage backend for Gnocchi

This is the feature spec for the s3 feature for gnocchi.
The feature PR is here: https://review.opendev.org/#/c/734682/

Change-Id: Ida8c8f3592d78a15d4d6258f012773e102cb528f
This commit is contained in:
camille.rodriguez 2020-06-30 09:14:05 -05:00
parent dca59921e2
commit 8701957730
1 changed files with 122 additions and 0 deletions

View File

@ -0,0 +1,122 @@
..
Copyright 2020 Canonical Ltd.
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
============================================
Enablement of S3 storage backend for Gnocchi
============================================
Problem Description
===================
The gnocchi charm is a multi-tenant times eries, metrics and resources
database. It currently only supports connections to a Ceph storage
backend. For anyone using a S3 storage backend, this is an issue.
Proposed Change
===============
The proposed solution is to make the choice of storage backend a
configuration option. The relation between gnocchi and ceph-mon would become
an optional one, that would be activated only when Ceph is the selected backend.
The upstream documentation of Gnocchi mentions that S3 storage backends are
supported, along with others, such as Swift, Redis and Ceph
(https://gnocchi.xyz/install.html). The new feature would be supported on OpenStack
Stein (and later) on Ubuntu 18.04 LTS.
Alternatives
------------
None.
Implementation
==============
Assignee(s)
-----------
Primary assignee: camille.rodriguez
Gerrit Topic
------------
Use Gerrit topic "s3-storage" for all patches related to this spec.
.. code-block:: bash
git-review -t s3-storage
Work Items
----------
* Add a charm option for selecting S3
* Add options for S3 in the configuration file:
* S3 endpoint URL
* S3 region name
* S3 access key id
* S3 secret access key
* Prefix to namespace metric bucket: s3_bucket_prefix = gnocchi
* Maximum time to wait checking data consistency when writing to S3: s3_check_consistency_timeout = 60
* The maximum number of connections to keep in a connection pool: s3_max_pool_connections = 50
* Make the Ceph relation and configuration optional, dependent on the charm option
* Implement https endpoint for S3
Timeline
-----------
The goal is to implement this change in the OpenstStack Charms 20.08 release. The freeze date for
this release is July 24th 2020, for a release on August 5th (see release
schedule). This change should be proposed for merging at least two weeks
ahead of freeze, so ideally submitted by July 10th 2020.
Repositories
------------
Changes will be pushed to the existing gnocchi charm repository:
https://git.openstack.org/openstack/charm-gnocchi
Documentation
-------------
* Update of the charm options
* Update of the charm README
Security
--------
No additional security concerns. The feature will be compatible
with an HTTPS endpoint to allow for encryption.
Testing
-------
Code changes will be covered by unit tests.
Functional tests would require S3 storage hardware or software emulation.
This is possible through a Swift deployment, or with RADOS Gateway. The deployment
of the storage backend with S3 capability would be independent from the
OpenStack bundle, to represent a real scenario.
Dependencies
============
No dependencies outside of this specification.