Модули Terraform: правильные ссылки на переменные? - PullRequest
0 голосов
/ 29 мая 2019

Я пишу скрипт terraform для создания кластера EKS с его рабочими узлами в AWS. Первый раз делаю это, поэтому я немного растерялся Вот организация папок:

├─── Int AWS Account
│   ├─── variables.tf
│   ├─── eks-cluster.tf (refers the modules)
│   ├─── others
│
├─── Prod AWS Account
│   ├─── (will be the same than Int with different settings in variables)
│
├─── ReadMe.md
│
├─── data sources
│
├─── Modules
│   ├─── cluster.tf
│   ├─── worker-nodes.tf
│   ├─── worker-nodes-sg.tf 

Я немного озадачен тем, как использовать и передавать переменные. Прямо сейчас я обращаюсь к $ {var.name} в папке модуля, в eks-cluster.tf, я либо помещаю прямое значение name = blabla (в основном избегая его), либо обращаюсь к Переменная снова и файл переменной в папке учетной записи.

Это правильно?

1 Ответ

1 голос
/ 30 мая 2019

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

При включении модуля в eks_cluster_int.tf или eks_cluster_prod.tf вы должны передать значения для всех переменных, определенных в самом модуле. Таким образом, вы можете использовать специфические для среды значения в одном модуле.

module "cluster" {
  source = "..."

  var1 = value1    # directly passing value
  var2 = ${var.int_specific_var}  # can be defined in variables.tf of environment
  ...
}

Это отвечает на ваш вопрос?

...