From 0f73ac90fbc8cceb67df5590b11c88ef34b9f913 Mon Sep 17 00:00:00 2001 From: badra001 Date: Tue, 17 Feb 2026 09:51:30 -0500 Subject: [PATCH] add checks and inputs for business, application, and environment --- CHANGELOG.md | 4 ++++ base-label/base.tf | 21 +++++++++++++++++++++ base-label/main.tf | 3 +++ base-label/outputs.tf | 32 ++++++++++++++++---------------- common/version.tf | 2 +- 5 files changed, 45 insertions(+), 17 deletions(-) create mode 100644 base-label/base.tf create mode 100644 base-label/main.tf diff --git a/CHANGELOG.md b/CHANGELOG.md index 2fb1e43..b90dd45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,3 +23,7 @@ - 0.3.0 -- 2026-02-17 - base-label - add some outputs + +- 0.3.1 -- 2026-02-17 + - base-label + - add checking of business, application, environment diff --git a/base-label/base.tf b/base-label/base.tf new file mode 100644 index 0000000..4565912 --- /dev/null +++ b/base-label/base.tf @@ -0,0 +1,21 @@ +locals { + base_variables = { + business = var.business + application = var.application + environment = var.environment + custom = var.custom + } + base = { for k in ["business", "application", "environment", "custom"] : k => try(local.base_in.base[k], try(var.base_variables[k], null)) } +} + +resource "terraform_data" "base_environment" { + count = length(local.base.environment) > 0 ? 1 : 0 + input = tolist(local.base.environment) + + lifecycle { + precondition { + condition = contains(["dev", "test", "qa", "uat", "ite", "stage", "prod", "cre", "sa", "services", "common"], local.base.environment) || local.base.environment == null + error_message = "The var.environment or base.environment value invalid. See https://github.e.it.census.gov/terraform/cloud-information/tree/master/aws/documentation/naming-tagging-standard for valid list." + } + } +} diff --git a/base-label/main.tf b/base-label/main.tf new file mode 100644 index 0000000..5506679 --- /dev/null +++ b/base-label/main.tf @@ -0,0 +1,3 @@ +locals { + base_in = var.filename != null && try(fileexists(var.filename), false) ? yamldecode(file(var.filename)) : yamldecode("{}") +} diff --git a/base-label/outputs.tf b/base-label/outputs.tf index 66fd835..83435a6 100644 --- a/base-label/outputs.tf +++ b/base-label/outputs.tf @@ -6,37 +6,37 @@ output "version" { output "core" { description = "Map of base label format values" value = { - business = var.business + business = var.business application = var.application environment = var.environment - custom = var.custom + custom = var.custom } } locals { _blf_parts = [ - var.business, - var.application, - var.environment, - var.custom, + var.business, + var.application, + var.environment, + var.custom, ] blf_parts = compact(local._blf_parts) _blf_prefix = [ - var.business, - var.application, - var.environment, + var.business, + var.application, + var.environment, ] - blf_prefix = compact(local._blf_prefix) - prefix_dash = join("-",local.blf_prefix) - prefix_slash = join("/",local.blf_prefix) + blf_prefix = compact(local._blf_prefix) + prefix_dash = join("-", local.blf_prefix) + prefix_slash = join("/", local.blf_prefix) } - + output "formats" { description = "Map of base label format convenience outputs" value = { - parts = local.blf_parts - prefix = local.blf_prefix - prefix_dash = local.prefix_dash + parts = local.blf_parts + prefix = local.blf_prefix + prefix_dash = local.prefix_dash prefix_slash = local.prefix_slash } } diff --git a/common/version.tf b/common/version.tf index f9214c8..a2913b4 100644 --- a/common/version.tf +++ b/common/version.tf @@ -1,4 +1,4 @@ locals { - _module_version = "0.3.0" + _module_version = "0.3.1" _module_name = "boc-nts" }