TGViewer
Библиотека девопса | DevOps, SRE, Sysadmin Библиотека девопса | DevOps, SRE, Sysadmin @devopsslib · 10.4K subscribers
Post #4850 1.01K
👨‍💻 Terraform 1.15 — динамические источники модулей, deprecation переменных и другие обновления

Вышел Terraform 1.15. В этом релизе появились переменные в источниках модулей, механизм deprecation для переменных и output, функция convert для явного приведения типов и нативная поддержка Windows ARM64. Разберём основные изменения.

Динамические источники модулей

Раньше source в блоке module принимал только статическую строку. Теперь можно использовать переменные. Для этого добавлен новый атрибут const у переменных. Он принимает true или false и указывает, что значение доступно уже на этапе terraform init:
variable "folder" {
type = string
const = true
}


После этого переменную можно подставлять в source:
module "zoo" {
source = "./${var.folder}"
}


Важный момент — const нельзя сочетать с sensitive или ephemeral. Если вы сошлётесь на что-то кроме const-переменной, Terraform выдаст ошибку при init.

Deprecation переменных и output

Авторы модулей теперь могут помечать переменные и output как устаревшие через атрибут deprecated. При обращении к такому элементу Terraform покажет предупреждение на этапе валидации.

variable "bad" {
deprecated = "Please use 'good' instead, this variable will be removed"
}

output "old" {
value = "some_value"
deprecated = "Please use 'new' instead, this output will be removed"
}


Логика работает на нескольких уровнях. Если кто-то передаёт значение в deprecated-переменную через CLI или переменные окружения, будет warning. Если модуль ссылается на deprecated output дочернего модуля внутри своего deprecated output, предупреждение не сработает. Но если deprecated output стоит на корневом уровне, это уже ошибка.

Такой подход позволяет авторам модулей плавно выводить старые интерфейсы из обращения.

Inline-приведение типов через convert

Новая функция convert решает давнюю проблему с неявным приведением типов. Terraform обычно сам определяет типы, но в ряде случаев это работает некорректно. Например, {} интерпретируется как пустой object без атрибутов, а не как пустой map. Аналогично [] — это пустой tuple, а не list.

convert позволяет явно указать нужный тип и создавать корректные нулевые значения для сложных коллекций. Это особенно полезно в условных выражениях, где ветки возвращают данные разных типов.

Прочие изменения

Terraform 1.15 теперь собирается под Windows ARM64. Это актуально для владельцев Surface Pro, Windows Dev Kit 2023, а также для тех, кто запускает Windows-виртуалки на Mac M1/M2 через Parallels.

S3-бэкенд получил поддержку аутентификации через aws login (AWS CLI v2.32.0+). Это значит, что можно использовать credentials из консоли AWS без долгоживущих access-ключей.

У output-блоков появились type constraints — явные ограничения типа, аналогичные тем, что давно есть у input-переменных:
output "string" {
type = string
value = var.some_string
}


В Terraform Test теперь разрешены функции внутри mock-блоков. Можно генерировать тестовые данные через uuid() или format(), что упрощает мокирование ресурсов с конкретными форматами ID.

Для Stacks добавлены validation-блоки в переменных с атрибутами condition и error_message. Это помогает ловить ошибки конфигурации на раннем этапе.

Обнова за обновой выходит каждый день. Мы отбираем только самое важное для вас в нашей рассылке. 👉 Подпишитесь

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#пульс_индустрии
  • ❤ 2
More from @devopsslib
  1. Sep 18, 2026От исходного кода до процессора: разберись, как работает программа 💻 Стартует практически…
  2. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  3. Sep 15, 2026👩‍💻 Bash-скрипт для мониторинга сервисов Полноценный мониторинг вроде Zabbix или Prometh…
  4. Sep 13, 2026🌸 Вселенная намекает: пора уже начать этот курс С 14 сентября цены в Proglib Academy выра…
  5. Sep 13, 2026🤪 Если бы можно было задать один вопрос про AI в разработке — что бы вы спросили? Как выб…
  6. Sep 10, 2026Планы на 3 октября — прийти на RWB Infra x Security Meetup Мы направим прожекторы на инфра…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →