Файлы и каталоги
Расширение файла
Код на языке 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 корневым модулем является рабочий каталог, в котором запускается OpenTofu. (Параметры командной строки позволяют указать корневой модуль вне рабочего каталога, но на практике это бывает редко.)
- В TACOS (программном обеспечении для автоматизации и совместной работы с Terraform) корневым модулем рабочей области по умолчанию является верхний уровень каталога конфигурации (переданного через репозиторий системы управления версиями или напрямую), но в настройках рабочей области можно указать вместо него подкаталог.
Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.12/language/files/