Как изменить путь для локального внутреннего состояния при использовании рабочих пространств в terraform? - PullRequest
0 голосов
/ 22 мая 2019

Какова ожидаемая конфигурация для использования рабочих областей 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

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

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

1 Ответ

0 голосов
/ 29 мая 2019

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

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

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