Files
grafana-terraform/environments/dev/adibrov/locals.tf

75 lines
2.4 KiB
Terraform
Raw Normal View History

locals {
# Определяем HTTP заголовки на основе значения disable_provenance
grafana_headers = {
"X-Disable-Provenance" = var.disable_provenance ? "true" : "false"
}
# IRM: читаем конфигурацию из irm/escalation.yaml
# Метки вида "vault:key_name" заменяются значениями из Vault (secret_ext)
2026-04-01 08:37:24 +03:00
_irm_raw = yamldecode(file("${path.module}/irm/escalation.yaml"))
_irm_ext = data.vault_kv_secret_v2.secret_ext.data
irm_escalation_chains = [
for chain in local._irm_raw.chains : {
name = chain.name
team_id = try(chain.team_id, null)
steps = [
for step in chain.steps : merge(step, {
persons_to_notify = try([
for p in step.persons_to_notify :
startswith(p, "vault:") ? local._irm_ext[trimprefix(p, "vault:")] : p
], null)
persons_to_notify_next_each_time = try([
for p in step.persons_to_notify_next_each_time :
startswith(p, "vault:") ? local._irm_ext[trimprefix(p, "vault:")] : p
], null)
})
]
}
]
2026-03-25 07:31:02 +03:00
# Contact points configuration
contact_points = [
{
name = "default"
type = "slack"
is_default = true
settings = {
webhook_url = data.vault_kv_secret_v2.secret_ext.data["mmwebhook_default"]
template = "../../modules/grafana_contact_points/template/alerts_message_mm.template"
2026-03-25 07:31:02 +03:00
}
},
2026-03-25 07:31:02 +03:00
{
name = "infra-alerts-critical"
type = "slack"
is_default = false
settings = {
webhook_url = data.vault_kv_secret_v2.secret_ext.data["mmwebhook_infra_alerts_critical"]
template = "../../modules/grafana_contact_points/template/alerts_message_mm.template"
2026-03-25 07:31:02 +03:00
}
},
2026-03-25 07:31:02 +03:00
{
name = "infra-alerts-informational"
type = "slack"
is_default = false
settings = {
webhook_url = data.vault_kv_secret_v2.secret_ext.data["mmwebhook_infra_alerts_info"]
template = "../../modules/grafana_contact_points/template/alerts_message_mm.template"
2026-03-25 07:31:02 +03:00
}
},
2026-03-25 07:31:02 +03:00
{
name = "infra-alerts-test"
type = "slack"
is_default = false
settings = {
webhook_url = data.vault_kv_secret_v2.secret_ext.data["mmwebhook_infra_alerts_test"]
template = "../../modules/grafana_contact_points/template/alerts_message_mm.template"
2026-03-25 07:31:02 +03:00
}
}
]
}