- Некоторые переменные объединил в объекты
- Для некоторых переменных добавил значения по умолчанию
- Обозначил ряд переменных как NotNull
- Думал добавить
lifecycle { prevent_destroy = true }для ресурса с адресом. Адрес имеет защиту от удаления, поэтому попытки его удалить будет отлавливать на этапе плана. Но фактические это добавило бы только лишней головной боли видаterraform state rm, если бы захотели удалить виртуалку и создать её в другой зоне.
- аналогичные рефакторинг переменных
- sshkeys кажется логичным задавать списком строк и уже по месту использования преобразовывать в нужный вид
- убрал
ignore_changes = [network]. Я не знаком с proxmox, но предполагаю, что, например, параметр network.firewall может быть изменен вручную. Поэтому хочется избежать возможного расхождения фактического состояния системы со стейтом. - для cipassword sensible переменную. Опять же, с pve не знаком особо, но судя по коду провайдера пароль является чувствительным значением
Есть еще нюанс, что я использую фичу optional полей в объектах из достаточно свежих версий терраформа. Таким образом я ломаю возможность использовать модуль для более старых, но все еще достаточно массовых версий терраформа. Это, конечно, нехорошо, но будем считать это не критичным.
Буду рад каким-то замечанием, если я пропустил что-т очевидное.