Как я могу подделать учетные данные облачного провайдера в Terraform? - PullRequest
0 голосов
/ 29 мая 2019

Я пишу кросс-облачный модуль Terraform (для Google и AWS), который принимает входную переменную cloud и применяет ее соответствующим образом, например:

variable "cloud" {}

resource "google_example" {
  count = "${var.cloud == "google" ? 1 : 0}"
}

resource "aws_example" {
  count = "${var.cloud == "aws" ? 1 : 0}"
}

Проблема с этим подходом состоит в том, что я хочу предоставить учетные данные только для выбранного облака, а не для обоих - установка cloud=aws например, я получаю:

Error: google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information.

Есть ли способ подделать учетные данные провайдера облака для невыбранного облака или мне нужно внедрить какой-нибудь шаблон Terraform?

1 Ответ

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

Каждый ресурс может разрешить поле provider, в котором указывается, какого поставщика использовать.Я думаю, что вам может понадобиться установить реальные учетные данные для обоих провайдеров, иначе Terraform не сможет инициализироваться, если вы используете бэкэнд-конфигурацию.В противном случае установите поддельные учетные данные в качестве переменных среды и посмотрите, что произойдет:

TF_VAR_AWS_ACCESS_KEY_ID="$AWS_ACCESS_KEY_ID" # et cetera
...