Terraform - Как передать переменные среды в подмодули в terraform - PullRequest
0 голосов
/ 19 декабря 2018

Мое решение:

├── main.tf
├── modules
│   ├── cluster1
│   │   ├── cluster1.tf
│   │   ├── main.tf
│   │   ├── output.tf
│   │   └── variables.tf
│   ├── cluster2
│   │   ├── cluster.tf
│   │   ├── main.tf
│   │   ├── output.tf
│   │   └── variables.tf
│   └── trafficmanager
│       ├── main.tf
│       ├── output.tf
│       ├── trafficmanager.tf
│       └── variables.tf
├── README.md
└── variables.tf

, чтобы я мог создать кластеры Azure k8s, каждому кластеру требуются идентификатор и секретный ключ участника службы.Мне было бы очень интересно увидеть некоторые примеры того, как передавать переменные среды, содержащие принципала службы и секрет, в каждый кластер.

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Terraform будет считывать переменные окружения в форме TF_VAR_name, чтобы найти значение для переменной.Например, переменная TF_VAR_access_key может быть установлена ​​для установки переменной access_key.

Пример

export TF_VAR_region=us-west-1 # normal string
export TF_VAR_alist='[1,2,3]' # array
export TF_VAR_amap='{ foo = "bar", baz = "qux" }' # map

Передать модуль в модуль terraform

variable "region" {}
variable "alist" {}
variable "map" {}

module "test" {
  source = "./module/testmodule" # module location
  region = "${var.region}"
  list   = "${var.alist}"
  map    = "${var.map}"
}

Дополнительная информация в эта ссылка и некоторые пример

0 голосов
/ 19 декабря 2018

вы можете указать переменные в модуле и передать им информацию:

module.tf:

variable "hack" {}
variable "reference" {
  "type" = "map"
}    
variable "ports" {
  "default" = [2379, 6443]
}

вызов модуля:

module "master" {
  source = "./vmLoop"

  vmName    = "master"
  reference = "${var.reference}"
  hack      = "${element(azurerm_subnet.subnets.*.id, 1)}"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...