feat(tags): merge custom and default tags per environment
This commit is contained in:
Родитель
efda638343
Коммит
e3a2c9557c
|
@ -0,0 +1,14 @@
|
|||
# Environments Configuration (Optional)
|
||||
|
||||
Define specific variables per environment. Currently used for Azure Resource tags, e.g. `env=dev` vs `env=prod`.
|
||||
|
||||
These custom tags are merged into defaults defined in [`/variables.tf`](./../variables.tf)
|
||||
|
||||
### Usage example
|
||||
|
||||
These values need to be explicitly specified via `-var-file` flag, e.g.
|
||||
|
||||
```
|
||||
terraform plan -var-file=environments/dev.tfvars -out plan.tfplan
|
||||
terraform apply plan.tfplan
|
||||
```
|
|
@ -0,0 +1,6 @@
|
|||
custom_tags = {
|
||||
demo-version = "v0.5.0"
|
||||
env = "dev"
|
||||
devops-org = "julie-msft"
|
||||
github = "azure/devops-governance"
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
custom_tags = {
|
||||
demo-version = "v0.5.0"
|
||||
env = "production"
|
||||
devops-org = "julie-msft"
|
||||
github = "azure/devops-governance"
|
||||
}
|
2
main.tf
2
main.tf
|
@ -16,6 +16,7 @@ locals {
|
|||
suffix = random_string.suffix.result
|
||||
application_owners_ids = length(var.application_owners_ids) == 0 ? [data.azurerm_client_config.current.object_id] : var.application_owners_ids
|
||||
superadmins_aad_object_id = var.superadmins_aad_object_id == "" ? data.azurerm_client_config.current.object_id : var.superadmins_aad_object_id # Default to current ARM client
|
||||
tags = merge(var.default_tags, var.custom_tags)
|
||||
}
|
||||
|
||||
# =================
|
||||
|
@ -56,6 +57,7 @@ module "arm_environments" {
|
|||
admins_group_id = azuread_group.groups["${each.value.team}_admins"].id
|
||||
superadmins_group_id = local.superadmins_aad_object_id
|
||||
service_principal_id = module.service_principals["${each.value.team}_${each.value.env}"].principal_id
|
||||
tags = local.tags
|
||||
}
|
||||
|
||||
# ==============
|
||||
|
|
|
@ -49,12 +49,6 @@ variable "client_object_id" {
|
|||
variable "tags" {
|
||||
description = "Tags to apply to Azure Resources"
|
||||
type = map(string)
|
||||
default = {
|
||||
demo = "governance"
|
||||
devops = "true"
|
||||
oss = "terraform"
|
||||
public = "true"
|
||||
}
|
||||
}
|
||||
|
||||
data "azurerm_client_config" "current" {}
|
||||
|
|
17
variables.tf
17
variables.tf
|
@ -26,3 +26,20 @@ variable "projects" {
|
|||
variable "environments" {
|
||||
type = map(map(string))
|
||||
}
|
||||
|
||||
variable "default_tags" {
|
||||
description = "Tags to apply to Azure Resources"
|
||||
type = map(string)
|
||||
default = {
|
||||
public = "true"
|
||||
demo = "e2e-governance"
|
||||
iac = "terraform"
|
||||
ci = "azure-pipelines"
|
||||
}
|
||||
}
|
||||
|
||||
variable "custom_tags" {
|
||||
description = "Extra Tags to apply to Azure Resources"
|
||||
type = map(string)
|
||||
default = {}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче