You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
terraform-provider-dynamix/wiki/1.0.1/07.01.02-Resource_dynamix_r...

23 KiB

Resource функция dynamix_resgroup служит для управления ресурсными группами в облачной платформе DYNAMIX.

Аргументы

Resource функция dynamix_resgroup принимает следующие аргументы:

Аргумент Тип Обязательный Описание
account_id int ✔️ Идентификатор подписчика (aka "account"), которому будет принадлежать создаваемая ресурсная группа.
gid int ✔️ Идентификатор grid, которому будет принадлежать создаваемая ресурсная группа.
name string ✔️ Имя ресурсной группы. Должно быть уникальным в рамках одного и того же подписчика ("account"), не может быть пустым.
compute_features []string Доступ к дополнительным функциям управления ВМ
def_net_type string Тип сети, которая будет установлена по умолчанию для данной ресурсной группы. Может принимать одно из следующих значений:
* "PUBLIC" - создаваемые в данной ресурсной группе экземпляры compute по умолчанию будут подключаться во внешнюю сеть с идентификатором, который задаётся параметром ext_net_id
* "PRIVATE" - экземпляры compute по умолчанию будут подключаться в новый виртуальный сетевой сегмент (ViNS ), который платформа автоматически создаст для данной ресурсной группы.
* "NONE" - сеть по умолчанию не задана, экземпляры compute в данной ресурсной группе будут создаваться без сетевых подключений, если при их создании явно не указано иное.
description string Текстовое описание данной ресурсной группы.
Данный параметр не является обязательным, значение по умолчанию - пустая строка.
permanently bool Безвозвратное удаление ресурса. Используется при удалении
force bool Удаление ресурса, в случае если он к чему-то присоединен произойдет отсоединение его от других ресурсов и удаление
reason string Причина по которой ресурс удаляется
enable bool Поле флаг, отвечающее за enable/disable ресурса
ext_ip string IP адрес из диапазона, принадлежащего внешней сети, который будет присвоен подключению ViNS во внешнюю сеть в случае, когда def_net_type = "PRIVATE" и ненулевом ext_net_id. При других значениях def_net_type данный параметр игнорируется.
Если данный параметр не указан явно, то платформа автоматически выберет свободный IP адрес.
Если заданный ext_ip уже используется, платформа вернёт ошибку.
ext_net_id int Идентификатор внешней сети, в которую будет подключён ViNS, автоматически создаваемый платформой для данной ресурсной группы в случае, когда def_net_type = "PRIVATE". При других значениях def_net_type данный параметр игнорируется.
Если данный параметр не задан явно при def_net_type = "PRIVATE", то платформа выберет первую из доступных данному пользователю внешних сетей.
ipcidr string Адрес сети внутри ViNS для случая def_net_type = "PRIVATE"
Если данный параметр явно не задан, то платформа назначит адрес сети автоматически.
quota Struct см. ниже Квоты на объем ресурсов, устанавливаемые для данной ресурсной группы, с разбивкой по количеству CPU, объему RAM, объему дисковых ресурсов, количеству внешних IP адресов и т.п. Максмальное количество: 1
access []Struct см. ниже Юзеры которым выдется доступ к данной ресурсной группе
def_net Struct см. ниже Параметры сети ресурсной группы. Максмальное количество: 1
register_computes bool Параметр используется при создании rg
owner string Имя пользователя владелец этой РГ. Оставьте поле пустым, чтобы назначить текущего пользователя владельцем.
restore bool Восстановить ресурсную из корзины.

Описание структуры quota

Аргумент Тип Обязательный Описание
cpu int лимит на суммарное потребление процессоров [шт] в рамках данной ресурсной группы
ram int лимит на суммарное потребление ОЗУ [МБ] в рамках данной ресурсной группы
disk int лимит на суммарное потребление дискового пространства [ГБ] в рамках данной ресурсной группы
ext_traffic int лимит на суммарный трафик в рамках данной ресрсной группы
ext_ips int лимит на суммарное потребление внешних IP адресов [шт] в рамках данной ресурсной группы

Описание структуры access

Аргумент Тип Обязательный Описание
user string ✔️ Юзер которому предоставляется доступ
right string ✔️ Права, которые будут выдаваться данному юзеру. Возможные значения: "R", "RCX" или "ARCXDU"
reason string Причина

Описание структуры def_net

Аргумент Тип Обязательный Описание
net_type string ✔️ Тип сети, которая будет присоединена к ресурсной группе. Возможные значения: "PRIVATE" - vins, "PUBLIC"- external network
net_id int Идентификатор сети. Если не указан, будет задан тот, к которому есть доступ по умолчанию
reason string Причина

Для создания ресурсной группы пользователь облачной платформы, от лица которого происходит обращение к данной функции, должен иметь как минимум доступ на запись к указанному подписчику. В противном случае возникнет ошибка доступа.

Пользователь облачной платформы задается на стадии инициализации Terraform провайдера DYNAMIX (см. подробности).

Возвращаемые значения

В случае успешного выполнения resource функция dynamix_resgroup возвращает в указанную при вызове переменную следующие значения:

Параметр Тип Описание
account_id int Уникальный идентификатор подписчика-владельца данной ресурсной группы.
account_name string Имя подписчика ("account"), которому принадлежит данная ресурсная группа.
compute_features []string Доступ к дополнительным функциям управления ВМ
created_by string Кес создан ресурс
created_time int Время создания ресурса
deleted_by string Кем удален ресурс
deleted_time int Время удаления ресурса
resources Struct{} см. ниже Информация о занимаемых ресурсах
def_net_id int Уникальный идентификатор сети, установленной по умолчанию для данной ресурсной группы. Экземпляры compute, создаваемые в данной ресурсной группе, по умолчанию будут иметь подключение к данной сети, если при их создании явно не указано иное.
Для def_net_type = "EXTNET" в этом параметре указан идентификатор внешней сети. Для def_net_type = "PRIVATE" - идентификатор ViNS.
description string Текстовое описание данной ресурсной группы.
gid int Идентификатор grid, которому будет принадлежать создаваемая ресурсная группа.
id int Идентификатор данной ресурсной группы.
name string Имя данной ресурсной группы. Обратите внимание, что имя ресурсной группы является уникальным только в рамках одного и того же подписчика ("account").
quota dict Квоты на объем ресурсов, установленные для данной ресурсной группы, с разбивкой по количеству CPU, объему RAM, объему дисковых ресурсов, количеству внешних IP адресов и т.п. Формат структуры:
* (int) cpu - лимит на суммарное потребление процессоров [шт] в рамках данной ресурсной группы;
* (int) ram - лимит на суммарное потребление ОЗУ [МБ] в рамках данной ресурсной группы;
* (int) disk - лимит на суммарное потребление дискового пространства [ГБ] в рамках данной ресурсной группы;
* (int) ext_ips - лимит на суммарное потребление внешних IP адресов [шт] в рамках данной ресурсной группы.
Значение -1 означает отсутствие ограничений по данному ресурсу.
* (int) gpu_units - лимит на суммарное количество GPU юнитов в рамках данной ресурсной группы ;
* (int) cu_d - лимит на максимальный размер диска, ГБ
rg_id int Идентификатор данной ресурсной группы. Дублирует значение параметра id.
guid int GUID
dirty bool Dirty
lock_status string Lock статус
milestones int Milestones
secret string Секрет
status string Статус resgroup
updated_by string Кем был сделан апдейт
updated_time int Время апдейта
vins []int Список id виртуальных сетей
vms []int Список id виртуальных машин
res_types []string Resource Types
cpu_allocation_parameter string Параметр выделения CPU
cpu_allocation_ratio float Отношение выделения CPU
uniq_pools []string Uniq pools

Описание структуры resources

Параметр Тип Описание
current Struct{} см. ниже Информация о текуших ресурсах
reserved Struct{} см. ниже Информация о зарезверированных аккаунтом ресурсах

Описание структуры current и reserved

Параметр Тип Описание
cpu int Количество CPU
disksize int Размер диска
extips int Внешние IPs
exttraffic int Внешний Traffic
gpu int Количество GPU
ram int Количество RAM
seps []Struct{} см . ниже Информация о seps

Описание структуры seps

Параметр Тип Описание
sep_id int ID SEP. SEP это способ идентифицировать конкретную систему хранения, на ресурсах которой размещён данный диск
data_name string Имя пула информации внутри SEP'а
disk_size float Количество занятого места
disk_size_max float Размер диска

Пример использования

В нижеприведённом примере с помощью resource функции dynamix_resgroup создаётся ресурсная группа со следующими характеристиками:

  • Имя создаваемой ресурсной группы - "MyNewRG"
  • Идентификатор подписчика-владельца ("account") - 100
  • Квоты на объёмы ресурсов отсутствуют (нет ограничений).
resource "dynamix_resgroup" "rg" {
  #имя ресурсной группы
  #обязательный параметр
  #тип - строка
  name = "testing_rg_1"

  #id аккаунта которому будет принадлежать ресурсная группа
  #обязательный параметр
  #тип - целое число
  account_id = 123

  #id сети
  #обязательный параметр
  #тип - целое число
  gid = 1234

  #тип сети по умолчанию для этой ресурсной группы
  #опциональный параметр
  #виртуальные машины, созданные в этой RG, по умолчанию будут подключены к этой сети
  #допустимые значения: PRIVATE, PUBLIC, NONE
  #тип - строка
  def_net_type = "NONE"

  #ip cidr частной сети, если сеть по умолчанию PRIVATE
  #опциональный параметр
  #тип - строка
  ipcidr = "1.1.1.1"

  #id внешней сети
  #опциональный параметр
  #тип - целое число
  ext_net_id = 123

  #ip внешней сети
  #опциональный параметр
  #тип - строка
  ext_ip = "1.1.1.1"

  #причина выполнения
  #опциональный параметр
  #тип - строка
  reason = "TEST"

  #описание
  #опциональный параметр
  #тип - строка
  description = "qwerty"

  #флаг доступности ресурсной группы
  #опциональный параметр
  #тип - булев
  enable = true

  #имя пользователя
  #опциональный параметр
  #тип - строка
  owner = "name_user"

  #структура для предоставления прав на ресурсную группу
  #опциональный параметр
  #тип - структура прав доступа
  access = {
    #имя юзера предоставляемому права 
    #обязательный праметр
    #тип - строка
    user = "kasim_baybikov_1@decs3o"

    #тип прав
    #опциональный параметр
    #тип - строка
    right = "RCX"
  }

  #установить сеть по умолчанию
  #опциональный параметр
  #при добавлении структуры, удалять его нельзя
  #тип - структура сетей
  def_net = {
    #тип сети
    #обязательный параметр
    #тип - строка
    net_type = "PUBLIC"

    #id сети
    #опциональный параметр
    #идентификатор сегмента сети. Если net_type — PUBLIC, а net_id — 0, 
    #то будет выбран сегмент внешней сети по умолчанию. Если net_type 
    #имеет значение PRIVATE и net_id=0, будет выбран первый vins, определенный для этой ресурсной группы 
    #в противном случае net_id идентифицирует либо существующий сегмент внешней сети, либо vins
    #тип - целое число
    net_id = 1234

    #причина выполнения
    #опциональный параметр
    #тип - строка
    reason = "TEST"
  }

  #лимиты ресурсов для ресурсной группы
  #опциональный параметр
  #тип - структура конфигураций
  quota = {
    #максимальное количество ядер процессора
    #опциональный параметр
    #значение по умолчанию: -1
    #тип - целое число
    cpu = 5

    #максимальный размер памяти в мегабайтах
    #опциональный параметр
    #значение по умолчанию: -1
    #тип - целое число
    ram = 1024

    #максимальный размер объединенных виртуальных дисков в ГБ
    #опциональный параметр
    #значение по умолчанию: -1
    #тип - целое число
    disk = 180

    #максимальное количество отправленных/полученных сетевых узлов
    #опциональный параметр
    #значение по умолчанию: -1
    #тип - целое число
    ext_traffic = 21

    #максимальное количество назначенных общедоступных IP-адресов
    #опциональный параметр
    #значение по умолчанию: -1
    #тип - целое число
    ext_ips = 29
  }

  #флаг для принудительного удаления ресурсной группы
  #опциональный параметр
  #тип - булев
  force = true

  #флаг для моментального удаления ресурсной группы
  #опциональный параметр
  #тип - булев
  permanently = true

  #восстановление группы после удаления
  #опциональный параметр
  #используется при редактировании ресурса
  #по-умолачанию - true
  #тип - булев
  restore = true
}

Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DYNAMIX см. соответствующий раздел).

После успешного завершения такого вызова resource функции dynamix_resgroup в переменной dynamix_resgroup.rg будут сохранены возвращаемые значения. В частности, для получения идентификатора ресурсной группы следует использовать конструкцию dynamix_resgroup.rg.id.