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