Spec-Zone.ru › OpenTofu 1.11

Настройки OpenTofu

Специальный тип блока конфигурации terraform используется для настройки некоторых аспектов работы самого OpenTofu, например для требования минимальной версии OpenTofu, необходимой для применения конфигурации.

Примечание

В рамках обещаний совместимости OpenTofu v1.x блок terraform остаётся без изменений. В будущем может быть введён блок tofu, но пока его не существует.

Синтаксис блока OpenTofu terraform​

Настройки OpenTofu собраны в блоках terraform:

Блок кода
terraform {
  # ...
}

Каждый блок terraform может содержать ряд настроек, связанных с поведением OpenTofu. Внутри блока terraform можно использовать только константные значения; аргументы не могут ссылаться на именованные объекты, такие как ресурсы, входные переменные и т. д., и не могут использовать встроенные функции языка OpenTofu.

Различные параметры, поддерживаемые в блоке terraform, описаны в следующих разделах.

Настройка бэкенда OpenTofu​

Вложенный блок backend задаёт, какой бэкенд состояния должен использовать OpenTofu.

Синтаксис и поведение блока backend описаны в разделе Настройка бэкенда.

Указание обязательной версии OpenTofu​

Параметр required_version принимает строку ограничения версии, которая задаёт версии OpenTofu, совместимые с вашей конфигурацией.

Если запущенная версия OpenTofu не соответствует указанным ограничениям, OpenTofu выдаст ошибку и завершит работу, не выполняя дальнейших действий.

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

Используйте ограничения версий OpenTofu в совместной среде, чтобы все работали с определённой версией OpenTofu или как минимум с версией, в которой реализовано поведение, ожидаемое конфигурацией.

Параметр required_version применяется только к версии OpenTofu CLI. Типы ресурсов OpenTofu реализуются плагинами провайдеров, циклы выпуска которых не зависят ни от OpenTofu CLI, ни друг от друга. Используйте блок required_providers, чтобы управлять требуемыми версиями каждого используемого провайдера.

Указание требований к провайдерам​

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

Блок кода
terraform {
  required_providers {
    aws = {
      version = ">= 2.7.0"
      source = "hashicorp/aws"
    }
  }
}

Подробнее см. в разделе Требования к провайдерам.

Экспериментальные возможности языка​

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

В версиях, где доступны экспериментальные функции, их можно включить отдельно для каждого модуля, задав аргумент experiments внутри блока tofu:

Блок кода
terraform {
  experiments = [example]
}

Этот пример включает эксперимент с именем example, если такой эксперимент доступен в текущей версии OpenTofu.

В последующих версиях эксперименты могут произвольно изменяться и, в зависимости от их результатов, могут претерпеть существенные изменения перед выпуском или вообще не выйти в стабильной форме. Такие несовместимые изменения могут появляться даже в минорных и исправительных версиях. Мы не рекомендуем использовать экспериментальные функции в модулях OpenTofu, предназначенных для производственной среды.

Чтобы явно указать на это и не допустить, чтобы пользователи модуля случайно стали зависеть от экспериментальной функции, при каждом выполнении tofu plan или tofu apply любой модуль с включёнными экспериментами выдаёт предупреждение. Если вы хотите попробовать экспериментальные функции в общем модуле, рекомендуем включать эксперимент только в альфа- или бета-версиях модуля.

О начале и завершении экспериментов сообщается в журнале изменений OpenTofu. Следите за примечаниями к выпускам, чтобы узнать, какие ключевые слова экспериментов доступны в той или иной версии OpenTofu.

Передача метаданных провайдерам​

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

Подробнее см. в разделе Метаданные провайдера.

Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.11/language/settings/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API