Skip to content

Commit

Permalink
feat: suppress default tags from module (#651)
Browse files Browse the repository at this point in the history
* remove suppressed tags

* format code

* fix tag list
  • Loading branch information
kayman-mk committed Jan 12, 2023
1 parent be789ff commit 0021915
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 4 deletions.
12 changes: 8 additions & 4 deletions tags.tf
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
locals {
tags = merge(
tags_merged = merge(
{
"Name" = format("%s", var.environment)
},
Expand All @@ -9,7 +9,9 @@ locals {
var.tags,
)

agent_tags = merge(
tags = { for k, v in local.tags_merged : k => v if !contains(var.suppressed_tags, k) }

agent_tags_merged = merge(
{
"Name" = format("%s", local.name_runner_agent_instance)
},
Expand All @@ -20,15 +22,17 @@ locals {
var.agent_tags
)

agent_tags = { for k, v in local.agent_tags_merged : k => v if !contains(var.suppressed_tags, k) }

runner_tags_merged = merge(
local.tags,
var.runner_tags,
# overwrites the `Name` key from `local.tags`
var.overrides["name_docker_machine_runners"] == "" ? { Name = substr(format("%s", var.environment), 0, 16) } : { Name = var.overrides["name_docker_machine_runners"] },
)

# remove the `Name` tag if docker+machine adds one to avoid a failure due to a duplicate `Name` tag
runner_tags = local.docker_machine_adds_name_tag ? { for k, v in local.runner_tags_merged : k => v if k != "Name" } : local.runner_tags_merged
# remove the `Name` tag in addition if docker+machine adds one to avoid a failure due to a duplicate `Name` tag
runner_tags = local.docker_machine_adds_name_tag ? { for k, v in local.runner_tags_merged : k => v if !contains(concat(var.suppressed_tags, ["Name"]), k) } : local.runner_tags_merged

tags_string = join(",", flatten([
for key in keys(local.tags) : [key, lookup(local.tags, key)]
Expand Down
6 changes: 6 additions & 0 deletions variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -502,6 +502,12 @@ variable "runner_tags" {
default = {}
}

variable "suppressed_tags" {
description = "List of tag keys which are removed from tags, agent_tags and runner_tags and never added as default tag by the module."
type = list(string)
default = []
}

variable "role_tags" {
description = "Map of tags that will be added to the role created. Useful for tag based authorization."
type = map(string)
Expand Down

0 comments on commit 0021915

Please sign in to comment.