Spec-Zone.ru › OpenTofu 1.10

Настройки OpenTofu

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

Примечание

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

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

Настройки OpenTofu объединяются в блоки terraform:

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

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

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

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

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

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

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

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

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

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

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

Параметр required_version применяется только к версии интерфейса командной строки OpenTofu. Типы ресурсов OpenTofu реализованы плагинами провайдеров, циклы выпуска которых не зависят ни от интерфейса командной строки OpenTofu, ни друг от друга. Используйте блок 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.10/language/settings/

Spec-Zone.ru

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