Mark Goddard 27f4876eed Switch default cloudkitty storage backend to influxdb
Backport: stein

In the Stein release, cloudkitty switched the default storage backend
from sqlalchemy to influxdb. In kolla-ansible stein configuration, we
did not explicitly set the storage backend, and so we automatically
picked up this change. However, prior to
https://review.opendev.org/#/c/615928/ we did not have full support for
InfluxDB as a storage backend, and so this has broken the Rocky-Stein
upgrade (https://bugs.launchpad.net/kolla-ansible/+bug/1838641), which
fails with this during the DB sync:

ERROR cloudkitty InfluxDBClientError: get_list_retention_policies()
requires a database as a parameter or the client to be using a database

This change synchronises our default with cloudkitty's (influxdb), and
also provides an upgrade transition to create the influxdb database.

We also move the cloudkitty_storage_backend variable to
group_vars/all.yml, since it is used to determine whether to enable
influxdb.

Finally, the section name in cloudkitty.conf was incorrect - it was
storage_influx,  but should be storage_influxdb.

Change-Id: I71f2ed11bd06f58e141d222e2709835b7ddb2c71
Closes-Bug: #1838641
2019-09-24 16:15:14 +00:00

21 lines
593 B
YAML

---
- include_tasks: config.yml
# NOTE(mgoddard): Transition support for upgrades from Rocky or Stein which may
# be using the SQLAlchemy storage backend.
# TODO(mgoddard): Remove in U cycle.
- name: Creating Cloudkitty influxdb database
become: true
kolla_toolbox:
module_name: influxdb_database
module_args:
hostname: "{{ influxdb_address }}"
port: "{{ influxdb_http_port }}"
database_name: "{{ cloudkitty_influxdb_name }}"
when: cloudkitty_storage_backend == 'influxdb'
- include_tasks: bootstrap_service.yml
- name: Flush handlers
meta: flush_handlers