Быстрый способ - разделить код на два стека, один стек (модуль # 1) управляет только хранилищем, другой (модуль # 2) управляет остальными.
После разделения вы можете изменить модуль# 2 в любое время, что бы ни применялось или уничтожало.
Между двумя стеками вы можете ссылаться на ресурс хранилища несколькими способами.
Первый способ:
ссылка из источника данных terraform_remote_state , который необходимо установитьвывод, как показано ниже
output "persistant_storage_id" {
value = "${openstack_blockstorage_volume_v2.pgvol.id}"
}
, затем используйте приведенный ниже код в модуле 2 для ссылки на постоянное хранилище.
data "terraform_remote_state" "persistent_storage" {
backend = "xxx"
config {
name = "hashicorp/persistent-storage"
}
}
, чтобы модуль # 2 мог ссылаться на него как ${data.terraform_remote_state.persistent_storage.persistent_storage_id}"
Второй способ:
ссылка на идентификатор постоянного хранилища с источником данных openstack_blockstorage_availability_zones_v3 напрямую
третий путь:
путь # 3 аналогичен # 1,
необходимо вывести значение "${openstack_blockstorage_volume_v2.pgvol.id}"
в модуле # 1,
output "persistant_storage_id" {
value = "${openstack_blockstorage_volume_v2.pgvol.id}"
}
вызвать модуль # 1
module "persistent_storage" {
...
}
, а затем указать его как ${module.persistent_storage.persistent_storage_id}"