https://github.com/artemmkin/terraform-modules-dependencies
https://github.com/artemmkin/terraform-modules-dependencies
Last synced: 8 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/artemmkin/terraform-modules-dependencies
- Owner: Artemmkin
- Created: 2017-04-19T17:44:27.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2017-09-06T16:01:22.000Z (about 8 years ago)
- Last Synced: 2024-12-29T14:34:14.348Z (9 months ago)
- Language: HCL
- Size: 119 KB
- Stars: 1
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Смотрим, как работают зависимости между ресурсами модулей
_P.S. чтобы запусить модули нужно сначала сделать `terraform get`_### Случай 1: ресурсы модулей независимы
.png)
В главном конфигурационном файте `main.tf` конфигурация модуля inst1, должна выглядеть следующим образом:
```
module "inst1" {
source = "./inst1"
/*name = "${module.inst2.depend_name}"*/
name = "nondepend-inst"
}
```
После чего выполняем
```
terrafrom apply
```
Должны увидеть, что подули запускаются параллельно, т.к. ресурсы модулей не зависят друг от друга.При удалении:
```
terraform destroy
```
Ресурсы будут удаляться тоже одновременно.### Случай 2: ресурсы модулей зависимы
.png)
В главном конфигурационном файте `main.tf` конфигурация модуля inst1, должна выглядеть следующим образом:
```
module "inst1" {
source = "./inst1"
name = "${module.inst2.depend_name}"
/*name = "nondepend-inst"*/
}
```
Видим, что в качестве переменной имени мы передаем выходную переменную из другого модуля (если заглянуть в модуль, то она возвращает instance ID).Тераформ видит, что ресурсы одного модуля ссылаются на ресурсы другого, и понимает эту зависимость.
Поэтому, если мы запусим:
```
terrafrom apply
```
то увидим, что сначала начнет создаваться только один ресурс, который определен в модуле inst2. Только после того, как этот модуль закончил свою работу и ресурсы, определенные внутри этого модуля, были созданы, начнет свою работу модуль inst1, который так же создаст один инстанс.При удалении:
```
terraform destroy
```
Ресурсы будут удаляться с учетом зависимостей. Т.е. сначала будет удален инстанс из модуля inst1, имеющий зависимость от инстанса в модуле inst2, а потом будет удален инстанс из модуля inst2.