Merge branch 'MON-441_support_extra_tags_with_custom_filters' into 'master'

Resolve MON-441 "Support extra tags with custom filters"

Closes MON-441

See merge request claranet/pt-monitoring/projects/datadog/terraform/monitors!52
This commit is contained in:
Quentin Manfroi 2019-04-26 12:10:22 +02:00
commit e13e0c6ae8
5 changed files with 20 additions and 9 deletions

View File

@ -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"]
}

View File

@ -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" {

View File

@ -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)

View File

@ -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 = []
}

View File

@ -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)}"
}