Как изменить путь для локального состояния бэкенда при использовании рабочих областей в terraform?

Какова ожидаемая конфигурация для использования terraform рабочие места с локальный сервер?

Локальный бэкэнд поддерживает рабочее пространство, но, похоже, у вас нет большого контроля над куда, фактическое состояние сохраняется.

Когда вы не используете рабочие области, вы можете указать параметр path для локального бэкэнда, чтобы контролировать, где хранятся файлы состояния.

# Either in main.tf
terraform {
  backend "local" {
    path = "/path/to/terraform.tfstate
  }
}

# Or as a flag
terraform init -backend-config="path=/path/to/terraform.tfstate"

Я ожидал аналогичной функциональности при использовании рабочих областей, в которой вы укажете каталог для path, и рабочие области будут созданы в этом каталоге.

Например:

terraform new workspace first
terraform init -backend-config="path=/path/to/terraform.tfstate.d"
terraform apply
terraform new workspace second
terraform init -backend-config="path=/path/to/terraform.tfstate.d"
terraform apply

приведет к состоянию

/path/to/terraform.tfstate.d/first/terraform.tfstate
/path/to/terraform.tfstate.d/second/terraform.tfstate

Однако это не так. Похоже, что локальный сервер игнорирует параметр пути и помещает конфигурацию рабочей области в рабочий каталог.

Я что-то упустил или вы не можете контролировать состояние локальной серверной рабочей области?

3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
2
0
1 123
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Существует недокументированный флаг для локального бэкэнда workspace_dir, который решает эту проблему.

Задача документации отслеживается здесь

terraform {
  backend "local" {
    workspace_dir = "/path/to/terraform.tfstate.d"
  }
}

Другие вопросы по теме

Похожие вопросы