Облачная платформаEvolution

cloudru_evolution_compute_vm (Resource)

Эта статья полезна?

Example Usage

resource "cloudru_evolution_compute_vm" "resource_vm" {
# Поле project_id является неизменяемым. При изменении значения ресурс будет пересоздан.
project_id = "4af89a7d-ec81-467d-90ec-d6a5fec9b8f7"
zone = {
# Нужно заполнить одно из значений - id, name.
id = "5c4353fe-f414-4793-aa96-9dae3d7552ed"
name = "4f6f11fd-3098-42e9-a02d-22d58bb45a82"
}
name = "1c34bd24-dd71-4a45-9afb-5dcf4388bf0c"
description = "66aae149-53d6-495b-a18d-4dfa759dea4f"
flavor = {
# Нужно заполнить одно из значений - id, name.
id = "c60ab504-9e58-405a-a88a-2f62137fb525"
name = "9f1571a8-3cd9-40a3-80e7-f4b1d06293fc"
}
placement_group = {
# Поле id является неизменяемым. При изменении значения ресурс будет пересоздан.
id = "c925ec48-e258-403b-b4c9-c19d0f5cb76b"
}
network_interfaces = [{
# Поле id является неизменяемым. При изменении значения ресурс будет пересоздан.
id = "2f5dedd3-1f79-47bf-b75f-913df0cdb623"
}]
disks = [{
id = "821c9632-9bc4-4456-9292-5f4c1cd6b8c7"
}]
cloud_init_userdata = "ca788540-a9a9-4166-979a-be5b348c01e4"
image_metadata = {
"0bce05ad-a50a-4038-b33f-30b67a138fd6" = {
# Нужно заполнить одно из значений - string_value, int_value, bool_value.
string_value = "9893560e-985b-462e-893d-4ac495f413c1"
int_value = 447374414
bool_value = false
} }
# Позволяет переопределить дефолтный таймаут провайдера для определенного метода. Если нужно указать бесконечный таймаут, то нужно указать например 0s, тогда таймаута не будет.
timeouts {
create = "60m"
update = "30m"
delete = "20m"
}
# Игнорировать изменения таймаутов: это предотвращает лишние обновления ресурса при смене значений таймаутов в конфигурации
# Но следует учитывать, что метод delete в ресурсе читает значение таймаута из стейта и, если его нужно изменить, то этот блок стоит закомментировать
lifecycle {
ignore_changes = [timeouts]
}
}

Schema

Required

  • flavor (Attributes) Параметры флейвора. (see below for nested schema)

  • name (String) Название виртуальной машины.

  • project_id (String) Идентификатор проекта.

  • zone (Attributes) Параметры зоны доступности. (see below for nested schema)

Optional

  • 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)

Read-Only

  • 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) Дата и время изменения виртуальной машины.

Nested Schema for flavor

Optional:

  • id (String) Идентификатор флейвора.

  • name (String) Название флейвора.

Nested Schema for zone

Optional:

  • id (String) Идентификатор зоны доступности.

  • name (String) Название зоны доступности.

Read-Only:

  • enabled (Boolean) Флаг указывающий, доступна ли зона для использования.

Nested Schema for disks

Optional:

  • id (String) Идентификатор диска.

Read-Only:

  • image_id (String) Параметры образа.

  • name (String) Название диска.

  • primary (Boolean) Признак загрузочного диска.

  • status (String) Статус диска.

Nested Schema for image_metadata

Optional:

  • bool_value (Boolean) Значение метаданных образа логического типа.

  • int_value (Number) Значение метаданных образа числового типа.

  • string_value (String) Значение метаданных образа строкового типа.

Nested Schema for network_interfaces

Optional:

  • id (String) Идентификатор сетевого интерфейса.

Read-Only:

  • name (String) Название сетевого интерфейса.

  • status (String) Статус сетевого интерфейса.

Nested Schema for placement_group

Optional:

  • id (String) Идентификатор группы размещения.

Read-Only:

  • name (String) Название группы размещения.

Nested Schema for timeouts

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).

Nested Schema for metadata_fields

Read-Only:

  • display_name (String) Отображаемое название.

  • id (String) Идентификатор поля метаданных.

  • metadata_id (String) Идентификатор метаданных.

  • name (String) Название.

  • value (String) Значение.

Зависимости

Перечисленные ниже ресурсы/датасорсы используются для создания/изменения виртуальной машины с помощью Terraform

Flavor

Нужное значение для флейвора (id или name) можно получить с помощью датасорса cloudru_evolution_compute_flavor_collection.

Zone

Нужное значение для зоны доступности (id или name) можно получить с помощью датасорса cloudru_evolution_compute_zone_collection.

Disks

Нужное значение для диска (id) можно получить с помощью датасорса cloudru_evolution_compute_disk_collection. Если нужного Вам диска не существует, то его можно создать с помощью ресурса cloudru_evolution_compute_disk.

Image metadata

Нужное значение для 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"
}
}

Network interfaces

Нужное значение для сетевого интерфейса (id) можно получить с помощью датасорса cloudru_evolution_compute_interface_collection. Если нужного Вам интерфейса не существует, то его можно создать с помощью ресурса cloudru_evolution_compute_interface.

Placement group

Нужное значение для группы размещения (id) можно получить с помощью датасорса cloudru_evolution_compute_placement_group_collection. Если нужной Вам группы размещения не существует, то ее можно создать с помощью ресурса cloudru_evolution_compute_placement_group.