Voydevich
Terraform

Що нового в Terraform 1.17

У релізі Terraform 1.17 додано підтримку змінних у provider requirements, опцію планування -minimal-refresh та статус GA для Terraform Policy.

Реліз від 22 жовтня 2026 · оновлено 8 листопада 2026

Головне

  • Підтримка variables та locals у provider requirements
  • Нова опція планування -minimal-refresh для оновлення лише змінених ресурсів
  • Загальна доступність (GA) функціональності Terraform Policy
  • Підтримка mock_provider для ephemeral resources у тестах
  • Поле format_version у JSON-виводі команди version

Коротко

Реліз Terraform 1.17 впроваджує підтримку змінних та locals у вимогах до провайдерів (provider requirements), а також додає нову опцію планування -minimal-refresh. Інструмент перевів функціональність Terraform Policy у статус загальної доступності (General Availability). Крім того, оновлення містить розширення тестового фреймворку та низку виправлень у математичних функціях і командах CLI.

Нові можливості

Конфігурація та планування

  • Змінні у provider requirements: Terraform тепер дозволяє використовувати variables та locals у блоках вимог до провайдерів.
  • Опція -minimal-refresh: додано новий параметр планування -minimal-refresh, який виконує оновлення (refresh) виключно для тих ресурсів, для яких запропоновано зміни.

Політики

  • Загальна доступність Terraform Policy: функціональність перейшла у статус GA. Використання прапорця -policies для команд plan, apply та query більше не потребує експериментальної збірки або прапорця -allow-experimental-features. Політики запитів оцінюють ресурси, виявлені блоками list, і повертають результати у зрозумілому для людини форматі або у вигляді JSON.

Виправлення та покращення

Покращення функціональності

  • command/init: лог-повідомлення доповнено інформацією про версії провайдерів.
  • test: додано підтримку mock_provider для ефемерних ресурсів (ephemeral resources).
  • command/login: після успішного входу відображається попередження, якщо користувач підпадає під дію політики TTL організації.
  • version: до JSON-виводу команди додано нове поле format_version для забезпечення безпечніших змін формату JSON у майбутньому.
  • Збірка: Terraform зібрано з використанням Go 1.26.10, де вимкнено довіру до сертифікатів, виданих через скомпрометовані проміжні CA eMudhra (CVE-2026-111943).

Виправлення помилок

  • Математичні функції log та pow: функції більше не викликають паніку, якщо результат не є числом; тепер вони повертають помилку у випадках, коли результатом є +/- Infinity.
  • Ефемерні ресурси: під час оновлення ephemeral-ресурсу тепер використовуються та виводяться сформовані діагностичні повідомлення (зокрема попередження, які раніше втрачалися).
  • Тестування: забезпечено детермінований порядок залежностей у графі очищення (cleanup graph).
  • query: виправлено звітність результатів оцінки політик для виявлених ресурсів — тепер повертаються значення Unknown та N/A. Команда terraform query -policies тепер відхиляє шлях, якщо він не є директорією, замість передачі його рушію політик.
  • show: під час відображення локального плану значення змінних зчитуються безпосередньо з файлу плану.
  • fmt: у версії 1.17.1 виправлено проблему збереження початкового вмісту файлу в разі виникнення помилки запису в оригінальний файл.
  • Виконання політик: у версії 1.17.1 політики модулів тепер завжди оцінюються під час плану знищення (destroy plan), а для stacks забезпечено звіт щодо кожного результату політики для замінюваного ресурсу замість відображення лише одного з них.

Огляд підготовлено автоматично за офіційними release notes за допомогою ШІ та перевірено на відповідність джерелу. Точні формулювання дивіться в оригіналі. Як ми працюємо