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