наследовать файл terraform .tf из родительского каталога

#terraform

#terraform

Вопрос:

terraform ==0.12.28

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

  1. terraform init только в cwd
  2. terraform init внутри родительского каталога, а затем cwd

Обе попытки выдают ошибку:

 Error: Argument or block definition required

on shared_data.tf line 1:
   1: ../../shared_data.tf
  

Чтобы устранить эту ошибку, я попытался сначала использовать переменную terraform для определения относительного пути:

 variable "shared_data_path" {
    default = "../../shared_data.tf"
}
var.shared_data_path
  

Который выдает ошибку:

 Error: Argument or block definition required

  on shared_data.tf line 4:
  4: var.shared_data_path

An argument or block definition is required here. To set an argument, use the
equals sign "=" to introduce the argument value.
  

Ответ №1:

Этот репозиторий, который вы просматриваете, не наследует данные, просто записывая имя файла, как вы делаете. Файл, на который вы ссылаетесь, является символической ссылкой, что означает, что Terraform видит, что этот файл содержит фактическое содержимое файла в родительском каталоге. Вы можете увидеть это в заголовке файла, и если бы вы клонировали этот репозиторий, вы бы увидели, что это символическая ссылка, когда просматриваете ее на своем компьютере.

Предполагая, что у вас есть такое дерево каталогов:

 - parent_dir/
  |-shared_data.tf
  |-child_dir/
    |-something.tf
  

затем вы можете создать символическую ссылку в, child_dir cd введя child_dir в свой терминал, затем запустив ln -s ../shared_data.tf .

Тогда у вас будет дерево, подобное

 - parent_dir/
  |-shared_data.tf
  |-child_dir/
    |-something.tf
    |-shared_data.tf -> ../shared_data.tf