From 154b7c0070f0b2aa3d46bce4dd08ce6b27c236b9 Mon Sep 17 00:00:00 2001 From: Bartosz Zurkowski Date: Fri, 21 Dec 2018 23:27:52 +0100 Subject: [PATCH] Add Trove cluster capacity autoscaling example In response to low disk capacity on any cluster nodes an alarm is raised on the whole cluster and Mistral workflow is triggered to scale cluster capacity up. Change-Id: Ie013b44199816fe2b65d0ebfc9b95f7b5324f863 Signed-off-by: Bartosz Zurkowski --- ...database_cluster_capacity_autoscaling.yaml | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 etc/vitrage/templates.sample/database_cluster_capacity_autoscaling.yaml diff --git a/etc/vitrage/templates.sample/database_cluster_capacity_autoscaling.yaml b/etc/vitrage/templates.sample/database_cluster_capacity_autoscaling.yaml new file mode 100644 index 000000000..3a18a486e --- /dev/null +++ b/etc/vitrage/templates.sample/database_cluster_capacity_autoscaling.yaml @@ -0,0 +1,82 @@ +metadata: + version: 2 + name: database-cluster-capacity-autoscaling + type: standard + description: Automatically scales the capacity of Trove database clusters in response to insufficient disk space alerts +definitions: + entities: + - entity: + category: RESOURCE + type: trove.cluster + template_id: trove_cluster + - entity: + category: RESOURCE + type: trove.instance + template_id: trove_instance + - entity: + category: ALARM + name: trove-instance-low-disk-space + template_id: trove_instance_low_disk + - entity: + category: ALARM + name: trove-cluster-low-disk-space + template_id: trove_cluster_low_disk + relationships: + - relationship: + source: trove_cluster + target: trove_instance + relationship_type: contains + template_id: trove_cluster_contains_instance + - relationship: + source: trove_instance_low_disk + target: trove_instance + relationship_type: on + template_id: low_disk_on_trove_instance + - relationship: + source: trove_cluster_low_disk + target: trove_cluster + relationship_type: on + template_id: low_disk_on_trove_cluster +scenarios: + - scenario: + condition: low_disk_on_trove_instance + actions: + - action: + action_type: set_state + properties: + state: SUBOPTIMAL + action_target: + target: trove_instance + - scenario: + condition: low_disk_on_trove_instance and trove_cluster_contains_instance + actions: + - action: + action_type: set_state + properties: + state: SUBOPTIMAL + action_target: + target: trove_cluster + - action: + action_type: raise_alarm + properties: + alarm_name: trove-cluster-low-disk-space + severity: CRITICAL + action_target: + target: trove_cluster + - scenario: + condition: low_disk_on_trove_instance and low_disk_on_trove_cluster and trove_cluster_contains_instance + actions: + - action: + action_type: add_causal_relationship + action_target: + source: trove_instance_low_disk + target: trove_cluster_low_disk + - scenario: + condition: low_disk_on_trove_instance and trove_cluster_contains_instance and low_disk_on_trove_cluster + actions: + - action: + action_type: execute_mistral + properties: + workflow: trove_resize_cluster_volume + input: + cluster_id: get_attr(trove_cluster,id)