From 34dd6eeba0f0eafe0e36edc969b8a83acf2cc51b Mon Sep 17 00:00:00 2001 From: Quentin Manfroi Date: Thu, 25 Apr 2019 18:52:28 +0200 Subject: [PATCH 1/3] MON-441 add extra tags support for custom filtering --- common/filter-tags/inputs.tf | 8 +++++++- common/filter-tags/locals.tf | 5 +++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/common/filter-tags/inputs.tf b/common/filter-tags/inputs.tf index 9c34609..c4b8283 100644 --- a/common/filter-tags/inputs.tf +++ b/common/filter-tags/inputs.tf @@ -24,7 +24,13 @@ variable "filter_tags_custom_excluded" { } variable "extra_tags" { - description = "Extra optional tags added for default filtering when filter_tags_use_defaults is true (i.e. [\"tag1:val1\", \"tag2:val2\"])" + description = "Extra optional tags added to include filtering in any case (i.e. [\"tag1:val1\", \"tag2:val2\"])" + type = "list" + default = [] +} + +variable "extra_tags_excluded" { + description = "Extra optional tags added to exclude filtering in any case (i.e. [\"tag1:val1\", \"tag2:val2\"])" type = "list" default = [] } diff --git a/common/filter-tags/locals.tf b/common/filter-tags/locals.tf index d153e77..f8447ac 100644 --- a/common/filter-tags/locals.tf +++ b/common/filter-tags/locals.tf @@ -1,7 +1,8 @@ locals { including_default_list = "${compact(concat(split(",", format("dd_monitoring:enabled,dd_%s:enabled,env:%s", var.resource, var.environment)), compact(var.extra_tags)))}" - excluding_list = "${compact(split(",", var.filter_tags_use_defaults == "true" ? "" : join(",", split(",", "${var.filter_tags_custom_excluded}"))))}" + including_custom_list = "${compact(concat(split(",", var.filter_tags_custom), compact(var.extra_tags)))}" + excluding_list = "${compact(split(",", var.filter_tags_use_defaults == "true" ? join(",", compact(var.extra_tags_excluded)) : join(",", concat(split(",", var.filter_tags_custom_excluded), compact(var.extra_tags_excluded)))))}" - including_string = "${var.filter_tags_use_defaults == "true" ? join(",", local.including_default_list) : "${var.filter_tags_custom}"}" + including_string = "${var.filter_tags_use_defaults == "true" ? join(",", local.including_default_list) : join(",", local.including_custom_list)}" excluding_string = "${join(",", local.excluding_list)}" } From ef7edb62c18157b0079fc6f19a19b9dac63f792e Mon Sep 17 00:00:00 2001 From: Quentin Manfroi Date: Thu, 25 Apr 2019 18:59:17 +0200 Subject: [PATCH 2/3] MON-441 update existing monitors using excluded extra tags --- caas/kubernetes/ingress/vts/modules.tf | 8 +++++--- caas/kubernetes/pod/modules.tf | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/caas/kubernetes/ingress/vts/modules.tf b/caas/kubernetes/ingress/vts/modules.tf index 288bd39..dac7f45 100644 --- a/caas/kubernetes/ingress/vts/modules.tf +++ b/caas/kubernetes/ingress/vts/modules.tf @@ -6,7 +6,7 @@ module "filter-tags" { filter_tags_use_defaults = "${var.filter_tags_use_defaults}" filter_tags_custom = "${var.filter_tags_custom}" filter_tags_custom_excluded = "${var.filter_tags_custom_excluded}" - extra_tags = ["!upstream:upstream-default-backend"] + extra_tags_excluded = ["upstream:upstream-default-backend"] } module "filter-tags-5xx" { @@ -17,7 +17,8 @@ module "filter-tags-5xx" { filter_tags_use_defaults = "${var.filter_tags_use_defaults}" filter_tags_custom = "${var.filter_tags_custom}" filter_tags_custom_excluded = "${var.filter_tags_custom_excluded}" - extra_tags = ["!upstream:upstream-default-backend,status_code:5xx"] + extra_tags = ["status_code:5xx"] + extra_tags_excluded = ["upstream:upstream-default-backend"] } module "filter-tags-4xx" { @@ -28,5 +29,6 @@ module "filter-tags-4xx" { filter_tags_use_defaults = "${var.filter_tags_use_defaults}" filter_tags_custom = "${var.filter_tags_custom}" filter_tags_custom_excluded = "${var.filter_tags_custom_excluded}" - extra_tags = ["!upstream:upstream-default-backend,status_code:4xx"] + extra_tags = ["status_code:4xx"] + extra_tags_excluded = ["upstream:upstream-default-backend"] } diff --git a/caas/kubernetes/pod/modules.tf b/caas/kubernetes/pod/modules.tf index 9232867..72b5b69 100644 --- a/caas/kubernetes/pod/modules.tf +++ b/caas/kubernetes/pod/modules.tf @@ -16,7 +16,7 @@ module "filter-tags-phase" { filter_tags_use_defaults = "${var.filter_tags_use_defaults}" filter_tags_custom = "${var.filter_tags_custom}" filter_tags_custom_excluded = "${var.filter_tags_custom_excluded}" - extra_tags = ["!phase:pending,!phase:running,!phase:succeeded,!phase:unknown"] + extra_tags_excluded = ["phase:pending,phase:running,phase:succeeded,phase:unknown"] } module "filter-tags-nocrashloopbackoff" { @@ -27,7 +27,7 @@ module "filter-tags-nocrashloopbackoff" { filter_tags_use_defaults = "${var.filter_tags_use_defaults}" filter_tags_custom = "${var.filter_tags_custom}" filter_tags_custom_excluded = "${var.filter_tags_custom_excluded}" - extra_tags = ["!reason:crashloopbackoff"] + extra_tags_excluded = ["reason:crashloopbackoff"] } module "filter-tags-crashloopbackoff" { From 6f291a8e67937cb7b9b8a9251f6c39d950ad5567 Mon Sep 17 00:00:00 2001 From: Quentin Manfroi Date: Thu, 25 Apr 2019 19:08:40 +0200 Subject: [PATCH 3/3] MON-441 update filter tags readme --- common/filter-tags/README.md | 4 +++- common/filter-tags/locals.tf | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/common/filter-tags/README.md b/common/filter-tags/README.md index f79e8c4..41fc271 100644 --- a/common/filter-tags/README.md +++ b/common/filter-tags/README.md @@ -29,7 +29,8 @@ Creates all kinds of filters tags patterns depending of the monitor type and dir | Name | Description | Type | Default | Required | |------|-------------|:----:|:-----:|:-----:| | environment | Architecture Environment | string | - | yes | -| extra_tags | Extra optional tags added for default filtering when filter_tags_use_defaults is true (i.e. ["tag1:val1", "tag2:val2"]) | list | `[]` | no | +| extra_tags | Extra optional tags added to include filtering in any case (i.e. [\"tag1:val1\", \"tag2:val2\"]) | list | `[]` | no | +| extra_tags_excluded | Extra optional tags added to exclude filtering in any case (i.e. [\"tag1:val1\", \"tag2:val2\"]) | list | `[]` | no | | filter_tags_custom | Tags used for custom filtering when filter_tags_use_defaults is false (i.e. "tag1:val1,tag2:val2") | string | `*` | no | | filter_tags_custom_excluded | Tags excluded for custom filtering when filter_tags_use_defaults is false (i.e. "tag1:val1,tag2:val2") | string | `` | no | | filter_tags_use_defaults | Use default filter tags convention | string | `true` | no | @@ -46,4 +47,5 @@ Creates all kinds of filters tags patterns depending of the monitor type and dir ## Related documentation Datadog API type of monitor: [https://docs.datadoghq.com/api/?lang=python#create-a-monitor](https://docs.datadoghq.com/api/?lang=python#create-a-monitor) +Terraform guide: [https://www.terraform.io/docs/configuration-0-11/interpolation.html](https://www.terraform.io/docs/configuration-0-11/interpolation.html) diff --git a/common/filter-tags/locals.tf b/common/filter-tags/locals.tf index f8447ac..1a3d95e 100644 --- a/common/filter-tags/locals.tf +++ b/common/filter-tags/locals.tf @@ -1,7 +1,7 @@ locals { including_default_list = "${compact(concat(split(",", format("dd_monitoring:enabled,dd_%s:enabled,env:%s", var.resource, var.environment)), compact(var.extra_tags)))}" including_custom_list = "${compact(concat(split(",", var.filter_tags_custom), compact(var.extra_tags)))}" - excluding_list = "${compact(split(",", var.filter_tags_use_defaults == "true" ? join(",", compact(var.extra_tags_excluded)) : join(",", concat(split(",", var.filter_tags_custom_excluded), compact(var.extra_tags_excluded)))))}" + excluding_list = "${compact(split(",", var.filter_tags_use_defaults == "true" ? join(",", compact(var.extra_tags_excluded)) : join(",", concat(split(",", var.filter_tags_custom_excluded), compact(var.extra_tags_excluded)))))}" including_string = "${var.filter_tags_use_defaults == "true" ? join(",", local.including_default_list) : join(",", local.including_custom_list)}" excluding_string = "${join(",", local.excluding_list)}"