diff --git a/tags/tags.finops.tf b/tags/tags.finops.tf index dd25787..5b4f16f 100644 --- a/tags/tags.finops.tf +++ b/tags/tags.finops.tf @@ -2,11 +2,12 @@ locals { _finops = { for k in ["number", "name", "role"] : k => try(local.tags_in.finops[k], try(var.finops[k], null)) } _finops_tags = { prefix = "finops" - project_number = try(format("fs%010d", local._finops.number),null) - project_name = try(replace(local._finops.name, "/[^a-z0-9_]/", ""),null) + project_number = try(format("fs%010d", local._finops.number), null) + project_name = try(replace(local._finops.name, "/[^a-z0-9_]/", ""), null) project_role = local._finops.role != null ? replace(replace(local._finops.role, "+", format("%v_", local._finops.name)), "/[^a-z0-9_]/", "") : null } - finops_tags = { for k, v in local._finops_tags : k => v if v != null && k != "prefix" } + _finops_tags2 = { for k, v in local._finops_tags : k => v if v != null && k != "prefix" } + finops_tags = merge(local.legacy_finops_converted, local._finops_tags2) } resource "terraform_data" "finops" { diff --git a/tags/tags.legacy.tf b/tags/tags.legacy.tf new file mode 100644 index 0000000..d0bd9c7 --- /dev/null +++ b/tags/tags.legacy.tf @@ -0,0 +1,11 @@ +locals { + legacy_finops_tags = { + project_number = ["Project Number", "ProjectNumber"] + project_name = ["Project Name", "ProjectName"] + project_role = ["Project Role", "ProjectRole"] + } + legacy_finops_tags_map = { for k, v in transpose(local.legacy_finops_tags) : k => v[0] } + + _legacy_finops1 = [for k, v in var.legacy_tags : { legacy_key = k, value = v, key = lookup(local.legacy_finops_tags_map, k, null) }] + legacy_finops_converted = merge([for t in local._legacy_finops1 : { (t.key) = lower(t.value) } if t.key != null]...) +} diff --git a/tags/variables.tf b/tags/variables.tf index a202667..3f66231 100644 --- a/tags/variables.tf +++ b/tags/variables.tf @@ -33,3 +33,9 @@ variable "finops" { # variable "ops" {} # variable "mon" {} + +variable "legacy_tags" { + description = "Legacy tags (primarily the older finops tags) for which we will output a conversion" + type = map(string) + default = {} +}