resource "cloudru_evolution_compute_vm" "resource_vm" {# Поле project_id является неизменяемым. При изменении значения ресурс будет пересоздан.project_id = "c5c3c689-2bc6-424b-8a37-d0443ca6064a"zone = {# Нужно заполнить одно из значений - id, name.id = "ae2effc9-c35a-4cc5-87a1-1317a52f3fd4"name = "dc54f418-9776-407a-bd41-d2265672fd93"}name = "4bf49ae1-c3a1-4cab-9011-c4a4d391d0cb"description = "cd7f3a8d-c209-44bf-aa98-c71f68418501"flavor = {# Нужно заполнить одно из значений - id, name.id = "28f6e8bb-8934-4b48-af83-8ccfc33a5630"name = "914e999b-60c5-465e-9c30-cb36cd63625c"}placement_group = {# Поле id является неизменяемым. При изменении значения ресурс будет пересоздан.id = "e07ad3de-d353-4566-aa9d-356efb6e692f"}network_interfaces = [{id = "56d1bd30-6a40-44d7-838c-4deb21b14677"}]disks = [{id = "0eda2e5e-9e81-40ea-9bee-9ada57796865"}]cloud_init_userdata = "a2e553fb-8010-4741-bc47-31997ba277ee"image_metadata = {"5c04fb51-66c9-4710-8d66-a9e3ad4e7acb" = {# Нужно заполнить одно из значений - string_value, int_value, bool_value.string_value = "6a3385f3-ec3b-449a-a2d5-f7ba633a4915"int_value = 407856610bool_value = true} }# Позволяет переопределить дефолтный таймаут провайдера для определенного метода. Если нужно указать бесконечный таймаут, то нужно указать например 0s, тогда таймаута не будет.timeouts {create = "60m"update = "30m"delete = "20m"}# Игнорировать изменения таймаутов: это предотвращает лишние обновления ресурса при смене значений таймаутов в конфигурации# Но следует учитывать, что метод delete в ресурсе читает значение таймаута из стейта и, если его нужно изменить, то этот блок стоит закомментироватьlifecycle {ignore_changes = [timeouts]}}
flavor (Attributes) Параметры флейвора. (see below for nested schema)
name (String) Название виртуальной машины.
project_id (String) Идентификатор проекта.
zone (Attributes) Параметры зоны доступности. (see below for nested schema)
cloud_init_userdata (String) Поле для автоматической настройки виртуальной машины при запуске.
description (String) Описание виртуальной машины.
disks (Attributes List) Параметры диска. (see below for nested schema)
image_metadata (Attributes Map) Метаданные образа. Для некоторых образов поле является обязательным. (see below for nested schema)
network_interfaces (Attributes List) Параметры сетевого интерфейса. (see below for nested schema)
placement_group (Attributes) Параметры группы размещения. (see below for nested schema)
timeouts (Block, Optional) (see below for nested schema)
created_at (String) Дата и время создания виртуальной машины.
guest_agent_state (String) Статус гостевого агента.
icon (String) Значок виртуальной машины в формате SVG.
id (String) Идентификатор виртуальной машины.
locked (Boolean) Признак виртуальной машины, заблокированной для изменений.
metadata_fields (Attributes List) Метаданные виртуальной машины. (see below for nested schema)
remote_console_protocol (String) Тип удаленной консоли.
remote_console_url (String) WebSocket URL виртуальной консоли.
remote_console_ws (String) WebSocket URL удаленной консоли.
status (String) Статус виртуальной машины.
updated_at (String) Дата и время изменения виртуальной машины.
Optional:
id (String) Идентификатор флейвора.
name (String) Название флейвора.
Optional:
id (String) Идентификатор зоны доступности.
name (String) Название зоны доступности.
Read-Only:
enabled (Boolean) Флаг указывающий, доступна ли зона для использования.
Optional:
id (String) Идентификатор диска.
Read-Only:
image_id (String) Параметры образа.
name (String) Название диска.
primary (Boolean) Признак загрузочного диска.
status (String) Статус диска.
Optional:
bool_value (Boolean) Значение метаданных образа логического типа.
int_value (Number) Значение метаданных образа числового типа.
string_value (String) Значение метаданных образа строкового типа.
Optional:
id (String) Идентификатор сетевого интерфейса.
Read-Only:
name (String) Название сетевого интерфейса.
status (String) Статус сетевого интерфейса.
Optional:
id (String) Идентификатор группы размещения.
Read-Only:
name (String) Название группы размещения.
Optional:
create (String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as «30s» or «2h45m». Valid time units are «s» (seconds), «m» (minutes), «h» (hours).
delete (String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as «30s» or «2h45m». Valid time units are «s» (seconds), «m» (minutes), «h» (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
update (String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as «30s» or «2h45m». Valid time units are «s» (seconds), «m» (minutes), «h» (hours).
Read-Only:
display_name (String) Отображаемое название.
id (String) Идентификатор поля метаданных.
metadata_id (String) Идентификатор метаданных.
name (String) Название.
value (String) Значение.
Перечисленные ниже ресурсы/датасорсы используются для создания/изменения виртуальной машины с помощью Terraform
Нужное значение для флейвора (id или name) можно получить с помощью датасорса cloudru_evolution_compute_flavor_collection.
Нужное значение для зоны доступности (id или name) можно получить с помощью датасорса cloudru_evolution_compute_zone_collection.
Нужное значение для диска (id) можно получить с помощью датасорса cloudru_evolution_compute_disk_collection. Если нужного Вам диска не существует, то его можно создать с помощью ресурса cloudru_evolution_compute_disk.
Нужное значение для Image metadata можно получить с помощью датасорса cloudru_evolution_compute_image_collection.
После получения информации об образе необходимо просмотреть поля image_metadata - обращаем внимание на поле mandatory_group, например, public_key и linux_password относятся к одной "mandatory_group": "authentication". Для создания ВМ с данным образом должна быть передана map image_metadata - с полями, которые покрывают каждую mandatory_group. Например, для примера выше либо public_key либо linux_password - так как они относятся к одной группе.
image_metadata = {public_key = {string_value = "demo"}}
Нужное значение для сетевого интерфейса (id) можно получить с помощью датасорса cloudru_evolution_compute_interface_collection. Если нужного Вам интерфейса не существует, то его можно создать с помощью ресурса cloudru_evolution_compute_interface.
Нужное значение для группы размещения (id) можно получить с помощью датасорса cloudru_evolution_compute_placement_group_collection. Если нужной Вам группы размещения не существует, то ее можно создать с помощью ресурса cloudru_evolution_compute_placement_group.