Files
tf_examples/dns_zones/variables.tf
T

62 lines
2.9 KiB
Terraform

# =============================================================================
# Переменные примера «DNS-зоны и записи».
#
# ⚠️ api_token — СЕКРЕТ. НЕ кладите его в terraform.tfvars. Держите в отдельном
# файле `secrets.auto.tfvars` (Terraform сам подхватывает `*.auto.tfvars`),
# а этот файл закройте в .gitignore. Значение — JWT из ЛК (Профиль → Токены).
# =============================================================================
# Токен доступа (JWT) к API Nubes. `sensitive = true` — Terraform не покажет
# значение в выводе плана/apply.
variable "api_token" {
description = "Nubes API token (JWT). Секрет — в secrets.auto.tfvars."
type = string
sensitive = true
}
# Адрес API Gateway стенда. Для TEST — как в default.
variable "api_endpoint" {
description = "API Gateway URL стенда"
type = string
default = "https://lk-api-gateway-test.ngcloud.ru/api/v1/svc"
}
# ── Зоны и записи ────────────────────────────────────────────────────────────
# Карта «короткое имя зоны → { zone_name, records }»:
# - КЛЮЧ карты (a, b, …) — адрес зоны в state (стабильный id объекта в TF);
# - zone_name — сам домен (FQDN зоны);
# - records — карта «имя записи → { type, values }»:
# - type — тип записи (A / CNAME / TXT / …), по умолчанию "A";
# - values — СПИСОК значений (одна запись может иметь их несколько,
# напр. два A-адреса у одного имени).
#
# Здесь задан дефолт (2 зоны × 3 записи). Можно переопределить в terraform.tfvars.
variable "zones" {
description = "Зоны компании: имя + записи (type / values[])"
type = map(object({
zone_name = string
records = map(object({
type = optional(string, "A")
values = list(string)
}))
}))
default = {
a = {
zone_name = "tfzone-a.test"
records = {
www = { type = "A", values = ["10.0.0.77", "203.0.113.14"] }
api = { type = "A", values = ["192.168.3.14", "10.0.0.2"] }
cdn = { type = "CNAME", values = ["www.tfzone-a.test."] }
}
}
b = {
zone_name = "tfzone-b.test"
records = {
www = { type = "A", values = ["172.16.5.20", "10.0.0.9"] }
api = { type = "A", values = ["10.0.0.8", "198.51.100.7"] }
cdn = { type = "CNAME", values = ["www.tfzone-b.test."] }
}
}
}
}