File: roadmap.rst

package info (click to toggle)
cloudkitty 23.0.0-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 3,528 kB
  • sloc: python: 21,803; sh: 528; makefile: 226; pascal: 54
file content (382 lines) | stat: -rw-r--r-- 13,045 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
.. raw:: html

    <style> .roadmap-not-started {background: #EF9A9A} </style>
    <style> .roadmap-started {background: #FFF59D} </style>
    <style> .roadmap-review {background: #90CAF9} </style>
    <style> .roadmap-done {background: #A5D6A7} </style>
    <style> .roadmap-good-first-contribution {background: #80DEEA} </style>

.. role:: roadmap-not-started
.. role:: roadmap-started
.. role:: roadmap-review
.. role:: roadmap-done
.. role:: roadmap-good-first-contribution

=========
 Roadmap
=========

This is the roadmap for planned changes in CloudKitty. Changes are split into:

* Continuous

* Short-term (planned for the next release)

* Mid-term (ideally for the next release, else for release R+2)

* Long-term (for changes that will definitely not happen
  during the next release).

.. note:: This document must be kept up-to-date.  Any newly planned feature
          should be added. The statuses of the existing features should be
          updated regularly. At each release, it is the CloudKitty's PTL's
          responsibility to remove the changes that have been merged during
          the previous release.

How to edit this document
=========================

The first two columns should not need to be modified. If there are several
assignees to a change, you can either specify each person individually or
write the word ``multiple`` in the ``Assignees`` column.

Status columns can be in four states:

* :roadmap-not-started:`Not started`
* :roadmap-started:`Started`
* :roadmap-review:`Review`
* :roadmap-done:`Done`

See the source file of this document for highlighting syntax
(``doc/source/developer/roadmap.rst``).

Continuous effort
=================

Some points deserve continuous effort. These are not tied to a specific
release, but are some of the most important aspects of the project. Some of
these can be good first contributions.

* **Welcoming and mentoring new contributors.** Reviewers should be especially
  kind when reviewing a person's first contribution. Don't assume that they
  know the "developer workflow" document and OpenStack guidelines by heart,
  and point them to the right resources if needed.

* **Improving the documentation.** This includes migrating documentation to
  the new format (adopt a user-profile and component-based layout), but also
  adding information you figured out by yourself and couldn't find in the
  existing documentation (for example: notes for specific configuration
  options, some examples, additional explanations on some notions that may be
  difficult to grasp for newcomers...).

* **Improving the troubleshooting documentation.** The creation of this
  documentation is part of the mid-term effort (see below). It will be
  especially useful for new users.
  :roadmap-good-first-contribution:`Good first contribution`

* **Adding tests.** There are *never* enough tests, so don't be shy and feel
  free to improve the current unit tests or add some scenarios to the tempest
  plugin.
  :roadmap-good-first-contribution:`Good first contribution`

Short-term effort
=================

.. list-table::
   :header-rows: 1

   * - Planned Change
     - Assignees
     - Spec status
     - Implementation status
     - Short summary

   * - Adding the v2 API
     - peschk_l
     - :roadmap-done:`Done`
     - :roadmap-done:`Done`
     - The new API of CloudKitty, to which all new endpoints will be added.

   * - Support local timezones
     - peschk_l
     - :roadmap-done:`Done`
     - :roadmap-done:`Done`
     - Currently, CloudKitty converts all dates to UTC and is not
       timezone-aware. This must be changed in order to get a better user
       experience.

   * - Add a Prometheus scope fetcher
     - jferrieu
     - :roadmap-done:`Done`
     - :roadmap-done:`Done`
     - A scope fetcher that will work in a similar way to the Gnocchi fetcher
       (retrieving all values for a given metadata field on a set of metrics).

   * - Add support for the v2 API to the client
     - peschk_l
     - :roadmap-done:`Done`
     - :roadmap-done:`Done`
     - Add the necessary base to the client to start supporting v2 API
       endpoints.

   * - Add a v2 API endpoint allowing to reset the state of a scope
     - jferrieu
     - :roadmap-done:`Done`
     - :roadmap-done:`Done`
     - This will allow to delete all the data for a specific scope after a
       given date, and reset the state of this scope to that date.

   * - Add a V2 API endpoint allowing to retrieve rating information
     - Multiple
     - :roadmap-done:`Done`
     - :roadmap-done:`Done`
     - This will be an improved version of the ``/summary`` endpoint available
       in the v1 API. It will allow grouping of data on any groupby attribute.

   * - Add a v2 API endpoint allowing to generate reports
     - jferrieu
     - :roadmap-started:`Started`
     - :roadmap-not-started:`Not started`
     - This will be a replacement for ``cloudkitty-writer``.

Mid-term effort
===============

.. list-table::
   :header-rows: 1

   * - Planned Change
     - Assignees
     - Spec status
     - Implementation status
     - Short summary

   * - Creating a new rating module
     - Multiple
     - :roadmap-started:`Started`
     - :roadmap-not-started:`Not started`
     - This module will add support for validity periods on rating rules,
       rulesets and will allow rule creation in a declarative way.

   * - Add a second v2 storage backend
     - peschk_l
     - :roadmap-review:`Review:` https://review.opendev.org/#/c/673461/
     - :roadmap-not-started:`Not started`
     - An alternative to InfluxDB, with support for clustering. For now,
       Elasticsearch has been retained.

   * - Add a troubleshooting documentation
     - Multiple
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - A documentation providing responses, checklists and tutorials to the
       most frequently asked questions on the ``#cloudkitty`` IRC channel.


Long-term effort
================

.. list-table::
   :header-rows: 1

   * - Planned Change
     - Assignees
     - Spec status
     - Implementation status
     - Short summary

   * - Complete migration of the v1 API into v2
     - Multiple
     - :roadmap-started:`Started`
     - :roadmap-not-started:`Not started`
     - Making every (if not deprecated) endpoint of the v1 API available in
       the v2 API.

   * - Adding authentication middlewares to the API in case it is used without
       keystone.
     - Undefined
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - This would allow support for RBAC outside of an openstack context.

API Migration status
====================

.. note:: v1 API endpoints which are not listed below will not be migrated.

.. list-table::
   :header-rows: 1

   * - v1 endpoint
     - Spec
     - Endpoint
     - Client
     - Tempest tests

   * - ``GET /v1/info/config``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`

   * - ``GET /v1/info/metric``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`

   * - ``GET /v1/rating/modules``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`

   * - ``PUT /v1/rating/modules``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`

   * - ``POST /v1/rating/quote``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`

   * - ``GET /v1/report/summary``
     - :roadmap-done:`Done`
     - :roadmap-done:`Done`
     - :roadmap-done:`Done`
     - :roadmap-not-started:`Not started`

   * - ``GET /v1/storage/dataframes``
     - :roadmap-done:`Done`
     - :roadmap-done:`Done`
     - :roadmap-review:`Review: https://review.opendev.org/#/c/681660/`
     - :roadmap-not-started:`Not started`

   * - ``GET /v1/rating/module_config/pyscripts/scripts``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`

   * - ``POST /v1/rating/module_config/pyscripts/scripts``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`

   * - ``PUT /v1/rating/module_config/pyscripts/scripts``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`

   * - ``DELETE /v1/rating/module_config/pyscripts/scripts``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`

   * - ``GET /v1/rating/module_config/hashmap/types``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`

   * - ``GET /v1/rating/module_config/hashmap/services``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`

   * - ``POST /v1/rating/module_config/hashmap/services``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`

   * - ``DELETE /v1/rating/module_config/hashmap/services``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`

   * - ``GET /v1/rating/module_config/hashmap/fields``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`

   * - ``POST /v1/rating/module_config/hashmap/fields``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`

   * - ``DELETE /v1/rating/module_config/hashmap/fields``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`

   * - ``GET /v1/rating/module_config/hashmap/mappings``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`

   * - ``POST /v1/rating/module_config/hashmap/mappings``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`

   * - ``PUT /v1/rating/module_config/hashmap/mappings``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`

   * - ``DELETE /v1/rating/module_config/hashmap/mappings``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`

   * - ``GET /v1/rating/module_config/hashmap/mappings/group``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`

   * - ``GET /v1/rating/module_config/hashmap/groups``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`

   * - ``POST /v1/rating/module_config/hashmap/groups``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`

   * - ``DELETE /v1/rating/module_config/hashmap/groups``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`

   * - ``GET /v1/rating/module_config/hashmap/groups/mappings``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`

   * - ``GET /v1/rating/module_config/hashmap/groups/thresholds``
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`
     - :roadmap-not-started:`Not started`