Рабочие области
С каждой конфигурацией OpenTofu связан бэкенд, который определяет, как OpenTofu выполняет операции и где хранит постоянные данные, например состояние.
Постоянные данные, хранящиеся в бэкенде, относятся к рабочей области. Изначально в бэкенде есть только одна рабочая область, содержащая одно состояние OpenTofu, связанное с этой конфигурацией. Некоторые бэкенды поддерживают несколько именованных рабочих областей, позволяя связывать одну конфигурацию с несколькими состояниями. У конфигурации по-прежнему только один бэкенд, но вы можете развернуть несколько отдельных экземпляров этой конфигурации, не настраивая новый бэкенд и не меняя учетные данные для аутентификации.
Бэкенды с поддержкой нескольких рабочих областей
Несколько рабочих областей можно использовать со следующими бэкендами:
Использование рабочих областей
Рабочие области не подходят для декомпозиции систем или развертываний, требующих отдельных учетных данных и средств управления доступом. Подробности и рекомендуемые альтернативы см. в разделе Варианты использования документации по OpenTofu CLI.
OpenTofu запускается с одной рабочей областью по умолчанию с именем default, которую нельзя удалить. Если вы не создавали новую рабочую область, значит, вы используете рабочую область по умолчанию в рабочем каталоге OpenTofu.
При выполнении tofu plan в новой рабочей области OpenTofu не обращается к существующим ресурсам в других рабочих областях. Эти ресурсы физически остаются на месте, но для управления ими необходимо переключиться на соответствующую рабочую область.
Полные сведения о создании и использовании рабочих областей см. в документации по рабочим областям OpenTofu CLI.
Интерполяция текущей рабочей области
В конфигурации OpenTofu можно использовать имя текущей рабочей области с помощью последовательности интерполяции ${terraform.workspace}. Ее можно использовать везде, где допустимы интерполяции.
Ссылка на текущую рабочую область полезна для изменения поведения в зависимости от рабочей области. Например, для рабочих областей, отличных от рабочей области по умолчанию, может быть полезно запускать кластеры меньшего размера. Например:
resource "aws_instance" "example" {
count = "${terraform.workspace == "default" ? 5 : 1}"
# ... other arguments
}Еще один популярный вариант использования — включать имя рабочей области в имена или теги:
resource "aws_instance" "example" {
tags = {
Name = "web - ${terraform.workspace}"
}
# ... other arguments
}
Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.10/language/state/workspaces/