From 6fcccdae59a26b789a9b4bc7561dedb2d579d866 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafael=20Weing=C3=A4rtner?= <rafael@apache.org>
Date: Tue, 7 Apr 2020 16:46:30 -0300
Subject: [PATCH] Allow operators to use "ceilometer-upgrade" parameters

Allow operators to use custom parameters with the ceilometer-upgrade
command. This is quite useful when using the dynamic pollster subsystem;
that sub-system provides flexibility to create and edit pollsters configs,
which affects gnocchi resource-type configurations. However, Ceilometer
uses default and hard-coded resource-type configurations; if one customizes
some of its default resource-types, he/she can get into trouble during
upgrades. Therefore, the only way to work around it is to use the
"--skip-gnocchi-resource-types" flag. This PR introduces a method for
operators to execute such customization, and many others if needed.

Depends-On: https://review.opendev.org/#/c/718190/
Change-Id: I92f0edba92c9e3707d89b3ff4033ac886b29cf6d
---
 ansible/roles/ceilometer/defaults/main.yml           |  8 ++++++++
 ansible/roles/ceilometer/tasks/bootstrap_service.yml |  3 ++-
 ...m-ceilometer-upgrade-params-c07eec4c1ef5a3d3.yaml | 12 ++++++++++++
 3 files changed, 22 insertions(+), 1 deletion(-)
 create mode 100644 releasenotes/notes/allow-custom-ceilometer-upgrade-params-c07eec4c1ef5a3d3.yaml

diff --git a/ansible/roles/ceilometer/defaults/main.yml b/ansible/roles/ceilometer/defaults/main.yml
index 721fc3a490..784cd87ac7 100644
--- a/ansible/roles/ceilometer/defaults/main.yml
+++ b/ansible/roles/ceilometer/defaults/main.yml
@@ -121,3 +121,11 @@ ceilometer_ks_users:
     user: "{{ ceilometer_keystone_user }}"
     password: "{{ ceilometer_keystone_password }}"
     role: "admin"
+
+####################
+# Backend
+####################
+
+ceilometer_database_type: "gnocchi"
+
+ceilometer_upgrade_params: ""
diff --git a/ansible/roles/ceilometer/tasks/bootstrap_service.yml b/ansible/roles/ceilometer/tasks/bootstrap_service.yml
index 617df689cb..37a11ff7b7 100644
--- a/ansible/roles/ceilometer/tasks/bootstrap_service.yml
+++ b/ansible/roles/ceilometer/tasks/bootstrap_service.yml
@@ -10,7 +10,8 @@
     environment:
       KOLLA_BOOTSTRAP:
       KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
-      CEILOMETER_DATABASE_TYPE: "gnocchi"
+      CEILOMETER_DATABASE_TYPE: "{{ ceilometer_database_type }}"
+      CEILOMETER_UPGRADE_PARAMS: "{{ ceilometer_upgrade_params }}"
     image: "{{ ceilometer_notification.image }}"
     labels:
       BOOTSTRAP:
diff --git a/releasenotes/notes/allow-custom-ceilometer-upgrade-params-c07eec4c1ef5a3d3.yaml b/releasenotes/notes/allow-custom-ceilometer-upgrade-params-c07eec4c1ef5a3d3.yaml
new file mode 100644
index 0000000000..2e80730801
--- /dev/null
+++ b/releasenotes/notes/allow-custom-ceilometer-upgrade-params-c07eec4c1ef5a3d3.yaml
@@ -0,0 +1,12 @@
+---
+features:
+  - |
+    Allow operators to use custom parameters with the ceilometer-upgrade
+    command. This is quite useful when using the dynamic pollster subsystem;
+    that sub-system provides flexibility to create and edit pollsters configs,
+    which affects gnocchi resource-type configurations. However, Ceilometer
+    uses default and hard-coded resource-type configurations; if one customizes
+    some of its default resource-types, he/she can get into trouble during
+    upgrades. Therefore, the only way to work around it is to use the
+    "--skip-gnocchi-resource-types" flag. This release introduces a method for
+    operators to execute such customization, and many others if needed.
-- 
GitLab