Файлы и каталоги
Расширение файла
Код на языке OpenTofu хранится в текстовых файлах с расширениями .tf или .tofu. Также существует вариант языка на основе JSON, для файлов которого используются расширения .tf.json или .tofu.json.
Файлы с кодом OpenTofu часто называют файлами конфигурации.
Приоритет расширений
Если в каталоге находятся файлы .tf и .tofu с одинаковым именем без расширения, OpenTofu отдаёт приоритет файлу .tofu и игнорирует файл .tf. Например:
- Если в одном каталоге существуют
foo.tfиfoo.tofu, OpenTofu загрузит толькоfoo.tofuи проигнорируетfoo.tf.
Это гарантирует, что файлы .tofu всегда имеют приоритет над файлами .tf, если присутствуют оба типа файлов. Это может быть полезно авторам модулей, которые хотят, чтобы их модули поддерживали и OpenTofu, и Terraform.
Кодировка текста
В файлах конфигурации всегда должна использоваться кодировка UTF-8. По соглашению обычно используются окончания строк в стиле Unix (LF), а не в стиле Windows (CRLF), однако допускаются оба варианта.
Каталоги и модули
Модуль — это набор из одного или нескольких файлов .tf, .tf.json, .tofu, .tofu.json, находящихся в одном каталоге.
Модуль OpenTofu состоит только из файлов конфигурации верхнего уровня в каталоге; вложенные каталоги считаются совершенно отдельными модулями и не включаются в конфигурацию автоматически.
OpenTofu обрабатывает все файлы конфигурации в модуле, фактически рассматривая весь модуль как единый документ. Разделение блоков по разным файлам делается исключительно для удобства чтения и сопровождения и никак не влияет на поведение модуля.
Модуль OpenTofu может использовать вызовы модулей, чтобы явно включать другие модули в конфигурацию. Эти дочерние модули могут находиться в локальных каталогах (вложенных в каталог родительского модуля или в любом другом месте на диске) либо во внешних источниках, таких как Общедоступный реестр OpenTofu.
Корневой модуль
OpenTofu всегда работает в контексте единственного корневого модуля. Полная конфигурация OpenTofu состоит из корневого модуля и дерева дочерних модулей (включая модули, вызываемые корневым модулем, модули, вызываемые этими модулями, и так далее).
- В OpenTofu CLI корневым модулем является рабочий каталог, в котором запускается OpenTofu. (Параметры командной строки позволяют указать корневой модуль вне рабочего каталога, но на практике это встречается редко.)
- В TACOS (программном обеспечении для автоматизации и совместной работы с Terraform) корневым модулем рабочей области по умолчанию является верхний уровень каталога конфигурации (предоставленного через репозиторий системы контроля версий или прямую загрузку), однако в настройках рабочей области можно указать вместо него подкаталог.
Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.10/language/files/