OpenTofu лінтинг: нові можливості в версії 1.13

OpenTofu додає підтримку вбудованого лінтингу

OpenTofu, відкритий інструмент Infrastructure-as-Code, створений спільнотою як альтернатива Terraform, додає підтримку вбудованого лінтингу. Перша експериментальна версія буде частиною майбутнього релізу OpenTofu 1.13.

Оцінка виразів та взаємодія з провайдерами

Згідно з розробниками, під час планування OpenTofu оцінює вирази та взаємодіє з провайдерами, щоб дізнатися, які зміни очікуються. Деякі перевірки можна буде провести лише після отримання цієї додаткової інформації.

Нові можливості в версії 1.13

В версії 1.13 OpenTofu починає з невеликого набору функцій. Ви можете спробувати ранній експериментальний лінтинг, використовуючи нову командну опцію -lint з командами validate, plan та apply. Наприклад: tofu plan -lint=all.

Використання параметра all активує всі доступні правила лінтингу. Ви також можете вказати конкретні перевірки, розділяючи їх комами, щоб активувати лише ті, що вам потрібні.

Вбудовані правила лінтингу

Перша версія містить чотири вбудованих правила. Правило core:no-type-variable знаходить вхідні змінні без оголошеного типу. core:count-instead-enabled вказує на можливість використання нової функції enabled замість старого методу умовного підрахунку.

Інші два правила шукають не використані елементи конфігурації. core:unused-variable знаходить вхідні змінні, які оголошені, але ніколи не використовуються. core:unused-local робить те ж саме для локальних значень.

Плани на майбутнє OpenTofu

Одночасно команда має більші плани на майбутнє, які перевищують ці вбудовані перевірки. OpenTofu планує дозволити користувачам визначати власні правила лінтингу та політики, використовуючи мову, схожу на ту, що вже використовується для конфігурацій OpenTofu.

Більш складні перевірки також можуть працювати з плагінами провайдерів. Це дозволить правилам отримувати зовнішню інформацію або виконувати перевірки, які важко виразити простими конфігураціями.

Правила можуть бути позначені як блокувальні або неблокувальні. Блокувальні правила зупинять виконання операції, тоді як неблокувальні просто покажуть попередження. Команда також розглядає можливість використання повторно використовуваних наборів правил, які можуть бути поширені як модулі OpenTofu.

Більше інформації доступно на сайті OpenTofu.