# Шаг 4 — Terraform plan (успех) **Дата:** 2026-07-21 ## Результат `terraform plan` — **успешно**. 9 ресурсов, 0 ошибок. ## Исправления 1. **Синтаксис vault_secrets** — `${local.var}` нельзя использовать после точки. Решение: декодировать в отдельный local, хардкодить username (как в CRUD): ```hcl locals { kafka_secrets = jsondecode(nubes_kafka.main.vault_secrets["users"]) password = nonsensitive(local.kafka_secrets["iot-app"].password) } ``` 2. **ClickHouse обязательные блоки** — добавлены: - `clickhouse_keeper_configuration` (cpu/memory/replicas) - `backup_configuration` (s3_uid/retain/schedule) - `autoscale_configuration` (enabled/percent/quota/schedule) ## План (9 ресурсов) | # | Ресурс | Имя | |---|--------|-----| | 1 | nubes_kafka | iot-kafka | | 2 | nubes_kafka_topic | iot-events | | 3 | nubes_kafka_user | iot-app | | 4 | nubes_clickhouse | iot-clickhouse | | 5 | nubes_clickhouse_database | iot | | 6 | nubes_clickhouse_user | iot_writer | | 7 | nubes_flask | iot-producer | | 8 | nubes_flask | iot-consumer | | 9 | nubes_superset | iot-superset | ## ⚠️ Остаётся неизвестным Ключи `state_out_flat` (`bootstrapServers`, `internalMaster`) и формат `vault_secrets` — станут известны только после `apply`. Завёрнуты в `try()` чтобы не упасть, но реальные значения будут пустыми до создания инстансов.